/** @file Definitions of RedfishHttpOperation Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef EDKII_REDFISH_HTTP_OPERATION_H_ #define EDKII_REDFISH_HTTP_OPERATION_H_ #include "RedfishHttpDxe.h" #define REDFISH_CONTENT_LENGTH_SIZE 80 #define REDFISH_COMMON_HEADER_SIZE 5 #define REDFISH_HTTP_HEADER_ODATA_VERSION_STR "OData-Version" #define REDFISH_HTTP_HEADER_ODATA_VERSION_VALUE "4.0" #define REDFISH_HTTP_HEADER_USER_AGENT_VALUE "edk2redfish" #define REDFISH_HTTP_HEADER_CONNECTION_STR "Connection" #define REDFISH_HTTP_HEADER_CONNECTION_VALUE "Keep-Alive" #define REDFISH_HTTP_CONTENT_ENCODING_NONE "None" #define ASCII_STR_DUPLICATE(a) (AllocateCopyPool (AsciiStrSize ((a)), (a))) /** This function free resources in Request. Request is no longer available after this function returns successfully. @param[in] Request HTTP request to be released. @retval EFI_SUCCESS Resource is released successfully. @retval Others Errors occur. **/ EFI_STATUS ReleaseRedfishRequest ( IN REDFISH_REQUEST *Request ); /** This function free resources in given Response. @param[in] Response HTTP response to be released. @retval EFI_SUCCESS Resource is released successfully. @retval Others Errors occur. **/ EFI_STATUS ReleaseRedfishResponse ( IN REDFISH_RESPONSE *Response ); /** This function send Redfish request to Redfish service by calling Rest Ex protocol. @param[in] Service Pointer to Redfish service. @param[in] Uri Uri of Redfish service. @param[in] Method HTTP method. @param[in] Request Request data. This is optional. @param[out] Response Redfish response data. @retval EFI_SUCCESS Request is sent and received successfully. @retval Others Errors occur. **/ EFI_STATUS HttpSendReceive ( IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN EFI_HTTP_METHOD Method, IN REDFISH_REQUEST *Request OPTIONAL, OUT REDFISH_RESPONSE *Response ); #endif