blob: 79954744adc0d62e26e2b7f56682411598b854a4 [file] [log] [blame]
/** @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