azext_iot/digitaltwins/providers/__init__.py (28 lines of code) (raw):
# 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.
# --------------------------------------------------------------------------------------------
from azure.cli.core.commands.client_factory import get_subscription_id
from azext_iot.common.auth import IoTOAuth
from azext_iot.sdk.digitaltwins.controlplane import AzureDigitalTwinsManagementClient
from azext_iot.sdk.digitaltwins.controlplane.models import ErrorResponseException
from msrestazure.azure_exceptions import CloudError
from azext_iot.constants import USER_AGENT
__all__ = [
"digitaltwins_service_factory",
"DigitalTwinsResourceManager",
"CloudError",
"ErrorResponseException",
]
def digitaltwins_service_factory(cli_ctx, *_) -> AzureDigitalTwinsManagementClient:
"""
Factory for importing deps and getting service client resources.
Args:
cli_ctx (knack.cli.CLI): CLI context.
*_ : all other args ignored.
Returns:
AzureDigitalTwinsManagementClient: Top level client instance.
"""
from azure.cli.core.commands.client_factory import get_mgmt_service_client
return get_mgmt_service_client(
cli_ctx=cli_ctx,
client_or_resource_type=AzureDigitalTwinsManagementClient,
credential=IoTOAuth(cli_ctx=cli_ctx),
subscription_id=get_subscription_id(cli_ctx=cli_ctx)
)
class DigitalTwinsResourceManager(object):
def __init__(self, cmd):
assert cmd
self.cmd = cmd
def get_mgmt_sdk(self):
client = digitaltwins_service_factory(self.cmd.cli_ctx)
client.config.add_user_agent(USER_AGENT)
return client