// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_ENTERPRISE_CONNECTORS_CORE_ANALYSIS_SETTINGS_H_ #define COMPONENTS_ENTERPRISE_CONNECTORS_CORE_ANALYSIS_SETTINGS_H_ #include <memory> #include <string> #include <vector> #include "base/memory/raw_ptr.h" #include "base/memory/raw_span.h" #include "components/enterprise/common/proto/connectors.pb.h" #include "components/enterprise/connectors/core/service_provider_config.h" #include "third_party/abseil-cpp/absl/types/variant.h" #include "url/gurl.h" namespace enterprise_connectors { // A struct representing a custom message and associated "learn more" URL. These // are scoped to a tag. struct CustomMessageData { … }; // A struct representing tag-specific settings that are applied to an analysis // which includes that tag. struct TagSettings { … }; // Enum representing if an analysis should block further interactions with the // browser until its verdict is obtained. enum class BlockUntilVerdict { … }; // Enum representing if an analysis should block further interactions with the // browser if an error occurs. enum class DefaultAction { … }; // Struct holding settings data specific to a cloud analysis. struct CloudAnalysisSettings { … }; // Struct holding settings data specific to a local analysis. struct LocalAnalysisSettings { … }; class CloudOrLocalAnalysisSettings : public absl::variant<CloudAnalysisSettings, LocalAnalysisSettings> { … }; // Main struct holding settings data for the content analysis Connector. struct AnalysisSettings { … }; } // namespace enterprise_connectors #endif // COMPONENTS_ENTERPRISE_CONNECTORS_CORE_ANALYSIS_SETTINGS_H_