"""The HTTP method of the operation."""
        properties: Sequence[APIProperty] = Field(alias="properties")
        # TODO: Add parse in used components to be able to specify what type of
        # referenced object it is.
        # """The properties of the operation."""
        # components: Dict[str, BaseModel] = Field(alias="components")
        request_body: Optional[APIRequestBody] = Field(alias="request_body")
        """The request body of the operation."""
        @staticmethod
        def _get_properties_from_parameters(
            parameters: List[Parameter], spec: OpenAPISpec
        ) -> List[APIProperty]:
            """Get the properties of the operation."""
            properties = []
            for param in parameters:
                if APIProperty.is_supported_location(param.param_in):
                    properties.append(APIProperty.from_parameter(param, spec))
                elif param.required:
                    raise ValueError(
                        INVALID_LOCATION_TEMPL.format(
                            location=param.param_in, name=param.name
                        )
                    )
                else:
                    logger.warning(
                        INVALID_LOCATION_TEMPL.format(
                            location=param.param_in, name=param.name
                        )
                        + " Ignoring optional parameter"
                    )
                    pass
            return properties
[docs]        @classmethod
        def from_openapi_url(
            cls,
            spec_url: str,
            path: str,
            method: str,
        ) -> "APIOperation":
            """Create an APIOperation from an OpenAPI URL."""
            spec = OpenAPISpec.from_url(spec_url)
            return cls.from_openapi_spec(spec, path, method)
[docs]        @classmethod
        def from_openapi_spec(
            cls,
            spec: OpenAPISpec,
            path: str,
            method: str,