[modular][sdk][api] Move fuchsia.modular.internal.*Config -> fuchsia.modular.session.*Config

This allows these *Config tables to be consumed by a future modular
testing SDK without having to pull in all of the
`fuchsia.modular.internal` namespace.

Test: Existing code compiles.
Change-Id: I32d3519fdc2ea2b10b5ddf22e7e787db011f252c
diff --git a/peridot/bin/basemgr/BUILD.gn b/peridot/bin/basemgr/BUILD.gn
index feba129..d989a44 100644
--- a/peridot/bin/basemgr/BUILD.gn
+++ b/peridot/bin/basemgr/BUILD.gn
@@ -64,6 +64,7 @@
     "//sdk/fidl/fuchsia.modular",
     "//sdk/fidl/fuchsia.modular.auth",
     "//sdk/fidl/fuchsia.modular.internal",
+    "//sdk/fidl/fuchsia.modular.session",
     "//sdk/fidl/fuchsia.sys",
     "//sdk/fidl/fuchsia.ui.app",
     "//sdk/fidl/fuchsia.ui.policy",
@@ -77,7 +78,6 @@
 
   public_deps = [
     "//peridot/bin/basemgr/cobalt:basemgr_metrics_registry",
-    "//sdk/fidl/fuchsia.modular.internal",
   ]
 
   resources = [
@@ -139,6 +139,7 @@
     "//peridot/lib/fidl:json_xdr",
     "//peridot/lib/modular_config",
     "//peridot/public/lib/async/cpp:future",
+    "//sdk/fidl/fuchsia.modular.session",
     "//sdk/fidl/fuchsia.sys",
     "//sdk/fidl/fuchsia.ui.gfx",
     "//sdk/fidl/fuchsia.ui.input",
diff --git a/peridot/bin/basemgr/basemgr_impl.cc b/peridot/bin/basemgr/basemgr_impl.cc
index dff374b..d788972 100644
--- a/peridot/bin/basemgr/basemgr_impl.cc
+++ b/peridot/bin/basemgr/basemgr_impl.cc
@@ -22,15 +22,15 @@
 
 namespace fidl {
 template <>
-// fidl::TypeConverter specialization for fuchsia::modular::internal::AppConfig
+// fidl::TypeConverter specialization for fuchsia::modular::session::AppConfig
 // TODO(MF-277) Convert all usages of fuchsia::modular::AppConfig to
-// fuchsia::modular::internal::AppConfig and remove this converter.
+// fuchsia::modular::session::AppConfig and remove this converter.
 struct TypeConverter<fuchsia::modular::AppConfig,
-                     fuchsia::modular::internal::AppConfig> {
-  // Converts fuchsia::modular::internal::AppConfig to
+                     fuchsia::modular::session::AppConfig> {
+  // Converts fuchsia::modular::session::AppConfig to
   // fuchsia::modular::AppConfig
   static fuchsia::modular::AppConfig Convert(
-      const fuchsia::modular::internal::AppConfig& config) {
+      const fuchsia::modular::session::AppConfig& config) {
     fuchsia::modular::AppConfig app_config;
     app_config.url = config.url().c_str();
 
@@ -68,7 +68,7 @@
 }  // namespace
 
 BasemgrImpl::BasemgrImpl(
-    fuchsia::modular::internal::BasemgrConfig config,
+    fuchsia::modular::session::BasemgrConfig config,
     fuchsia::sys::Launcher* const launcher,
     fuchsia::ui::policy::PresenterPtr presenter,
     fuchsia::devicesettings::DeviceSettingsManagerPtr device_settings_manager,
@@ -383,7 +383,7 @@
       });
 }
 
-fuchsia::modular::internal::SessionShellConfig
+fuchsia::modular::session::SessionShellConfig
 BasemgrImpl::GetActiveSessionShellConfig() {
   return CloneStruct(config_.session_shell_map()
                          .at(active_session_shell_configs_index_)
diff --git a/peridot/bin/basemgr/basemgr_impl.h b/peridot/bin/basemgr/basemgr_impl.h
index bb7ae2e..ca48994 100644
--- a/peridot/bin/basemgr/basemgr_impl.h
+++ b/peridot/bin/basemgr/basemgr_impl.h
@@ -10,6 +10,7 @@
 #include <fuchsia/modular/auth/cpp/fidl.h>
 #include <fuchsia/modular/cpp/fidl.h>
 #include <fuchsia/modular/internal/cpp/fidl.h>
+#include <fuchsia/modular/session/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
 #include <fuchsia/ui/policy/cpp/fidl.h>
 #include <fuchsia/wlan/service/cpp/fidl.h>
@@ -56,7 +57,7 @@
   // reset.
   // |on_shutdown| Callback invoked when this basemgr instance is shutdown.
   explicit BasemgrImpl(
-      fuchsia::modular::internal::BasemgrConfig config,
+      fuchsia::modular::session::BasemgrConfig config,
       fuchsia::sys::Launcher* const launcher,
       fuchsia::ui::policy::PresenterPtr presenter,
       fuchsia::devicesettings::DeviceSettingsManagerPtr device_settings_manager,
@@ -115,7 +116,7 @@
 
   // Returns the session shell config of the active session shell, or returns
   // the a default config if there is no active one.
-  fuchsia::modular::internal::SessionShellConfig GetActiveSessionShellConfig();
+  fuchsia::modular::session::SessionShellConfig GetActiveSessionShellConfig();
 
   // Updates the session shell app config to the active session shell. Done once
   // on initialization and every time the session shells are swapped.
@@ -134,14 +135,14 @@
   void GetPresentation(fidl::InterfaceRequest<fuchsia::ui::policy::Presentation>
                            request) override;
 
-  fuchsia::modular::internal::BasemgrConfig config_;
+  fuchsia::modular::session::BasemgrConfig config_;
 
   // Used to configure which session shell component to launch.
   fuchsia::modular::AppConfig session_shell_config_;
 
   // |active_session_shell_configs_index_| indicates which settings
   // in |config_.session_shell_map()| is currently active.
-  std::vector<fuchsia::modular::internal::SessionShellConfig>::size_type
+  std::vector<fuchsia::modular::session::SessionShellConfig>::size_type
       active_session_shell_configs_index_{};
 
   // Used to launch component instances, such as the base shell.
diff --git a/peridot/bin/basemgr/basemgr_settings.cc b/peridot/bin/basemgr/basemgr_settings.cc
index 86c9d95..fcc0e9c 100644
--- a/peridot/bin/basemgr/basemgr_settings.cc
+++ b/peridot/bin/basemgr/basemgr_settings.cc
@@ -83,9 +83,9 @@
 }
 
 // Temporary way to transform commandline args into FIDL table
-fuchsia::modular::internal::BasemgrConfig
+fuchsia::modular::session::BasemgrConfig
 BasemgrSettings::CreateBasemgrConfig() {
-  fuchsia::modular::internal::BasemgrConfig config;
+  fuchsia::modular::session::BasemgrConfig config;
 
   config.set_enable_cobalt(!disable_statistics);
   config.set_enable_presenter(enable_presenter);
@@ -99,7 +99,7 @@
   config.mutable_base_shell()->set_keep_alive_after_login(
       keep_base_shell_alive_after_login);
 
-  fuchsia::modular::internal::SessionShellMapEntry session_shell_entry;
+  fuchsia::modular::session::SessionShellMapEntry session_shell_entry;
   session_shell_entry.set_name(session_shell.url());
   session_shell_entry.mutable_config()->set_app_config(
       std::move(session_shell));
diff --git a/peridot/bin/basemgr/basemgr_settings.h b/peridot/bin/basemgr/basemgr_settings.h
index 284171c..ce095d3 100644
--- a/peridot/bin/basemgr/basemgr_settings.h
+++ b/peridot/bin/basemgr/basemgr_settings.h
@@ -9,6 +9,7 @@
 
 #include <fuchsia/modular/cpp/fidl.h>
 #include <fuchsia/modular/internal/cpp/fidl.h>
+#include <fuchsia/modular/session/cpp/fidl.h>
 #include <lib/fidl/cpp/string.h>
 #include <src/lib/fxl/command_line.h>
 #include <src/lib/fxl/macros.h>
@@ -25,12 +26,12 @@
 
   // Creates a fidl table of basemgr configurations from the parsed command line
   // arguments.
-  fuchsia::modular::internal::BasemgrConfig CreateBasemgrConfig();
+  fuchsia::modular::session::BasemgrConfig CreateBasemgrConfig();
 
-  fuchsia::modular::internal::AppConfig base_shell;
-  fuchsia::modular::internal::AppConfig story_shell;
-  fuchsia::modular::internal::AppConfig sessionmgr;
-  fuchsia::modular::internal::AppConfig session_shell;
+  fuchsia::modular::session::AppConfig base_shell;
+  fuchsia::modular::session::AppConfig story_shell;
+  fuchsia::modular::session::AppConfig sessionmgr;
+  fuchsia::modular::session::AppConfig session_shell;
 
   std::string test_name;
   bool use_session_shell_for_story_shell_factory;
diff --git a/peridot/bin/basemgr/main.cc b/peridot/bin/basemgr/main.cc
index 0f30e78..95fcddf 100644
--- a/peridot/bin/basemgr/main.cc
+++ b/peridot/bin/basemgr/main.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include <fuchsia/modular/internal/cpp/fidl.h>
+#include <fuchsia/modular/session/cpp/fidl.h>
 #include <lib/async-loop/cpp/loop.h>
 #include <lib/component/cpp/startup_context.h>
 #include <lib/fit/defer.h>
@@ -39,7 +40,7 @@
   return modular::InitializeCobalt(dispatcher, context);
 };
 
-fuchsia::modular::internal::BasemgrConfig CreateBasemgrConfigFromCommandLine(
+fuchsia::modular::session::BasemgrConfig CreateBasemgrConfigFromCommandLine(
     fxl::CommandLine command_line) {
   modular::BasemgrSettings settings(command_line);
   auto config = settings.CreateBasemgrConfig();
@@ -58,14 +59,14 @@
     }
 
     for (auto setting : session_shell_settings) {
-      fuchsia::modular::internal::SessionShellConfig session_shell_config;
+      fuchsia::modular::session::SessionShellConfig session_shell_config;
       session_shell_config.set_display_usage(setting.display_usage);
       session_shell_config.set_screen_height(setting.screen_height);
       session_shell_config.set_screen_width(setting.screen_width);
       session_shell_config.mutable_app_config()->set_url(setting.name);
       session_shell_config.mutable_app_config()->set_args({});
 
-      fuchsia::modular::internal::SessionShellMapEntry entry;
+      fuchsia::modular::session::SessionShellMapEntry entry;
       entry.set_name(setting.name);
       entry.set_config(std::move(session_shell_config));
 
@@ -77,7 +78,7 @@
 }
 
 int main(int argc, const char** argv) {
-  fuchsia::modular::internal::BasemgrConfig config;
+  fuchsia::modular::session::BasemgrConfig config;
 
   if (argc == 1) {
     // Read configurations from file if no command line arguments are passed in.
@@ -102,7 +103,7 @@
   // When auto-login to guest is specified, we use dev_base_shell with user
   // specified such that a persistent guest user is created on first-time boot.
   if (kAutoLoginToGuest) {
-    fuchsia::modular::internal::AppConfig override_base_shell;
+    fuchsia::modular::session::AppConfig override_base_shell;
     override_base_shell.set_url(modular_config::kDefaultBaseShellUrl);
     override_base_shell.mutable_args()->push_back("--user=persistent_guest");
     config.mutable_base_shell()->set_app_config(std::move(override_base_shell));
diff --git a/peridot/bin/basemgr/presentation_container.cc b/peridot/bin/basemgr/presentation_container.cc
index cef6edf..75fa7ad 100644
--- a/peridot/bin/basemgr/presentation_container.cc
+++ b/peridot/bin/basemgr/presentation_container.cc
@@ -20,7 +20,7 @@
 PresentationContainer::PresentationContainer(
     fuchsia::ui::policy::Presenter* const presenter,
     fuchsia::ui::views::ViewHolderToken view_holder_token,
-    fuchsia::modular::internal::SessionShellConfig shell_config,
+    fuchsia::modular::session::SessionShellConfig shell_config,
     fit::function<void()> on_swap_session_shell)
     : presenter_(presenter),
       on_swap_session_shell_(std::move(on_swap_session_shell)) {
diff --git a/peridot/bin/basemgr/presentation_container.h b/peridot/bin/basemgr/presentation_container.h
index c7de93d..1a69cb6 100644
--- a/peridot/bin/basemgr/presentation_container.h
+++ b/peridot/bin/basemgr/presentation_container.h
@@ -5,7 +5,7 @@
 #ifndef PERIDOT_BIN_BASEMGR_PRESENTATION_CONTAINER_H_
 #define PERIDOT_BIN_BASEMGR_PRESENTATION_CONTAINER_H_
 
-#include <fuchsia/modular/internal/cpp/fidl.h>
+#include <fuchsia/modular/session/cpp/fidl.h>
 #include <fuchsia/ui/gfx/cpp/fidl.h>
 #include <fuchsia/ui/input/cpp/fidl.h>
 #include <fuchsia/ui/policy/cpp/fidl.h>
@@ -28,7 +28,7 @@
   explicit PresentationContainer(
       fuchsia::ui::policy::Presenter* const presenter,
       fuchsia::ui::views::ViewHolderToken view_holder_token,
-      fuchsia::modular::internal::SessionShellConfig shell_config,
+      fuchsia::modular::session::SessionShellConfig shell_config,
       fit::function<void()> on_swap_session_shell);
 
   ~PresentationContainer() override;
diff --git a/peridot/bin/modular_test_harness/modular_test_harness_test.cc b/peridot/bin/modular_test_harness/modular_test_harness_test.cc
index 646308b..f7bed5c 100644
--- a/peridot/bin/modular_test_harness/modular_test_harness_test.cc
+++ b/peridot/bin/modular_test_harness/modular_test_harness_test.cc
@@ -33,4 +33,4 @@
 
   ASSERT_TRUE(
       RunLoopWithTimeoutOrUntil([&] { return intercepted; }, zx::sec(5)));
-}
\ No newline at end of file
+}
diff --git a/peridot/bin/sessionmgr/BUILD.gn b/peridot/bin/sessionmgr/BUILD.gn
index b85be50..3de5b70 100644
--- a/peridot/bin/sessionmgr/BUILD.gn
+++ b/peridot/bin/sessionmgr/BUILD.gn
@@ -66,6 +66,7 @@
     "//sdk/fidl/fuchsia.modular",
     "//sdk/fidl/fuchsia.modular.auth",
     "//sdk/fidl/fuchsia.modular.internal",
+    "//sdk/fidl/fuchsia.modular.session",
     "//sdk/fidl/fuchsia.net.oldhttp",
     "//sdk/fidl/fuchsia.speech",
     "//sdk/fidl/fuchsia.sys",
@@ -196,6 +197,7 @@
     "//sdk/fidl/fuchsia.ledger",
     "//sdk/fidl/fuchsia.modular",
     "//sdk/fidl/fuchsia.modular.internal",
+    "//sdk/fidl/fuchsia.modular.session",
     "//sdk/lib/fidl/cpp",
     "//src/lib/fxl",
   ]
diff --git a/peridot/bin/sessionmgr/sessionmgr.cc b/peridot/bin/sessionmgr/sessionmgr.cc
index af31906..9a2191d 100644
--- a/peridot/bin/sessionmgr/sessionmgr.cc
+++ b/peridot/bin/sessionmgr/sessionmgr.cc
@@ -31,7 +31,7 @@
 
 void OverrideConfigFromCommandLine(
     fxl::CommandLine command_line,
-    fuchsia::modular::internal::SessionmgrConfig* config) {
+    fuchsia::modular::session::SessionmgrConfig* config) {
   if (command_line.HasOption(modular_config::kEnableCobalt)) {
     config->set_enable_cobalt(
         command_line.GetOptionValueWithDefault(modular_config::kEnableCobalt,
@@ -51,11 +51,11 @@
   }
 
   if (command_line.HasOption(modular_config::kNoCloudProviderForLedger)) {
-    config->set_cloud_provider(fuchsia::modular::internal::CloudProvider::NONE);
+    config->set_cloud_provider(fuchsia::modular::session::CloudProvider::NONE);
   } else if (command_line.HasOption(
                  modular_config::kUseCloudProviderFromEnvironment)) {
     config->set_cloud_provider(
-        fuchsia::modular::internal::CloudProvider::FROM_ENVIRONMENT);
+        fuchsia::modular::session::CloudProvider::FROM_ENVIRONMENT);
   }
 
   if (command_line.HasOption(modular_config::kStartupAgents)) {
@@ -79,7 +79,7 @@
   // Read configurations from file. This sets default values for any
   // configurations that aren't specified in the configuration.
   modular::ModularConfigReader config_reader;
-  fuchsia::modular::internal::SessionmgrConfig config =
+  fuchsia::modular::session::SessionmgrConfig config =
       config_reader.GetSessionmgrConfig();
 
   if (argc > 1) {
diff --git a/peridot/bin/sessionmgr/sessionmgr_impl.cc b/peridot/bin/sessionmgr/sessionmgr_impl.cc
index 2fb3669..9f0a8c3 100644
--- a/peridot/bin/sessionmgr/sessionmgr_impl.cc
+++ b/peridot/bin/sessionmgr/sessionmgr_impl.cc
@@ -167,7 +167,7 @@
 
 SessionmgrImpl::SessionmgrImpl(
     component::StartupContext* const startup_context,
-    fuchsia::modular::internal::SessionmgrConfig config)
+    fuchsia::modular::session::SessionmgrConfig config)
     : startup_context_(startup_context),
       config_(std::move(config)),
       story_provider_impl_("StoryProviderImpl"),
@@ -318,16 +318,16 @@
   fuchsia::ledger::cloud::CloudProviderPtr cloud_provider;
   std::string ledger_user_id;
   if (account_ && (config_.cloud_provider()) !=
-                      fuchsia::modular::internal::CloudProvider::NONE) {
+                      fuchsia::modular::session::CloudProvider::NONE) {
     // If not running in Guest mode, configure the cloud provider for Ledger to
     // use for syncing.
 
     if ((config_.cloud_provider()) ==
-        fuchsia::modular::internal::CloudProvider::FROM_ENVIRONMENT) {
+        fuchsia::modular::session::CloudProvider::FROM_ENVIRONMENT) {
       startup_context_->ConnectToEnvironmentService(
           cloud_provider.NewRequest());
     } else if (config_.cloud_provider() ==
-               fuchsia::modular::internal::CloudProvider::LET_LEDGER_DECIDE) {
+               fuchsia::modular::session::CloudProvider::LET_LEDGER_DECIDE) {
       cloud_provider = LaunchCloudProvider(account_->profile_id,
                                            std::move(ledger_token_manager));
     }
diff --git a/peridot/bin/sessionmgr/sessionmgr_impl.h b/peridot/bin/sessionmgr/sessionmgr_impl.h
index 92ebdbe..ed81dbc 100644
--- a/peridot/bin/sessionmgr/sessionmgr_impl.h
+++ b/peridot/bin/sessionmgr/sessionmgr_impl.h
@@ -11,6 +11,7 @@
 #include <fuchsia/modular/auth/cpp/fidl.h>
 #include <fuchsia/modular/cpp/fidl.h>
 #include <fuchsia/modular/internal/cpp/fidl.h>
+#include <fuchsia/modular/session/cpp/fidl.h>
 #include <fuchsia/speech/cpp/fidl.h>
 #include <fuchsia/ui/policy/cpp/fidl.h>
 #include <fuchsia/ui/views/cpp/fidl.h>
@@ -60,7 +61,7 @@
                        EntityProviderLauncher {
  public:
   SessionmgrImpl(component::StartupContext* startup_context,
-                 fuchsia::modular::internal::SessionmgrConfig config);
+                 fuchsia::modular::session::SessionmgrConfig config);
   ~SessionmgrImpl() override;
 
   // |AppDriver| calls this.
@@ -195,7 +196,7 @@
   std::string session_id_;
 
   component::StartupContext* const startup_context_;
-  fuchsia::modular::internal::SessionmgrConfig config_;
+  fuchsia::modular::session::SessionmgrConfig config_;
   std::unique_ptr<scoped_tmpfs::ScopedTmpFS> memfs_for_ledger_;
 
   fidl::BindingSet<fuchsia::modular::internal::Sessionmgr> bindings_;
diff --git a/peridot/lib/modular_config/BUILD.gn b/peridot/lib/modular_config/BUILD.gn
index d591411..bdde080 100644
--- a/peridot/lib/modular_config/BUILD.gn
+++ b/peridot/lib/modular_config/BUILD.gn
@@ -16,6 +16,7 @@
     "//garnet/public/lib/json",
     "//peridot/lib/fidl:json_xdr",
     "//sdk/fidl/fuchsia.modular",
+    "//sdk/fidl/fuchsia.modular.session",
     "//sdk/fidl/fuchsia.modular.internal",
   ]
 }
@@ -30,6 +31,7 @@
   deps = [
     "//peridot/lib/fidl:json_xdr",
     "//sdk/fidl/fuchsia.modular",
+    "//sdk/fidl/fuchsia.modular.session",
     "//sdk/fidl/fuchsia.modular.internal",
   ]
 }
@@ -45,6 +47,7 @@
     ":json_xdr",
     "//garnet/public/lib/fxl",
     "//peridot/lib/rapidjson",
+    "//sdk/fidl/fuchsia.modular.session",
     "//sdk/fidl/fuchsia.modular.internal",
     "//third_party/googletest:gtest",
     "//third_party/rapidjson",
diff --git a/peridot/lib/modular_config/modular_config.cc b/peridot/lib/modular_config/modular_config.cc
index 5564b12..d5c78c83 100644
--- a/peridot/lib/modular_config/modular_config.cc
+++ b/peridot/lib/modular_config/modular_config.cc
@@ -14,7 +14,7 @@
 ModularConfigReader::ModularConfigReader() {}
 ModularConfigReader::~ModularConfigReader() {}
 
-fuchsia::modular::internal::BasemgrConfig
+fuchsia::modular::session::BasemgrConfig
 ModularConfigReader::GetBasemgrConfig() {
   std::string config_path;
   if (files::IsFile(modular_config::kOverridenStartupConfigPath)) {
@@ -28,7 +28,7 @@
       GetConfigAsString(modular_config::kBasemgrConfigName, config_path);
 
   // Parse with xdr
-  fuchsia::modular::internal::BasemgrConfig basemgr_config;
+  fuchsia::modular::session::BasemgrConfig basemgr_config;
   if (!basemgr_config_str.empty() &&
       !XdrRead(basemgr_config_str, &basemgr_config, XdrBasemgrConfig)) {
     FXL_LOG(ERROR) << "Unable to parse startup.json";
@@ -37,7 +37,7 @@
   return basemgr_config;
 }
 
-fuchsia::modular::internal::SessionmgrConfig
+fuchsia::modular::session::SessionmgrConfig
 ModularConfigReader::GetSessionmgrConfig() {
   // Get sessionmgr config section from file
   auto sessionmgr_config_str =
@@ -45,7 +45,7 @@
                         modular_config::kOverridenStartupConfigPath);
 
   // Parse with xdr
-  fuchsia::modular::internal::SessionmgrConfig sessionmgr_config;
+  fuchsia::modular::session::SessionmgrConfig sessionmgr_config;
   if (!XdrRead(sessionmgr_config_str, &sessionmgr_config,
                XdrSessionmgrConfig)) {
     FXL_LOG(ERROR) << "Unable to parse startup.json";
@@ -54,9 +54,9 @@
   return sessionmgr_config;
 }
 
-fuchsia::modular::internal::SessionmgrConfig
+fuchsia::modular::session::SessionmgrConfig
 ModularConfigReader::GetDefaultSessionmgrConfig() {
-  fuchsia::modular::internal::SessionmgrConfig sessionmgr_config;
+  fuchsia::modular::session::SessionmgrConfig sessionmgr_config;
   XdrRead("\"\"", &sessionmgr_config, XdrSessionmgrConfig);
   return sessionmgr_config;
 }
diff --git a/peridot/lib/modular_config/modular_config.h b/peridot/lib/modular_config/modular_config.h
index aef8708..c8ae624 100644
--- a/peridot/lib/modular_config/modular_config.h
+++ b/peridot/lib/modular_config/modular_config.h
@@ -6,6 +6,7 @@
 #define PERIDOT_LIB_MODULAR_CONFIG_MODULAR_CONFIG_H_
 
 #include <fuchsia/modular/internal/cpp/fidl.h>
+#include <fuchsia/modular/session/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
 
 namespace modular {
@@ -16,14 +17,14 @@
   ~ModularConfigReader();
 
   // Reads basemgr configs from startup.config and parses it into a fidl table
-  fuchsia::modular::internal::BasemgrConfig GetBasemgrConfig();
+  fuchsia::modular::session::BasemgrConfig GetBasemgrConfig();
 
   // Reads sessionmgr configs from startup.config and parses it into a fidl
   // table
-  fuchsia::modular::internal::SessionmgrConfig GetSessionmgrConfig();
+  fuchsia::modular::session::SessionmgrConfig GetSessionmgrConfig();
 
   // Returns a SessionmgrConfig with all default values
-  fuchsia::modular::internal::SessionmgrConfig GetDefaultSessionmgrConfig();
+  fuchsia::modular::session::SessionmgrConfig GetDefaultSessionmgrConfig();
 
  private:
   // Reads startup.config into a string if the file exists. Otherwise, returns
diff --git a/peridot/lib/modular_config/modular_config_xdr.cc b/peridot/lib/modular_config/modular_config_xdr.cc
index aa9ea30..128852e 100644
--- a/peridot/lib/modular_config/modular_config_xdr.cc
+++ b/peridot/lib/modular_config/modular_config_xdr.cc
@@ -11,7 +11,7 @@
 
 void XdrBaseShellConfig(
     XdrContext* const xdr,
-    fuchsia::modular::internal::BaseShellConfig* const data) {
+    fuchsia::modular::session::BaseShellConfig* const data) {
   bool has_url = false;
   if (data->has_app_config()) {
     has_url = data->app_config().has_url();
@@ -63,7 +63,7 @@
 
 void XdrSessionShellMapEntry(
     XdrContext* const xdr,
-    fuchsia::modular::internal::SessionShellMapEntry* const data) {
+    fuchsia::modular::session::SessionShellMapEntry* const data) {
   bool has_name = data->has_name();
   xdr->FieldWithDefault(modular_config::kUrl, data->mutable_name(), has_name,
                         std::string(modular_config::kDefaultSessionShellUrl));
@@ -109,7 +109,7 @@
 }
 
 void XdrComponentArgs(XdrContext* const xdr,
-                      fuchsia::modular::internal::AppConfig* const data) {
+                      fuchsia::modular::session::AppConfig* const data) {
   xdr->Field(modular_config::kUri, data->mutable_url());
 
   bool has_args = data->has_args();
@@ -118,28 +118,28 @@
                         default_args);
 }
 
-std::vector<fuchsia::modular::internal::SessionShellMapEntry>
+std::vector<fuchsia::modular::session::SessionShellMapEntry>
 GetDefaultSessionShellMap() {
-  fuchsia::modular::internal::SessionShellConfig config;
+  fuchsia::modular::session::SessionShellConfig config;
   config.mutable_app_config()->set_url(modular_config::kDefaultSessionShellUrl);
   config.mutable_app_config()->set_args(std::vector<std::string>());
   config.set_display_usage(fuchsia::ui::policy::DisplayUsage::kUnknown);
   config.set_screen_height(0);
   config.set_screen_width(0);
 
-  fuchsia::modular::internal::SessionShellMapEntry map_entry;
+  fuchsia::modular::session::SessionShellMapEntry map_entry;
   map_entry.set_name(modular_config::kDefaultSessionShellUrl);
   map_entry.set_config(std::move(config));
 
-  std::vector<fuchsia::modular::internal::SessionShellMapEntry>
+  std::vector<fuchsia::modular::session::SessionShellMapEntry>
       session_shell_map(1);
   session_shell_map.at(0) = std::move(map_entry);
 
   return session_shell_map;
 }
 
-fuchsia::modular::internal::BaseShellConfig GetDefaultBaseShellConfig() {
-  fuchsia::modular::internal::BaseShellConfig base_shell_config;
+fuchsia::modular::session::BaseShellConfig GetDefaultBaseShellConfig() {
+  fuchsia::modular::session::BaseShellConfig base_shell_config;
   base_shell_config.mutable_app_config()->set_url(
       modular_config::kDefaultBaseShellUrl);
   base_shell_config.mutable_app_config()->set_args(std::vector<std::string>());
@@ -148,34 +148,33 @@
   return base_shell_config;
 }
 
-fuchsia::modular::internal::CloudProvider GetCloudProviderFromString(
+fuchsia::modular::session::CloudProvider GetCloudProviderFromString(
     std::string provider) {
   if (provider == modular_config::kFromEnvironment) {
-    return fuchsia::modular::internal::CloudProvider::FROM_ENVIRONMENT;
+    return fuchsia::modular::session::CloudProvider::FROM_ENVIRONMENT;
   } else if (provider == modular_config::kNone) {
-    return fuchsia::modular::internal::CloudProvider::NONE;
+    return fuchsia::modular::session::CloudProvider::NONE;
   }
 
-  return fuchsia::modular::internal::CloudProvider::LET_LEDGER_DECIDE;
+  return fuchsia::modular::session::CloudProvider::LET_LEDGER_DECIDE;
 }
 
 std::string GetCloudProviderAsString(
-    fuchsia::modular::internal::CloudProvider provider) {
+    fuchsia::modular::session::CloudProvider provider) {
   switch (provider) {
-    case fuchsia::modular::internal::CloudProvider::LET_LEDGER_DECIDE:
+    case fuchsia::modular::session::CloudProvider::LET_LEDGER_DECIDE:
       return modular_config::kLetLedgerDecide;
-    case fuchsia::modular::internal::CloudProvider::FROM_ENVIRONMENT:
+    case fuchsia::modular::session::CloudProvider::FROM_ENVIRONMENT:
       return modular_config::kFromEnvironment;
-    case fuchsia::modular::internal::CloudProvider::NONE:
+    case fuchsia::modular::session::CloudProvider::NONE:
       return modular_config::kNone;
   }
 }
 
 }  // namespace
 
-void XdrBasemgrConfig_v1(
-    XdrContext* const xdr,
-    fuchsia::modular::internal::BasemgrConfig* const data) {
+void XdrBasemgrConfig_v1(XdrContext* const xdr,
+                         fuchsia::modular::session::BasemgrConfig* const data) {
   bool has_enable_cobalt = data->has_enable_cobalt();
   xdr->FieldWithDefault(modular_config::kEnableCobalt,
                         data->mutable_enable_cobalt(), has_enable_cobalt, true);
@@ -236,7 +235,7 @@
 
 void XdrSessionmgrConfig_v1(
     XdrContext* const xdr,
-    fuchsia::modular::internal::SessionmgrConfig* const data) {
+    fuchsia::modular::session::SessionmgrConfig* const data) {
   bool has_cloud_provider = data->has_cloud_provider();
 
   std::string cloud_provider_str = modular_config::kLetLedgerDecide;
@@ -283,7 +282,7 @@
                         data->mutable_session_agents(), has_session_agents,
                         default_agents);
 
-  std::vector<fuchsia::modular::internal::AppConfig> default_component_args;
+  std::vector<fuchsia::modular::session::AppConfig> default_component_args;
   bool has_component_args = data->has_component_args();
   xdr->FieldWithDefault(modular_config::kComponentArgs,
                         data->mutable_component_args(), XdrComponentArgs,
diff --git a/peridot/lib/modular_config/modular_config_xdr.h b/peridot/lib/modular_config/modular_config_xdr.h
index 46ffd76..d849f61 100644
--- a/peridot/lib/modular_config/modular_config_xdr.h
+++ b/peridot/lib/modular_config/modular_config_xdr.h
@@ -6,27 +6,28 @@
 #define PERIDOT_LIB_MODULAR_CONFIG_MODULAR_CONFIG_XDR_H_
 
 #include <fuchsia/modular/internal/cpp/fidl.h>
+#include <fuchsia/modular/session/cpp/fidl.h>
 
 #include "peridot/lib/fidl/json_xdr.h"
 
 namespace modular {
 
 // Serialization and deserialization of
-// fuchsia::modular::internal::BasemgrConfig to and from JSON
+// fuchsia::modular::session::BasemgrConfig to and from JSON
 void XdrBasemgrConfig_v1(XdrContext* const xdr,
-                         fuchsia::modular::internal::BasemgrConfig* const data);
+                         fuchsia::modular::session::BasemgrConfig* const data);
 
 void XdrSessionmgrConfig_v1(
     XdrContext* const xdr,
-    fuchsia::modular::internal::SessionmgrConfig* const data);
+    fuchsia::modular::session::SessionmgrConfig* const data);
 
-constexpr XdrFilterType<fuchsia::modular::internal::BasemgrConfig>
+constexpr XdrFilterType<fuchsia::modular::session::BasemgrConfig>
     XdrBasemgrConfig[] = {
         XdrBasemgrConfig_v1,
         nullptr,
 };
 
-constexpr XdrFilterType<fuchsia::modular::internal::SessionmgrConfig>
+constexpr XdrFilterType<fuchsia::modular::session::SessionmgrConfig>
     XdrSessionmgrConfig[] = {
         XdrSessionmgrConfig_v1,
         nullptr,
diff --git a/peridot/lib/modular_config/modular_config_xdr_unittest.cc b/peridot/lib/modular_config/modular_config_xdr_unittest.cc
index 5dc6608..55ee246 100644
--- a/peridot/lib/modular_config/modular_config_xdr_unittest.cc
+++ b/peridot/lib/modular_config/modular_config_xdr_unittest.cc
@@ -5,6 +5,7 @@
 #include "peridot/lib/modular_config/modular_config_xdr.h"
 
 #include <fuchsia/modular/internal/cpp/fidl.h>
+#include <fuchsia/modular/session/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
 
 #include <algorithm>
@@ -20,7 +21,7 @@
 // contains no values.
 TEST(ModularConfigXdr, BasemgrDefaultValues) {
   std::string write_json;
-  fuchsia::modular::internal::BasemgrConfig write_config;
+  fuchsia::modular::session::BasemgrConfig write_config;
   XdrWrite(&write_json, &write_config, XdrBasemgrConfig);
 
   std::string expected_json = R"({
@@ -50,7 +51,7 @@
   EXPECT_EQ(expected_json, write_json);
 
   std::string read_json = "\"\"";
-  fuchsia::modular::internal::BasemgrConfig read_config;
+  fuchsia::modular::session::BasemgrConfig read_config;
   EXPECT_TRUE(XdrRead(read_json, &read_config, XdrBasemgrConfig));
 
   EXPECT_EQ(true, read_config.enable_cobalt());
@@ -85,7 +86,7 @@
 // contains no values.
 TEST(ModularConfigXdr, SessionmgrDefaultValues) {
   std::string write_json;
-  fuchsia::modular::internal::SessionmgrConfig write_config;
+  fuchsia::modular::session::SessionmgrConfig write_config;
   XdrWrite(&write_json, &write_config, XdrSessionmgrConfig);
 
   std::string expected_json = R"({
@@ -104,10 +105,10 @@
   EXPECT_EQ(expected_json, write_json);
 
   std::string read_json = "\"\"";
-  fuchsia::modular::internal::SessionmgrConfig read_config;
+  fuchsia::modular::session::SessionmgrConfig read_config;
   EXPECT_TRUE(XdrRead(read_json, &read_config, XdrSessionmgrConfig));
 
-  EXPECT_EQ(fuchsia::modular::internal::CloudProvider::LET_LEDGER_DECIDE,
+  EXPECT_EQ(fuchsia::modular::session::CloudProvider::LET_LEDGER_DECIDE,
             read_config.cloud_provider());
   EXPECT_TRUE(read_config.enable_cobalt());
   EXPECT_TRUE(read_config.enable_story_shell_preload());
diff --git a/peridot/public/lib/modular_test_harness/cpp/modular_testing_cpp.api b/peridot/public/lib/modular_test_harness/cpp/modular_testing_cpp.api
new file mode 100644
index 0000000..cb3d21e
--- /dev/null
+++ b/peridot/public/lib/modular_test_harness/cpp/modular_testing_cpp.api
@@ -0,0 +1,3 @@
+{
+  "pkg/modular_testing_cpp/include/lib/modular/testing/cpp/test_harness_fixture.h": "3f6b1138713ff23549f53cd2a0175470"
+}
\ No newline at end of file
diff --git a/peridot/public/lib/modular_test_harness/cpp/test_harness_impl.cc b/peridot/public/lib/modular_test_harness/cpp/test_harness_impl.cc
index 4cd1f2f..f050018 100644
--- a/peridot/public/lib/modular_test_harness/cpp/test_harness_impl.cc
+++ b/peridot/public/lib/modular_test_harness/cpp/test_harness_impl.cc
@@ -254,7 +254,7 @@
   // Empty intiialize sessionmgr config if it isn't set, so we can continue to
   // use it for default-initializing some fields below.
   if (!spec.has_sessionmgr_config()) {
-    spec.set_sessionmgr_config(fuchsia::modular::internal::SessionmgrConfig{});
+    spec.set_sessionmgr_config(fuchsia::modular::session::SessionmgrConfig{});
   }
 
   if (!spec.sessionmgr_config().has_use_memfs_for_ledger() ||
@@ -263,7 +263,7 @@
   }
   if (!spec.sessionmgr_config().has_cloud_provider() ||
       spec.sessionmgr_config().cloud_provider() ==
-          fuchsia::modular::internal::CloudProvider::NONE) {
+          fuchsia::modular::session::CloudProvider::NONE) {
     sessionmgr_args.push_back("--no_cloud_provider_for_ledger");
   }
   if (spec.sessionmgr_config().has_session_agents()) {
diff --git a/sdk/fidl/fuchsia.modular.internal/BUILD.gn b/sdk/fidl/fuchsia.modular.internal/BUILD.gn
index 3d2c879..22c23e8 100644
--- a/sdk/fidl/fuchsia.modular.internal/BUILD.gn
+++ b/sdk/fidl/fuchsia.modular.internal/BUILD.gn
@@ -7,7 +7,6 @@
 fidl("fuchsia.modular.internal") {
   sources = [
     "basemgr_debug.fidl",
-    "modular_config.fidl",
     "sessionmgr.fidl",
     "story_data.fidl",
   ]
diff --git a/sdk/fidl/fuchsia.modular.session/BUILD.gn b/sdk/fidl/fuchsia.modular.session/BUILD.gn
new file mode 100644
index 0000000..c884d35
--- /dev/null
+++ b/sdk/fidl/fuchsia.modular.session/BUILD.gn
@@ -0,0 +1,15 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/fidl/fidl.gni")
+
+fidl("fuchsia.modular.session") {
+  sources = [
+    "modular_config.fidl",
+  ]
+  deps = [
+    "//sdk/fidl/fuchsia.ui.policy",
+    "//zircon/public/fidl/fuchsia-io",
+  ]
+}
diff --git a/sdk/fidl/fuchsia.modular.internal/modular_config.fidl b/sdk/fidl/fuchsia.modular.session/modular_config.fidl
similarity index 98%
rename from sdk/fidl/fuchsia.modular.internal/modular_config.fidl
rename to sdk/fidl/fuchsia.modular.session/modular_config.fidl
index 72b169a..2d47414 100644
--- a/sdk/fidl/fuchsia.modular.internal/modular_config.fidl
+++ b/sdk/fidl/fuchsia.modular.session/modular_config.fidl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-library fuchsia.modular.internal;
+library fuchsia.modular.session;
 
 using fuchsia.io;
 using fuchsia.ui.policy;
diff --git a/sdk/fidl/fuchsia.modular.testing/BUILD.gn b/sdk/fidl/fuchsia.modular.testing/BUILD.gn
index db3ad86..30cefd3 100644
--- a/sdk/fidl/fuchsia.modular.testing/BUILD.gn
+++ b/sdk/fidl/fuchsia.modular.testing/BUILD.gn
@@ -11,7 +11,7 @@
 
   deps = [
     "//sdk/fidl/fuchsia.modular",
-    "//sdk/fidl/fuchsia.modular.internal",
+    "//sdk/fidl/fuchsia.modular.session",
     "//sdk/fidl/fuchsia.sys",
     "//zircon/public/fidl/fuchsia-io",
     "//zircon/public/fidl/fuchsia-mem",
diff --git a/sdk/fidl/fuchsia.modular.testing/test_harness.fidl b/sdk/fidl/fuchsia.modular.testing/test_harness.fidl
index 5dc73aa..caa9139 100644
--- a/sdk/fidl/fuchsia.modular.testing/test_harness.fidl
+++ b/sdk/fidl/fuchsia.modular.testing/test_harness.fidl
@@ -7,7 +7,7 @@
 using fuchsia.io;
 using fuchsia.mem;
 using fuchsia.modular;
-using fuchsia.modular.internal;
+using fuchsia.modular.session;
 using fuchsia.sys;
 
 /// The |TestHarness| service is used to run the modular runtime under a
@@ -143,7 +143,7 @@
     ///  * test (default = true)
     ///
     /// All other fields are ignored, and must not be set.
-    4: fuchsia.modular.internal.BasemgrConfig basemgr_config;
+    4: fuchsia.modular.session.BasemgrConfig basemgr_config;
 
     /// The test harness starts the modular runtime in a hermetic environment
     /// which does not allow accessing services outside of the environment,
@@ -161,7 +161,7 @@
     ///  * session_agents (default = empty)
     ///
     ///  All other fields are ignored, and must not be set.
-    6: fuchsia.modular.internal.SessionmgrConfig sessionmgr_config;
+    6: fuchsia.modular.session.SessionmgrConfig sessionmgr_config;
 
     /// List of component URLs (and additional .cmx contents) to intercept.
     7: vector<InterceptSpec> components_to_intercept;