from dataclasses import dataclass from typing import Any, Dict, List, Literal, Union @dataclass class OpenAPIOperation: path: str action: Union[ Literal["get"], Literal["post"], Literal["put"], Literal["delete"], Literal["patch"], ] parameters: List[str] def check_api_for_ops( openapi_json: Dict[str, Any], operations: List[OpenAPIOperation] ) -> bool: for path, action, parameters in operations: if path in openapi_json["paths"] and action in openapi_json["paths"][path]: if "parameters" not in openapi_json["paths"][path][action]: return False path_parameters = [ param["name"] for param in openapi_json["paths"][path][action]["parameters"] if "name" in param ] for parameter in parameters: if parameter not in path_parameters: return False else: return False return True