* Re: [edk2-devel] [PATCH] edk2-staging/RedfishClientPkg: Add RedfishLib.h
[not found] <16B1DD1FCF06B07C.31256@groups.io>
@ 2021-10-27 13:11 ` Abner Chang
0 siblings, 0 replies; only message in thread
From: Abner Chang @ 2021-10-27 13:11 UTC (permalink / raw)
To: devel@edk2.groups.io, Chang, Abner (HPS SW/FW Technologist)
Cc: Wang, Nickle (HPS SW), Liming Gao
This patch set is sent in behalf of Nickle Wang.
Reviewed-by: Abner Chang <abner.chang@hpe.com>
> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Abner Chang
> Sent: Wednesday, October 27, 2021 6:36 PM
> To: devel@edk2.groups.io
> Cc: Wang, Nickle (HPS SW) <nickle.wang@hpe.com>; Liming Gao
> <gaoliming@byosoft.com.cn>
> Subject: [edk2-devel] [PATCH] edk2-staging/RedfishClientPkg: Add
> RedfishLib.h
>
> RedfishLib.h is the header file of RedfishLib
> library under RedfishClientPkg. RedfishLib is
> used by EDKII Redfish feature drivers.
>
> Signed-off-by: Nickle Wang <nickle.wang@hpe.com>
> Cc: Abner Chang <abner.chang@hpe.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> ---
> .../PrivateInclude/Library/RedfishLib.h | 611 ++++++++++++++++++
> 1 file changed, 611 insertions(+)
> create mode 100644 RedfishClientPkg/PrivateInclude/Library/RedfishLib.h
>
> diff --git a/RedfishClientPkg/PrivateInclude/Library/RedfishLib.h
> b/RedfishClientPkg/PrivateInclude/Library/RedfishLib.h
> new file mode 100644
> index 00000000000..c3069f0dd4c
> --- /dev/null
> +++ b/RedfishClientPkg/PrivateInclude/Library/RedfishLib.h
> @@ -0,0 +1,611 @@
> +/** @file
> + This library provides a set of utility APIs that allow to
> create/read/update/delete
> + (CRUD) Redfish resources and provide basic query abilities by using
> [URI/RedPath]
> + (https://github.com/DMTF/libredfish).
> +
> + The query language is based on XPath
> (INVALID URI REMOVED
> 19991116/__;!!NpxR!2mDPVN-
> RDtCPdiXsE0BvDRU0GQ4qJuuc6ig9m5JxlhHlVCShQEYtiFDG1cHvcwI$ ).
> + This library and query language essentially treat the entire Redfish Service
> like it
> + was a single JSON document. In other words whenever it encounters an
> odata.id in JSON
> + document, it will retrieve the new JSON document (if needed). We name
> the path as
> + RedPath:
> +
> + Expression Description
> +
> + nodename Selects the JSON entity with the name "nodename".
> + If the value of nodename is an object with "@odata.id",
> + it will continue get the value from "@odata.id".
> +
> + / Selects from the root node
> +
> + [index] Selects the index number JSON entity from an array or
> + object. If the JSON entity is one collection (has
> + Members & Members@odata.count), means to get the index
> + member in "Members". Index number >=1, 1 means to return
> + the first instance.
> +
> + [XXX] Operation on JSON entity.
> + If the JSON entity is one collection (has Members &
> + Members@odata.count), means to get all elements in
> + "Members". If the JSON entity is one array, means to
> + get all elements in array. Others will match the nodename
> + directly (e.g. JSON_OBJECT, JSON_STRING, JSON_TRUE,
> + JSON_FALSE, JSON_INTEGER).
> +
> + [nodename] Selects all the elements from an JSON entity that
> + contain a property named "nodename"
> +
> + [name=value] Selects all the elements from an JSON entity where
> + the property "name" is equal to "value"
> +
> + [name~value] Selects all the elements from an JSON entity where
> + the string property "name" is equal to "value" using
> + case insensitive comparison.
> +
> + [name<value] Selects all the elements from an JSON entity where
> + the property "name" is less than "value"
> +
> + [name<=value] Selects all the elements from an JSON entity where
> + the property "name" is less than or equal to "value"
> +
> + [name>value] Selects all the elements from an JSON entity where
> + the property "name" is greater than "value"
> +
> + [name>=value] Selects all the elements from an JSON entity where
> + the property "name" is greater than or equal to "value"
> +
> + Some examples:
> +
> + /v1/Chassis[1] - Will return the first Chassis instance.
> + /v1/Chassis[SKU=1234] - Will return all Chassis instances with a SKU field
> equal to 1234.
> + /v1/Systems[Storage] - Will return all the System instances that have
> Storage field populated.
> +
> + Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> + (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#ifndef REDFISH_LIB_H_
> +#define REDFISH_LIB_H_
> +
> +#include <Library/JsonLib.h>
> +
> +#include <Protocol/Http.h>
> +#include <Protocol/EdkIIRedfishConfigHandler.h>
> +
> +#define ODATA_TYPE_NAME_MAX_SIZE 128
> +#define ODATA_TYPE_MAX_SIZE 128
> +
> +///
> +/// Library class public defines
> +///
> +typedef VOID* REDFISH_SERVICE;
> +typedef VOID* REDFISH_PAYLOAD;
> +
> +///
> +/// Library class public structures/unions
> +///
> +typedef struct {
> + EFI_HTTP_STATUS_CODE *StatusCode;
> + UINTN HeaderCount;
> + EFI_HTTP_HEADER *Headers;
> + REDFISH_PAYLOAD Payload;
> +} REDFISH_RESPONSE;
> +
> +///
> +/// Odata type-name mapping structure.
> +///
> +typedef struct {
> + CONST CHAR8 OdataTypeName [ODATA_TYPE_NAME_MAX_SIZE];
> + CONST CHAR8 OdataType [ODATA_TYPE_MAX_SIZE];
> +} REDFISH_ODATA_TYPE_MAPPING;
> +
> +/**
> + 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().
> +
> + @param[in] RedfishConfigServiceInfo Redfish service information the EFI
> Redfish
> + feature driver communicates with.
> +
> + @return New created Redfish Service, or NULL if error happens.
> +
> +**/
> +REDFISH_SERVICE
> +EFIAPI
> +RedfishCreateService (
> + IN REDFISH_CONFIG_SERVICE_INFORMATION
> *RedfishConfigServiceInfo
> + );
> +
> +/**
> + Free the Service and all its related resources.
> +
> + @param[in] RedfishService The Service to access the Redfish resources.
> +
> +**/
> +VOID
> +EFIAPI
> +RedfishCleanupService (
> + IN REDFISH_SERVICE RedfishService
> + );
> +
> +/**
> + Create REDFISH_PAYLOAD instance in local with JSON represented
> resource value and
> + the Redfish Service.
> +
> + The returned REDFISH_PAYLOAD can be used to create or update Redfish
> resource in
> + server side.
> +
> + Callers are responsible for freeing the returned payload by
> RedfishCleanupPayload().
> +
> + @param[in] Value JSON Value of the redfish resource.
> + @param[in] RedfishService The Service to access the Redfish
> resources.
> +
> + @return REDFISH_PAYLOAD instance of the resource, or NULL if error
> happens.
> +
> +**/
> +REDFISH_PAYLOAD
> +EFIAPI
> +RedfishCreatePayload (
> + IN EDKII_JSON_VALUE Value,
> + IN REDFISH_SERVICE RedfishService
> + );
> +
> +/**
> + Free the RedfishPayload and all its related resources.
> +
> + @param[in] Payload Payload to be freed.
> +
> +**/
> +VOID
> +EFIAPI
> +RedfishCleanupPayload (
> + IN REDFISH_PAYLOAD Payload
> + );
> +
> +/**
> + 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.
> +
> + @param[in] Payload A REDFISH_PAYLOAD instance.
> +
> + @return Decoded JSON value of the payload.
> +
> +**/
> +EDKII_JSON_VALUE
> +EFIAPI
> +RedfishJsonInPayload (
> + IN REDFISH_PAYLOAD Payload
> + );
> +
> +/**
> + Fill the input RedPath string with system UUID from SMBIOS table or use
> the customized
> + ID if FromSmbios == FALSE.
> +
> + This is a helper function to build a RedPath string which can be used to
> address
> + a Redfish resource for this computer system. The input PathString must
> have a Systems
> + note in format of "Systems[UUID=%g]" or "Systems[UUID~%g]" to fill the
> UUID value.
> +
> + Example:
> + Use "/v1/Systems[UUID=%g]/Bios" to build a RedPath to address the
> "Bios" resource
> + for this computer system.
> +
> + @param[in] RedPath RedPath format to be build.
> + @param[in] FromSmbios Get system UUID from SMBIOS as computer
> system instance ID.
> + @param[in] IdString The computer system instance ID.
> +
> + @return Full RedPath with system UUID inside, or NULL if error happens.
> +
> +**/
> +CHAR8 *
> +EFIAPI
> +RedfishBuildPathWithSystemUuid (
> + IN CONST CHAR8 *RedPath,
> + IN BOOLEAN FromSmbios,
> + IN CHAR8 *IdString OPTIONAL
> + );
> +
> +/**
> + Get a redfish response addressed by a RedPath string, including HTTP
> StatusCode, Headers
> + and Payload which record any HTTP response messages.
> +
> + Callers are responsible for freeing the HTTP StatusCode, Headers and
> Payload returned in
> + redfish response data.
> +
> + @param[in] RedfishService The Service to access the Redfish
> resources.
> + @param[in] RedPath RedPath string to address a resource, must
> start
> + from the root node.
> + @param[out] RedResponse Pointer to the Redfish response data.
> +
> + @retval EFI_SUCCESS The opeartion is successful, indicates the HTTP
> StatusCode is not
> + NULL and the value is 2XX. The corresponding redfish
> resource has
> + been returned in Payload within RedResponse.
> + @retval EFI_INVALID_PARAMETER RedfishService, RedPath, or
> RedResponse is NULL.
> + @retval EFI_DEVICE_ERROR An unexpected system or network error
> occurred. Callers can get
> + more error info from returned HTTP StatusCode, Headers
> and Payload
> + within RedResponse:
> + 1. If the returned Payload is NULL, indicates any error
> happen.
> + 2. If the returned StatusCode is NULL, indicates any error
> happen.
> + 3. If the returned StatusCode is not 2XX, indicates any error
> happen.
> +**/
> +EFI_STATUS
> +EFIAPI
> +RedfishGetByService (
> + IN REDFISH_SERVICE RedfishService,
> + IN CONST CHAR8 *RedPath,
> + OUT REDFISH_RESPONSE *RedResponse
> + );
> +
> +/**
> + Get a redfish response addressed by URI, including HTTP StatusCode,
> Headers
> + and Payload which record any HTTP response messages.
> +
> + Callers are responsible for freeing the HTTP StatusCode, Headers and
> Payload returned in
> + redfish response data.
> +
> + @param[in] RedfishService The Service to access the URI resources.
> + @param[in] URI String to address a resource.
> + @param[out] RedResponse Pointer to the Redfish response data.
> +
> + @retval EFI_SUCCESS The opeartion is successful, indicates the HTTP
> StatusCode is not
> + NULL and the value is 2XX. The corresponding redfish
> resource has
> + been returned in Payload within RedResponse.
> + @retval EFI_INVALID_PARAMETER RedfishService, RedPath, or
> RedResponse is NULL.
> + @retval EFI_DEVICE_ERROR An unexpected system or network error
> occurred. Callers can get
> + more error info from returned HTTP StatusCode, Headers
> and Payload
> + within RedResponse:
> + 1. If the returned Payload is NULL, indicates any error
> happen.
> + 2. If the returned StatusCode is NULL, indicates any error
> happen.
> + 3. If the returned StatusCode is not 2XX, indicates any error
> happen.
> +**/
> +EFI_STATUS
> +EFIAPI
> +RedfishGetByUri (
> + IN REDFISH_SERVICE RedfishService,
> + IN CONST CHAR8 *Uri,
> + OUT REDFISH_RESPONSE *RedResponse
> + );
> +
> +/**
> + Get a redfish response addressed by the input Payload and relative
> RedPath string,
> + including HTTP StatusCode, Headers and Payload which record any HTTP
> response messages.
> +
> + Callers are responsible for freeing the HTTP StatusCode, Headers and
> Payload returned in
> + redfish response data.
> +
> + @param[in] Payload A existing REDFISH_PAYLOAD instance.
> + @param[in] RedPath Relative RedPath string to address a resource
> inside Payload.
> + @param[out] RedResponse Pointer to the Redfish response data.
> +
> + @retval EFI_SUCCESS The opeartion is successful:
> + 1. The HTTP StatusCode is NULL and the returned Payload
> in
> + RedResponse is not NULL, indicates the Redfish resource
> has
> + been parsed from the input payload directly.
> + 2. The HTTP StatusCode is not NULL and the value is 2XX,
> + indicates the corresponding redfish resource has been
> returned
> + in Payload within RedResponse.
> + @retval EFI_INVALID_PARAMETER Payload, RedPath, or RedResponse is
> NULL.
> + @retval EFI_DEVICE_ERROR An unexpected system or network error
> occurred. Callers can get
> + more error info from returned HTTP StatusCode, Headers
> and Payload
> + within RedResponse:
> + 1. If the returned Payload is NULL, indicates any error
> happen.
> + 2. If StatusCode is not NULL and the returned value of
> StatusCode
> + is not 2XX, indicates any error happen.
> +**/
> +EFI_STATUS
> +EFIAPI
> +RedfishGetByPayload (
> + IN REDFISH_PAYLOAD Payload,
> + IN CONST CHAR8 *RedPath,
> + OUT REDFISH_RESPONSE *RedResponse
> + );
> +
> +/**
> + Use HTTP PATCH to perform updates on pre-existing Redfish resource.
> +
> + This function uses the RedfishService to patch a Redfish resource
> addressed by
> + Uri (only the relative path is required). Changes to one or more properties
> within
> + the target resource are represented in the input Content, properties not
> specified
> + in Content won't be changed by this request. The corresponding redfish
> response will
> + returned, including HTTP StatusCode, Headers and Payload which record
> any HTTP response
> + messages.
> +
> + Callers are responsible for freeing the HTTP StatusCode, Headers and
> Payload returned in
> + redfish response data.
> +
> + @param[in] RedfishService The Service to access the Redfish
> resources.
> + @param[in] Uri Relative path to address the resource.
> + @param[in] Content JSON represented properties to be update.
> + @param[out] RedResponse Pointer to the Redfish response data.
> +
> + @retval EFI_SUCCESS The opeartion is successful, indicates the HTTP
> StatusCode is not
> + NULL and the value is 2XX. The Redfish resource will be
> returned
> + in Payload within RedResponse if server send it back in the
> HTTP
> + response message body.
> + @retval EFI_INVALID_PARAMETER RedfishService, Uri, Content, or
> RedResponse is NULL.
> + @retval EFI_DEVICE_ERROR An unexpected system or network error
> occurred. Callers can get
> + more error info from returned HTTP StatusCode, Headers
> and Payload
> + within RedResponse:
> + 1. If the returned StatusCode is NULL, indicates any error
> happen.
> + 2. If the returned StatusCode is not NULL and the value is
> not 2XX,
> + indicates any error happen.
> +**/
> +EFI_STATUS
> +EFIAPI
> +RedfishPatchToUri (
> + IN REDFISH_SERVICE RedfishService,
> + IN CONST CHAR8 *Uri,
> + IN CONST CHAR8 *Content,
> + OUT REDFISH_RESPONSE *RedResponse
> + );
> +
> +/**
> + Use HTTP PATCH to perform updates on target payload. Patch to odata.id
> in Payload directly.
> +
> + This function uses the Payload to patch the Target. Changes to one or
> more properties
> + within the target resource are represented in the input Payload,
> properties not specified
> + in Payload won't be changed by this request. The corresponding redfish
> response will
> + returned, including HTTP StatusCode, Headers and Payload which record
> any HTTP response
> + messages.
> +
> + Callers are responsible for freeing the HTTP StatusCode, Headers and
> Payload returned in
> + redfish response data.
> +
> + @param[in] Target The target payload to be updated.
> + @param[in] Payload Palyoad with properties to be changed.
> + @param[out] RedResponse Pointer to the Redfish response data.
> +
> + @retval EFI_SUCCESS The opeartion is successful, indicates the HTTP
> StatusCode is not
> + NULL and the value is 2XX. The Redfish resource will be
> returned
> + in Payload within RedResponse if server send it back in the
> HTTP
> + response message body.
> + @retval EFI_INVALID_PARAMETER Target, Payload, or RedResponse is
> NULL.
> + @retval EFI_DEVICE_ERROR An unexpected system or network error
> occurred. Callers can get
> + more error info from returned HTTP StatusCode, Headers
> and Payload
> + within RedResponse:
> + 1. If the returned StatusCode is NULL, indicates any error
> happen.
> + 2. If the returned StatusCode is not NULL and the value is
> not 2XX,
> + indicates any error happen.
> +**/
> +EFI_STATUS
> +EFIAPI
> +RedfishPatchToPayload (
> + IN REDFISH_PAYLOAD Target,
> + IN REDFISH_PAYLOAD Payload,
> + OUT REDFISH_RESPONSE *RedResponse
> + );
> +
> +/**
> + Use HTTP POST to create a new resource in target payload.
> +
> + The POST request should be submitted to the Resource Collection in which
> the new resource
> + is to belong. The Resource Collection is addressed by Target payload. The
> Redfish may
> + ignore any service controlled properties. The corresponding redfish
> response will returned,
> + including HTTP StatusCode, Headers and Payload which record any HTTP
> response messages.
> +
> + Callers are responsible for freeing the HTTP StatusCode, Headers and
> Payload returned in
> + redfish response data.
> +
> + @param[in] Target Target payload of the Resource Collection.
> + @param[in] Payload The new resource to be created.
> + @param[out] RedResponse Pointer to the Redfish response data.
> +
> + @retval EFI_SUCCESS The opeartion is successful, indicates the HTTP
> StatusCode is not
> + NULL and the value is 2XX. The Redfish resource will be
> returned
> + in Payload within RedResponse if server send it back in the
> HTTP
> + response message body.
> + @retval EFI_INVALID_PARAMETER Target, Payload, or RedResponse is
> NULL.
> + @retval EFI_DEVICE_ERROR An unexpected system or network error
> occurred. Callers can get
> + more error info from returned HTTP StatusCode, Headers
> and Payload
> + within RedResponse:
> + 1. If the returned StatusCode is NULL, indicates any error
> happen.
> + 2. If the returned StatusCode is not NULL and the value is
> not 2XX,
> + indicates any error happen.
> +**/
> +EFI_STATUS
> +EFIAPI
> +RedfishPostToPayload (
> + IN REDFISH_PAYLOAD Target,
> + IN REDFISH_PAYLOAD Payload,
> + OUT REDFISH_RESPONSE *RedResponse
> + );
> +
> +/**
> + Use HTTP DELETE to remove a resource.
> +
> + This function uses the RedfishService to remove a Redfish resource which
> is addressed
> + by input Uri (only the relative path is required). The corresponding redfish
> response will
> + returned, including HTTP StatusCode, Headers and Payload which record
> any HTTP response
> + messages.
> +
> + Callers are responsible for freeing the HTTP StatusCode, Headers and
> Payload returned in
> + redfish response data.
> +
> + @param[in] RedfishService The Service to access the Redfish
> resources.
> + @param[in] Uri Relative path to address the resource.
> + @param[out] RedResponse Pointer to the Redfish response data.
> +
> + @retval EFI_SUCCESS The opeartion is successful, indicates the HTTP
> StatusCode is not
> + NULL and the value is 2XX, the Redfish resource has been
> removed.
> + If there is any message returned from server, it will be
> returned
> + in Payload within RedResponse.
> + @retval EFI_INVALID_PARAMETER RedfishService, Uri, or RedResponse is
> NULL.
> + @retval EFI_DEVICE_ERROR An unexpected system or network error
> occurred. Callers can get
> + more error info from returned HTTP StatusCode, Headers
> and Payload
> + within RedResponse:
> + 1. If the returned StatusCode is NULL, indicates any error
> happen.
> + 2. If the returned StatusCode is not NULL and the value is
> not 2XX,
> + indicates any error happen.
> +**/
> +EFI_STATUS
> +EFIAPI
> +RedfishDeleteByUri (
> + IN REDFISH_SERVICE RedfishService,
> + IN CONST CHAR8 *Uri,
> + OUT REDFISH_RESPONSE *RedResponse
> + );
> +
> +/**
> + Dump text in fractions.
> +
> + @param[in] String ASCII string to dump.
> +
> +**/
> +VOID
> +RedfishDumpJsonStringFractions (
> + IN CHAR8 *String
> + );
> +
> +/**
> + Extract the JSON text content from REDFISH_PAYLOAD and dump to debug
> console.
> +
> + @param[in] Payload The Redfish payload to dump.
> +
> +**/
> +VOID
> +RedfishDumpPayload (
> + IN REDFISH_PAYLOAD Payload
> + );
> +/**
> + Dump text in JSON value.
> +
> + @param[in] JsonValue The Redfish JSON value to dump.
> +
> +**/
> +VOID
> +RedfishDumpJson (
> + IN EDKII_JSON_VALUE JsonValue
> + );
> +/**
> + This function will cleanup the HTTP header and Redfish payload resources.
> +
> + @param[in] StatusCode The status code in HTTP response message.
> + @param[in] HeaderCount Number of HTTP header structures in
> Headers list.
> + @param[in] Headers Array containing list of HTTP headers.
> + @param[in] Payload The Redfish payload to dump.
> +
> +**/
> +VOID
> +RedfishFreeResponse (
> + IN EFI_HTTP_STATUS_CODE *StatusCode,
> + IN UINTN HeaderCount,
> + IN EFI_HTTP_HEADER *Headers,
> + IN REDFISH_PAYLOAD Payload
> + );
> +
> +/**
> + Check if the "@odata.type" in Payload is valid or not.
> +
> + @param[in] Payload The Redfish payload to be checked.
> + @param[in] OdataTypeName OdataType will be retrived from
> mapping list.
> + @param[in] OdataTypeMappingList The list of OdataType.
> + @param[in] OdataTypeMappingListSize The number of mapping list
> +
> + @return TRUE if the "@odata.type" in Payload is valid, otherwise FALSE.
> +
> +**/
> +BOOLEAN
> +RedfishIsValidOdataType (
> + IN REDFISH_PAYLOAD Payload,
> + IN CONST CHAR8 *OdataTypeName,
> + IN REDFISH_ODATA_TYPE_MAPPING *OdataTypeMappingList,
> + IN UINTN OdataTypeMappingListSize
> + );
> +
> +/**
> + Check if the payload is collection
> +
> + @param[in] Payload The Redfish payload to be checked.
> +
> + @return TRUE if the payload is collection.
> +
> +**/
> +BOOLEAN
> +RedfishIsPayloadCollection (
> + IN REDFISH_PAYLOAD Payload
> +);
> +/**
> + Get collection size.
> +
> + @param[in] Payload The Redfish collection payload
> + @param[in] CollectionSize Size of this collection
> +
> + @return EFI_SUCCESS Coolection size is returned in CollectionSize
> + @return EFI_INVALID_PARAMETER The payload is not a collection.
> +**/
> +EFI_STATUS
> +RedfishGetCollectionSize(
> + IN REDFISH_PAYLOAD Payload,
> + IN UINTN *CollectionSize
> +);
> +/**
> + Get Redfish payload of collection member
> +
> + @param[in] Payload The Redfish collection payload
> + @param[in] Index Index of collection member
> +
> + @return NULL Fail to get collection member.
> + @return Non NULL Payload is returned.
> +**/
> +REDFISH_PAYLOAD
> +RedfishGetPayloadByIndex (
> + IN REDFISH_PAYLOAD Payload,
> + IN UINTN Index
> +);
> +
> +/**
> + Check and return Redfish resource of the given Redpath.
> +
> + @param[in] RedfishService Pointer to REDFISH_SERVICE
> + @param[in] Redpath Redpath of the resource.
> + @param[in] Response Optional return the resource.
> +
> + @return EFI_STATUS
> +**/
> +EFI_STATUS
> +RedfishCheckIfRedpathExist (
> + IN REDFISH_SERVICE RedfishService,
> + IN CHAR8 *Redpath,
> + IN REDFISH_RESPONSE *Response OPTIONAL
> +);
> +
> +/**
> + This function returns the string of Redfish service version.
> +
> + @param[in] RedfishService Redfish service instance.
> + @param[out] ServiceVersionStr Redfish service string.
> +
> + @return EFI_STATUS
> +
> +**/
> +EFI_STATUS
> +RedfishGetServiceVersion(
> + IN REDFISH_SERVICE RedfishService,
> + OUT CHAR8 **ServiceVersionStr
> + );
> +
> +/**
> + This function returns the string of Redfish service version.
> +
> + @param[in] ServiceVerisonStr The string of Redfish service version.
> + @param[in] Url The URL to build Redpath with ID.
> + Start with "/", for example "/Registries"
> + @param[in] Id ID string
> + @param[out] Redpath Pointer to retrive Redpath, caller has to free
> + the memory allocated for this string.
> + @return EFI_STATUS
> +
> +**/
> +EFI_STATUS
> +RedfishBuildRedpathUseId (
> + IN CHAR8 *ServiceVerisonStr,
> + IN CHAR8 *Url,
> + IN CHAR8 *Id,
> + OUT CHAR8 **Redpath
> + );
> +#endif
> --
> 2.21.0.windows.1
>
>
>
>
>
^ permalink raw reply [flat|nested] only message in thread