import logging from flask import Flask from safrs import SAFRSAPI from models.common.core.contour import contour as mcc_Contour from models.common.core.environment import environment as mcc_Environment from models.common.core.timestamps import timestamp as mcc_Timestamp from models.vmware.core.vcenter import vcenter as mvc_vCenter from models.vmware.core.cluster import cluster as mvc_Cluster from models.vmware.reports.capacity.frame import frame as mvrc_Frame from models.vmware.reports.capacity.report import capacity as mvrc_Report from models.vmware.reports.mmhosts.report import maintenance as mvrm_Report from models.vmware.reports.datastores.report import datastore as mvrd_Report # noqa from models.vmware.reports.sharedNetworks.report import sharedNetwork as mvrsn_Report # noqa from models.nutanix.core.pelement import pelement as mnc_Cluster from models.nutanix.core.pcentral import pcentral as mnc_Central from models.nutanix.reports.prismElement.report import npereport as mnrpe_Report # noqa from models.nutanix.reports.prismCentral.report import npcreport as mnrpc_Report # noqa from models.nutanix.reports.mmhosts.report import nmreport as mnrm_Report from models.nutanix.reports.utilization.report import nureport as mnru_Report # noqa logger = logging.getLogger(__name__) def create_api( app: Flask, host: str, port: str, api_prefix: str, custom_swagger: dict = {} ) -> None: api = SAFRSAPI( app, host=host, schemes=["http", "https"], port=port, prefix=api_prefix, custom_swagger=custom_swagger ) for model in [mcc_Contour, mcc_Environment, mcc_Timestamp]: api.expose_object(model, url_prefix="/common") for model in [mvc_vCenter, mvc_Cluster]: api.expose_object(model, url_prefix="/vmware") for model in [mvrc_Report, mvrm_Report, mvrd_Report, mvrsn_Report]: api.expose_object(model, url_prefix="/vmware/report") api.expose_object(mvrc_Frame, url_prefix="/vmware/report/capacity") for model in [mnc_Cluster, mnc_Central]: api.expose_object(model, url_prefix="/nutanix") for model in [mnrpe_Report, mnrpc_Report, mnrm_Report, mnru_Report]: api.expose_object(model, url_prefix="/nutanix/report")