1# --------------------------------------------------------------------------------------------
2# Copyright (c) Microsoft Corporation. All rights reserved.
3# Licensed under the MIT License. See License.txt in the project root for license information.
4# --------------------------------------------------------------------------------------------
5# pylint: disable=unused-argument
6from azure.cli.core.util import sdk_no_wait
7from azure.mgmt.synapse.models import WorkspaceAadAdminInfo
8
9from .._client_factory import cf_synapse_client_workspace_factory
10from ..util import get_tenant_id
11from ..constant import AdministratorType
12
13
14# Synapse SQL ad-admin
15def create_workspace_sql_aad_admin(cmd, client, resource_group_name, workspace_name, login_name, object_id,
16                                   no_wait=False):
17    """
18    Set a Workspace SQL AD admin.
19    """
20    workspace_client = cf_synapse_client_workspace_factory(cmd.cli_ctx)
21    workspace_object = workspace_client.get(resource_group_name, workspace_name)
22
23    workspace_id = workspace_object.id
24    tenant_id = get_tenant_id()
25    workspace_aad_admin_info = WorkspaceAadAdminInfo(id=workspace_id, login=login_name, sid=object_id,
26                                                     administrator_type=AdministratorType, tenant_id=tenant_id)
27    return sdk_no_wait(no_wait, client.begin_create_or_update, resource_group_name, workspace_name,
28                       workspace_aad_admin_info)
29
30
31def update_workspace_sql_aad_admin(instance, login_name=None, object_id=None):
32    """
33    Update a Workspace SQL AD admin.
34    """
35    instance.login = login_name or instance.login
36    instance.sid = object_id or instance.sid
37    return instance
38