TianoCore EDK2 master
Loading...
Searching...
No Matches
RedfishHttpLib.h File Reference

Go to the source code of this file.

Functions

REDFISH_SERVICE RedfishCreateService (IN REDFISH_CONFIG_SERVICE_INFORMATION *RedfishConfigServiceInfo)
 
EFI_STATUS RedfishCleanupService (IN REDFISH_SERVICE RedfishService)
 
EDKII_JSON_VALUE RedfishJsonInPayload (IN REDFISH_PAYLOAD RedfishPayload)
 
EFI_STATUS RedfishHttpFreeRequest (IN REDFISH_REQUEST *Request)
 
EFI_STATUS RedfishHttpFreeResponse (IN REDFISH_RESPONSE *Response)
 
EFI_STATUS RedfishHttpExpireResponse (IN EFI_STRING Uri)
 
EFI_STATUS RedfishHttpGetResource (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN REDFISH_REQUEST *Request OPTIONAL, OUT REDFISH_RESPONSE *Response, IN BOOLEAN UseCache)
 
EFI_STATUS RedfishHttpPatchResource (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN CHAR8 *Content, OUT REDFISH_RESPONSE *Response)
 
EFI_STATUS RedfishHttpPatchResourceEx (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN CHAR8 *Content, IN UINTN ContentSize OPTIONAL, IN CHAR8 *ContentType OPTIONAL, OUT REDFISH_RESPONSE *Response)
 
EFI_STATUS RedfishHttpPutResource (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN CHAR8 *Content, OUT REDFISH_RESPONSE *Response)
 
EFI_STATUS RedfishHttpPutResourceEx (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN CHAR8 *Content, IN UINTN ContentSize OPTIONAL, IN CHAR8 *ContentType OPTIONAL, OUT REDFISH_RESPONSE *Response)
 
EFI_STATUS RedfishHttpPostResource (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN CHAR8 *Content, OUT REDFISH_RESPONSE *Response)
 
EFI_STATUS RedfishHttpPostResourceEx (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN CHAR8 *Content, IN UINTN ContentSize OPTIONAL, IN CHAR8 *ContentType OPTIONAL, OUT REDFISH_RESPONSE *Response)
 
EFI_STATUS RedfishHttpDeleteResource (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, OUT REDFISH_RESPONSE *Response)
 
EFI_STATUS RedfishHttpDeleteResourceEx (IN REDFISH_SERVICE Service, IN EFI_STRING Uri, IN CHAR8 *Content OPTIONAL, IN UINTN ContentSize OPTIONAL, IN CHAR8 *ContentType OPTIONAL, OUT REDFISH_RESPONSE *Response)
 

Detailed Description

This file defines the Redfish HTTP library interface.

Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file RedfishHttpLib.h.

Function Documentation

◆ RedfishCleanupService()

EFI_STATUS RedfishCleanupService ( IN REDFISH_SERVICE  RedfishService)

This function free resources in Redfish service. RedfishService is no longer available after this function returns successfully.

Parameters
[in]RedfishServicePointer to Redfish service to be released.
Return values
EFI_SUCCESSResource is released successfully.
OthersErrors occur.

Free the Service and all its related resources.

Parameters
[in]RedfishServiceThe Service to access the Redfish resources.

Definition at line 55 of file RedfishHttpLib.c.

◆ RedfishCreateService()

REDFISH_SERVICE RedfishCreateService ( IN REDFISH_CONFIG_SERVICE_INFORMATION RedfishConfigServiceInfo)

This function create Redfish service. It's caller's responsibility to free returned Redfish service by calling FreeService ().

Parameters
[in]RedfishConfigServiceInfoRedfish config service information.
Return values
REDFISH_SERVICERedfish service is created.
NULLErrors occur.

This function uses REST EX protocol provided in RedfishConfigServiceInfo. The service enumerator will also handle the authentication flow automatically if HTTP basic auth or Redfish session login is configured to use.

Callers are responsible for freeing the returned service by RedfishCleanupService().

Parameters
[in]RedfishConfigServiceInfoRedfish service information the EFI Redfish feature driver communicates with.
Returns
New created Redfish Service, or NULL if error happens.

Definition at line 30 of file RedfishHttpLib.c.

◆ RedfishHttpDeleteResource()

EFI_STATUS RedfishHttpDeleteResource ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
OUT REDFISH_RESPONSE Response 
)

Perform HTTP DELETE to delete redfish resource on given resource URI. It's caller's responsibility to free Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP DELETE.
[in]UriTarget resource URI.
[out]ResponseHTTP response from redfish service.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 459 of file RedfishHttpLib.c.

◆ RedfishHttpDeleteResourceEx()

EFI_STATUS RedfishHttpDeleteResourceEx ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
IN CHAR8 *Content  OPTIONAL,
IN UINTN ContentSize  OPTIONAL,
IN CHAR8 *ContentType  OPTIONAL,
OUT REDFISH_RESPONSE Response 
)

Perform HTTP DELETE to delete redfish resource on given resource URI. It's caller's responsibility to free Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP DELETE.
[in]UriTarget resource URI.
[in]ContentJSON represented properties to be deleted. This is optional.
[in]ContentSizeSize of the Content to be send to Redfish service. This is optional. When ContentSize is 0, ContentSize is the size of Content if Content is not NULL.
[in]ContentTypeType of the Content to be send to Redfish service. This is optional.
[out]ResponseHTTP response from redfish service.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 500 of file RedfishHttpLib.c.

◆ RedfishHttpExpireResponse()

EFI_STATUS RedfishHttpExpireResponse ( IN EFI_STRING  Uri)

This function expire the cached response of given URI.

Parameters
[in]UriTarget response of URI.
Return values
EFI_SUCCESSTarget response is expired successfully.
OthersErrors occur.

Definition at line 155 of file RedfishHttpLib.c.

◆ RedfishHttpFreeRequest()

EFI_STATUS RedfishHttpFreeRequest ( IN REDFISH_REQUEST Request)

This function free resources in Request. Request is no longer available after this function returns successfully.

Parameters
[in]RequestHTTP request to be released.
Return values
EFI_SUCCESSResource is released successfully.
OthersErrors occur.

Definition at line 106 of file RedfishHttpLib.c.

◆ RedfishHttpFreeResponse()

EFI_STATUS RedfishHttpFreeResponse ( IN REDFISH_RESPONSE Response)

This function free resources in Response. Response is no longer available after this function returns successfully.

Parameters
[in]ResponseHTTP response to be released.
Return values
EFI_SUCCESSResource is released successfully.
OthersErrors occur.

Definition at line 131 of file RedfishHttpLib.c.

◆ RedfishHttpGetResource()

EFI_STATUS RedfishHttpGetResource ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
IN REDFISH_REQUEST *Request  OPTIONAL,
OUT REDFISH_RESPONSE Response,
IN BOOLEAN  UseCache 
)

Get redfish resource from given resource URI with cache mechanism supported. It's caller's responsibility to Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP GET.
[in]UriTarget resource URI.
[in]RequestAdditional request context. This is optional.
[out]ResponseHTTP response from redfish service.
[in]UseCacheIf it is TRUE, this function will search for cache first. If it is FALSE, this function will query Redfish URI directly.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 187 of file RedfishHttpLib.c.

◆ RedfishHttpPatchResource()

EFI_STATUS RedfishHttpPatchResource ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
IN CHAR8 *  Content,
OUT REDFISH_RESPONSE Response 
)

Perform HTTP PATCH to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP PATCH.
[in]UriTarget resource URI.
[in]ContentData to patch.
[out]ResponseHTTP response from redfish service.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 223 of file RedfishHttpLib.c.

◆ RedfishHttpPatchResourceEx()

EFI_STATUS RedfishHttpPatchResourceEx ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
IN CHAR8 *  Content,
IN UINTN ContentSize  OPTIONAL,
IN CHAR8 *ContentType  OPTIONAL,
OUT REDFISH_RESPONSE Response 
)

Perform HTTP PATCH to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP PATCH.
[in]UriTarget resource URI.
[in]ContentData to patch.
[in]ContentSizeSize of the Content to be send to Redfish service. This is optional. When ContentSize is 0, ContentSize is the size of Content.
[in]ContentTypeType of the Content to be send to Redfish service. This is optional.
[out]ResponseHTTP response from redfish service.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 264 of file RedfishHttpLib.c.

◆ RedfishHttpPostResource()

EFI_STATUS RedfishHttpPostResource ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
IN CHAR8 *  Content,
OUT REDFISH_RESPONSE Response 
)

Perform HTTP POST to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP POST.
[in]UriTarget resource URI.
[in]ContentData to post.
[out]ResponseHTTP response from redfish service.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 381 of file RedfishHttpLib.c.

◆ RedfishHttpPostResourceEx()

EFI_STATUS RedfishHttpPostResourceEx ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
IN CHAR8 *  Content,
IN UINTN ContentSize  OPTIONAL,
IN CHAR8 *ContentType  OPTIONAL,
OUT REDFISH_RESPONSE Response 
)

Perform HTTP POST to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP POST.
[in]UriTarget resource URI.
[in]ContentData to post.
[in]ContentSizeSize of the Content to be send to Redfish service. This is optional. When ContentSize is 0, ContentSize is the size of Content.
[in]ContentTypeType of the Content to be send to Redfish service. This is optional.
[out]ResponseHTTP response from redfish service.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 422 of file RedfishHttpLib.c.

◆ RedfishHttpPutResource()

EFI_STATUS RedfishHttpPutResource ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
IN CHAR8 *  Content,
OUT REDFISH_RESPONSE Response 
)

Perform HTTP PUT to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP PUT.
[in]UriTarget resource URI.
[in]ContentData to put.
[out]ResponseHTTP response from redfish service.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 302 of file RedfishHttpLib.c.

◆ RedfishHttpPutResourceEx()

EFI_STATUS RedfishHttpPutResourceEx ( IN REDFISH_SERVICE  Service,
IN EFI_STRING  Uri,
IN CHAR8 *  Content,
IN UINTN ContentSize  OPTIONAL,
IN CHAR8 *ContentType  OPTIONAL,
OUT REDFISH_RESPONSE Response 
)

Perform HTTP PUT to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling RedfishHttpFreeResponse ().

Parameters
[in]ServiceRedfish service instance to perform HTTP PUT.
[in]UriTarget resource URI.
[in]ContentData to put.
[in]ContentSizeSize of the Content to be send to Redfish service. This is optional. When ContentSize is 0, ContentSize is the size of Content.
[in]ContentTypeType of the Content to be send to Redfish service. This is optional.
[out]ResponseHTTP response from redfish service.
Return values
EFI_SUCCESSResource is returned successfully.
OthersErrors occur.

Definition at line 343 of file RedfishHttpLib.c.

◆ RedfishJsonInPayload()

EDKII_JSON_VALUE RedfishJsonInPayload ( IN REDFISH_PAYLOAD  Payload)

This function returns JSON value in given RedfishPayload. Returned JSON value is a reference to the JSON value in RedfishPayload. Any modification to returned JSON value will change JSON value in RedfishPayload.

Parameters
[in]RedfishPayloadPointer to Redfish payload.
Return values
EDKII_JSON_VALUEJSON value is returned.
NULLErrors occur.

This function returns the decoded JSON value of a REDFISH_PAYLOAD.

Caller doesn't need to free the returned JSON value because it will be released in corresponding RedfishCleanupPayload() function.

Parameters
[in]PayloadA REDFISH_PAYLOAD instance.
Returns
Decoded JSON value of the payload.

Definition at line 81 of file RedfishHttpLib.c.