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