def METHOD_NAME(self) -> dict[str, Any]:
    if not self.openapi_schema:
        routes = self.routes
        starlette_hosts = [
            host
            for host in super().routes
            if isinstance(host, starlette.routing.Host)
        ]
        # XXX:HACK fastapi will not show documentation for routes
        # added through use sub applications using the Host class
        # (e.g. app.host('other.domain', app2))
        for host in starlette_hosts:
            for route in host.routes:
                if route not in routes:
                    routes.append(route)
        self.openapi_schema = get_openapi(
            title=self.title,
            version=self.version,
            openapi_version=self.openapi_version,
            description=self.description,
            terms_of_service=self.terms_of_service,
            contact=self.contact,
            license_info=self.license_info,
            routes=routes,
            tags=self.openapi_tags,
            servers=self.servers,
        )
    return self.openapi_schema