14654d99fSRichard Marian Thomaiyar /*
24654d99fSRichard Marian Thomaiyar // Copyright (c) 2018 Intel Corporation
34654d99fSRichard Marian Thomaiyar //
44654d99fSRichard Marian Thomaiyar // Licensed under the Apache License, Version 2.0 (the "License");
54654d99fSRichard Marian Thomaiyar // you may not use this file except in compliance with the License.
64654d99fSRichard Marian Thomaiyar // You may obtain a copy of the License at
74654d99fSRichard Marian Thomaiyar //
84654d99fSRichard Marian Thomaiyar //      http://www.apache.org/licenses/LICENSE-2.0
94654d99fSRichard Marian Thomaiyar //
104654d99fSRichard Marian Thomaiyar // Unless required by applicable law or agreed to in writing, software
114654d99fSRichard Marian Thomaiyar // distributed under the License is distributed on an "AS IS" BASIS,
124654d99fSRichard Marian Thomaiyar // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134654d99fSRichard Marian Thomaiyar // See the License for the specific language governing permissions and
144654d99fSRichard Marian Thomaiyar // limitations under the License.
154654d99fSRichard Marian Thomaiyar */
164654d99fSRichard Marian Thomaiyar #pragma once
174654d99fSRichard Marian Thomaiyar #include <host-ipmid/ipmid-api.h>
184654d99fSRichard Marian Thomaiyar 
194654d99fSRichard Marian Thomaiyar #include <string>
204654d99fSRichard Marian Thomaiyar 
214654d99fSRichard Marian Thomaiyar namespace ipmi
224654d99fSRichard Marian Thomaiyar {
234654d99fSRichard Marian Thomaiyar /** @brief The ipmi get user password layer call
244654d99fSRichard Marian Thomaiyar  *
254654d99fSRichard Marian Thomaiyar  *  @param[in] userName
264654d99fSRichard Marian Thomaiyar  *
274654d99fSRichard Marian Thomaiyar  *  @return password or empty string
284654d99fSRichard Marian Thomaiyar  */
294654d99fSRichard Marian Thomaiyar std::string ipmiUserGetPassword(const std::string& userName);
304654d99fSRichard Marian Thomaiyar 
31b29b5ab3SAppaRao Puli /** @brief The IPMI call to clear password entry associated with specified
32b29b5ab3SAppaRao Puli  * username
33b29b5ab3SAppaRao Puli  *
34b29b5ab3SAppaRao Puli  *  @param[in] userName
35b29b5ab3SAppaRao Puli  *
36b29b5ab3SAppaRao Puli  *  @return 0 on success, non-zero otherwise.
37b29b5ab3SAppaRao Puli  */
38*42bed64dSRichard Marian Thomaiyar ipmi_ret_t ipmiClearUserEntryPassword(const std::string& userName);
39*42bed64dSRichard Marian Thomaiyar 
40*42bed64dSRichard Marian Thomaiyar /** @brief The IPMI call to reuse password entry for the renamed user
41*42bed64dSRichard Marian Thomaiyar  *  to another one
42*42bed64dSRichard Marian Thomaiyar  *
43*42bed64dSRichard Marian Thomaiyar  *  @param[in] userName
44*42bed64dSRichard Marian Thomaiyar  *  @param[in] newUserName
45*42bed64dSRichard Marian Thomaiyar  *
46*42bed64dSRichard Marian Thomaiyar  *  @return 0 on success, non-zero otherwise.
47*42bed64dSRichard Marian Thomaiyar  */
48*42bed64dSRichard Marian Thomaiyar ipmi_ret_t ipmiRenameUserEntryPassword(const std::string& userName,
49*42bed64dSRichard Marian Thomaiyar                                        const std::string& newUserName);
50b29b5ab3SAppaRao Puli 
514654d99fSRichard Marian Thomaiyar // TODO: Define required user layer API Call's which user layer shared library
524654d99fSRichard Marian Thomaiyar // must implement.
534654d99fSRichard Marian Thomaiyar } // namespace ipmi
54