Certs: add Interfaces for bulk installation and replacement

The corresponding design is in
https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/49317.

Signed-off-by: Nan Zhou <nanzhoumails@gmail.com>
Change-Id: I969090951a2da59c67cea232f212e664a193425c
diff --git a/gen/xyz/openbmc_project/Certs/InstallAll/meson.build b/gen/xyz/openbmc_project/Certs/InstallAll/meson.build
new file mode 100644
index 0000000..4e1cf0a
--- /dev/null
+++ b/gen/xyz/openbmc_project/Certs/InstallAll/meson.build
@@ -0,0 +1,14 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+    'xyz/openbmc_project/Certs/InstallAll__cpp'.underscorify(),
+    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml',  ],
+    output: [ 'server.cpp', 'server.hpp', 'client.hpp',  ],
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'cpp',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../../yaml',
+        'xyz/openbmc_project/Certs/InstallAll',
+    ],
+)
+
diff --git a/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build b/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build
new file mode 100644
index 0000000..c489a58
--- /dev/null
+++ b/gen/xyz/openbmc_project/Certs/ReplaceAll/meson.build
@@ -0,0 +1,14 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+    'xyz/openbmc_project/Certs/ReplaceAll__cpp'.underscorify(),
+    input: [ '../../../../../yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml',  ],
+    output: [ 'server.cpp', 'server.hpp', 'client.hpp',  ],
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'cpp',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../../yaml',
+        'xyz/openbmc_project/Certs/ReplaceAll',
+    ],
+)
+
diff --git a/gen/xyz/openbmc_project/Certs/meson.build b/gen/xyz/openbmc_project/Certs/meson.build
index 76d838a..416965d 100644
--- a/gen/xyz/openbmc_project/Certs/meson.build
+++ b/gen/xyz/openbmc_project/Certs/meson.build
@@ -82,6 +82,20 @@
     ],
 )
 
+subdir('InstallAll')
+generated_others += custom_target(
+    'xyz/openbmc_project/Certs/InstallAll__markdown'.underscorify(),
+    input: [ '../../../../yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml',  ],
+    output: [ 'InstallAll.md' ],
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'markdown',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../yaml',
+        'xyz/openbmc_project/Certs/InstallAll',
+    ],
+)
+
 subdir('Replace')
 generated_others += custom_target(
     'xyz/openbmc_project/Certs/Replace__markdown'.underscorify(),
@@ -96,3 +110,17 @@
     ],
 )
 
+subdir('ReplaceAll')
+generated_others += custom_target(
+    'xyz/openbmc_project/Certs/ReplaceAll__markdown'.underscorify(),
+    input: [ '../../../../yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml',  ],
+    output: [ 'ReplaceAll.md' ],
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'markdown',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.current_source_dir() / '../../../../yaml',
+        'xyz/openbmc_project/Certs/ReplaceAll',
+    ],
+)
+
diff --git a/yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml b/yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml
new file mode 100644
index 0000000..19d29f7
--- /dev/null
+++ b/yaml/xyz/openbmc_project/Certs/InstallAll.interface.yaml
@@ -0,0 +1,22 @@
+description: >
+    Certificate management interface to install authorities list.
+methods:
+    - name: InstallAll
+      description: >
+          Install the authority list and restart the associated services.
+      parameters:
+        - name: Path
+          type: string
+          description: >
+              Path of the file that contains a list of root certificates.
+
+      returns:
+        - name: ObjectPath
+          type: array[object_path]
+          description: >
+              D-Bus object path to created objects.
+
+      errors:
+        - xyz.openbmc_project.Common.Error.InternalFailure
+        - xyz.openbmc_project.Common.Error.NotAllowed
+        - xyz.openbmc_project.Certs.Error.InvalidCertificate
diff --git a/yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml b/yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml
new file mode 100644
index 0000000..dbbfffe
--- /dev/null
+++ b/yaml/xyz/openbmc_project/Certs/ReplaceAll.interface.yaml
@@ -0,0 +1,21 @@
+description: >
+    Authority Manager's interface to replace existing authorities list.
+methods:
+    - name: ReplaceAll
+      description: >
+          Replace the current authorities list and restart the associated
+          services.
+      parameters:
+        - name: Path
+          type: string
+          description: >
+              Path of file that contains multiple root certificates.
+      returns:
+        - name: ObjectPath
+          type: array[object_path]
+          description: >
+              D-Bus object path to created objects.
+      errors:
+        - xyz.openbmc_project.Common.Error.InternalFailure
+        - xyz.openbmc_project.Certs.Error.InvalidCertificate
+        - xyz.openbmc_project.Common.Error.NotAllowed