diff --git a/doc/sphinx/conf.py b/doc/sphinx/conf.py index 7d914cdf4c22..f0d6ce555521 100644 --- a/doc/sphinx/conf.py +++ b/doc/sphinx/conf.py @@ -60,9 +60,9 @@ intersphinx_mapping = { # Dependencies - 'python': ('https://docs.python.org/3.11', ('/usr/share/doc/python3-doc/html/objects.inv', None)), - 'requests': ('https://requests.kennethreitz.org/en/master/', None), - 'aiohttp': ('https://aiohttp.readthedocs.io/en/stable/', None), + 'python': ('https://docs.python.org/3.11', None), + 'requests': ('https://requests.kennethreitz.org/en/latest/', None), + 'aiohttp': ('https://docs.aiohttp.org/en/stable/', None), 'trio': ('https://trio.readthedocs.io/en/stable/', None), 'msal': ('https://msal-python.readthedocs.io/en/latest/', None), # Azure packages @@ -87,7 +87,7 @@ # General information about the project. project = u'Azure SDK for Python' -copyright = u'2019, Microsoft' +copyright = u'2024, Microsoft' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/doc/sphinx/generate_doc.py b/doc/sphinx/generate_doc.py index 83379da62280..cd86969179ab 100644 --- a/doc/sphinx/generate_doc.py +++ b/doc/sphinx/generate_doc.py @@ -5,10 +5,8 @@ import os import glob -import typing from typing import Dict, List -CONFIG_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "package_service_mapping.json") GENERATED_PACKAGES_LIST_FILE = "toc_tree.rst" _LOGGER = logging.getLogger(__name__) @@ -73,117 +71,112 @@ def make_title(title): """ -# Update the code to compute this list automatically -MULTIAPI_VERSION_NAMESPACE = [ - "azure.mgmt.storage", - "azure.mgmt.web", - "azure.mgmt.network", - "azure.mgmt.compute", - "azure.mgmt.containerregistry", - "azure.mgmt.containerservice", - "azure.mgmt.dns", - "azure.mgmt.eventhub", - "azure.mgmt.resource.resources", - "azure.mgmt.resource.features", - "azure.mgmt.resource.links", - "azure.mgmt.resource.locks", - "azure.mgmt.resource.policy", - "azure.mgmt.resource.subscriptions", -] - - -def get_updated_config(config_path: str, package_root: str) -> Dict[str, Dict[str, typing.Union[str, List[str]]]]: - with Path(config_path).open() as config_fd: - config = json.load(config_fd) - namespace_folders = os.path.basename(package_root).split("-") - package_name = "-".join(namespace_folders) - namespace = ".".join(namespace_folders) - - api_directory = os.path.join(package_root, *namespace_folders) +def get_valid_versions(api_directory: str) -> List[str]: glob_path = os.path.join(api_directory, "v20*/") - valid_versions = glob.glob(glob_path) + return glob.glob(glob_path) - for version_path in valid_versions: - api_version = os.path.relpath(version_path, start=api_directory) - full_namespace = namespace + f".{api_version}" - if package_name in config: - if "namespaces" in config[package_name]: - ns = config[package_name]["namespaces"] - if ns: - if full_namespace not in ns: - ns.append(full_namespace) +def is_subnamespace(version: str) -> bool: + return not version.startswith("v20") - return config +def get_package_namespaces(package_root: str) -> List[str]: + namespace_folders = os.path.basename(package_root).split("-") + namespace = ".".join(namespace_folders) -def generate_doc(config_path: str, output_directory: str = "./ref/", package_root: str = None) -> None: - multiapi_found_apiversion = {} - # we are handed a directory that looks like /sdk/containerservice/azure-mgmt-containerservice/ - project_pattern = os.path.basename(package_root).replace("-", ".") - rst_path_template = os.path.join(output_directory, "{}.rst") - rst_namespace_template = os.path.join(output_directory, "{}.{}.rst") + # add top namespace + namespaces = {namespace: []} - config = get_updated_config(config_path, package_root) + api_directory = os.path.join(package_root, *namespace_folders) + valid_versions = get_valid_versions(api_directory) - package_list_path = [] + # check for subnamespaces like azure.mgmt.resource.locks + if not valid_versions: + subnamespaces = glob.glob(f"{api_directory}/*/") + for snp_path in subnamespaces: + versions = get_valid_versions(snp_path) + valid_versions.extend(versions) - namespaces = [n for pack in config.values() for n in pack.get("namespaces", {})] + for version_path in valid_versions: + version = os.path.relpath(version_path, start=api_directory) + if is_subnamespace(version): + subnamespace_name, api_version = version.split("/") + full_namespace = ".".join([namespace, subnamespace_name, api_version]) + subnamespace = ".".join([namespace, subnamespace_name]) + if subnamespace not in namespaces[namespace]: + namespaces[namespace].append(subnamespace) + namespaces.setdefault(subnamespace, []).append(full_namespace) + else: + full_namespace = ".".join([namespace, version]) + namespaces[namespace].append(full_namespace) - for namespace in namespaces: - if project_pattern and not namespace.startswith(project_pattern): - continue + return namespaces - _LOGGER.info("Working on %s", namespace) - rst_path = rst_path_template.format(namespace) - with Path(rst_path).open("w") as rst_file: - rst_file.write(PACKAGE_TEMPLATE.format(title=make_title(namespace + " package"), namespace=namespace)) +def write_rst(version: str, rst_path_template: str, rst_namespace_template: str, package_list_path: List[str]) -> None: + rst_path = rst_path_template.format(version) + with Path(rst_path).open("w") as rst_file: + rst_file.write(PACKAGE_TEMPLATE.format(title=make_title(version + " package"), namespace=version)) - for module in ["operations", "models"]: - with Path(rst_namespace_template.format(namespace, module)).open("w") as rst_file: - rst_file.write( - SUBMODULE_TEMPLATE.format( - title=make_title(namespace + "." + module + " module"), namespace=namespace, submodule=module - ) + for module in ["operations", "models"]: + with Path(rst_namespace_template.format(version, module)).open("w") as rst_file: + rst_file.write( + SUBMODULE_TEMPLATE.format( + title=make_title(version + "." + module + " module"), namespace=version, submodule=module ) + ) + package_list_path.append(rst_path) - for multiapi_namespace in MULTIAPI_VERSION_NAMESPACE: - length = len(multiapi_namespace.split(".")) - if namespace.split(".")[0:length] == multiapi_namespace.split(".")[0:length]: - _LOGGER.info("MultiAPI namespace on %s", multiapi_namespace) - api_package = namespace.split(multiapi_namespace + ".")[1] - multiapi_found_apiversion.setdefault(multiapi_namespace, []).append(api_package) - break - else: - package_list_path.append(rst_path) - for multiapi_namespace, apilist in multiapi_found_apiversion.items(): - apilist.sort() - apilist.reverse() - rst_path = rst_path_template.format(multiapi_namespace) - with Path(rst_path).open("w") as rst_file: - rst_file.write( - MULTIAPI_VERSION_PACKAGE_TEMPLATE.format( - title=make_title(multiapi_namespace + " package"), namespace=multiapi_namespace - ) +def write_multiapi_rst(namespace: str, versions: List[str], rst_path_template: str, package_list_path: List[str]) -> None: + rst_path = rst_path_template.format(namespace) + with Path(rst_path).open("w") as rst_file: + rst_file.write( + MULTIAPI_VERSION_PACKAGE_TEMPLATE.format( + title=make_title(namespace + " package"), namespace=namespace ) - for version in apilist: - rst_file.write(" {namespace}.{version}\n".format(namespace=multiapi_namespace, version=version)) - package_list_path.append(rst_path) + ) + for version in versions: + rst_file.write(" {version}\n".format(version=version)) + package_list_path.append(rst_path) - # now handle the packages from data plane that we want to be present properly sorted in the list of packages - for package in config.keys(): - if "manually_generated" in config[package] and config[package]["manually_generated"] == True: - package_list_path.append(rst_path_template.format(package.replace("-", "."))) +def write_toc_tree(package_list_path: List[str]) -> None: package_list_path.sort() with Path(GENERATED_PACKAGES_LIST_FILE).open("w") as generate_file_list_fd: lines_to_write = "\n".join([" " + package for package in package_list_path]) generate_file_list_fd.write(RST_AUTODOC_TOCTREE.format(generated_packages=lines_to_write)) +def generate_doc(output_directory: str = "./ref/", package_root: str = None) -> None: + # we are handed a directory that looks like /sdk/containerservice/azure-mgmt-containerservice/ + rst_path_template = os.path.join(output_directory, "{}.rst") + rst_namespace_template = os.path.join(output_directory, "{}.{}.rst") + + namespaces = get_package_namespaces(package_root) + + package_list_path = [] + + for namespace, multi_api_versions in namespaces.items(): + _LOGGER.info("Working on %s", namespace) + if not multi_api_versions: + write_rst(namespace, rst_path_template, rst_namespace_template, package_list_path) + continue + + multi_api_versions.sort(reverse=True) + write_multiapi_rst(namespace, multi_api_versions, rst_path_template, package_list_path) + + for version in multi_api_versions: + if is_subnamespace(version.split(".")[-1]): + # subnamespace already handled in write_multiapi_rst + continue + _LOGGER.info("Working on %s", version) + write_rst(version, rst_path_template, rst_namespace_template, package_list_path) + + write_toc_tree(package_list_path) + + def main(): parser = argparse.ArgumentParser(description="Generate sphinx api stubs for one or multiple management packages.") parser.add_argument( @@ -192,13 +185,6 @@ def main(): dest="project", help="Want to target a specific management package? Pass the targeted package root to this argument.", ) - parser.add_argument( - "--config", - "-c", - dest="config_path", - default=CONFIG_FILE, - help="The JSON configuration format path [default: %(default)s]", - ) parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", help="Verbosity in INFO mode") parser.add_argument("--debug", dest="debug", action="store_true", help="Verbosity in DEBUG mode") parser.add_argument( @@ -212,7 +198,7 @@ def main(): logging.basicConfig() main_logger.setLevel(logging.DEBUG if args.debug else logging.INFO) - generate_doc(args.config_path, args.output_directory, args.project) + generate_doc(args.output_directory, args.project) if __name__ == "__main__": diff --git a/doc/sphinx/package_service_mapping.json b/doc/sphinx/package_service_mapping.json deleted file mode 100644 index aaa3c2ed9e38..000000000000 --- a/doc/sphinx/package_service_mapping.json +++ /dev/null @@ -1,1084 +0,0 @@ -{ - "azure-applicationinsights": { - "service_name": "Application Insights", - "category": "Client", - "namespaces": [ - "azure.applicationinsights" - ] - }, - "azure-batch": { - "category": "Client", - "namespaces": [ - "azure.batch" - ], - "service_name": "Batch" - }, - "azure-cognitiveservices-anomalydetector": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.anomalydetector" - ], - "service_name": "Cognitive Services Anomaly Detector" - }, - "azure-cognitiveservices-formrecognizer": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.formrecognizer" - ], - "service_name": "Cognitive Services Recognizer" - }, - "azure-cognitiveservices-personalizer": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.personalizer" - ], - "service_name": "Cognitive Services Personalizer" - }, - "azure-cognitiveservices-knowledge-qnamaker": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.knowledge.qnamaker" - ], - "service_name": "Cognitive Services Knowledge QnA Maker" - }, - "azure-cognitiveservices-language-luis": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.language.luis.authoring", - "azure.cognitiveservices.language.luis.runtime" - ], - "service_name": "Cognitive Services Language LUIS" - }, - "azure-cognitiveservices-language-spellcheck": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.language.spellcheck" - ], - "service_name": "Cognitive Services Language Spellcheck" - }, - "azure-cognitiveservices-language-textanalytics": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.language.textanalytics" - ], - "service_name": "Cognitive Services Language TextAnalytics" - }, - "azure-cognitiveservices-search-autosuggest": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.autosuggest" - ], - "service_name": "Cognitive Services Search Autosuggest" - }, - "azure-cognitiveservices-search-customimagesearch": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.customimagesearch" - ], - "service_name": "Cognitive Services Search CustomImageSearch" - }, - "azure-cognitiveservices-search-customsearch": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.customsearch" - ], - "service_name": "Cognitive Services Search CustomSearch" - }, - "azure-cognitiveservices-search-entitysearch": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.entitysearch" - ], - "service_name": "Cognitive Services Search EntitySearch" - }, - "azure-cognitiveservices-search-imagesearch": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.imagesearch" - ], - "service_name": "Cognitive Services Search ImageSearch" - }, - "azure-cognitiveservices-search-newssearch": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.newssearch" - ], - "service_name": "Cognitive Services Search NewsSearch" - }, - "azure-cognitiveservices-search-videosearch": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.videosearch" - ], - "service_name": "Cognitive Services Search VideoSearch" - }, - "azure-cognitiveservices-search-visualsearch": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.visualsearch" - ], - "service_name": "Cognitive Services Search VisualSearch" - }, - "azure-cognitiveservices-search-websearch": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.search.websearch" - ], - "service_name": "Cognitive Services Search WebSearch" - }, - "azure-cognitiveservices-vision-computervision": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.vision.computervision" - ], - "service_name": "Cognitive Services Vision ComputerVision" - }, - "azure-cognitiveservices-vision-contentmoderator": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.vision.contentmoderator" - ], - "service_name": "Cognitive Services Vision ContentModerator" - }, - "azure-cognitiveservices-vision-customvision": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.vision.customvision.prediction", - "azure.cognitiveservices.vision.customvision.training" - ], - "service_name": "Cognitive Services Vision CustomVision" - }, - "azure-cognitiveservices-vision-face": { - "category": "Client", - "namespaces": [ - "azure.cognitiveservices.vision.face" - ], - "service_name": "Cognitive Services Vision Face" - }, - "azure-common": { - "category": "Other", - "service_name": "Other" - }, - "azure-communication-administration": { - "category": "Client", - "service_name": "Communication", - "manually_generated": true - }, - "azure-communication-chat": { - "category": "Client", - "service_name": "Communication", - "manually_generated": true - }, - "azure-communication-sms": { - "category": "Client", - "service_name": "Communication", - "manually_generated": true - }, - "azure-mgmt-communication": { - "category": "Management", - "service_name": "Communication", - "manually_generated": true - }, - "azure-eventgrid": { - "category": "Client", - "namespaces": [ - "azure.eventgrid" - ], - "service_name": "Event Grid" - }, - "azure-graphrbac": { - "category": "Client", - "namespaces": [ - "azure.graphrbac" - ], - "service_name": "Active Directory" - }, - "azure-loganalytics": { - "service_name": "Log Analytics", - "category": "Client", - "namespaces": [ - "azure.loganalytics" - ] - }, - "azure-mgmt-advisor": { - "category": "Management", - "namespaces": [ - "azure.mgmt.advisor" - ], - "service_name": "Advisor" - }, - "azure-mgmt-alertsmanagement": { - "category": "Management", - "namespaces": [ - "azure.mgmt.alertsmanagement" - ], - "service_name": "Alerts Management" - }, - "azure-mgmt-apimanagement": { - "category": "Management", - "namespaces": [ - "azure.mgmt.apimanagement" - ], - "service_name": "API Management" - }, - "azure-mgmt-applicationinsights": { - "category": "Management", - "namespaces": [ - "azure.mgmt.applicationinsights" - ], - "service_name": "Application Insights" - }, - "azure-mgmt-authorization": { - "category": "Management", - "namespaces": [ - "azure.mgmt.authorization" - ], - "service_name": "Authorization" - }, - "azure-mgmt-automation": { - "category": "Management", - "namespaces": [ - "azure.mgmt.automation" - ], - "service_name": "Automation" - }, - "azure-mgmt-batch": { - "category": "Management", - "namespaces": [ - "azure.mgmt.batch" - ], - "service_name": "Batch" - }, - "azure-mgmt-batchai": { - "category": "Management", - "namespaces": [ - "azure.mgmt.batchai" - ], - "service_name": "Batch AI" - }, - "azure-mgmt-billing": { - "category": "Management", - "namespaces": [ - "azure.mgmt.billing" - ], - "service_name": "Billing" - }, - "azure-mgmt-cdn": { - "category": "Management", - "namespaces": [ - "azure.mgmt.cdn" - ], - "service_name": "CDN" - }, - "azure-mgmt-cognitiveservices": { - "category": "Management", - "namespaces": [ - "azure.mgmt.cognitiveservices" - ], - "service_name": "Cognitive Services" - }, - "azure-mgmt-commerce": { - "category": "Management", - "namespaces": [ - "azure.mgmt.commerce" - ], - "service_name": "Commerce" - }, - "azure-mgmt-compute/azure.mgmt.compute": { - "category": "Management", - "namespaces": [ - "azure.mgmt.compute.v2015_06_15", - "azure.mgmt.compute.v2016_03_30", - "azure.mgmt.compute.v2016_04_30_preview", - "azure.mgmt.compute.v2017_03_30", - "azure.mgmt.compute.v2017_09_01", - "azure.mgmt.compute.v2017_12_01", - "azure.mgmt.compute.v2018_04_01", - "azure.mgmt.compute.v2018_06_01", - "azure.mgmt.compute.v2018_09_30", - "azure.mgmt.compute.v2018_10_01", - "azure.mgmt.compute.v2019_03_01", - "azure.mgmt.compute.v2019_04_01" - ], - "service_name": "Virtual Machines" - }, - "azure-mgmt-compute": { - "category": "Management", - "namespaces": [ - "azure.mgmt.compute.v2015_06_15", - "azure.mgmt.compute.v2016_03_30", - "azure.mgmt.compute.v2016_04_30_preview", - "azure.mgmt.compute.v2017_03_30", - "azure.mgmt.compute.v2017_09_01", - "azure.mgmt.compute.v2017_12_01", - "azure.mgmt.compute.v2018_04_01", - "azure.mgmt.compute.v2018_06_01", - "azure.mgmt.compute.v2018_09_30", - "azure.mgmt.compute.v2018_10_01", - "azure.mgmt.compute.v2019_03_01", - "azure.mgmt.compute.v2019_04_01" - ], - "service_name": "Virtual Machines" - }, - "azure-mgmt-consumption": { - "category": "Management", - "namespaces": [ - "azure.mgmt.consumption" - ], - "service_name": "Consumption" - }, - "azure-mgmt-containerinstance": { - "category": "Management", - "namespaces": [ - "azure.mgmt.containerinstance" - ], - "service_name": "Container Instance" - }, - "azure-mgmt-containerregistry": { - "category": "Management", - "namespaces": [ - "azure.mgmt.containerregistry.v2017_03_01", - "azure.mgmt.containerregistry.v2017_10_01", - "azure.mgmt.containerregistry.v2018_02_01_preview", - "azure.mgmt.containerregistry.v2018_09_01", - "azure.mgmt.containerregistry.v2019_04_01" - ], - "service_name": "Container Registry" - }, - "azure-mgmt-containerservice": { - "category": "Management", - "namespaces": [ - "azure.mgmt.containerservice.v2017_07_01", - "azure.mgmt.containerservice.v2018_03_01", - "azure.mgmt.containerservice.v2018_08_01_preview", - "azure.mgmt.containerservice.v2018_09_30_preview", - "azure.mgmt.containerservice.v2019_02_01", - "azure.mgmt.containerservice.v2019_04_30" - ], - "service_name": "Container Service" - }, - "azure-mgmt-cosmosdb": { - "category": "Management", - "namespaces": [ - "azure.mgmt.cosmosdb" - ], - "service_name": "Cosmos DB" - }, - "azure-mgmt-databricks": { - "category": "Management", - "namespaces": [ - "azure.mgmt.databricks" - ], - "service_name": "Data Bricks" - }, - "azure-mgmt-datafactory": { - "category": "Management", - "namespaces": [ - "azure.mgmt.datafactory" - ], - "service_name": "Data Factory" - }, - "azure-mgmt-datalake-analytics": { - "category": "Management", - "namespaces": [ - "azure.mgmt.datalake.analytics.account", - "azure.mgmt.datalake.analytics.catalog", - "azure.mgmt.datalake.analytics.job" - ], - "service_name": "Data Lake Analytics" - }, - "azure-mgmt-datalake-store": { - "category": "Management", - "namespaces": [ - "azure.mgmt.datalake.store" - ], - "service_name": "Data Lake Store" - }, - "azure-mgmt-datamigration": { - "category": "Management", - "namespaces": [ - "azure.mgmt.datamigration" - ], - "service_name": "Data migration" - }, - "azure-mgmt-devspaces": { - "category": "Management", - "namespaces": [ - "azure.mgmt.devspaces" - ], - "service_name": "DevSpaces" - }, - "azure-mgmt-devtestlabs": { - "category": "Management", - "namespaces": [ - "azure.mgmt.devtestlabs" - ], - "service_name": "Dev Test Labs" - }, - "azure-mgmt-dns": { - "category": "Management", - "namespaces": [ - "azure.mgmt.dns.v2016_04_01", - "azure.mgmt.dns.v2018_03_01_preview", - "azure.mgmt.dns.v2018_05_01" - ], - "service_name": "DNS" - }, - "azure-mgmt-eventgrid": { - "category": "Management", - "namespaces": [ - "azure.mgmt.eventgrid" - ], - "service_name": "Event Grid" - }, - "azure-mgmt-eventhub": { - "category": "Management", - "namespaces": [ - "azure.mgmt.eventhub.v2015_08_01", - "azure.mgmt.eventhub.v2017_04_01", - "azure.mgmt.eventhub.v2018_01_01_preview" - ], - "service_name": "Event Hub" - }, - "azure-mgmt-hanaonazure": { - "category": "Management", - "namespaces": [ - "azure.mgmt.hanaonazure" - ], - "service_name": "SAP Hana on Azure" - }, - "azure-mgmt-hdinsight": { - "category": "Management", - "namespaces": [ - "azure.mgmt.hdinsight" - ], - "service_name": "HDInsight" - }, - "azure-mgmt-imagebuilder": { - "category": "Management", - "namespaces": [ - "azure.mgmt.imagebuilder" - ], - "service_name": "ImageBuilder" - }, - "azure-mgmt-iotcentral": { - "category": "Management", - "namespaces": [ - "azure.mgmt.iotcentral" - ], - "service_name": "IoT Central" - }, - "azure-mgmt-iothub": { - "category": "Management", - "namespaces": [ - "azure.mgmt.iothub" - ], - "service_name": "IoT" - }, - "azure-mgmt-iothubprovisioningservices": { - "category": "Management", - "namespaces": [ - "azure.mgmt.iothubprovisioningservices" - ], - "service_name": "IoT" - }, - "azure-mgmt-keyvault": { - "category": "Management", - "namespaces": [ - "azure.mgmt.keyvault" - ], - "service_name": "Keyvault" - }, - "azure-mgmt-kusto": { - "category": "Management", - "namespaces": [ - "azure.mgmt.kusto" - ], - "service_name": "Kusto" - }, - "azure-mgmt-labservices": { - "category": "Management", - "namespaces": [ - "azure.mgmt.labservices" - ], - "service_name": "LabServices" - }, - "azure-mgmt-loganalytics": { - "category": "Management", - "namespaces": [ - "azure.mgmt.loganalytics" - ], - "service_name": "Log Analytics" - }, - "azure-mgmt-logic": { - "category": "Management", - "namespaces": [ - "azure.mgmt.logic" - ], - "service_name": "Logic Apps" - }, - "azure-mgmt-machinelearningcompute": { - "category": "Management", - "namespaces": [ - "azure.mgmt.machinelearningcompute" - ], - "service_name": "Machine Learning Compute" - }, - "azure-mgmt-machinelearningservices": { - "category": "Management", - "namespaces": [ - "azure.mgmt.machinelearningservices" - ], - "service_name": "Machine Learning Compute" - }, - "azure-mgmt-managedservices": { - "category": "Management", - "namespaces": [ - "azure.mgmt.managedservices" - ], - "service_name": "Managed Services" - }, - "azure-mgmt-managementgroups": { - "category": "Management", - "namespaces": [ - "azure.mgmt.managementgroups" - ], - "service_name": "Management Groups" - }, - "azure-mgmt-managementpartner": { - "category": "Management", - "namespaces": [ - "azure.mgmt.managementpartner" - ], - "service_name": "Management Partner" - }, - "azure-mgmt-maps": { - "category": "Management", - "namespaces": [ - "azure.mgmt.maps" - ], - "service_name": "Maps" - }, - "azure-mgmt-marketplaceordering": { - "category": "Management", - "namespaces": [ - "azure.mgmt.marketplaceordering" - ], - "service_name": "Market Place Ordering" - }, - "azure-mgmt-media": { - "category": "Management", - "namespaces": [ - "azure.mgmt.media" - ], - "service_name": "Media Services" - }, - "azure-mgmt-mixedreality": { - "category": "Management", - "namespaces": [ - "azure.mgmt.mixedreality" - ], - "service_name": "Mixed Reality" - }, - "azure-mgmt-monitor": { - "category": "Management", - "namespaces": [ - "azure.mgmt.monitor" - ], - "service_name": "Monitoring" - }, - "azure-mgmt-msi": { - "category": "Management", - "namespaces": [ - "azure.mgmt.msi" - ], - "service_name": "MSI" - }, - "azure-mgmt-netapp": { - "category": "Management", - "namespaces": [ - "azure.mgmt.netapp" - ], - "service_name": "NetApp" - }, - "azure-mgmt-network": { - "category": "Management", - "namespaces": [ - "azure.mgmt.network.v2015_06_15", - "azure.mgmt.network.v2016_09_01", - "azure.mgmt.network.v2016_12_01", - "azure.mgmt.network.v2017_03_01", - "azure.mgmt.network.v2017_06_01", - "azure.mgmt.network.v2017_08_01", - "azure.mgmt.network.v2017_09_01", - "azure.mgmt.network.v2017_10_01", - "azure.mgmt.network.v2017_11_01", - "azure.mgmt.network.v2018_01_01", - "azure.mgmt.network.v2018_02_01", - "azure.mgmt.network.v2018_04_01", - "azure.mgmt.network.v2018_06_01", - "azure.mgmt.network.v2018_07_01", - "azure.mgmt.network.v2018_08_01", - "azure.mgmt.network.v2018_10_01", - "azure.mgmt.network.v2018_11_01", - "azure.mgmt.network.v2018_12_01", - "azure.mgmt.network.v2019_02_01" - ], - "service_name": "Network" - }, - "azure-mgmt-notificationhubs": { - "category": "Management", - "namespaces": [ - "azure.mgmt.notificationhubs" - ], - "service_name": "Notification Hubs" - }, - "azure-mgmt-policyinsights": { - "category": "Management", - "namespaces": [ - "azure.mgmt.policyinsights" - ], - "service_name": "Policy Insights" - }, - "azure-mgmt-powerbiembedded": { - "category": "Management", - "namespaces": [ - "azure.mgmt.powerbiembedded" - ], - "service_name": "Power BI Embedded" - }, - "azure-mgmt-rdbms/azure.mgmt.rdbms.mariadb": { - "category": "Management", - "namespaces": [ - "azure.mgmt.rdbms.mariadb" - ], - "service_name": "MariaDB" - }, - "azure-mgmt-rdbms/azure.mgmt.rdbms.mysql": { - "category": "Management", - "namespaces": [ - "azure.mgmt.rdbms.mysql" - ], - "service_name": "MySQL" - }, - "azure-mgmt-rdbms/azure.mgmt.rdbms.postgresql": { - "category": "Management", - "namespaces": [ - "azure.mgmt.rdbms.postgresql" - ], - "service_name": "PostgreSQL" - }, - "azure-mgmt-rdbms": { - "category": "Management", - "namespaces": [ - "azure.mgmt.rdbms" - ], - "service_name": "OSS RDBMS" - }, - "azure-mgmt-reservations": { - "category": "Management", - "namespaces": [ - "azure.mgmt.reservations" - ], - "service_name": "Reservations" - }, - "azure-mgmt-recoveryservices": { - "category": "Management", - "namespaces": [ - "azure.mgmt.recoveryservices" - ], - "service_name": "Recovery Services" - }, - "azure-mgmt-recoveryservicesbackup": { - "category": "Management", - "namespaces": [ - "azure.mgmt.recoveryservicesbackup" - ], - "service_name": "Recovery Services Backup" - }, - "azure-mgmt-redis": { - "category": "Management", - "namespaces": [ - "azure.mgmt.redis" - ], - "service_name": "Redis Cache" - }, - "azure-mgmt-relay": { - "category": "Management", - "namespaces": [ - "azure.mgmt.relay" - ], - "service_name": "Relay" - }, - "azure-mgmt-resource": { - "category": "Management", - "namespaces": [ - "azure.mgmt.resource.managedapplications", - "azure.mgmt.resource.features.v2015_12_01", - "azure.mgmt.resource.subscriptions.v2016_06_01", - "azure.mgmt.resource.locks.v2015_01_01", - "azure.mgmt.resource.locks.v2016_09_01", - "azure.mgmt.resource.resources.v2016_02_01", - "azure.mgmt.resource.resources.v2016_09_01", - "azure.mgmt.resource.resources.v2017_05_10", - "azure.mgmt.resource.resources.v2018_02_01", - "azure.mgmt.resource.resources.v2018_05_01", - "azure.mgmt.resource.policy.v2015_10_01_preview", - "azure.mgmt.resource.policy.v2016_04_01", - "azure.mgmt.resource.policy.v2016_12_01", - "azure.mgmt.resource.links.v2016_09_01" - ], - "service_name": "Resource Management" - }, - "azure-mgmt-resourcegraph": { - "category": "Management", - "namespaces": [ - "azure.mgmt.resourcegraph" - ], - "service_name": "Resource Graph" - }, - "azure-mgmt-scheduler": { - "category": "Management", - "namespaces": [ - "azure.mgmt.scheduler" - ], - "service_name": "Scheduler" - }, - "azure-mgmt-search": { - "category": "Management", - "namespaces": [ - "azure.mgmt.search" - ], - "service_name": "Search Management" - }, - "azure-mgmt-security": { - "category": "Management", - "namespaces": [ - "azure.mgmt.security" - ], - "service_name": "Security Management" - }, - "azure-mgmt-servermanager": { - "category": "Management", - "namespaces": [ - "azure.mgmt.servermanager" - ], - "service_name": "Server Management" - }, - "azure-mgmt-servicebus": { - "category": "Management", - "namespaces": [ - "azure.mgmt.servicebus" - ], - "service_name": "Service Bus" - }, - "azure-mgmt-servicefabric": { - "category": "Management", - "namespaces": [ - "azure.mgmt.servicefabric" - ], - "service_name": "Service Fabric" - }, - "azure-mgmt-signalr": { - "category": "Management", - "namespaces": [ - "azure.mgmt.signalr" - ], - "service_name": "SignalR Management" - }, - "azure-mgmt-sql": { - "category": "Management", - "namespaces": [ - "azure.mgmt.sql" - ], - "service_name": "SQL" - }, - "azure-mgmt-sqlvirtualmachine": { - "category": "Management", - "namespaces": [ - "azure.mgmt.sqlvirtualmachine" - ], - "service_name": "SQL Virtual Machine" - }, - "azure-mgmt-storage": { - "category": "Management", - "namespaces": [ - "azure.mgmt.storage.v2015_06_15", - "azure.mgmt.storage.v2016_01_01", - "azure.mgmt.storage.v2016_12_01", - "azure.mgmt.storage.v2017_06_01", - "azure.mgmt.storage.v2017_10_01", - "azure.mgmt.storage.v2018_02_01", - "azure.mgmt.storage.v2018_07_01", - "azure.mgmt.storage.v2019_04_01" - ], - "service_name": "Storage" - }, - "azure-mgmt-subscription": { - "category": "Management", - "namespaces": [ - "azure.mgmt.subscription" - ], - "service_name": "Subscription" - }, - "azure-mgmt-trafficmanager": { - "category": "Management", - "namespaces": [ - "azure.mgmt.trafficmanager" - ], - "service_name": "Traffic Manager" - }, - "azure-mgmt-web": { - "category": "Management", - "namespaces": [ - "azure.mgmt.web.v2015_04_01", - "azure.mgmt.web.v2015_08_01", - "azure.mgmt.web.v2016_03_01", - "azure.mgmt.web.v2016_08_01", - "azure.mgmt.web.v2016_09_01", - "azure.mgmt.web.v2018_02_01", - "azure.mgmt.web.v2018_11_01" - ], - "service_name": "Web Apps" - }, - "azure-servicebus": { - "category": "Client", - "service_name": "Service Bus", - "manually_generated": true - }, - "azure-eventhub": { - "category": "Client", - "service_name": "Event Hub", - "manually_generated": true - }, - "azure-eventhub-checkpointstoreblob-aio": { - "category": "Client", - "service_name": "Event Hub", - "manually_generated": true - }, - "azure-core": { - "category": "Client", - "service_name": "Core", - "manually_generated": true - }, - "azure-core-tracing-opencensus": { - "category": "Client", - "service_name": "Core", - "manually_generated": true - }, - "azure-core-tracing-opentelemetry": { - "category": "Client", - "service_name": "Core", - "manually_generated": true - }, - "azure-identity": { - "category": "Client", - "service_name": "Identity", - "manually_generated": true - }, - "azure-cosmos": { - "category": "Client", - "service_name": "Cosmos", - "manually_generated": true - }, - "azure-search-documents": { - "category": "Client", - "service_name": "Search", - "manually_generated": true - }, - "azure-search": { - "category": "Client", - "service_name": "Search", - "manually_generated": true - }, - "azure-keyvault-keys": { - "category": "Client", - "service_name": "Keyvault", - "manually_generated": true - }, - "azure-keyvault-secrets": { - "category": "Client", - "service_name": "Keyvault", - "manually_generated": true - }, - "azure-keyvault-certificates": { - "category": "Client", - "service_name": "Keyvault", - "manually_generated": true - }, - "azure-ai-textanalytics": { - "category": "Client", - "service_name": "Text Analytics", - "manually_generated": true - }, - "azure-ai-formrecognizer": { - "category": "Client", - "service_name": "Form Recognizer", - "manually_generated": true - }, - "azure-ai-metricsadvisor": { - "category": "Client", - "service_name": "Metrics Advisor", - "manually_generated": true - }, - "azure-storage-blob": { - "category": "Client", - "service_name": "Storage", - "manually_generated": true - }, - "azure-storage-blob-changefeed": { - "category": "Client", - "service_name": "Storage", - "manually_generated": true - }, - "azure-storage-file-share": { - "category": "Client", - "service_name": "Storage", - "manually_generated": true - }, - "azure-storage-file-datalake": { - "category": "Client", - "service_name": "Storage", - "manually_generated": true - }, - "azure-storage-queue": { - "category": "Client", - "service_name": "Storage", - "manually_generated": true - }, - "azure-appconfiguration": { - "category": "Client", - "service_name": "App Configuration", - "manually_generated": true - }, - "azure-mgmt-appconfiguration": { - "category": "Management", - "service_name": "App Configuration", - "namespaces": [ - "azure.mgmt.appconfiguration" - ] - }, - "azure-mgmt-privatedns": { - "category": "Management", - "service_name": "Private DNS", - "namespaces": [ - "azure.mgmt.privatedns" - ] - }, - "azure-mgmt-frontdoor": { - "category": "Management", - "service_name": "Front Door", - "namespaces": [ - "azure.mgmt.frontdoor" - ] - }, - "azure-mgmt-hybridcompute": { - "category": "Management", - "service_name": "Hybrid Cloud", - "namespaces": [ - "azure.mgmt.hybridcompute" - ] - }, - "azure-mgmt-healthcareapis": { - "category": "Management", - "service_name": "Healthcare APIs", - "namespaces": [ - "azure.mgmt.healthcareapis" - ] - }, - "azure-mgmt-edgegateway": { - "category": "Management", - "service_name": "Edge Gateway", - "namespaces": [ - "azure.mgmt.edgegateway" - ] - }, - "azure-mgmt-deploymentmanager": { - "category": "Management", - "service_name": "Deployment Manager", - "namespaces": [ - "azure.mgmt.deploymentmanager" - ] - }, - "azure-mgmt-peering": { - "category": "Management", - "service_name": "Peering", - "namespaces": [ - "azure.mgmt.peering" - ] - }, - "azure-mgmt-appplatform": { - "category": "Management", - "service_name": "App Service", - "namespaces": [ - "azure.mgmt.appplatform" - ] - }, - "azure-mgmt-botservice": { - "category": "Management", - "service_name": "Bot Service", - "namespaces": [ - "azure.mgmt.botservice" - ] - }, - "azure-mgmt-costmanagement": { - "category": "Management", - "service_name": "Cost Management", - "namespaces": [ - "azure.mgmt.costmanagement" - ] - }, - "azure-mgmt-attestation": { - "category": "Management", - "service_name": "Attestation", - "namespaces": [ - "azure.mgmt.attestation" - ] - }, - "azure-mgmt-datashare": { - "category": "Management", - "service_name": "Data Share", - "namespaces": [ - "azure.mgmt.datashare" - ] - }, - "azure-mgmt-serialconsole": { - "category": "Management", - "service_name": "Serial Console", - "namespaces": [ - "azure.mgmt.serialconsole" - ] - }, - "azure-mgmt-storagesync": { - "category": "Management", - "service_name": "Storage Sync", - "namespaces": [ - "azure.mgmt.storagesync" - ] - }, - "azure-mgmt-storagecache": { - "category": "Management", - "service_name": "Storage", - "namespaces": [ - "azure.mgmt.storagecache" - ] - }, - "azure-mgmt-vmwarecloudsimple": { - "category": "Management", - "service_name": "VMWare by CloudSimple", - "namespaces": [ - "azure.mgmt.vmwarecloudsimple" - ] - }, - "azure-servicefabric": { - "category": "Client", - "namespaces": [ - "azure.servicefabric" - ], - "service_name": "Service Fabric" - }, - "azure-servicemanagement-legacy": { - "category": "Client", - "service_name": "Other" - } -}