Source code for azure.keyvault.keys._shared.multi_api

# ------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
from collections import namedtuple
from enum import Enum
from typing import TYPE_CHECKING

from ._generated.v7_1_preview.version import VERSION as V7_1_PREVIEW_VERSION
from ._generated.v7_0.version import VERSION as V7_0_VERSION
from ._generated.v2016_10_01.version import VERSION as V2016_10_01_VERSION

if TYPE_CHECKING:
    from typing import Union


[docs]class ApiVersion(Enum): """Key Vault API versions supported by this package""" #: this is the default version V7_1_preview = V7_1_PREVIEW_VERSION V7_0 = V7_0_VERSION V2016_10_01 = V2016_10_01_VERSION
DEFAULT_VERSION = ApiVersion.V7_1_preview GeneratedApi = namedtuple("GeneratedApi", ("models", "client_cls", "config_cls")) def load_generated_api(api_version, aio=False): # type: (Union[ApiVersion, str], bool) -> GeneratedApi api_version = api_version or DEFAULT_VERSION try: # api_version could be a string; map it to an instance of ApiVersion # (this is a no-op if it's already an instance of ApiVersion) api_version = ApiVersion(api_version) except ValueError: # api_version is unknown to ApiVersion raise NotImplementedError( "This package doesn't support API version '{}'. ".format(api_version) + "Supported versions: {}".format(", ".join(v.value for v in ApiVersion)) ) if api_version == ApiVersion.V7_1_preview: from ._generated.v7_1_preview import models if aio: from ._generated.v7_1_preview.aio import KeyVaultClient from ._generated.v7_1_preview.aio._configuration_async import KeyVaultClientConfiguration else: from ._generated.v7_1_preview import KeyVaultClient # type: ignore from ._generated.v7_1_preview._configuration import KeyVaultClientConfiguration # type: ignore elif api_version == ApiVersion.V7_0: from ._generated.v7_0 import models # type: ignore if aio: from ._generated.v7_0.aio import KeyVaultClient # type: ignore from ._generated.v7_0.aio._configuration_async import KeyVaultClientConfiguration # type: ignore else: from ._generated.v7_0 import KeyVaultClient # type: ignore from ._generated.v7_0._configuration import KeyVaultClientConfiguration # type: ignore elif api_version == ApiVersion.V2016_10_01: from ._generated.v2016_10_01 import models # type: ignore if aio: from ._generated.v2016_10_01.aio import KeyVaultClient # type: ignore from ._generated.v2016_10_01.aio._configuration_async import KeyVaultClientConfiguration # type: ignore else: from ._generated.v2016_10_01 import KeyVaultClient # type: ignore from ._generated.v2016_10_01._configuration import KeyVaultClientConfiguration # type: ignore return GeneratedApi(models=models, client_cls=KeyVaultClient, config_cls=KeyVaultClientConfiguration)