def METHOD_NAME(__self__,
             resource_name: str,
             opts: Optional[pulumi.ResourceOptions] = None,
             properties: Optional[pulumi.Input[pulumi.InputType['ProviderRegistrationPropertiesArgs']]] = None,
             provider_namespace: Optional[pulumi.Input[str]] = None,
             __props__=None):
    opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
    if not isinstance(opts, pulumi.ResourceOptions):
        raise TypeError('Expected resource options to be a ResourceOptions instance')
    if opts.id is None:
        if __props__ is not None:
            raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
        __props__ = ProviderRegistrationArgs.__new__(ProviderRegistrationArgs)
        __props__.__dict__["properties"] = properties
        __props__.__dict__["provider_namespace"] = provider_namespace
        __props__.__dict__["name"] = None
        __props__.__dict__["system_data"] = None
        __props__.__dict__["type"] = None
    alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="azure-native:providerhub:ProviderRegistration"), pulumi.Alias(type_="azure-native:providerhub/v20201120:ProviderRegistration"), pulumi.Alias(type_="azure-native:providerhub/v20210501preview:ProviderRegistration"), pulumi.Alias(type_="azure-native:providerhub/v20210601preview:ProviderRegistration")])
    opts = pulumi.ResourceOptions.merge(opts, alias_opts)
    super(ProviderRegistration, __self__).__init__(
        'azure-native:providerhub/v20210901preview:ProviderRegistration',
        resource_name,
        __props__,
        opts)