diff --git a/documentation/azure-powershell-modules.md b/documentation/azure-powershell-modules.md
index 032c7c83d6f3..10acb9c03d20 100644
--- a/documentation/azure-powershell-modules.md
+++ b/documentation/azure-powershell-modules.md
@@ -99,6 +99,7 @@ Portal | `Az.Portal`
Database for PostgreSQL | `Az.PostgreSql` | [![PostgreSql]][PostgreSqlGallery]
Power BI Embedded | `Az.PowerBIEmbedded` | [![PowerBIEmbedded]][PowerBIEmbeddedGallery]
Private Dns | `Az.PrivateDns` | [![PrivateDns]][PrivateDnsGallery]
+Provider Hub | `Az.ProviderHub` | [![ProviderHub]][ProviderHubGallery]
Recovery Services | `Az.RecoveryServices` | [![RecoveryServices]][RecoveryServicesGallery]
Redis Cache | `Az.RedisCache` | [![RedisCache]][RedisCacheGallery]
Redis Enterprise Cache | `Az.RedisEnterpriseCache` | [![RedisEnterpriseCache]][RedisEnterpriseCacheGallery]
@@ -223,6 +224,7 @@ Windows Iot Services | `Az.WindowsIotServices`
[PostgreSql]: https://img.shields.io/powershellgallery/v/Az.PostgreSql.svg?style=flat-square&label=Az.PostgreSql
[PowerBIEmbedded]: https://img.shields.io/powershellgallery/v/Az.PowerBIEmbedded.svg?style=flat-square&label=Az.PowerBIEmbedded
[PrivateDns]: https://img.shields.io/powershellgallery/v/Az.PrivateDns.svg?style=flat-square&label=Az.PrivateDns
+[ProviderHub]: https://img.shields.io/powershellgallery/v/Az.ProviderHub.svg?style=flat-square&label=Az.ProviderHub
[RecoveryServices]: https://img.shields.io/powershellgallery/v/Az.RecoveryServices.svg?style=flat-square&label=Az.RecoveryServices
[RedisCache]: https://img.shields.io/powershellgallery/v/Az.RedisCache.svg?style=flat-square&label=Az.RedisCache
[RedisEnterpriseCache]: https://img.shields.io/powershellgallery/v/Az.RedisEnterpriseCache.svg?style=flat-square&label=Az.RedisEnterpriseCache
@@ -345,6 +347,7 @@ Windows Iot Services | `Az.WindowsIotServices`
[PostgreSqlGallery]: https://www.powershellgallery.com/packages/Az.PostgreSql/
[PowerBIEmbeddedGallery]: https://www.powershellgallery.com/packages/Az.PowerBIEmbedded/
[PrivateDnsGallery]: https://www.powershellgallery.com/packages/Az.PrivateDns/
+[ProviderHubGallery]: https://www.powershellgallery.com/packages/Az.ProviderHub/
[RecoveryServicesGallery]: https://www.powershellgallery.com/packages/Az.RecoveryServices/
[RedisCacheGallery]: https://www.powershellgallery.com/packages/Az.RedisCache/
[RedisEnterpriseCacheGallery]: https://www.powershellgallery.com/packages/Az.RedisEnterpriseCache/
diff --git a/src/ProviderHub/Az.ProviderHub.csproj b/src/ProviderHub/Az.ProviderHub.csproj
new file mode 100644
index 000000000000..3de9aeb2921a
--- /dev/null
+++ b/src/ProviderHub/Az.ProviderHub.csproj
@@ -0,0 +1,7 @@
+
+
+ ProviderHub
+
+
+
+
diff --git a/src/ProviderHub/Az.ProviderHub.format.ps1xml b/src/ProviderHub/Az.ProviderHub.format.ps1xml
new file mode 100644
index 000000000000..ee80f0e1c894
--- /dev/null
+++ b/src/ProviderHub/Az.ProviderHub.format.ps1xml
@@ -0,0 +1,4403 @@
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.ProviderHubIdentity
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.ProviderHubIdentity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NestedResourceTypeFirst
+
+
+ NestedResourceTypeSecond
+
+
+ NestedResourceTypeThird
+
+
+ NotificationRegistrationName
+
+
+ ProviderNamespace
+
+
+ ResourceType
+
+
+ RolloutName
+
+
+ Sku
+
+
+ SubscriptionId
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20.ProxyResource
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20.ProxyResource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20.Resource
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20.Resource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.AuthorizationActionMapping
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.AuthorizationActionMapping
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Desired
+
+
+ Original
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CanaryTrafficRegionRolloutConfiguration
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CanaryTrafficRegionRolloutConfiguration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+ SkipRegion
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CheckinManifestInfo
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CheckinManifestInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CommitId
+
+
+ IsCheckedIn
+
+
+ PullRequest
+
+
+ StatusMessage
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CheckinManifestParams
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CheckinManifestParams
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BaselineArmManifestLocation
+
+
+ Environment
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CheckNameAvailabilitySpecifications
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CheckNameAvailabilitySpecifications
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EnableDefaultValidation
+
+
+ ResourceTypesWithCustomValidation
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRollout
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRollout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutArrayResponseWithContinuation
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutArrayResponseWithContinuation
+
+
+
+
+
+
+
+
+
+
+
+ NextLink
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutProperties
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutProperties
+
+
+
+
+
+
+
+
+
+
+
+ ProvisioningState
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutPropertiesAutoGenerated
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutPropertiesAutoGenerated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CanaryRegion
+
+
+ ProvisioningState
+
+
+ StatusCompletedRegion
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutPropertiesSpecification
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutPropertiesSpecification
+
+
+
+
+
+
+
+
+
+
+
+ CanaryRegion
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutPropertiesStatus
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutPropertiesStatus
+
+
+
+
+
+
+
+
+
+
+
+ CompletedRegion
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutSpecificationCanary
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutSpecificationCanary
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutSpecificationProviderRegistration
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutSpecificationProviderRegistration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FeatureRuleRequiredFeaturesPolicy
+
+
+ ManagementIncidentContactEmail
+
+
+ ManagementIncidentRoutingService
+
+
+ ManagementIncidentRoutingTeam
+
+
+ ManagementManifestOwner
+
+
+ ManagementResourceAccessPolicy
+
+
+ ManagementSchemaOwner
+
+
+ Name
+
+
+ Namespace
+
+
+ ProviderAuthenticationAllowedAudience
+
+
+ ProviderHubMetadataProviderAuthenticationAllowedAudience
+
+
+ ProviderType
+
+
+ ProviderVersion
+
+
+ ProvisioningState
+
+
+ RequestHeaderOptionOptInHeader
+
+
+ RequiredFeature
+
+
+ TemplateDeploymentOptionPreflightOption
+
+
+ TemplateDeploymentOptionPreflightSupported
+
+
+ ThirdPartyProviderAuthorizationManagedByTenantId
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutStatus
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.CustomRolloutStatus
+
+
+
+
+
+
+
+
+
+
+
+ CompletedRegion
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRollout
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRollout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutArrayResponseWithContinuation
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutArrayResponseWithContinuation
+
+
+
+
+
+
+
+
+
+
+
+ NextLink
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutProperties
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutProperties
+
+
+
+
+
+
+
+
+
+
+
+ ProvisioningState
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutPropertiesAutoGenerated
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutPropertiesAutoGenerated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CanaryRegion
+
+
+ CanarySkipRegion
+
+
+ HighTrafficRegion
+
+
+ LowTrafficRegion
+
+
+ MediumTrafficRegion
+
+
+ ProvisioningState
+
+
+ RestOfTheWorldGroupOneRegion
+
+
+ RestOfTheWorldGroupTwoRegion
+
+
+ StatusCompletedRegion
+
+
+ StatusNextTrafficRegion
+
+
+ StatusNextTrafficRegionScheduledTime
+
+
+ StatusSubscriptionReregistrationResult
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutPropertiesSpecification
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutPropertiesSpecification
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CanaryRegion
+
+
+ CanarySkipRegion
+
+
+ HighTrafficRegion
+
+
+ LowTrafficRegion
+
+
+ MediumTrafficRegion
+
+
+ RestOfTheWorldGroupOneRegion
+
+
+ RestOfTheWorldGroupTwoRegion
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutPropertiesStatus
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutPropertiesStatus
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CompletedRegion
+
+
+ NextTrafficRegion
+
+
+ NextTrafficRegionScheduledTime
+
+
+ SubscriptionReregistrationResult
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationCanary
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationCanary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+ SkipRegion
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationHighTraffic
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationHighTraffic
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationLowTraffic
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationLowTraffic
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationMediumTraffic
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationMediumTraffic
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationProviderRegistration
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationProviderRegistration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FeatureRuleRequiredFeaturesPolicy
+
+
+ ManagementIncidentContactEmail
+
+
+ ManagementIncidentRoutingService
+
+
+ ManagementIncidentRoutingTeam
+
+
+ ManagementManifestOwner
+
+
+ ManagementResourceAccessPolicy
+
+
+ ManagementSchemaOwner
+
+
+ Name
+
+
+ Namespace
+
+
+ ProviderAuthenticationAllowedAudience
+
+
+ ProviderHubMetadataProviderAuthenticationAllowedAudience
+
+
+ ProviderType
+
+
+ ProviderVersion
+
+
+ ProvisioningState
+
+
+ RequestHeaderOptionOptInHeader
+
+
+ RequiredFeature
+
+
+ TemplateDeploymentOptionPreflightOption
+
+
+ TemplateDeploymentOptionPreflightSupported
+
+
+ ThirdPartyProviderAuthorizationManagedByTenantId
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationRestOfTheWorldGroupOne
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationRestOfTheWorldGroupOne
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationRestOfTheWorldGroupTwo
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutSpecificationRestOfTheWorldGroupTwo
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutStatus
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.DefaultRolloutStatus
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CompletedRegion
+
+
+ NextTrafficRegion
+
+
+ NextTrafficRegionScheduledTime
+
+
+ SubscriptionReregistrationResult
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.Error
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.Error
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+ Message
+
+
+ Target
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ErrorResponseError
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ErrorResponseError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+ Message
+
+
+ Target
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ExtendedErrorInfo
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ExtendedErrorInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+ Message
+
+
+ Target
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ExtendedLocationOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ExtendedLocationOptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SupportedPolicy
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ExtensionOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ExtensionOptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request
+
+
+ Response
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.FeaturesRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.FeaturesRule
+
+
+
+
+
+
+
+
+
+
+
+ RequiredFeaturesPolicy
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IdentityManagement
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IdentityManagement
+
+
+
+
+
+
+
+
+
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IdentityManagementProperties
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IdentityManagementProperties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ApplicationId
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.InnerError
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.InnerError
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LightHouseAuthorization
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LightHouseAuthorization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrincipalId
+
+
+ RoleDefinitionId
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LinkedAccessCheck
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LinkedAccessCheck
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ActionName
+
+
+ LinkedAction
+
+
+ LinkedActionVerb
+
+
+ LinkedProperty
+
+
+ LinkedType
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LinkedOperationRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LinkedOperationRule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LinkedAction
+
+
+ LinkedOperation
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LoggingHiddenPropertyPath
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LoggingHiddenPropertyPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HiddenPathsOnRequest
+
+
+ HiddenPathsOnResponse
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LoggingRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LoggingRule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Action
+
+
+ DetailLevel
+
+
+ Direction
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LoggingRuleHiddenPropertyPaths
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.LoggingRuleHiddenPropertyPaths
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HiddenPathsOnRequest
+
+
+ HiddenPathsOnResponse
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationEndpoint
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationEndpoint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Location
+
+
+ NotificationDestination
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationRegistration
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationRegistration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationRegistrationArrayResponseWithContinuation
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationRegistrationArrayResponseWithContinuation
+
+
+
+
+
+
+
+
+
+
+
+ NextLink
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationRegistrationProperties
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationRegistrationProperties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IncludedEvent
+
+
+ MessageScope
+
+
+ NotificationMode
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationRegistrationPropertiesAutoGenerated
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.NotificationRegistrationPropertiesAutoGenerated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IncludedEvent
+
+
+ MessageScope
+
+
+ NotificationMode
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsContent
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsContent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsDefinition
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsDefinition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ActionType
+
+
+ IsDataAction
+
+
+ Name
+
+
+ Origin
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsDefinitionArrayResponseWithContinuation
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsDefinitionArrayResponseWithContinuation
+
+
+
+
+
+
+
+
+
+
+
+ NextLink
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsDefinitionDisplay
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsDefinitionDisplay
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Description
+
+
+ Operation
+
+
+ Provider
+
+
+ Resource
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsDisplayDefinition
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.OperationsDisplayDefinition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Description
+
+
+ Operation
+
+
+ Provider
+
+
+ Resource
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderHubMetadataProviderAuthentication
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderHubMetadataProviderAuthentication
+
+
+
+
+
+
+
+
+
+
+
+ AllowedAudience
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderHubMetadataThirdPartyProviderAuthorization
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderHubMetadataThirdPartyProviderAuthorization
+
+
+
+
+
+
+
+
+
+
+
+ ManagedByTenantId
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistration
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistrationArrayResponseWithContinuation
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistrationArrayResponseWithContinuation
+
+
+
+
+
+
+
+
+
+
+
+ NextLink
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistrationProperties
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistrationProperties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FeatureRuleRequiredFeaturesPolicy
+
+
+ ManagementIncidentContactEmail
+
+
+ ManagementIncidentRoutingService
+
+
+ ManagementIncidentRoutingTeam
+
+
+ ManagementManifestOwner
+
+
+ ManagementResourceAccessPolicy
+
+
+ ManagementSchemaOwner
+
+
+ Namespace
+
+
+ ProviderAuthenticationAllowedAudience
+
+
+ ProviderType
+
+
+ ProviderVersion
+
+
+ RequestHeaderOptionOptInHeader
+
+
+ RequiredFeature
+
+
+ TemplateDeploymentOptionPreflightOption
+
+
+ TemplateDeploymentOptionPreflightSupported
+
+
+ ProvisioningState
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistrationPropertiesAutoGenerated
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistrationPropertiesAutoGenerated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FeatureRuleRequiredFeaturesPolicy
+
+
+ ManagementIncidentContactEmail
+
+
+ ManagementIncidentRoutingService
+
+
+ ManagementIncidentRoutingTeam
+
+
+ ManagementManifestOwner
+
+
+ ManagementResourceAccessPolicy
+
+
+ ManagementSchemaOwner
+
+
+ Namespace
+
+
+ ProviderAuthenticationAllowedAudience
+
+
+ ProviderHubMetadataProviderAuthenticationAllowedAudience
+
+
+ ProviderType
+
+
+ ProviderVersion
+
+
+ ProvisioningState
+
+
+ RequestHeaderOptionOptInHeader
+
+
+ RequiredFeature
+
+
+ TemplateDeploymentOptionPreflightOption
+
+
+ TemplateDeploymentOptionPreflightSupported
+
+
+ ThirdPartyProviderAuthorizationManagedByTenantId
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistrationPropertiesProviderHubMetadata
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ProviderRegistrationPropertiesProviderHubMetadata
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ProviderAuthenticationAllowedAudience
+
+
+ ThirdPartyProviderAuthorizationManagedByTenantId
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.RequestHeaderOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.RequestHeaderOptions
+
+
+
+
+
+
+
+
+
+
+
+ OptInHeader
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ReRegisterSubscriptionMetadata
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ReRegisterSubscriptionMetadata
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ConcurrencyLimit
+
+
+ Enabled
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceMovePolicy
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceMovePolicy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CrossResourceGroupMoveEnabled
+
+
+ CrossSubscriptionMoveEnabled
+
+
+ ValidationRequired
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderAuthentication
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderAuthentication
+
+
+
+
+
+
+
+
+
+
+
+ AllowedAudience
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderAuthorization
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderAuthorization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ApplicationId
+
+
+ ManagedByRoleDefinitionId
+
+
+ RoleDefinitionId
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderCapabilities
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderCapabilities
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Effect
+
+
+ QuotaId
+
+
+ RequiredFeature
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderEndpoint
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderEndpoint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ApiVersion
+
+
+ Enabled
+
+
+ EndpointUri
+
+
+ Location
+
+
+ RequiredFeature
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderEndpointFeaturesRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderEndpointFeaturesRule
+
+
+
+
+
+
+
+
+
+
+
+ RequiredFeaturesPolicy
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManagement
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManagement
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IncidentContactEmail
+
+
+ IncidentRoutingService
+
+
+ IncidentRoutingTeam
+
+
+ ManifestOwner
+
+
+ ResourceAccessPolicy
+
+
+ SchemaOwner
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifest
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace
+
+
+ ProviderType
+
+
+ ProviderVersion
+
+
+ RequiredFeature
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestFeaturesRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestFeaturesRule
+
+
+
+
+
+
+
+
+
+
+
+ RequiredFeaturesPolicy
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestManagement
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestManagement
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IncidentContactEmail
+
+
+ IncidentRoutingService
+
+
+ IncidentRoutingTeam
+
+
+ ManifestOwner
+
+
+ ResourceAccessPolicy
+
+
+ SchemaOwner
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestProperties
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestProperties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace
+
+
+ ProviderType
+
+
+ ProviderVersion
+
+
+ RequiredFeature
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesFeaturesRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesFeaturesRule
+
+
+
+
+
+
+
+
+
+
+
+ RequiredFeaturesPolicy
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesManagement
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesManagement
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IncidentContactEmail
+
+
+ IncidentRoutingService
+
+
+ IncidentRoutingTeam
+
+
+ ManifestOwner
+
+
+ ResourceAccessPolicy
+
+
+ SchemaOwner
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesProviderAuthentication
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesProviderAuthentication
+
+
+
+
+
+
+
+
+
+
+
+ AllowedAudience
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesRequestHeaderOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesRequestHeaderOptions
+
+
+
+
+
+
+
+
+
+
+
+ OptInHeader
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesTemplateDeploymentOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestPropertiesTemplateDeploymentOptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreflightOption
+
+
+ PreflightSupported
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestProviderAuthentication
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestProviderAuthentication
+
+
+
+
+
+
+
+
+
+
+
+ AllowedAudience
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestRequestHeaderOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestRequestHeaderOptions
+
+
+
+
+
+
+
+
+
+
+
+ OptInHeader
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestReRegisterSubscriptionMetadata
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceProviderManifestReRegisterSubscriptionMetadata
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ConcurrencyLimit
+
+
+ Enabled
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceType
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceType
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AllowedUnauthorizedAction
+
+
+ DefaultApiVersion
+
+
+ DisallowedActionVerb
+
+
+ MarketplaceType
+
+
+ Name
+
+
+ RequiredFeature
+
+
+ ResourceDeletionPolicy
+
+
+ ResourceValidation
+
+
+ RoutingType
+
+
+ SkuLink
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeEndpoint
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeEndpoint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ApiVersion
+
+
+ Enabled
+
+
+ Location
+
+
+ RequiredFeature
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeEndpointFeaturesRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeEndpointFeaturesRule
+
+
+
+
+
+
+
+
+
+
+
+ RequiredFeaturesPolicy
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeExtension
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeExtension
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EndpointUri
+
+
+ ExtensionCategory
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeExtensionOptionsResourceCreationBegin
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeExtensionOptionsResourceCreationBegin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request
+
+
+ Response
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeFeaturesRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeFeaturesRule
+
+
+
+
+
+
+
+
+
+
+
+ RequiredFeaturesPolicy
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeIdentityManagement
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeIdentityManagement
+
+
+
+
+
+
+
+
+
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistration
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationArrayResponseWithContinuation
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationArrayResponseWithContinuation
+
+
+
+
+
+
+
+
+
+
+
+ NextLink
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationProperties
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationProperties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AllowedUnauthorizedAction
+
+
+ DefaultApiVersion
+
+
+ DisallowedActionVerb
+
+
+ EnableAsyncOperation
+
+
+ EnableThirdPartyS2S
+
+
+ IsPureProxy
+
+
+ MarketplaceType
+
+
+ ProvisioningState
+
+
+ Regionality
+
+
+ RequiredFeature
+
+
+ ResourceDeletionPolicy
+
+
+ RoutingType
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesAutoGenerated
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesAutoGenerated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AllowedUnauthorizedAction
+
+
+ CheckNameAvailabilitySpecificationEnableDefaultValidation
+
+
+ CheckNameAvailabilitySpecificationResourceTypesWithCustomValidation
+
+
+ DefaultApiVersion
+
+
+ DisallowedActionVerb
+
+
+ EnableAsyncOperation
+
+
+ EnableThirdPartyS2S
+
+
+ FeatureRuleRequiredFeaturesPolicy
+
+
+ IdentityManagementApplicationId
+
+
+ IdentityManagementType
+
+
+ IsPureProxy
+
+
+ MarketplaceType
+
+
+ ProvisioningState
+
+
+ Regionality
+
+
+ RequestHeaderOptionOptInHeader
+
+
+ RequiredFeature
+
+
+ ResourceCreationBeginRequest
+
+
+ ResourceCreationBeginResponse
+
+
+ ResourceDeletionPolicy
+
+
+ ResourceMovePolicyCrossResourceGroupMoveEnabled
+
+
+ ResourceMovePolicyCrossSubscriptionMoveEnabled
+
+
+ ResourceMovePolicyValidationRequired
+
+
+ RoutingType
+
+
+ TemplateDeploymentOptionPreflightOption
+
+
+ TemplateDeploymentOptionPreflightSupported
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesCheckNameAvailabilitySpecifications
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesCheckNameAvailabilitySpecifications
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EnableDefaultValidation
+
+
+ ResourceTypesWithCustomValidation
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesExtensionOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesExtensionOptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResourceCreationBeginRequest
+
+
+ ResourceCreationBeginResponse
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesFeaturesRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesFeaturesRule
+
+
+
+
+
+
+
+
+
+
+
+ RequiredFeaturesPolicy
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesIdentityManagement
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesIdentityManagement
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ApplicationId
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesRequestHeaderOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesRequestHeaderOptions
+
+
+
+
+
+
+
+
+
+
+
+ OptInHeader
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesResourceMovePolicy
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesResourceMovePolicy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CrossResourceGroupMoveEnabled
+
+
+ CrossSubscriptionMoveEnabled
+
+
+ ValidationRequired
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesTemplateDeploymentOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRegistrationPropertiesTemplateDeploymentOptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreflightOption
+
+
+ PreflightSupported
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRequestHeaderOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeRequestHeaderOptions
+
+
+
+
+
+
+
+
+
+
+
+ OptInHeader
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeTemplateDeploymentPolicy
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ResourceTypeTemplateDeploymentPolicy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Capability
+
+
+ PreflightOption
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.RolloutStatusBase
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.RolloutStatusBase
+
+
+
+
+
+
+
+
+
+
+
+ CompletedRegion
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ServiceTreeInfo
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ServiceTreeInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ComponentId
+
+
+ ServiceId
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuCapability
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuCapability
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Value
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuCapacity
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuCapacity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+ Maximum
+
+
+ Minimum
+
+
+ ScaleType
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuCost
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuCost
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtendedUnit
+
+
+ MeterId
+
+
+ Quantity
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuLocationInfo
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuLocationInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtendedLocation
+
+
+ Location
+
+
+ Type
+
+
+ Zone
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuResource
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuResource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuResourceArrayResponseWithContinuation
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuResourceArrayResponseWithContinuation
+
+
+
+
+
+
+
+
+
+
+
+ NextLink
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuSetting
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuSetting
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Family
+
+
+ Kind
+
+
+ Location
+
+
+ Name
+
+
+ RequiredFeature
+
+
+ RequiredQuotaId
+
+
+ Size
+
+
+ Tier
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuSettingCapacity
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuSettingCapacity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+ Maximum
+
+
+ Minimum
+
+
+ ScaleType
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuZoneDetail
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SkuZoneDetail
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SubscriptionStateOverrideAction
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SubscriptionStateOverrideAction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Action
+
+
+ State
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SubscriptionStateRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SubscriptionStateRule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AllowedAction
+
+
+ State
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SwaggerSpecification
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.SwaggerSpecification
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ApiVersion
+
+
+ SwaggerSpecFolderUri
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TemplateDeploymentOptions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TemplateDeploymentOptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreflightOption
+
+
+ PreflightSupported
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TemplateDeploymentPolicy
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TemplateDeploymentPolicy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Capability
+
+
+ PreflightOption
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ThirdPartyProviderAuthorization
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ThirdPartyProviderAuthorization
+
+
+
+
+
+
+
+
+
+
+
+ ManagedByTenantId
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ThrottlingMetric
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ThrottlingMetric
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Limit
+
+
+ Type
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ThrottlingRule
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ThrottlingRule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Action
+
+
+ RequiredFeature
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TrafficRegionRolloutConfiguration
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TrafficRegionRolloutConfiguration
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TrafficRegions
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TrafficRegions
+
+
+
+
+
+
+
+
+
+
+
+ Region
+
+
+
+
+
+
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TypedErrorInfo
+
+ Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.TypedErrorInfo
+
+
+
+
+
+
+
+
+
+
+
+ Type
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ProviderHub/Az.ProviderHub.psd1 b/src/ProviderHub/Az.ProviderHub.psd1
new file mode 100644
index 000000000000..2e6b6dd88161
--- /dev/null
+++ b/src/ProviderHub/Az.ProviderHub.psd1
@@ -0,0 +1,146 @@
+#
+# Module manifest for module 'Az.ProviderHub'
+#
+# Generated by: Microsoft Corporation
+#
+# Generated on: 4/26/2021
+#
+
+@{
+
+# Script module or binary module file associated with this manifest.
+RootModule = './Az.ProviderHub.psm1'
+
+# Version number of this module.
+ModuleVersion = '0.1.0'
+
+# Supported PSEditions
+CompatiblePSEditions = 'Core', 'Desktop'
+
+# ID used to uniquely identify this module
+GUID = 'b1f92a18-bc07-49c3-9938-cde7ef64659f'
+
+# 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: ProviderHub cmdlets'
+
+# 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 = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '2.2.8'; })
+
+# Assemblies that must be loaded prior to importing this module
+RequiredAssemblies = './bin/Az.ProviderHub.private.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 = './Az.ProviderHub.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 = 'Get-AzProviderHubCustomRollout', 'Get-AzProviderHubDefaultRollout',
+ 'Get-AzProviderHubNotificationRegistration',
+ 'Get-AzProviderHubProviderRegistration',
+ 'Get-AzProviderHubResourceTypeRegistration', 'Get-AzProviderHubSku',
+ 'Invoke-AzProviderHubManifestCheckin',
+ 'New-AzProviderHubCustomRollout', 'New-AzProviderHubDefaultRollout',
+ 'New-AzProviderHubManifest',
+ 'New-AzProviderHubNotificationRegistration',
+ 'New-AzProviderHubProviderRegistration',
+ 'New-AzProviderHubResourceTypeRegistration', 'New-AzProviderHubSku',
+ 'Remove-AzProviderHubDefaultRollout',
+ 'Remove-AzProviderHubNotificationRegistration',
+ 'Remove-AzProviderHubProviderRegistration',
+ 'Remove-AzProviderHubResourceTypeRegistration',
+ 'Remove-AzProviderHubSku', 'Stop-AzProviderHubDefaultRollout'
+
+# 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 = @()
+
+# 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 = '*'
+
+# 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','PSModule','ProviderHub'
+
+ # 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 = ''
+
+ # 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 = ''
+
+}
+
diff --git a/src/ProviderHub/Az.ProviderHub.psm1 b/src/ProviderHub/Az.ProviderHub.psm1
new file mode 100644
index 000000000000..672b5fc42e4e
--- /dev/null
+++ b/src/ProviderHub/Az.ProviderHub.psm1
@@ -0,0 +1,109 @@
+# region Generated
+ # ----------------------------------------------------------------------------------
+ #
+ # Copyright Microsoft Corporation
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ # http://www.apache.org/licenses/LICENSE-2.0
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ # ----------------------------------------------------------------------------------
+ # Load required Az.Accounts module
+ $accountsName = 'Az.Accounts'
+ $accountsModule = Get-Module -Name $accountsName
+ if(-not $accountsModule) {
+ $localAccountsPath = Join-Path $PSScriptRoot 'generated\modules'
+ if(Test-Path -Path $localAccountsPath) {
+ $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1
+ if($localAccounts) {
+ $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru
+ }
+ }
+ if(-not $accountsModule) {
+ $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.2.3' } | Measure-Object).Count -gt 0
+ if($hasAdequateVersion) {
+ $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.2.3 -Scope Global -PassThru
+ }
+ }
+ }
+
+ if(-not $accountsModule) {
+ Write-Error "`nThis module requires $accountsName version 2.2.3 or greater. For installation instructions, please see: https://docs.microsoft.com/en-us/powershell/azure/install-az-ps" -ErrorAction Stop
+ } elseif (($accountsModule.Version -lt [System.Version]'2.2.3') -and (-not $localAccounts)) {
+ Write-Error "`nThis module requires $accountsName version 2.2.3 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop
+ }
+ Write-Information "Loaded Module '$($accountsModule.Name)'"
+
+ # Load the private module dll
+ $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.ProviderHub.private.dll')
+
+ # Get the private module's instance
+ $instance = [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Module]::Instance
+
+ # Ask for the shared functionality table
+ $VTable = Register-AzModule
+
+ # Tweaks the pipeline on module load
+ $instance.OnModuleLoad = $VTable.OnModuleLoad
+
+ # Tweaks the pipeline per call
+ $instance.OnNewRequest = $VTable.OnNewRequest
+
+ # Gets shared parameter values
+ $instance.GetParameterValue = $VTable.GetParameterValue
+
+ # Allows shared module to listen to events from this module
+ $instance.EventListener = $VTable.EventListener
+
+ # Gets shared argument completers
+ $instance.ArgumentCompleter = $VTable.ArgumentCompleter
+
+ # The name of the currently selected Azure profile
+ $instance.ProfileName = $VTable.ProfileName
+
+
+ # Load the custom module
+ $customModulePath = Join-Path $PSScriptRoot './custom/Az.ProviderHub.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/src/ProviderHub/Changelog.md b/src/ProviderHub/Changelog.md
new file mode 100644
index 000000000000..c2f6d424de42
--- /dev/null
+++ b/src/ProviderHub/Changelog.md
@@ -0,0 +1,24 @@
+
+## Upcoming Release
+
+## Version 0.1.0
+* First preview release for module Az.ProviderHub
+
diff --git a/src/ProviderHub/Properties/AssemblyInfo.cs b/src/ProviderHub/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000000..1176b4ccd710
--- /dev/null
+++ b/src/ProviderHub/Properties/AssemblyInfo.cs
@@ -0,0 +1,28 @@
+// ----------------------------------------------------------------------------------
+//
+// 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.
+// ----------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("Microsoft Azure Powershell - ProviderHub")]
+[assembly: AssemblyCompany(Microsoft.WindowsAzure.Commands.Common.AzurePowerShell.AssemblyCompany)]
+[assembly: AssemblyProduct(Microsoft.WindowsAzure.Commands.Common.AzurePowerShell.AssemblyProduct)]
+[assembly: AssemblyCopyright(Microsoft.WindowsAzure.Commands.Common.AzurePowerShell.AssemblyCopyright)]
+
+[assembly: ComVisible(false)]
+[assembly: CLSCompliant(false)]
+[assembly: Guid("3e5e026c-a435-4afb-9f86-8ced3344314b")]
+[assembly: AssemblyVersion("0.1.0")]
+[assembly: AssemblyFileVersion("0.1.0")]
diff --git a/src/ProviderHub/ProviderHub.sln b/src/ProviderHub/ProviderHub.sln
new file mode 100644
index 000000000000..3bca363a4990
--- /dev/null
+++ b/src/ProviderHub/ProviderHub.sln
@@ -0,0 +1,48 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29709.97
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Accounts", "..\Accounts\Accounts\Accounts.csproj", "{142D7B0B-388A-4CEB-A228-7F6D423C5C2E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Authentication", "..\Accounts\Authentication\Authentication.csproj", "{62843FE6-7575-4D88-B989-7DF7EEC0BC01}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Authentication.ResourceManager", "..\Accounts\Authentication.ResourceManager\Authentication.ResourceManager.csproj", "{442C609B-A431-4A71-B289-08F0B63C83E5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Authenticators", "..\Accounts\Authenticators\Authenticators.csproj", "{59E8F6B8-8F0E-403F-B88B-9736DBC396D9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Az.ProviderHub", "Az.ProviderHub.csproj", "{1C203C0C-E0FD-40D2-B79E-C6DA52E4E350}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {62843FE6-7575-4D88-B989-7DF7EEC0BC01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {62843FE6-7575-4D88-B989-7DF7EEC0BC01}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {62843FE6-7575-4D88-B989-7DF7EEC0BC01}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {62843FE6-7575-4D88-B989-7DF7EEC0BC01}.Release|Any CPU.Build.0 = Release|Any CPU
+ {442C609B-A431-4A71-B289-08F0B63C83E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {442C609B-A431-4A71-B289-08F0B63C83E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {442C609B-A431-4A71-B289-08F0B63C83E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {442C609B-A431-4A71-B289-08F0B63C83E5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {59E8F6B8-8F0E-403F-B88B-9736DBC396D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {59E8F6B8-8F0E-403F-B88B-9736DBC396D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {59E8F6B8-8F0E-403F-B88B-9736DBC396D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {59E8F6B8-8F0E-403F-B88B-9736DBC396D9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1C203C0C-E0FD-40D2-B79E-C6DA52E4E350}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1C203C0C-E0FD-40D2-B79E-C6DA52E4E350}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1C203C0C-E0FD-40D2-B79E-C6DA52E4E350}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1C203C0C-E0FD-40D2-B79E-C6DA52E4E350}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {F9B3D96E-9680-40BE-A917-02EE655D6030}
+ EndGlobalSection
+EndGlobal
diff --git a/src/ProviderHub/build-module.ps1 b/src/ProviderHub/build-module.ps1
new file mode 100644
index 000000000000..90f5d913cb3c
--- /dev/null
+++ b/src/ProviderHub/build-module.ps1
@@ -0,0 +1,157 @@
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+param([switch]$Isolated, [switch]$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.ProviderHub.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.ProviderHub.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.ProviderHub.psd1'
+$guid = Get-ModuleGuid -Psd1Path $psd1
+$moduleName = 'Az.ProviderHub'
+$examplesFolder = Join-Path $PSScriptRoot 'examples'
+$null = New-Item -ItemType Directory -Force -Path $examplesFolder
+
+Write-Host -ForegroundColor Green 'Creating cmdlets for specified models...'
+$modelCmdlets = @()
+. (Join-Path $PSScriptRoot 'create-model-cmdlets.ps1') -Models $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: ProviderHub 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.ProviderHub.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/src/ProviderHub/check-dependencies.ps1 b/src/ProviderHub/check-dependencies.ps1
new file mode 100644
index 000000000000..657140612d88
--- /dev/null
+++ b/src/ProviderHub/check-dependencies.ps1
@@ -0,0 +1,64 @@
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+param([switch]$Isolated, [switch]$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)) {
+ $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.2.3'
+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/src/ProviderHub/create-model-cmdlets.ps1 b/src/ProviderHub/create-model-cmdlets.ps1
new file mode 100644
index 000000000000..e86bb2de4393
--- /dev/null
+++ b/src/ProviderHub/create-model-cmdlets.ps1
@@ -0,0 +1,165 @@
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+param([string[]]$Models)
+
+if ($Models.Count -eq 0)
+{
+ return
+}
+
+$ModelCsPath = Join-Path (Join-Path $PSScriptRoot 'generated\api') 'Models'
+$ModuleName = 'Az.ProviderHub'.Split(".")[1]
+$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)
+ $ParameterDefineScript = "
+ [Parameter($ParameterDefineProperty)]
+ [${Type}]
+ `$${Identifier}"
+ $ParameterDefineScriptList.Add($ParameterDefineScript)
+ $ParameterAssignScriptList.Add("
+ `$Object.${Identifier} = `$${Identifier}")
+ }
+ }
+ $ParameterDefineScript = $ParameterDefineScriptList | Join-String -Separator ","
+ $ParameterAssignScript = $ParameterAssignScriptList | Join-String -Separator ""
+
+ $Script = "
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the \`"License\`");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an \`"AS IS\`" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Create a in-memory object for ${ObjectType}
+.Description
+Create a in-memory object for ${ObjectType}
+
+.Outputs
+${ObjectTypeWithNamespace}
+.Link
+https://docs.microsoft.com/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
+}
\ No newline at end of file
diff --git a/src/ProviderHub/custom/Az.ProviderHub.custom.psm1 b/src/ProviderHub/custom/Az.ProviderHub.custom.psm1
new file mode 100644
index 000000000000..be38c10c55eb
--- /dev/null
+++ b/src/ProviderHub/custom/Az.ProviderHub.custom.psm1
@@ -0,0 +1,17 @@
+# region Generated
+ # Load the private module dll
+ $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Az.ProviderHub.private.dll')
+
+ # Load the internal module
+ $internalModulePath = Join-Path $PSScriptRoot '..\internal\Az.ProviderHub.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/src/ProviderHub/custom/readme.md b/src/ProviderHub/custom/readme.md
new file mode 100644
index 000000000000..5524b9f74998
--- /dev/null
+++ b/src/ProviderHub/custom/readme.md
@@ -0,0 +1,41 @@
+# Custom
+This directory contains custom implementation for non-generated cmdlets for the `Az.ProviderHub` 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.ProviderHub.custom.psm1`. This file should not be modified.
+
+## Info
+- Modifiable: yes
+- Generated: partial
+- Committed: yes
+- Packaged: yes
+
+## Details
+For `Az.ProviderHub` 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.ProviderHub.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.ProviderHub.custom.psm1`. Then, during the build process, this module is loaded and processed in the same manner as the C# cmdlets. The fundemental difference is the script cmdlets use the `ParameterSetName` attribute and C# cmdlets do not. To create a script cmdlet variant of a generated cmdlet, simply decorate all parameters in the script with the new `ParameterSetName` in the `Parameter` attribute. This will appropriately treat each parameter set as a separate variant when processed to be exported during the build.
+
+## Purpose
+This allows the modules to have cmdlets that were not defined in the REST specification. It also allows combining logic using generated cmdlets. This is a level of customization beyond what can be done using the [readme configuration options](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md) that are currently available. These custom cmdlets are then referenced by the cmdlets created at build-time in the `..\exports` folder.
+
+## Usage
+The easiest way currently to start developing custom cmdlets is to copy an existing cmdlet. For C# cmdlets, copy one from the `generated/cmdlets` folder. For script cmdlets, build the project using `build-module.ps1` and copy one of the scripts from the `..\exports` folder. After that, if you want to add new parameter sets, follow the guidelines in the `Details` section above. For implementing a new cmdlets, at minimum, please keep these parameters:
+- Break
+- DefaultProfile
+- HttpPipelineAppend
+- HttpPipelinePrepend
+- Proxy
+- ProxyCredential
+- ProxyUseDefaultCredentials
+
+These provide functionality to our HTTP pipeline and other useful features. In script, you can forward these parameters using `$PSBoundParameters` to the other cmdlets you're calling within `Az.ProviderHub`. 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.ProviderHub.DescriptionAttribute`
+ - Used in C# cmdlets to provide a high-level description of the cmdlet. This is propegated to reference documentation via [help comments](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts.
+- `Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.DoNotExportAttribute`
+ - Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.ProviderHub`.
+- `Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.InternalExportAttribute`
+ - Used in C# cmdlets to route exported cmdlets to the `..\internal`, which are *not exposed* by `Az.ProviderHub`. For more information, see [readme.md](..\internal/readme.md) in the `..\internal` folder.
+- `Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.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/src/ProviderHub/examples/Get-AzProviderHubCustomRollout.md b/src/ProviderHub/examples/Get-AzProviderHubCustomRollout.md
new file mode 100644
index 000000000000..ed6f5a84ae5a
--- /dev/null
+++ b/src/ProviderHub/examples/Get-AzProviderHubCustomRollout.md
@@ -0,0 +1,10 @@
+### Example 1: Get a custom rollout by rollout name.
+```powershell
+PS C:\> Get-AzProviderHubCustomRollout -ProviderNamespace "Microsft.Contoso" -RolloutName "customRollout1"
+```
+
+Name Type
+---- ----
+customRollout1 Microsoft.ProviderHub/providerRegistrations/customRollouts
+
+Get a custom rollout by rollout name.
diff --git a/src/ProviderHub/examples/Get-AzProviderHubDefaultRollout.md b/src/ProviderHub/examples/Get-AzProviderHubDefaultRollout.md
new file mode 100644
index 000000000000..bd0af7d8deb8
--- /dev/null
+++ b/src/ProviderHub/examples/Get-AzProviderHubDefaultRollout.md
@@ -0,0 +1,23 @@
+### Example 1: List all default rollouts under the resource provider.
+```powershell
+PS C:\> Get-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso"
+```
+
+Name Type
+---- ----
+defaultRollout2021w10 Microsoft.ProviderHub/providerRegistrations/defaultRollouts
+defaultRollout2021w11 Microsoft.ProviderHub/providerRegistrations/defaultRollouts
+
+List all default rollouts under the resource provider.
+
+### Example 2: Get a specific rollout by name.
+```powershell
+PS C:\> Get-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "defaultRollout2021w10"
+```
+
+Name Type
+---- ----
+defaultRollout2021w10 Microsoft.ProviderHub/providerRegistrations/defaultRollouts
+
+Get a specific rollout by name.
+
diff --git a/src/ProviderHub/examples/Get-AzProviderHubNotificationRegistration.md b/src/ProviderHub/examples/Get-AzProviderHubNotificationRegistration.md
new file mode 100644
index 000000000000..1c5c106a40c0
--- /dev/null
+++ b/src/ProviderHub/examples/Get-AzProviderHubNotificationRegistration.md
@@ -0,0 +1,22 @@
+### Example 1: List all the notification registration by ProviderNamespace.
+```powershell
+PS C:\> Get-AzProviderHubNotificationRegistration -ProviderNamespace "Microsoft.Contoso"
+```
+
+Name
+----
+notificationRegistrationTest1
+notificationRegistrationTest2
+
+List all the notification registration in the provider namespace.
+
+### Example 1: Get the notification registration by name.
+```powershell
+PS C:\> Get-AzProviderHubNotificationRegistration -ProviderNamespace "Microsoft.Contoso" -Name "notificationRegistrationTest"
+```
+
+Name
+----
+notificationRegistrationTest
+
+Get the notification registration by name.
diff --git a/src/ProviderHub/examples/Get-AzProviderHubProviderRegistration.md b/src/ProviderHub/examples/Get-AzProviderHubProviderRegistration.md
new file mode 100644
index 000000000000..115176759d09
--- /dev/null
+++ b/src/ProviderHub/examples/Get-AzProviderHubProviderRegistration.md
@@ -0,0 +1,10 @@
+### Example 1: Get the provider registration.
+```powershell
+PS C:\> Get-AzProviderHubProviderRegistration -ProviderNamespace "Microsoft.Contoso"
+```
+
+Name Type
+---- ----
+Microsoft.Contoso Microsoft.ProviderHub/providerRegistrations
+
+Get the provider registration.
diff --git a/src/ProviderHub/examples/Get-AzProviderHubResourceTypeRegistration.md b/src/ProviderHub/examples/Get-AzProviderHubResourceTypeRegistration.md
new file mode 100644
index 000000000000..b105baee93eb
--- /dev/null
+++ b/src/ProviderHub/examples/Get-AzProviderHubResourceTypeRegistration.md
@@ -0,0 +1,23 @@
+### Example 1: List all resource types under the resource provider namespace.
+```powershell
+PS C:\> Get-AzProviderHubResourceTypeRegistration -ProviderNamespace "Microsoft.Contoso"
+```
+
+Name Type
+---- ----
+testResourceType1 Microsoft.ProviderHub/providerRegistrations/resourceTypeRegistrations
+testResourceType2 Microsoft.ProviderHub/providerRegistrations/resourceTypeRegistrations
+
+List all resource types under the resource provider namespace.
+
+### Example 2: Gets a resource type by name.
+```powershell
+PS C:\> Get-AzProviderHubResourceTypeRegistration -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType1"
+```
+
+Name Type
+---- ----
+testResourceType1 Microsoft.ProviderHub/providerRegistrations/resourceTypeRegistrations
+
+Gets a resource type by name.
+
diff --git a/src/ProviderHub/examples/Get-AzProviderHubSku.md b/src/ProviderHub/examples/Get-AzProviderHubSku.md
new file mode 100644
index 000000000000..b05657cf73db
--- /dev/null
+++ b/src/ProviderHub/examples/Get-AzProviderHubSku.md
@@ -0,0 +1,11 @@
+### Example 1: Get the resource SKU definition.
+```powershell
+PS C:\> Get-AzProviderHubSku -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType" -Sku "default"
+```
+
+Name Type
+---- ----
+testResourceType Microsoft.ProviderHub/providerRegistrations/skus
+
+Get the resource SKU definition.
+
diff --git a/src/ProviderHub/examples/Invoke-AzProviderHubManifestCheckin.md b/src/ProviderHub/examples/Invoke-AzProviderHubManifestCheckin.md
new file mode 100644
index 000000000000..5be377aa7f8e
--- /dev/null
+++ b/src/ProviderHub/examples/Invoke-AzProviderHubManifestCheckin.md
@@ -0,0 +1,21 @@
+### Example 1: Checkin the resource provider manifest.
+```powershell
+PS C:\> Invoke-AzProviderHubManifestCheckin -ProviderNamespace "Microsoft.Contoso" -BaselineArmManifestLocation "NorthEurope" -Environment "Canary"
+```
+
+CommitId IsCheckedIn PullRequest StatusMessage
+-------- ----------- ----------- -------------
+ False Manifest is successfully merged.
+
+Checkin the resource provider manifest.
+
+### Example 2: Checkin the resource provider manifest.
+```powershell
+PS C:\> Invoke-AzProviderHubManifestCheckin -ProviderNamespace "Microsoft.Contoso" -BaselineArmManifestLocation "EastUS2EUAP" -Environment "Prod"
+```
+
+CommitId IsCheckedIn PullRequest StatusMessage
+-------- ----------- ----------- -------------
+ False Manifest is successfully merged.
+
+Checkin the resource provider manifest.
diff --git a/src/ProviderHub/examples/New-AzProviderHubCustomRollout.md b/src/ProviderHub/examples/New-AzProviderHubCustomRollout.md
new file mode 100644
index 000000000000..1f166efabd3d
--- /dev/null
+++ b/src/ProviderHub/examples/New-AzProviderHubCustomRollout.md
@@ -0,0 +1,10 @@
+### Example 1: Create/Update a resource provider custom rollout.
+```powershell
+PS C:\> New-AzProviderHubCustomRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "customRollout1" -CanaryRegion "Eastus2EUAP"
+```
+
+Name Type
+---- ----
+customRollout1 Microsoft.ProviderHub/providerRegistrations/customRollouts
+
+Create/Update a resource provider custom rollout.
diff --git a/src/ProviderHub/examples/New-AzProviderHubDefaultRollout.md b/src/ProviderHub/examples/New-AzProviderHubDefaultRollout.md
new file mode 100644
index 000000000000..5a8fc34a22b7
--- /dev/null
+++ b/src/ProviderHub/examples/New-AzProviderHubDefaultRollout.md
@@ -0,0 +1,10 @@
+### Example 1: Create/Update a resource provider default rollout.
+```powershell
+PS C:\> New-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "defaultRollout2021w10" -CanarySkipRegion "brazilus" -NoWait
+```
+
+Name Type
+---- ----
+defaultRollout2021w10 Microsoft.ProviderHub/providerRegistrations/defaultRollouts
+
+Create/Update a resource provider default rollout.
diff --git a/src/ProviderHub/examples/New-AzProviderHubManifest.md b/src/ProviderHub/examples/New-AzProviderHubManifest.md
new file mode 100644
index 000000000000..5be0aeccdb8d
--- /dev/null
+++ b/src/ProviderHub/examples/New-AzProviderHubManifest.md
@@ -0,0 +1,21 @@
+### Example 1: Generate the resource provider manifest.
+```powershell
+PS C:\> New-AzProviderHubManifest -ProviderNamespace "Microsoft.Contoso"
+```
+
+Namespace ProviderType ProviderVersion RequiredFeature
+--------- ------------ --------------- ---------------
+Microsoft.Contoso Internal, Hidden 2.0
+
+Generate the resource provider manifest.
+
+### Example 2: Generate the resource provider manifest.
+```powershell
+PS C:\> New-AzProviderHubManifest -ProviderNamespace "Microsoft.Contoso"
+```
+
+Namespace ProviderType ProviderVersion RequiredFeature
+--------- ------------ --------------- ---------------
+Microsoft.Contoso Internal, Hidden 2.0
+
+Generate the resource provider manifest.
diff --git a/src/ProviderHub/examples/New-AzProviderHubNotificationRegistration.md b/src/ProviderHub/examples/New-AzProviderHubNotificationRegistration.md
new file mode 100644
index 000000000000..60161fe995ad
--- /dev/null
+++ b/src/ProviderHub/examples/New-AzProviderHubNotificationRegistration.md
@@ -0,0 +1,21 @@
+### Example 1: Create/Update a notification registration.
+```powershell
+PS C:\> New-AzProviderHubNotificationRegistration -ProviderNamespace "Microsoft.Contoso" -Name "notificationRegistrationTest" -NotificationMode "EventHub" -MessageScope "RegisteredSubscriptions" -IncludedEvent "*/write", "Microsoft.Contoso/testResourceType/delete" -NotificationEndpoint @{Location = "", "East US"; NotificationDestination = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mgmtexp-eastus/providers/Microsoft.EventHub/namespaces/unitedstates-mgmtexpint/eventhubs/armlinkednotifications"}
+```
+
+Name
+----
+notificationRegistrationTest
+
+Create/Update a notification registration.
+
+### Example 2: Create/Update a notification registration.
+```powershell
+PS C:\> New-AzProviderHubNotificationRegistration -ProviderNamespace "Microsoft.Contoso" -Name "notificationRegistrationTest" -NotificationMode "EventHub" -MessageScope "RegisteredSubscriptions" -IncludedEvent "*/write", "Microsoft.Contoso/testResourceType/delete" -NotificationEndpoint @{Location = "", "East US"; NotificationDestination = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mgmtexp-eastus/providers/Microsoft.EventHub/namespaces/unitedstates-mgmtexpint/eventhubs/armlinkednotifications"}
+```
+
+Name
+----
+notificationRegistrationTest
+
+Create/Update a notification registration.
diff --git a/src/ProviderHub/examples/New-AzProviderHubProviderRegistration.md b/src/ProviderHub/examples/New-AzProviderHubProviderRegistration.md
new file mode 100644
index 000000000000..df7cb965e854
--- /dev/null
+++ b/src/ProviderHub/examples/New-AzProviderHubProviderRegistration.md
@@ -0,0 +1,21 @@
+### Example 1: Create/Update a provider registration.
+```powershell
+PS C:\> New-AzProviderHubProviderRegistration -ProviderNamespace "Microsoft.Contoso" -ProviderHubMetadataProviderAuthenticationAllowedAudience "https://management.core.windows.net/" -ProviderHubMetadataProviderAuthorization @{ApplicationId = "00000000-0000-0000-0000-000000000000"; RoleDefinitionId = "00000000-0000-0000-0000-000000000000"} -Namespace "Microsoft.Contoso" -ProviderVersion "2.0" -ProviderType "Internal" -ManagementManifestOwner "SPARTA-PlatformServiceAdministrator" -ManagementIncidentContactEmail "help@microsoft.com" -ManagementIncidentRoutingService "Contoso Service" -ManagementIncidentRoutingTeam "Contoso Team" -ManagementServiceTreeInfo @{ComponentId = "00000000-0000-0000-0000-000000000000"; ServiceId = "00000000-0000-0000-0000-000000000000"} -Capability @{QuotaId = "CSP_2015-05-01"; Effect = "Allow"}, @{QuotaId = "CSP_MG_2017-12-01"; Effect = "Allow"}
+```
+
+Name Type
+---- ----
+Microsoft.Contoso Microsoft.ProviderHub/providerRegistrations
+
+Create/Update a provider registration.
+
+### Example 2: Create/Update a provider registration.
+```powershell
+PS C:\> New-AzProviderHubProviderRegistration -ProviderNamespace "Microsoft.Contoso" -ProviderHubMetadataProviderAuthenticationAllowedAudience "https://management.core.windows.net/" -ProviderHubMetadataProviderAuthorization @{ApplicationId = "00000000-0000-0000-0000-000000000000"; RoleDefinitionId = "00000000-0000-0000-0000-000000000000"} -Namespace "Microsoft.Contoso" -ProviderVersion "2.0" -ProviderType "Hidden" -ManagementManifestOwner "SPARTA-PlatformServiceAdministrator" -ManagementIncidentContactEmail "help@microsoft.com" -ManagementIncidentRoutingService "Contoso Service" -ManagementIncidentRoutingTeam "Contoso Team" -ManagementServiceTreeInfo @{ComponentId = "00000000-0000-0000-0000-000000000000"; ServiceId = "00000000-0000-0000-0000-000000000000"} -Capability @{QuotaId = "CSP_2015-05-01"; Effect = "Allow"}, @{QuotaId = "CSP_MG_2017-12-01"; Effect = "Allow"}
+```
+
+Name Type
+---- ----
+Microsoft.Contoso Microsoft.ProviderHub/providerRegistrations
+
+Create/Update a provider registration.
diff --git a/src/ProviderHub/examples/New-AzProviderHubResourceTypeRegistration.md b/src/ProviderHub/examples/New-AzProviderHubResourceTypeRegistration.md
new file mode 100644
index 000000000000..ab38bdada7cf
--- /dev/null
+++ b/src/ProviderHub/examples/New-AzProviderHubResourceTypeRegistration.md
@@ -0,0 +1,21 @@
+### Example 1: Create/Update a resource type registration.
+```powershell
+PS C:\> New-AzProviderHubResourceTypeRegistration -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType" -RoutingType "Default" -Regionality "Regional" -Endpoint @{ApiVersion = "2021-01-01-preview"; Location = "West US 2", "East US 2 EUAP"; RequiredFeature = "Microsoft.Contoso/SampleApp" } -SwaggerSpecification @{ApiVersion = "2021-01-01-preview"; SwaggerSpecFolderUri = "https://github.com/Azure/azure-rest-api-specs-pr/blob/RPSaaSMaster/specification/rpsaas/resource-manager/Microsoft.Contoso/" } -EnableAsyncOperation
+```
+
+Name Type
+---- ----
+testResourceType Microsoft.ProviderHub/providerRegistrations/resourceTypeRegistrations
+
+Create/Update a resource type registration.
+
+### Example 2: Create/Update a resource type registration.
+```powershell
+PS C:\> New-AzProviderHubResourceTypeRegistration -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType" -RoutingType "Default" -Regionality "Regional" -Endpoint @{ApiVersion = "2021-01-01-preview"; Location = "West US 2", "East US 2 EUAP"; RequiredFeature = "Microsoft.Contoso/SampleApp" } -SwaggerSpecification @{ApiVersion = "2021-01-01-preview"; SwaggerSpecFolderUri = "https://github.com/Azure/azure-rest-api-specs-pr/blob/RPSaaSMaster/specification/rpsaas/resource-manager/Microsoft.Contoso/" } -EnableAsyncOperation
+```
+
+Name Type
+---- ----
+testResourceType Microsoft.ProviderHub/providerRegistrations/resourceTypeRegistrations
+
+Create/Update a resource type registration.
diff --git a/src/ProviderHub/examples/New-AzProviderHubSku.md b/src/ProviderHub/examples/New-AzProviderHubSku.md
new file mode 100644
index 000000000000..d2458215556c
--- /dev/null
+++ b/src/ProviderHub/examples/New-AzProviderHubSku.md
@@ -0,0 +1,21 @@
+### Example 1: Create/Update a resource SKU definition.
+```powershell
+PS C:\> New-AzProviderHubSku -ProviderNamespace "Microsoft.Contoso" -ResourceType "Employees" -Sku "default" -SkuSetting @{Name = "freeSku"; Tier = "Tier1"; Kind = "Standard"}
+```
+
+Name Type
+---- ----
+default Microsoft.ProviderHub/providerRegistrations/skus
+
+Create/Update a resource SKU definition.
+
+### Example 2: Create/Update a resource SKU definition.
+```powershell
+PS C:\> New-AzProviderHubSku -ProviderNamespace "Microsoft.Contoso" -ResourceType "Employees" -Sku "default" -SkuSetting @{Name = "freeSku"; Tier = "Tier1"; Kind = "Standard"}
+```
+
+Name Type
+---- ----
+default Microsoft.ProviderHub/providerRegistrations/skus
+
+Create/Update a resource SKU definition.
diff --git a/src/ProviderHub/examples/Remove-AzProviderHubDefaultRollout.md b/src/ProviderHub/examples/Remove-AzProviderHubDefaultRollout.md
new file mode 100644
index 000000000000..72fdc88d03d7
--- /dev/null
+++ b/src/ProviderHub/examples/Remove-AzProviderHubDefaultRollout.md
@@ -0,0 +1,13 @@
+### Example 1: Delete a default rollout by name.
+```powershell
+PS C:\> Remove-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "defaultRollout2021w10"
+```
+
+Delete a default rollout by name.
+
+### Example 2: Delete a default rollout by name.
+```powershell
+PS C:\> Remove-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "defaultRollout2021w10"
+```
+
+Delete a default rollout by name.
diff --git a/src/ProviderHub/examples/Remove-AzProviderHubNotificationRegistration.md b/src/ProviderHub/examples/Remove-AzProviderHubNotificationRegistration.md
new file mode 100644
index 000000000000..80976cfec1c1
--- /dev/null
+++ b/src/ProviderHub/examples/Remove-AzProviderHubNotificationRegistration.md
@@ -0,0 +1,13 @@
+### Example 1: Delete a notification registration by name.
+```powershell
+PS C:\> Remove-AzProviderHubNotificationRegistration -ProviderNamespace "Microsoft.Contoso" -Name "notificationRegistrationTest"
+```
+
+Delete a notification registration by name.
+
+### Example 2: Delete a notification registration by name.
+```powershell
+PS C:\> Remove-AzProviderHubNotificationRegistration -ProviderNamespace "Microsoft.Contoso" -Name "notificationRegistrationTest"
+```
+
+Delete a notification registration by name.
diff --git a/src/ProviderHub/examples/Remove-AzProviderHubProviderRegistration.md b/src/ProviderHub/examples/Remove-AzProviderHubProviderRegistration.md
new file mode 100644
index 000000000000..6103d883ba75
--- /dev/null
+++ b/src/ProviderHub/examples/Remove-AzProviderHubProviderRegistration.md
@@ -0,0 +1,14 @@
+### Example 1: Delete a provider registration by resource provider name.
+```powershell
+PS C:\> Remove-AzProviderHubProviderRegistration -ProviderNamespace "Microsoft.Contoso"
+```
+
+Delete a provider registration by resource provider name.
+
+### Example 2: Delete a provider registration by resource provider name.
+```powershell
+PS C:\> Remove-AzProviderHubProviderRegistration -ProviderNamespace "Microsoft.Contoso"
+```
+
+Delete a provider registration by resource provider name.
+
diff --git a/src/ProviderHub/examples/Remove-AzProviderHubResourceTypeRegistration.md b/src/ProviderHub/examples/Remove-AzProviderHubResourceTypeRegistration.md
new file mode 100644
index 000000000000..533abd6c586a
--- /dev/null
+++ b/src/ProviderHub/examples/Remove-AzProviderHubResourceTypeRegistration.md
@@ -0,0 +1,13 @@
+### Example 1: Delete a resource type registration by name.
+```powershell
+PS C:\> Remove-AzProviderHubResourceTypeRegistration -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType"
+```
+
+Delete a resource type registration by name.
+
+### Example 2: Delete a resource type registration by name.
+```powershell
+PS C:\> Remove-AzProviderHubResourceTypeRegistration -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType"
+```
+
+Delete a resource type registration by name.
diff --git a/src/ProviderHub/examples/Remove-AzProviderHubSku.md b/src/ProviderHub/examples/Remove-AzProviderHubSku.md
new file mode 100644
index 000000000000..26ffdbf956a4
--- /dev/null
+++ b/src/ProviderHub/examples/Remove-AzProviderHubSku.md
@@ -0,0 +1,13 @@
+### Example 1: Delete a resource SKU definition.
+```powershell
+PS C:\> Remove-AzProviderHubSku -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType" -Sku "default"
+```
+
+Delete a resource SKU definition.
+
+### Example 2: Delete a resource SKU definition.
+```powershell
+PS C:\> Remove-AzProviderHubSku -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType" -Sku "default"
+```
+
+Delete a resource SKU definition.
diff --git a/src/ProviderHub/examples/Stop-AzProviderHubDefaultRollout.md b/src/ProviderHub/examples/Stop-AzProviderHubDefaultRollout.md
new file mode 100644
index 000000000000..83a7ba652a48
--- /dev/null
+++ b/src/ProviderHub/examples/Stop-AzProviderHubDefaultRollout.md
@@ -0,0 +1,14 @@
+### Example 1: Cancel a default rollout by rollout name.
+```powershell
+PS C:\> Stop-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "defaultRollout2021w10"
+```
+
+Cancel a default rollout by rollout name.
+
+### Example 2: Cancel a default rollout by rollout name.
+```powershell
+PS C:\> Stop-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "defaultRollout2021w10"
+```
+
+Cancel a default rollout by rollout name.
+
diff --git a/src/ProviderHub/export-surface.ps1 b/src/ProviderHub/export-surface.ps1
new file mode 100644
index 000000000000..102f534987c2
--- /dev/null
+++ b/src/ProviderHub/export-surface.ps1
@@ -0,0 +1,40 @@
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+param([switch]$Isolated, [switch]$IncludeGeneralParameters, [switch]$UseExpandedFormat)
+$ErrorActionPreference = 'Stop'
+
+$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path
+if(-not $Isolated) {
+ Write-Host -ForegroundColor Green 'Creating isolated process...'
+ & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated
+ return
+}
+
+$dll = Join-Path $PSScriptRoot 'bin\Az.ProviderHub.private.dll'
+if(-not (Test-Path $dll)) {
+ Write-Error "Unable to find output assembly in '$binFolder'."
+}
+$null = Import-Module -Name $dll
+
+$moduleName = 'Az.ProviderHub'
+$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/src/ProviderHub/exports/Get-AzProviderHubCustomRollout.ps1 b/src/ProviderHub/exports/Get-AzProviderHubCustomRollout.ps1
new file mode 100644
index 000000000000..91f520a5188a
--- /dev/null
+++ b/src/ProviderHub/exports/Get-AzProviderHubCustomRollout.ps1
@@ -0,0 +1,166 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Gets the custom rollout details.
+.Description
+Gets the custom rollout details.
+.Example
+PS C:\> Get-AzProviderHubCustomRollout -ProviderNamespace "Microsft.Contoso" -RolloutName "customRollout1"
+
+.Inputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ICustomRollout
+.Notes
+COMPLEX PARAMETER PROPERTIES
+
+To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
+
+INPUTOBJECT : Identity Parameter
+ [Id ]: Resource identity path
+ [NestedResourceTypeFirst ]: The first child resource type.
+ [NestedResourceTypeSecond ]: The second child resource type.
+ [NestedResourceTypeThird ]: The third child resource type.
+ [NotificationRegistrationName ]: The notification registration.
+ [ProviderNamespace ]: The name of the resource provider hosted within ProviderHub.
+ [ResourceType ]: The resource type.
+ [RolloutName ]: The rollout name.
+ [Sku ]: The SKU.
+ [SubscriptionId ]: The ID of the target subscription.
+.Link
+https://docs.microsoft.com/powershell/module/az.providerhub/get-azproviderhubcustomrollout
+#>
+function Get-AzProviderHubCustomRollout {
+[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ICustomRollout])]
+[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
+param(
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Parameter(ParameterSetName='List', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The name of the resource provider hosted within ProviderHub.
+ ${ProviderNamespace},
+
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The rollout name.
+ ${RolloutName},
+
+ [Parameter(ParameterSetName='Get')]
+ [Parameter(ParameterSetName='List')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
+ [System.String[]]
+ # The ID of the target subscription.
+ ${SubscriptionId},
+
+ [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity]
+ # Identity Parameter
+ # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
+ ${InputObject},
+
+ [Parameter()]
+ [Alias('AzureRMContext', 'AzureCredential')]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Azure')]
+ [System.Management.Automation.PSObject]
+ # The credentials, account, tenant, and subscription used for communication with Azure.
+ ${DefaultProfile},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Wait for .NET debugger to attach
+ ${Break},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be appended to the front of the pipeline
+ ${HttpPipelineAppend},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be prepended to the front of the pipeline
+ ${HttpPipelinePrepend},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Uri]
+ # The URI for the proxy server to use
+ ${Proxy},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.PSCredential]
+ # Credentials for a proxy server to use for the remote call
+ ${ProxyCredential},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Use the default credentials for the proxy
+ ${ProxyUseDefaultCredentials}
+)
+
+begin {
+ try {
+ $outBuffer = $null
+ if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
+ $PSBoundParameters['OutBuffer'] = 1
+ }
+ $parameterSet = $PSCmdlet.ParameterSetName
+ $mapping = @{
+ Get = 'Az.ProviderHub.private\Get-AzProviderHubCustomRollout_Get';
+ GetViaIdentity = 'Az.ProviderHub.private\Get-AzProviderHubCustomRollout_GetViaIdentity';
+ List = 'Az.ProviderHub.private\Get-AzProviderHubCustomRollout_List';
+ }
+ if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
+ $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
+ }
+ $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
+ $scriptCmd = {& $wrappedCmd @PSBoundParameters}
+ $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
+ $steppablePipeline.Begin($PSCmdlet)
+ } catch {
+ throw
+ }
+}
+
+process {
+ try {
+ $steppablePipeline.Process($_)
+ } catch {
+ throw
+ }
+}
+
+end {
+ try {
+ $steppablePipeline.End()
+ } catch {
+ throw
+ }
+}
+}
diff --git a/src/ProviderHub/exports/Get-AzProviderHubDefaultRollout.ps1 b/src/ProviderHub/exports/Get-AzProviderHubDefaultRollout.ps1
new file mode 100644
index 000000000000..9e675514761c
--- /dev/null
+++ b/src/ProviderHub/exports/Get-AzProviderHubDefaultRollout.ps1
@@ -0,0 +1,168 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Gets the default rollout details.
+.Description
+Gets the default rollout details.
+.Example
+PS C:\> Get-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso"
+.Example
+PS C:\> Get-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "defaultRollout2021w10"
+
+.Inputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IDefaultRollout
+.Notes
+COMPLEX PARAMETER PROPERTIES
+
+To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
+
+INPUTOBJECT : Identity Parameter
+ [Id ]: Resource identity path
+ [NestedResourceTypeFirst ]: The first child resource type.
+ [NestedResourceTypeSecond ]: The second child resource type.
+ [NestedResourceTypeThird ]: The third child resource type.
+ [NotificationRegistrationName ]: The notification registration.
+ [ProviderNamespace ]: The name of the resource provider hosted within ProviderHub.
+ [ResourceType ]: The resource type.
+ [RolloutName ]: The rollout name.
+ [Sku ]: The SKU.
+ [SubscriptionId ]: The ID of the target subscription.
+.Link
+https://docs.microsoft.com/powershell/module/az.providerhub/get-azproviderhubdefaultrollout
+#>
+function Get-AzProviderHubDefaultRollout {
+[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IDefaultRollout])]
+[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
+param(
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Parameter(ParameterSetName='List', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The name of the resource provider hosted within ProviderHub.
+ ${ProviderNamespace},
+
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The rollout name.
+ ${RolloutName},
+
+ [Parameter(ParameterSetName='Get')]
+ [Parameter(ParameterSetName='List')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
+ [System.String[]]
+ # The ID of the target subscription.
+ ${SubscriptionId},
+
+ [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity]
+ # Identity Parameter
+ # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
+ ${InputObject},
+
+ [Parameter()]
+ [Alias('AzureRMContext', 'AzureCredential')]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Azure')]
+ [System.Management.Automation.PSObject]
+ # The credentials, account, tenant, and subscription used for communication with Azure.
+ ${DefaultProfile},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Wait for .NET debugger to attach
+ ${Break},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be appended to the front of the pipeline
+ ${HttpPipelineAppend},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be prepended to the front of the pipeline
+ ${HttpPipelinePrepend},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Uri]
+ # The URI for the proxy server to use
+ ${Proxy},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.PSCredential]
+ # Credentials for a proxy server to use for the remote call
+ ${ProxyCredential},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Use the default credentials for the proxy
+ ${ProxyUseDefaultCredentials}
+)
+
+begin {
+ try {
+ $outBuffer = $null
+ if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
+ $PSBoundParameters['OutBuffer'] = 1
+ }
+ $parameterSet = $PSCmdlet.ParameterSetName
+ $mapping = @{
+ Get = 'Az.ProviderHub.private\Get-AzProviderHubDefaultRollout_Get';
+ GetViaIdentity = 'Az.ProviderHub.private\Get-AzProviderHubDefaultRollout_GetViaIdentity';
+ List = 'Az.ProviderHub.private\Get-AzProviderHubDefaultRollout_List';
+ }
+ if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
+ $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
+ }
+ $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
+ $scriptCmd = {& $wrappedCmd @PSBoundParameters}
+ $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
+ $steppablePipeline.Begin($PSCmdlet)
+ } catch {
+ throw
+ }
+}
+
+process {
+ try {
+ $steppablePipeline.Process($_)
+ } catch {
+ throw
+ }
+}
+
+end {
+ try {
+ $steppablePipeline.End()
+ } catch {
+ throw
+ }
+}
+}
diff --git a/src/ProviderHub/exports/Get-AzProviderHubNotificationRegistration.ps1 b/src/ProviderHub/exports/Get-AzProviderHubNotificationRegistration.ps1
new file mode 100644
index 000000000000..9f7eb5c69391
--- /dev/null
+++ b/src/ProviderHub/exports/Get-AzProviderHubNotificationRegistration.ps1
@@ -0,0 +1,169 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Gets the notification registration details.
+.Description
+Gets the notification registration details.
+.Example
+PS C:\> Get-AzProviderHubNotificationRegistration -ProviderNamespace "Microsoft.Contoso"
+.Example
+PS C:\> Get-AzProviderHubNotificationRegistration -ProviderNamespace "Microsoft.Contoso" -Name "notificationRegistrationTest"
+
+.Inputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.INotificationRegistration
+.Notes
+COMPLEX PARAMETER PROPERTIES
+
+To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
+
+INPUTOBJECT : Identity Parameter
+ [Id ]: Resource identity path
+ [NestedResourceTypeFirst ]: The first child resource type.
+ [NestedResourceTypeSecond ]: The second child resource type.
+ [NestedResourceTypeThird ]: The third child resource type.
+ [NotificationRegistrationName ]: The notification registration.
+ [ProviderNamespace ]: The name of the resource provider hosted within ProviderHub.
+ [ResourceType ]: The resource type.
+ [RolloutName ]: The rollout name.
+ [Sku ]: The SKU.
+ [SubscriptionId ]: The ID of the target subscription.
+.Link
+https://docs.microsoft.com/powershell/module/az.providerhub/get-azproviderhubnotificationregistration
+#>
+function Get-AzProviderHubNotificationRegistration {
+[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.INotificationRegistration])]
+[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
+param(
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Alias('NotificationRegistrationName')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The notification registration.
+ ${Name},
+
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Parameter(ParameterSetName='List', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The name of the resource provider hosted within ProviderHub.
+ ${ProviderNamespace},
+
+ [Parameter(ParameterSetName='Get')]
+ [Parameter(ParameterSetName='List')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
+ [System.String[]]
+ # The ID of the target subscription.
+ ${SubscriptionId},
+
+ [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity]
+ # Identity Parameter
+ # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
+ ${InputObject},
+
+ [Parameter()]
+ [Alias('AzureRMContext', 'AzureCredential')]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Azure')]
+ [System.Management.Automation.PSObject]
+ # The credentials, account, tenant, and subscription used for communication with Azure.
+ ${DefaultProfile},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Wait for .NET debugger to attach
+ ${Break},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be appended to the front of the pipeline
+ ${HttpPipelineAppend},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be prepended to the front of the pipeline
+ ${HttpPipelinePrepend},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Uri]
+ # The URI for the proxy server to use
+ ${Proxy},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.PSCredential]
+ # Credentials for a proxy server to use for the remote call
+ ${ProxyCredential},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Use the default credentials for the proxy
+ ${ProxyUseDefaultCredentials}
+)
+
+begin {
+ try {
+ $outBuffer = $null
+ if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
+ $PSBoundParameters['OutBuffer'] = 1
+ }
+ $parameterSet = $PSCmdlet.ParameterSetName
+ $mapping = @{
+ Get = 'Az.ProviderHub.private\Get-AzProviderHubNotificationRegistration_Get';
+ GetViaIdentity = 'Az.ProviderHub.private\Get-AzProviderHubNotificationRegistration_GetViaIdentity';
+ List = 'Az.ProviderHub.private\Get-AzProviderHubNotificationRegistration_List';
+ }
+ if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
+ $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
+ }
+ $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
+ $scriptCmd = {& $wrappedCmd @PSBoundParameters}
+ $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
+ $steppablePipeline.Begin($PSCmdlet)
+ } catch {
+ throw
+ }
+}
+
+process {
+ try {
+ $steppablePipeline.Process($_)
+ } catch {
+ throw
+ }
+}
+
+end {
+ try {
+ $steppablePipeline.End()
+ } catch {
+ throw
+ }
+}
+}
diff --git a/src/ProviderHub/exports/Get-AzProviderHubProviderRegistration.ps1 b/src/ProviderHub/exports/Get-AzProviderHubProviderRegistration.ps1
new file mode 100644
index 000000000000..ddec3e9dc825
--- /dev/null
+++ b/src/ProviderHub/exports/Get-AzProviderHubProviderRegistration.ps1
@@ -0,0 +1,159 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Gets the provider registration details.
+.Description
+Gets the provider registration details.
+.Example
+PS C:\> Get-AzProviderHubProviderRegistration -ProviderNamespace "Microsoft.Contoso"
+
+.Inputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IProviderRegistration
+.Notes
+COMPLEX PARAMETER PROPERTIES
+
+To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
+
+INPUTOBJECT : Identity Parameter
+ [Id ]: Resource identity path
+ [NestedResourceTypeFirst ]: The first child resource type.
+ [NestedResourceTypeSecond ]: The second child resource type.
+ [NestedResourceTypeThird ]: The third child resource type.
+ [NotificationRegistrationName ]: The notification registration.
+ [ProviderNamespace ]: The name of the resource provider hosted within ProviderHub.
+ [ResourceType ]: The resource type.
+ [RolloutName ]: The rollout name.
+ [Sku ]: The SKU.
+ [SubscriptionId ]: The ID of the target subscription.
+.Link
+https://docs.microsoft.com/powershell/module/az.providerhub/get-azproviderhubproviderregistration
+#>
+function Get-AzProviderHubProviderRegistration {
+[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IProviderRegistration])]
+[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
+param(
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The name of the resource provider hosted within ProviderHub.
+ ${ProviderNamespace},
+
+ [Parameter(ParameterSetName='Get')]
+ [Parameter(ParameterSetName='List')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
+ [System.String[]]
+ # The ID of the target subscription.
+ ${SubscriptionId},
+
+ [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity]
+ # Identity Parameter
+ # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
+ ${InputObject},
+
+ [Parameter()]
+ [Alias('AzureRMContext', 'AzureCredential')]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Azure')]
+ [System.Management.Automation.PSObject]
+ # The credentials, account, tenant, and subscription used for communication with Azure.
+ ${DefaultProfile},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Wait for .NET debugger to attach
+ ${Break},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be appended to the front of the pipeline
+ ${HttpPipelineAppend},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be prepended to the front of the pipeline
+ ${HttpPipelinePrepend},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Uri]
+ # The URI for the proxy server to use
+ ${Proxy},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.PSCredential]
+ # Credentials for a proxy server to use for the remote call
+ ${ProxyCredential},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Use the default credentials for the proxy
+ ${ProxyUseDefaultCredentials}
+)
+
+begin {
+ try {
+ $outBuffer = $null
+ if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
+ $PSBoundParameters['OutBuffer'] = 1
+ }
+ $parameterSet = $PSCmdlet.ParameterSetName
+ $mapping = @{
+ Get = 'Az.ProviderHub.private\Get-AzProviderHubProviderRegistration_Get';
+ GetViaIdentity = 'Az.ProviderHub.private\Get-AzProviderHubProviderRegistration_GetViaIdentity';
+ List = 'Az.ProviderHub.private\Get-AzProviderHubProviderRegistration_List';
+ }
+ if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
+ $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
+ }
+ $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
+ $scriptCmd = {& $wrappedCmd @PSBoundParameters}
+ $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
+ $steppablePipeline.Begin($PSCmdlet)
+ } catch {
+ throw
+ }
+}
+
+process {
+ try {
+ $steppablePipeline.Process($_)
+ } catch {
+ throw
+ }
+}
+
+end {
+ try {
+ $steppablePipeline.End()
+ } catch {
+ throw
+ }
+}
+}
diff --git a/src/ProviderHub/exports/Get-AzProviderHubResourceTypeRegistration.ps1 b/src/ProviderHub/exports/Get-AzProviderHubResourceTypeRegistration.ps1
new file mode 100644
index 000000000000..159403c88d34
--- /dev/null
+++ b/src/ProviderHub/exports/Get-AzProviderHubResourceTypeRegistration.ps1
@@ -0,0 +1,168 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Gets a resource type details in the given subscription and provider.
+.Description
+Gets a resource type details in the given subscription and provider.
+.Example
+PS C:\> Get-AzProviderHubResourceTypeRegistration -ProviderNamespace "Microsoft.Contoso"
+.Example
+PS C:\> Get-AzProviderHubResourceTypeRegistration -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType1"
+
+.Inputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IResourceTypeRegistration
+.Notes
+COMPLEX PARAMETER PROPERTIES
+
+To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
+
+INPUTOBJECT : Identity Parameter
+ [Id ]: Resource identity path
+ [NestedResourceTypeFirst ]: The first child resource type.
+ [NestedResourceTypeSecond ]: The second child resource type.
+ [NestedResourceTypeThird ]: The third child resource type.
+ [NotificationRegistrationName ]: The notification registration.
+ [ProviderNamespace ]: The name of the resource provider hosted within ProviderHub.
+ [ResourceType ]: The resource type.
+ [RolloutName ]: The rollout name.
+ [Sku ]: The SKU.
+ [SubscriptionId ]: The ID of the target subscription.
+.Link
+https://docs.microsoft.com/powershell/module/az.providerhub/get-azproviderhubresourcetyperegistration
+#>
+function Get-AzProviderHubResourceTypeRegistration {
+[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IResourceTypeRegistration])]
+[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
+param(
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Parameter(ParameterSetName='List', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The name of the resource provider hosted within ProviderHub.
+ ${ProviderNamespace},
+
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The resource type.
+ ${ResourceType},
+
+ [Parameter(ParameterSetName='Get')]
+ [Parameter(ParameterSetName='List')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
+ [System.String[]]
+ # The ID of the target subscription.
+ ${SubscriptionId},
+
+ [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity]
+ # Identity Parameter
+ # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
+ ${InputObject},
+
+ [Parameter()]
+ [Alias('AzureRMContext', 'AzureCredential')]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Azure')]
+ [System.Management.Automation.PSObject]
+ # The credentials, account, tenant, and subscription used for communication with Azure.
+ ${DefaultProfile},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Wait for .NET debugger to attach
+ ${Break},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be appended to the front of the pipeline
+ ${HttpPipelineAppend},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be prepended to the front of the pipeline
+ ${HttpPipelinePrepend},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Uri]
+ # The URI for the proxy server to use
+ ${Proxy},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.PSCredential]
+ # Credentials for a proxy server to use for the remote call
+ ${ProxyCredential},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Use the default credentials for the proxy
+ ${ProxyUseDefaultCredentials}
+)
+
+begin {
+ try {
+ $outBuffer = $null
+ if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
+ $PSBoundParameters['OutBuffer'] = 1
+ }
+ $parameterSet = $PSCmdlet.ParameterSetName
+ $mapping = @{
+ Get = 'Az.ProviderHub.private\Get-AzProviderHubResourceTypeRegistration_Get';
+ GetViaIdentity = 'Az.ProviderHub.private\Get-AzProviderHubResourceTypeRegistration_GetViaIdentity';
+ List = 'Az.ProviderHub.private\Get-AzProviderHubResourceTypeRegistration_List';
+ }
+ if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
+ $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
+ }
+ $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
+ $scriptCmd = {& $wrappedCmd @PSBoundParameters}
+ $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
+ $steppablePipeline.Begin($PSCmdlet)
+ } catch {
+ throw
+ }
+}
+
+process {
+ try {
+ $steppablePipeline.Process($_)
+ } catch {
+ throw
+ }
+}
+
+end {
+ try {
+ $steppablePipeline.End()
+ } catch {
+ throw
+ }
+}
+}
diff --git a/src/ProviderHub/exports/Get-AzProviderHubSku.ps1 b/src/ProviderHub/exports/Get-AzProviderHubSku.ps1
new file mode 100644
index 000000000000..fb8236826b78
--- /dev/null
+++ b/src/ProviderHub/exports/Get-AzProviderHubSku.ps1
@@ -0,0 +1,206 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Gets the sku details for the given resource type and sku name.
+.Description
+Gets the sku details for the given resource type and sku name.
+.Example
+PS C:\> Get-AzProviderHubSku -ProviderNamespace "Microsoft.Contoso" -ResourceType "testResourceType" -Sku "default"
+
+.Inputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ISkuResource
+.Notes
+COMPLEX PARAMETER PROPERTIES
+
+To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
+
+INPUTOBJECT : Identity Parameter
+ [Id ]: Resource identity path
+ [NestedResourceTypeFirst ]: The first child resource type.
+ [NestedResourceTypeSecond ]: The second child resource type.
+ [NestedResourceTypeThird ]: The third child resource type.
+ [NotificationRegistrationName ]: The notification registration.
+ [ProviderNamespace ]: The name of the resource provider hosted within ProviderHub.
+ [ResourceType ]: The resource type.
+ [RolloutName ]: The rollout name.
+ [Sku ]: The SKU.
+ [SubscriptionId ]: The ID of the target subscription.
+.Link
+https://docs.microsoft.com/powershell/module/az.providerhub/get-azproviderhubsku
+#>
+function Get-AzProviderHubSku {
+[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ISkuResource])]
+[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
+param(
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Parameter(ParameterSetName='List', Mandatory)]
+ [Parameter(ParameterSetName='List1', Mandatory)]
+ [Parameter(ParameterSetName='List2', Mandatory)]
+ [Parameter(ParameterSetName='List3', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The name of the resource provider hosted within ProviderHub.
+ ${ProviderNamespace},
+
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Parameter(ParameterSetName='List', Mandatory)]
+ [Parameter(ParameterSetName='List1', Mandatory)]
+ [Parameter(ParameterSetName='List2', Mandatory)]
+ [Parameter(ParameterSetName='List3', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The resource type.
+ ${ResourceType},
+
+ [Parameter(ParameterSetName='Get', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The SKU.
+ ${Sku},
+
+ [Parameter(ParameterSetName='Get')]
+ [Parameter(ParameterSetName='List')]
+ [Parameter(ParameterSetName='List1')]
+ [Parameter(ParameterSetName='List2')]
+ [Parameter(ParameterSetName='List3')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
+ [System.String[]]
+ # The ID of the target subscription.
+ ${SubscriptionId},
+
+ [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.IProviderHubIdentity]
+ # Identity Parameter
+ # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
+ ${InputObject},
+
+ [Parameter(ParameterSetName='List1', Mandatory)]
+ [Parameter(ParameterSetName='List2', Mandatory)]
+ [Parameter(ParameterSetName='List3', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The first child resource type.
+ ${NestedResourceTypeFirst},
+
+ [Parameter(ParameterSetName='List2', Mandatory)]
+ [Parameter(ParameterSetName='List3', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The second child resource type.
+ ${NestedResourceTypeSecond},
+
+ [Parameter(ParameterSetName='List3', Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The third child resource type.
+ ${NestedResourceTypeThird},
+
+ [Parameter()]
+ [Alias('AzureRMContext', 'AzureCredential')]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Azure')]
+ [System.Management.Automation.PSObject]
+ # The credentials, account, tenant, and subscription used for communication with Azure.
+ ${DefaultProfile},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Wait for .NET debugger to attach
+ ${Break},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be appended to the front of the pipeline
+ ${HttpPipelineAppend},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be prepended to the front of the pipeline
+ ${HttpPipelinePrepend},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Uri]
+ # The URI for the proxy server to use
+ ${Proxy},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.PSCredential]
+ # Credentials for a proxy server to use for the remote call
+ ${ProxyCredential},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Use the default credentials for the proxy
+ ${ProxyUseDefaultCredentials}
+)
+
+begin {
+ try {
+ $outBuffer = $null
+ if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
+ $PSBoundParameters['OutBuffer'] = 1
+ }
+ $parameterSet = $PSCmdlet.ParameterSetName
+ $mapping = @{
+ Get = 'Az.ProviderHub.private\Get-AzProviderHubSku_Get';
+ GetViaIdentity = 'Az.ProviderHub.private\Get-AzProviderHubSku_GetViaIdentity';
+ List = 'Az.ProviderHub.private\Get-AzProviderHubSku_List';
+ List1 = 'Az.ProviderHub.private\Get-AzProviderHubSku_List1';
+ List2 = 'Az.ProviderHub.private\Get-AzProviderHubSku_List2';
+ List3 = 'Az.ProviderHub.private\Get-AzProviderHubSku_List3';
+ }
+ if (('Get', 'List', 'List1', 'List2', 'List3') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
+ $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
+ }
+ $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
+ $scriptCmd = {& $wrappedCmd @PSBoundParameters}
+ $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
+ $steppablePipeline.Begin($PSCmdlet)
+ } catch {
+ throw
+ }
+}
+
+process {
+ try {
+ $steppablePipeline.Process($_)
+ } catch {
+ throw
+ }
+}
+
+end {
+ try {
+ $steppablePipeline.End()
+ } catch {
+ throw
+ }
+}
+}
diff --git a/src/ProviderHub/exports/Invoke-AzProviderHubManifestCheckin.ps1 b/src/ProviderHub/exports/Invoke-AzProviderHubManifestCheckin.ps1
new file mode 100644
index 000000000000..e9a022a6f5e7
--- /dev/null
+++ b/src/ProviderHub/exports/Invoke-AzProviderHubManifestCheckin.ps1
@@ -0,0 +1,145 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Checkin the manifest.
+.Description
+Checkin the manifest.
+.Example
+PS C:\> Invoke-AzProviderHubManifestCheckin -ProviderNamespace "Microsoft.Contoso" -BaselineArmManifestLocation "NorthEurope" -Environment "Canary"
+.Example
+PS C:\> Invoke-AzProviderHubManifestCheckin -ProviderNamespace "Microsoft.Contoso" -BaselineArmManifestLocation "EastUS2EUAP" -Environment "Prod"
+
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ICheckinManifestInfo
+.Link
+https://docs.microsoft.com/powershell/module/az.providerhub/invoke-azproviderhubmanifestcheckin
+#>
+function Invoke-AzProviderHubManifestCheckin {
+[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ICheckinManifestInfo])]
+[CmdletBinding(DefaultParameterSetName='ManifestExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
+param(
+ [Parameter(Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The name of the resource provider hosted within ProviderHub.
+ ${ProviderNamespace},
+
+ [Parameter()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
+ [System.String]
+ # The ID of the target subscription.
+ ${SubscriptionId},
+
+ [Parameter(Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Body')]
+ [System.String]
+ # The baseline ARM manifest location supplied to the checkin manifest operation.
+ ${BaselineArmManifestLocation},
+
+ [Parameter(Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Body')]
+ [System.String]
+ # The environment supplied to the checkin manifest operation.
+ ${Environment},
+
+ [Parameter()]
+ [Alias('AzureRMContext', 'AzureCredential')]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Azure')]
+ [System.Management.Automation.PSObject]
+ # The credentials, account, tenant, and subscription used for communication with Azure.
+ ${DefaultProfile},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Wait for .NET debugger to attach
+ ${Break},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be appended to the front of the pipeline
+ ${HttpPipelineAppend},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be prepended to the front of the pipeline
+ ${HttpPipelinePrepend},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Uri]
+ # The URI for the proxy server to use
+ ${Proxy},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.PSCredential]
+ # Credentials for a proxy server to use for the remote call
+ ${ProxyCredential},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # 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 = @{
+ ManifestExpanded = 'Az.ProviderHub.private\Invoke-AzProviderHubManifestCheckin_ManifestExpanded';
+ }
+ if (('ManifestExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
+ $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
+ }
+ $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
+ $scriptCmd = {& $wrappedCmd @PSBoundParameters}
+ $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
+ $steppablePipeline.Begin($PSCmdlet)
+ } catch {
+ throw
+ }
+}
+
+process {
+ try {
+ $steppablePipeline.Process($_)
+ } catch {
+ throw
+ }
+}
+
+end {
+ try {
+ $steppablePipeline.End()
+ } catch {
+ throw
+ }
+}
+}
diff --git a/src/ProviderHub/exports/New-AzProviderHubCustomRollout.ps1 b/src/ProviderHub/exports/New-AzProviderHubCustomRollout.ps1
new file mode 100644
index 000000000000..13a5dd8edfa7
--- /dev/null
+++ b/src/ProviderHub/exports/New-AzProviderHubCustomRollout.ps1
@@ -0,0 +1,298 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Creates or updates the rollout details.
+.Description
+Creates or updates the rollout details.
+.Example
+PS C:\> New-AzProviderHubCustomRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "customRollout1" -CanaryRegion "Eastus2EUAP"
+
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ICustomRollout
+.Notes
+COMPLEX PARAMETER PROPERTIES
+
+To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
+
+SPECIFICATIONPROVIDERREGISTRATION : .
+ [Capability ]:
+ Effect :
+ QuotaId :
+ [RequiredFeature ]:
+ [FeatureRuleRequiredFeaturesPolicy ]:
+ [ManagementIncidentContactEmail ]:
+ [ManagementIncidentRoutingService ]:
+ [ManagementIncidentRoutingTeam ]:
+ [ManagementManifestOwner ]:
+ [ManagementResourceAccessPolicy ]:
+ [ManagementResourceAccessRole ]:
+ [ManagementSchemaOwner ]:
+ [ManagementServiceTreeInfo ]:
+ [ComponentId ]:
+ [ServiceId ]:
+ [Metadata ]: Any object
+ [Namespace ]:
+ [ProviderAuthenticationAllowedAudience ]:
+ [ProviderAuthorization ]:
+ [ApplicationId ]:
+ [ManagedByRoleDefinitionId ]:
+ [RoleDefinitionId ]:
+ [ProviderHubMetadataProviderAuthenticationAllowedAudience ]:
+ [ProviderHubMetadataProviderAuthorization ]:
+ [ProviderType ]:
+ [ProviderVersion ]:
+ [ProvisioningState ]:
+ [RequestHeaderOptionOptInHeader ]:
+ [RequiredFeature ]:
+ [SubscriptionLifecycleNotificationSpecificationSoftDeleteTtl ]:
+ [SubscriptionLifecycleNotificationSpecificationSubscriptionStateOverrideAction ]:
+ Action :
+ State :
+ [TemplateDeploymentOptionPreflightOption ]:
+ [TemplateDeploymentOptionPreflightSupported ]:
+ [ThirdPartyProviderAuthorizationAuthorization ]:
+ PrincipalId :
+ RoleDefinitionId :
+ [ThirdPartyProviderAuthorizationManagedByTenantId ]:
+
+SPECIFICATIONRESOURCETYPEREGISTRATION : .
+ [AllowedUnauthorizedAction ]:
+ [AuthorizationActionMapping ]:
+ [Desired ]:
+ [Original ]:
+ [CheckNameAvailabilitySpecificationEnableDefaultValidation ]:
+ [CheckNameAvailabilitySpecificationResourceTypesWithCustomValidation ]:
+ [DefaultApiVersion ]:
+ [DisallowedActionVerb ]:
+ [EnableAsyncOperation ]:
+ [EnableThirdPartyS2S ]:
+ [Endpoint ]:
+ [ApiVersion ]:
+ [Enabled ]:
+ [Extension ]:
+ [EndpointUri ]:
+ [ExtensionCategory ]:
+ [Timeout ]:
+ [FeatureRuleRequiredFeaturesPolicy ]:
+ [Location ]:
+ [RequiredFeature ]:
+ [Timeout ]:
+ [ExtendedLocation ]:
+ [SupportedPolicy ]:
+ [Type ]:
+ [FeatureRuleRequiredFeaturesPolicy ]:
+ [IdentityManagementApplicationId ]:
+ [IdentityManagementType ]:
+ [IsPureProxy ]:
+ [LinkedAccessCheck ]:
+ [ActionName ]:
+ [LinkedAction ]:
+ [LinkedActionVerb ]:
+ [LinkedProperty ]:
+ [LinkedType ]:
+ [LoggingRule ]:
+ Action :
+ DetailLevel :
+ Direction :
+ [HiddenPropertyPathHiddenPathsOnRequest ]:
+ [HiddenPropertyPathHiddenPathsOnResponse ]:
+ [MarketplaceType ]:
+ [ProvisioningState ]:
+ [Regionality ]:
+ [RequestHeaderOptionOptInHeader ]:
+ [RequiredFeature ]:
+ [ResourceCreationBeginRequest ]:
+ [ResourceCreationBeginResponse ]:
+ [ResourceDeletionPolicy ]:
+ [ResourceMovePolicyCrossResourceGroupMoveEnabled ]:
+ [ResourceMovePolicyCrossSubscriptionMoveEnabled ]:
+ [ResourceMovePolicyValidationRequired ]:
+ [RoutingType ]:
+ [ServiceTreeInfo ]:
+ [ComponentId ]:
+ [ServiceId ]:
+ [SubscriptionLifecycleNotificationSpecificationSoftDeleteTtl ]:
+ [SubscriptionLifecycleNotificationSpecificationSubscriptionStateOverrideAction ]:
+ Action :
+ State :
+ [SubscriptionStateRule ]:
+ [AllowedAction ]:
+ [State ]:
+ [SwaggerSpecification ]:
+ [ApiVersion ]:
+ [SwaggerSpecFolderUri ]:
+ [TemplateDeploymentOptionPreflightOption ]:
+ [TemplateDeploymentOptionPreflightSupported ]:
+ [ThrottlingRule ]:
+ Action :
+ Metric :
+ Limit :
+ Type :
+ [Interval ]:
+ [RequiredFeature ]:
+.Link
+https://docs.microsoft.com/powershell/module/az.providerhub/new-azproviderhubcustomrollout
+#>
+function New-AzProviderHubCustomRollout {
+[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ICustomRollout])]
+[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
+param(
+ [Parameter(Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The name of the resource provider hosted within ProviderHub.
+ ${ProviderNamespace},
+
+ [Parameter(Mandatory)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [System.String]
+ # The rollout name.
+ ${RolloutName},
+
+ [Parameter()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Path')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
+ [System.String]
+ # The ID of the target subscription.
+ ${SubscriptionId},
+
+ [Parameter()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Body')]
+ [System.String[]]
+ # .
+ ${CanaryRegion},
+
+ [Parameter()]
+ [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Support.ProvisioningState])]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Body')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Support.ProvisioningState]
+ # .
+ ${ProvisioningState},
+
+ [Parameter()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Body')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IProviderRegistration]
+ # .
+ # To construct, see NOTES section for SPECIFICATIONPROVIDERREGISTRATION properties and create a hash table.
+ ${SpecificationProviderRegistration},
+
+ [Parameter()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Body')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IResourceTypeRegistration[]]
+ # .
+ # To construct, see NOTES section for SPECIFICATIONRESOURCETYPEREGISTRATION properties and create a hash table.
+ ${SpecificationResourceTypeRegistration},
+
+ [Parameter()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Body')]
+ [System.String[]]
+ # .
+ ${StatusCompletedRegion},
+
+ [Parameter()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Body')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.ICustomRolloutStatusFailedOrSkippedRegions]))]
+ [System.Collections.Hashtable]
+ # Dictionary of
+ ${StatusFailedOrSkippedRegion},
+
+ [Parameter()]
+ [Alias('AzureRMContext', 'AzureCredential')]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Azure')]
+ [System.Management.Automation.PSObject]
+ # The credentials, account, tenant, and subscription used for communication with Azure.
+ ${DefaultProfile},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Wait for .NET debugger to attach
+ ${Break},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be appended to the front of the pipeline
+ ${HttpPipelineAppend},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Runtime.SendAsyncStep[]]
+ # SendAsync Pipeline Steps to be prepended to the front of the pipeline
+ ${HttpPipelinePrepend},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Uri]
+ # The URI for the proxy server to use
+ ${Proxy},
+
+ [Parameter(DontShow)]
+ [ValidateNotNull()]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.PSCredential]
+ # Credentials for a proxy server to use for the remote call
+ ${ProxyCredential},
+
+ [Parameter(DontShow)]
+ [Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Category('Runtime')]
+ [System.Management.Automation.SwitchParameter]
+ # Use the default credentials for the proxy
+ ${ProxyUseDefaultCredentials}
+)
+
+begin {
+ try {
+ $outBuffer = $null
+ if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
+ $PSBoundParameters['OutBuffer'] = 1
+ }
+ $parameterSet = $PSCmdlet.ParameterSetName
+ $mapping = @{
+ CreateExpanded = 'Az.ProviderHub.private\New-AzProviderHubCustomRollout_CreateExpanded';
+ }
+ if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
+ $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
+ }
+ $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
+ $scriptCmd = {& $wrappedCmd @PSBoundParameters}
+ $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
+ $steppablePipeline.Begin($PSCmdlet)
+ } catch {
+ throw
+ }
+}
+
+process {
+ try {
+ $steppablePipeline.Process($_)
+ } catch {
+ throw
+ }
+}
+
+end {
+ try {
+ $steppablePipeline.End()
+ } catch {
+ throw
+ }
+}
+}
diff --git a/src/ProviderHub/exports/New-AzProviderHubDefaultRollout.ps1 b/src/ProviderHub/exports/New-AzProviderHubDefaultRollout.ps1
new file mode 100644
index 000000000000..e393c8cc9d4e
--- /dev/null
+++ b/src/ProviderHub/exports/New-AzProviderHubDefaultRollout.ps1
@@ -0,0 +1,396 @@
+
+# ----------------------------------------------------------------------------------
+#
+# Copyright Microsoft Corporation
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ----------------------------------------------------------------------------------
+
+<#
+.Synopsis
+Creates or updates the rollout details.
+.Description
+Creates or updates the rollout details.
+.Example
+PS C:\> New-AzProviderHubDefaultRollout -ProviderNamespace "Microsoft.Contoso" -RolloutName "defaultRollout2021w10" -CanarySkipRegion "brazilus" -NoWait
+
+.Outputs
+Microsoft.Azure.PowerShell.Cmdlets.ProviderHub.Models.Api20201120.IDefaultRollout
+.Notes
+COMPLEX PARAMETER PROPERTIES
+
+To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
+
+SPECIFICATIONPROVIDERREGISTRATION : .
+ [Capability ]:
+ Effect :
+ QuotaId :
+ [RequiredFeature ]:
+ [FeatureRuleRequiredFeaturesPolicy ]:
+ [ManagementIncidentContactEmail ]:
+ [ManagementIncidentRoutingService ]:
+ [ManagementIncidentRoutingTeam ]:
+ [ManagementManifestOwner ]:
+ [ManagementResourceAccessPolicy ]:
+ [ManagementResourceAccessRole ]:
+ [ManagementSchemaOwner ]:
+ [ManagementServiceTreeInfo ]:
+ [ComponentId ]:
+ [ServiceId ]:
+ [Metadata ]: Any object
+ [Namespace ]:
+ [ProviderAuthenticationAllowedAudience ]:
+ [ProviderAuthorization ]:
+ [ApplicationId ]:
+ [ManagedByRoleDefinitionId ]:
+ [RoleDefinitionId ]:
+ [ProviderHubMetadataProviderAuthenticationAllowedAudience ]:
+ [ProviderHubMetadataProviderAuthorization ]:
+ [ProviderType ]:
+ [ProviderVersion ]:
+ [ProvisioningState ]:
+ [RequestHeaderOptionOptInHeader ]:
+ [RequiredFeature ]:
+ [SubscriptionLifecycleNotificationSpecificationSoftDeleteTtl ]:
+ [SubscriptionLifecycleNotificationSpecificationSubscriptionStateOverrideAction ]:
+ Action :
+ State :
+ [TemplateDeploymentOptionPreflightOption ]:
+ [TemplateDeploymentOptionPreflightSupported ]:
+ [ThirdPartyProviderAuthorizationAuthorization ]:
+ PrincipalId :
+ RoleDefinitionId :
+ [ThirdPartyProviderAuthorizationManagedByTenantId ]:
+
+SPECIFICATIONRESOURCETYPEREGISTRATION : .
+ [AllowedUnauthorizedAction ]:
+ [AuthorizationActionMapping ]:
+ [Desired ]:
+ [Original ]:
+ [CheckNameAvailabilitySpecificationEnableDefaultValidation ]:
+ [CheckNameAvailabilitySpecificationResourceTypesWithCustomValidation ]:
+ [DefaultApiVersion ]:
+ [DisallowedActionVerb ]:
+ [EnableAsyncOperation ]:
+ [EnableThirdPartyS2S ]:
+ [Endpoint ]:
+ [ApiVersion ]:
+ [Enabled ]:
+ [Extension ]:
+ [EndpointUri ]:
+ [ExtensionCategory ]:
+ [Timeout ]:
+ [FeatureRuleRequiredFeaturesPolicy ]:
+ [Location ]:
+ [RequiredFeature ]:
+ [Timeout ]:
+ [ExtendedLocation ]:
+ [SupportedPolicy ]:
+ [Type ]:
+ [FeatureRuleRequiredFeaturesPolicy ]:
+ [IdentityManagementApplicationId ]:
+ [IdentityManagementType ]:
+ [IsPureProxy ]:
+ [LinkedAccessCheck ]:
+ [ActionName ]:
+ [LinkedAction ]:
+ [LinkedActionVerb