Azure / azure-powershell

Microsoft Azure PowerShell
Other
4.26k stars 3.86k forks source link

[Az.ManagedServices] Updating existing Managed Services Definition creates a new definition #11455

Open o-l-a-v opened 4 years ago

o-l-a-v commented 4 years ago

Resources

Description / Reproduction

According to linked documentation, you can use "New-AzManagedServicesDefinition" to create or update existing registration definition.

From what I can see of examples, the following should be all parameters needed to add a new authorization to an existing Manages Services Definition, or am I wrong / not understanding its' use?

$null = New-AzManagedServicesDefinition -Name $ExistingAzManagedServicesDefinitions.'Properties'.'Name' `
    -ManagedByTenantId $ExistingAzManagedServicesDefinitions.'Properties'.'ManagedByTenantId' `
    -PrincipalId $Authorization.'Key' -RoleDefinitionId $Authorization.'Value'

Where:

Expected Result

A new authorization is added to the existing Managed Services Definition.

Actual result

The command runs successfully, but on managed tenant a new Managed Services Definition appears with the exact same name as the existing one, and no assignments.

Questions

This module for Managed Services seems kind of useless without having said abilities tbh.

o-l-a-v commented 4 years ago

According to the API documentation:

One should probably provide an existing {registrationDefinitionId} if you'd want to update an existing one. There is no switch for that in "New-AzManagedServicesDefinition".

Get-Help -Name 'New-AzManagedServicesDefinition' -Parameter '*' | clip
-AsJob <System.Management.Automation.SwitchParameter>
    Run cmdlet in the background

    Required?                    false
    Position?                    named
    Default value                False
    Accept pipeline input?       False
    Accept wildcard characters?  false

-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>
    The credentials, account, tenant, and subscription used for communication with Azure.

    Required?                    false
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-Description <System.String>
    The description of the Registration Definition.

    Required?                    false
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-ManagedByTenantId <System.String>
    The ManagedBy Tenant Identifier.

    Required?                    true
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-PlanName <System.String>
    The name of the plan.

    Required?                    true
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-PlanProduct <System.String>
    The name of the Product.

    Required?                    true
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-PlanPublisher <System.String>
    The name of the Publisher.

    Required?                    true
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-PlanVersion <System.String>
    The version number of the plan.

    Required?                    true
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-PrincipalId <System.String>
    The ManagedBy Principal Identifier.

    Required?                    true
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-RegistrationDefinitionName <System.String>
    The name of the Registration Definition.

    Required?                    true
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-RoleDefinitionId <System.String>
    The Managed Service Provider's Role Identifier.

    Required?                    true
    Position?                    named
    Default value                None
    Accept pipeline input?       False
    Accept wildcard characters?  false

-Confirm <System.Management.Automation.SwitchParameter>
    Prompts you for confirmation before running the cmdlet.

    Required?                    false
    Position?                    named
    Default value                False
    Accept pipeline input?       False
    Accept wildcard characters?  false

-WhatIf <System.Management.Automation.SwitchParameter>
    Shows what would happen if the cmdlet runs. The cmdlet is not run.

    Required?                    false
    Position?                    named
    Default value                False
    Accept pipeline input?       False
    Accept wildcard characters?  false
dingmeng-xue commented 4 years ago

Involve ManagedService team to look into it.

ghost commented 4 years ago

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @Lighthouse-Azure.

archunz-zz commented 4 years ago

Ack. Azure Lighthouse team is reviewing and will revert.

navba-MSFT commented 2 years ago

@o-l-a-v Apologies for the late reply. We will update this thread once we have more details on this.

@archunz-zz Could you please provide an update on this ? Awaiting your reply.