diff --git a/sdk/communication/azure-communication-chat/samples/chat_client_sample.py b/sdk/communication/azure-communication-chat/samples/chat_client_sample.py index ec6746fb2120..25963095f8fd 100644 --- a/sdk/communication/azure-communication-chat/samples/chat_client_sample.py +++ b/sdk/communication/azure-communication-chat/samples/chat_client_sample.py @@ -27,7 +27,7 @@ class ChatClientSamples(object): - from azure.communication.administration import CommunicationIdentityClient + from azure.communication.identity import CommunicationIdentityClient connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None) if not connection_string: raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.") diff --git a/sdk/communication/azure-communication-chat/samples/chat_client_sample_async.py b/sdk/communication/azure-communication-chat/samples/chat_client_sample_async.py index 7c22b5d8acb2..fc8874226f8b 100644 --- a/sdk/communication/azure-communication-chat/samples/chat_client_sample_async.py +++ b/sdk/communication/azure-communication-chat/samples/chat_client_sample_async.py @@ -27,7 +27,7 @@ class ChatClientSamplesAsync(object): - from azure.communication.administration import CommunicationIdentityClient + from azure.communication.identity import CommunicationIdentityClient connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None) if not connection_string: raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.") diff --git a/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample.py b/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample.py index c20ba6be0977..8ba955777a08 100644 --- a/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample.py +++ b/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample.py @@ -27,7 +27,7 @@ class ChatThreadClientSamples(object): - from azure.communication.administration import CommunicationIdentityClient + from azure.communication.identity import CommunicationIdentityClient connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None) if not connection_string: raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.") diff --git a/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample_async.py b/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample_async.py index 129c2c057e44..135fd274970c 100644 --- a/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample_async.py +++ b/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample_async.py @@ -28,7 +28,7 @@ class ChatThreadClientSamplesAsync(object): - from azure.communication.administration import CommunicationIdentityClient + from azure.communication.identity import CommunicationIdentityClient connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None) if not connection_string: raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.") diff --git a/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e.py b/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e.py index f0b4a5189d80..0036d0b263f4 100644 --- a/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e.py +++ b/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e.py @@ -10,7 +10,7 @@ from devtools_testutils import AzureTestCase from msrest.serialization import TZ_UTC -from azure.communication.administration import CommunicationIdentityClient +from azure.communication.identity import CommunicationIdentityClient from azure.communication.chat import ( ChatClient, CommunicationTokenCredential, diff --git a/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e_async.py b/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e_async.py index a3fe1a3750d4..72f727dcaeec 100644 --- a/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e_async.py +++ b/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e_async.py @@ -9,7 +9,7 @@ from datetime import datetime from msrest.serialization import TZ_UTC -from azure.communication.administration import CommunicationIdentityClient +from azure.communication.identity import CommunicationIdentityClient from azure.communication.chat.aio import ( ChatClient, CommunicationTokenCredential, @@ -18,7 +18,7 @@ from azure.communication.chat import ( ChatThreadMember ) -from azure.communication.administration._shared.utils import parse_connection_str +from azure.communication.identity._shared.utils import parse_connection_str from azure_devtools.scenario_tests import RecordingProcessor from helper import URIIdentityReplacer from chat_e2e_helper import ChatURIReplacer diff --git a/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e.py b/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e.py index 9a90b1a79662..eadf9f8114ab 100644 --- a/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e.py +++ b/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e.py @@ -10,7 +10,7 @@ from devtools_testutils import AzureTestCase from msrest.serialization import TZ_UTC -from azure.communication.administration import CommunicationIdentityClient +from azure.communication.identity import CommunicationIdentityClient from azure.communication.chat import ( ChatClient, CommunicationTokenCredential, diff --git a/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e_async.py b/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e_async.py index 7c0c6c7b80cc..e3deffa02236 100644 --- a/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e_async.py +++ b/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e_async.py @@ -9,7 +9,7 @@ from datetime import datetime from msrest.serialization import TZ_UTC -from azure.communication.administration import CommunicationIdentityClient +from azure.communication.identity import CommunicationIdentityClient from azure.communication.chat.aio import ( ChatClient, CommunicationTokenCredential, @@ -19,7 +19,7 @@ ChatThreadMember, ChatMessagePriority ) -from azure.communication.administration._shared.utils import parse_connection_str +from azure.communication.identity._shared.utils import parse_connection_str from azure_devtools.scenario_tests import RecordingProcessor from helper import URIIdentityReplacer from chat_e2e_helper import ChatURIReplacer diff --git a/sdk/communication/azure-communication-identity/samples/identity_samples.py b/sdk/communication/azure-communication-identity/samples/identity_samples.py new file mode 100644 index 000000000000..cf28e9fe18e8 --- /dev/null +++ b/sdk/communication/azure-communication-identity/samples/identity_samples.py @@ -0,0 +1,81 @@ +# coding: utf-8 + +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +""" +FILE: identity_sample.py +DESCRIPTION: + These samples demonstrate identity client samples. + + ///authenticating a client via a connection string +USAGE: + python identity_samples.py +""" +import os + +class CommunicationIdentityClientSamples(object): + + def __init__(self): + self.connection_string = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING') + self.endpoint = os.getenv('AZURE_COMMUNICATION_SERVICE_ENDPOINT') + self.client_id = os.getenv('AZURE_CLIENT_ID') + self.client_secret = os.getenv('AZURE_CLIENT_SECRET') + self.tenant_id = os.getnenv('AZURE_TENANT_ID') + + def issue_token(self): + from azure.communication.identity import CommunicationIdentityClient + + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + user = identity_client.create_user() + tokenresponse = identity_client.issue_token(user, scopes=["chat"]) + print(tokenresponse) + + def revoke_tokens(self): + from azure.communication.identity import CommunicationIdentityClient + + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + user = identity_client.create_user() + tokenresponse = identity_client.issue_token(user, scopes=["chat"]) + identity_client.revoke_tokens(user) + print(tokenresponse) + + def create_user(self): + from azure.communication.identity import CommunicationIdentityClient + + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + user = identity_client.create_user() + print(user.identifier) + + def delete_user(self): + from azure.communication.identity import CommunicationIdentityClient + + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + user = identity_client.create_user() + identity_client.delete_user(user) + +if __name__ == '__main__': + sample = CommunicationIdentityClientSamples() + sample.create_user() + sample.delete_user() + sample.issue_token() + sample.revoke_tokens() diff --git a/sdk/communication/azure-communication-identity/samples/identity_samples_async.py b/sdk/communication/azure-communication-identity/samples/identity_samples_async.py new file mode 100644 index 000000000000..2b2b8e17b992 --- /dev/null +++ b/sdk/communication/azure-communication-identity/samples/identity_samples_async.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +""" +FILE: identity_sample_async.py +DESCRIPTION: + These samples demonstrate async identity client samples. + + ///authenticating a client via a connection string +USAGE: + python identity_samples_async.py +""" + +import asyncio +import os + + +class CommunicationIdentityClientSamples(object): + + def __init__(self): + self.connection_string = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING') + self.endpoint = os.getenv('AZURE_COMMUNICATION_SERVICE_ENDPOINT') + self.client_id = os.getenv('AZURE_CLIENT_ID') + self.client_secret = os.getenv('AZURE_CLIENT_SECRET') + self.tenant_id = os.getnenv('AZURE_TENANT_ID') + + async def issue_token(self): + from azure.communication.identity.aio import CommunicationIdentityClient + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + + async with identity_client: + user = await identity_client.create_user() + print(user.identifier) + tokenresponse = await identity_client.issue_token(user, scopes=["chat"]) + print(tokenresponse) + + async def revoke_tokens(self): + from azure.communication.identity.aio import CommunicationIdentityClient + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + + async with identity_client: + user = await identity_client.create_user() + tokenresponse = await identity_client.issue_token(user, scopes=["chat"]) + await identity_client.revoke_tokens(user) + print(tokenresponse) + + async def create_user(self): + from azure.communication.identity.aio import CommunicationIdentityClient + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + + async with identity_client: + user = await identity_client.create_user() + print(user.identifier) + + async def delete_user(self): + from azure.communication.identity.aio import CommunicationIdentityClient + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + + async with identity_client: + user = await identity_client.create_user() + await identity_client.delete_user(user) + +async def main(): + sample = CommunicationIdentityClientSamples() + await sample.create_user() + await sample.delete_user() + await sample.issue_token() + await sample.revoke_tokens() + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(main())