File tree Expand file tree Collapse file tree 6 files changed +160
-1
lines changed Expand file tree Collapse file tree 6 files changed +160
-1
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ set(HEADERS config.hpp)
1919set (INSTALL_HEADERS
2020 aos_core_cm_communication
2121 aos_core_cm_fileserver
22+ aos_core_cm_iamclient
2223 aos_core_cm_imagemanager
2324 aos_core_cm_launcher
2425 aos_core_cm_networkmanager
@@ -28,7 +29,7 @@ set(INSTALL_HEADERS
2829 aos_core_cm_storagestate
2930)
3031
31- set (INSTALL_LIBRARIES)
32+ set (INSTALL_LIBRARIES aos_core_cm_imagemanager aos_core_cm_storagestate )
3233
3334if (WITH_TEST)
3435 list (APPEND INSTALL_HEADERS aos_core_cm_tests_mocks)
@@ -53,6 +54,7 @@ set(TARGET_PREFIX ${TARGET_PREFIX}_cm)
5354
5455add_subdirectory (communication)
5556add_subdirectory (fileserver)
57+ add_subdirectory (iamclient)
5658add_subdirectory (imagemanager)
5759add_subdirectory (launcher)
5860add_subdirectory (networkmanager)
Original file line number Diff line number Diff line change 1+ #
2+ # Copyright (C) 2025 EPAM Systems, Inc.
3+ #
4+ # SPDX-License-Identifier: Apache-2.0
5+ #
6+
7+ # ######################################################################################################################
8+ # Target name
9+ # ######################################################################################################################
10+
11+ set (TARGET_NAME iamclient)
12+
13+ # ######################################################################################################################
14+ # Headers
15+ # ######################################################################################################################
16+
17+ set (HEADERS itf/iamclient.hpp)
18+
19+ # ######################################################################################################################
20+ # Target
21+ # ######################################################################################################################
22+
23+ add_module(TARGET_NAME ${TARGET_NAME} HEADERS ${HEADERS} )
24+
25+ # ######################################################################################################################
26+ # Tests
27+ # ######################################################################################################################
28+
29+ if (WITH_TEST)
30+ add_subdirectory (tests)
31+ endif ()
Original file line number Diff line number Diff line change 1+ # IAM client
2+
3+ Provides access to IAM services.
4+
5+ It implements the following interfaces:
6+
7+ * [ aos::iamclient::CertHandlerItf] ( ../../common/iamclient/itf/certhandler.hpp ) -
8+ handles keys and certificates (renew, provisioning);
9+ * [ aos::iamclient::CertProviderItf] ( ../../common/iamclient/itf/certprovider.hpp ) -
10+ provides info about current keys and certificates;
11+ * [ aos::iamclient::NodeHandlerItf] ( ../../common/iamclient/itf/nodehandler.hpp ) - handles nodes states (pause, resume);
12+ * [ aos::iamclient::NodeInfoProviderItf] ( ../../common/iamclient/itf/nodeinfoprovider.hpp ) - provides nodes info;
13+ * [ aos::iamclient::ProvisioningItf] ( ../../common/iamclient/itf/provisioning.hpp ) - performs node provisioning.
14+
15+ ``` mermaid
16+ classDiagram
17+ class IAMClient ["aos::cm::iamclient::IAMClient"] {
18+ }
19+
20+ class CertHandlerItf ["aos::iamclient::CertHandlerItf"] {
21+ <<interface>>
22+ }
23+
24+ class CertProviderItf ["aos::iamclient::CertProviderItf"] {
25+ <<interface>>
26+ }
27+
28+ class NodeHandlerItf ["aos::iamclient::NodeHandlerItf"] {
29+ <<interface>>
30+ }
31+
32+ class NodeInfoProviderItf ["aos::iamclient::NodeInfoProviderItf"] {
33+ <<interface>>
34+ }
35+
36+ class ProvisioningItf ["aos::iamclient::ProvisioningItf"] {
37+ <<interface>>
38+ }
39+
40+ IAMClient <|.. CertHandlerItf
41+ IAMClient <|.. CertProviderItf
42+ IAMClient <|.. NodeHandlerItf
43+ IAMClient <|.. NodeInfoProviderItf
44+ IAMClient <|.. ProvisioningItf
45+ ```
Original file line number Diff line number Diff line change 1+ /*
2+ * Copyright (C) 2025 EPAM Systems, Inc.
3+ *
4+ * SPDX-License-Identifier: Apache-2.0
5+ */
6+
7+ #ifndef AOS_CORE_CM_IAMCLIENT_ITF_IAMCLIENT_HPP_
8+ #define AOS_CORE_CM_IAMCLIENT_ITF_IAMCLIENT_HPP_
9+
10+ #include < core/common/iamclient/itf/certhandler.hpp>
11+ #include < core/common/iamclient/itf/certprovider.hpp>
12+ #include < core/common/iamclient/itf/nodehandler.hpp>
13+ #include < core/common/iamclient/itf/nodeinfoprovider.hpp>
14+ #include < core/common/iamclient/itf/provisioning.hpp>
15+
16+ namespace aos ::cm::iamclient {
17+
18+ /* * @addtogroup cm Communication Manager
19+ * @{
20+ */
21+
22+ /* *
23+ * IAM client interface.
24+ */
25+ class IAMClientItf : public aos ::iamclient::CertHandlerItf,
26+ public aos::iamclient::CertProviderItf,
27+ public aos::iamclient::NodeHandlerItf,
28+ public aos::iamclient::NodeInfoProviderItf,
29+ public aos::iamclient::ProvisioningItf {
30+ public:
31+ /* *
32+ * Destructor.
33+ */
34+ virtual ~IAMClientItf () = default ;
35+ };
36+
37+ /* * @}*/
38+
39+ } // namespace aos::cm::iamclient
40+
41+ #endif
Original file line number Diff line number Diff line change 1+ #
2+ # Copyright (C) 2025 EPAM Systems, Inc.
3+ #
4+ # SPDX-License-Identifier: Apache-2.0
5+ #
6+
7+ set (TARGET_NAME iamclient_test)
8+
9+ # ######################################################################################################################
10+ # Sources
11+ # ######################################################################################################################
12+
13+ set (SOURCES iamclient.cpp)
14+
15+ # ######################################################################################################################
16+ # Libraries
17+ # ######################################################################################################################
18+
19+ set (LIBRARIES GTest::gmock_main)
20+
21+ # ######################################################################################################################
22+ # Target
23+ # ######################################################################################################################
24+
25+ add_test (
26+ TARGET_NAME
27+ ${TARGET_NAME}
28+ LOG_MODULE
29+ SOURCES
30+ ${SOURCES}
31+ LIBRARIES
32+ ${LIBRARIES}
33+ )
Original file line number Diff line number Diff line change 1+ /*
2+ * Copyright (C) 2025 EPAM Systems, Inc.
3+ *
4+ * SPDX-License-Identifier: Apache-2.0
5+ */
6+
7+ #include < core/cm/iamclient/itf/iamclient.hpp>
You can’t perform that action at this time.
0 commit comments