// components/policy/resources/webui/mojom/policy.mojom-send-validation.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2025 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_POLICY_RESOURCES_WEBUI_MOJOM_POLICY_MOJOM_SEND_VALIDATION_H_
#define COMPONENTS_POLICY_RESOURCES_WEBUI_MOJOM_POLICY_MOJOM_SEND_VALIDATION_H_

#include "components/policy/resources/webui/mojom/policy.mojom-shared-internal.h"
#include "mojo/public/mojom/base/values.mojom-shared.h"

#include "components/policy/resources/webui/mojom/policy.mojom-data-view.h"

#include "mojo/public/cpp/bindings/lib/send_validation_type.h"
#include "mojo/public/cpp/bindings/lib/send_validation.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization_send_validation.h"
#include "mojo/public/cpp/bindings/lib/has_send_validation_helper.h"

namespace mojo::internal {
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::policy::mojom::GetPoliciesReason, MaybeConstUserType>
    : std::false_type {};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::policy::mojom::LogDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::LogDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::Log_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::message(input)) in_message = Traits::message(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->message)::BaseType> message_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_message,
        message_fragment);

      fragment->message.Set(
          message_fragment.is_null() ? nullptr : message_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->message.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null message in Log struct");

      decltype(Traits::log_severity(input)) in_log_severity = Traits::log_severity(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->log_severity)::BaseType> log_severity_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_log_severity,
        log_severity_fragment);

      fragment->log_severity.Set(
          log_severity_fragment.is_null() ? nullptr : log_severity_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->log_severity.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null log_severity in Log struct");

      decltype(Traits::log_source(input)) in_log_source = Traits::log_source(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->log_source)::BaseType> log_source_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_log_source,
        log_source_fragment);

      fragment->log_source.Set(
          log_source_fragment.is_null() ? nullptr : log_source_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->log_source.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null log_source in Log struct");

      decltype(Traits::file_and_line(input)) in_file_and_line = Traits::file_and_line(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->file_and_line)::BaseType> file_and_line_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_file_and_line,
        file_and_line_fragment);

      fragment->file_and_line.Set(
          file_and_line_fragment.is_null() ? nullptr : file_and_line_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->file_and_line.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null file_and_line in Log struct");

      decltype(Traits::location(input)) in_location = Traits::location(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->location)::BaseType> location_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_location,
        location_fragment);

      fragment->location.Set(
          location_fragment.is_null() ? nullptr : location_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->location.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null location in Log struct");

      decltype(Traits::timestamp(input)) in_timestamp = Traits::timestamp(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->timestamp)::BaseType> timestamp_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_timestamp,
        timestamp_fragment);

      fragment->timestamp.Set(
          timestamp_fragment.is_null() ? nullptr : timestamp_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->timestamp.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null timestamp in Log struct");
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::policy::mojom::StatusDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::StatusDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::Status_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::policy_description_key(input)) in_policy_description_key = Traits::policy_description_key(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->policy_description_key)::BaseType> policy_description_key_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_policy_description_key,
        policy_description_key_fragment);

      fragment->policy_description_key.Set(
          policy_description_key_fragment.is_null() ? nullptr : policy_description_key_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->policy_description_key.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null policy_description_key in Status struct");

      fragment->flex_org_warning = Traits::flex_org_warning(input);

      decltype(Traits::asset_id(input)) in_asset_id = Traits::asset_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->asset_id)::BaseType> asset_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_asset_id,
        asset_id_fragment);

      fragment->asset_id.Set(
          asset_id_fragment.is_null() ? nullptr : asset_id_fragment.data());

      decltype(Traits::location(input)) in_location = Traits::location(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->location)::BaseType> location_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_location,
        location_fragment);

      fragment->location.Set(
          location_fragment.is_null() ? nullptr : location_fragment.data());

      decltype(Traits::directory_api_id(input)) in_directory_api_id = Traits::directory_api_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->directory_api_id)::BaseType> directory_api_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_directory_api_id,
        directory_api_id_fragment);

      fragment->directory_api_id.Set(
          directory_api_id_fragment.is_null() ? nullptr : directory_api_id_fragment.data());

      decltype(Traits::client_id(input)) in_client_id = Traits::client_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->client_id)::BaseType> client_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_client_id,
        client_id_fragment);

      fragment->client_id.Set(
          client_id_fragment.is_null() ? nullptr : client_id_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->client_id.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null client_id in Status struct");
      fragment->is_off_hours_active_$flag = Traits::is_off_hours_active(input).has_value();
      if (Traits::is_off_hours_active(input).has_value()) {
        fragment->is_off_hours_active_$value = Traits::is_off_hours_active(input).value();
      }

      decltype(Traits::device_id(input)) in_device_id = Traits::device_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->device_id)::BaseType> device_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_device_id,
        device_id_fragment);

      fragment->device_id.Set(
          device_id_fragment.is_null() ? nullptr : device_id_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->device_id.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null device_id in Status struct");

      decltype(Traits::enrollment_token(input)) in_enrollment_token = Traits::enrollment_token(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->enrollment_token)::BaseType> enrollment_token_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_enrollment_token,
        enrollment_token_fragment);

      fragment->enrollment_token.Set(
          enrollment_token_fragment.is_null() ? nullptr : enrollment_token_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->enrollment_token.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null enrollment_token in Status struct");

      decltype(Traits::domain(input)) in_domain = Traits::domain(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->domain)::BaseType> domain_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_domain,
        domain_fragment);

      fragment->domain.Set(
          domain_fragment.is_null() ? nullptr : domain_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->domain.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null domain in Status struct");

      decltype(Traits::machine(input)) in_machine = Traits::machine(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->machine)::BaseType> machine_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_machine,
        machine_fragment);

      fragment->machine.Set(
          machine_fragment.is_null() ? nullptr : machine_fragment.data());

      decltype(Traits::version(input)) in_version = Traits::version(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->version)::BaseType> version_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_version,
        version_fragment);

      fragment->version.Set(
          version_fragment.is_null() ? nullptr : version_fragment.data());

      decltype(Traits::username(input)) in_username = Traits::username(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->username)::BaseType> username_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_username,
        username_fragment);

      fragment->username.Set(
          username_fragment.is_null() ? nullptr : username_fragment.data());

      decltype(Traits::gaia_id(input)) in_gaia_id = Traits::gaia_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->gaia_id)::BaseType> gaia_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_gaia_id,
        gaia_id_fragment);

      fragment->gaia_id.Set(
          gaia_id_fragment.is_null() ? nullptr : gaia_id_fragment.data());

      decltype(Traits::profile_id(input)) in_profile_id = Traits::profile_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->profile_id)::BaseType> profile_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_profile_id,
        profile_id_fragment);

      fragment->profile_id.Set(
          profile_id_fragment.is_null() ? nullptr : profile_id_fragment.data());

      decltype(Traits::status(input)) in_status = Traits::status(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->status)::BaseType> status_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_status,
        status_fragment);

      fragment->status.Set(
          status_fragment.is_null() ? nullptr : status_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->status.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null status in Status struct");

      decltype(Traits::extension_install_status(input)) in_extension_install_status = Traits::extension_install_status(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->extension_install_status)::BaseType> extension_install_status_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_extension_install_status,
        extension_install_status_fragment);

      fragment->extension_install_status.Set(
          extension_install_status_fragment.is_null() ? nullptr : extension_install_status_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->extension_install_status.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null extension_install_status in Status struct");

      decltype(Traits::refresh_interval(input)) in_refresh_interval = Traits::refresh_interval(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->refresh_interval)::BaseType> refresh_interval_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_refresh_interval,
        refresh_interval_fragment);

      fragment->refresh_interval.Set(
          refresh_interval_fragment.is_null() ? nullptr : refresh_interval_fragment.data());

      decltype(Traits::time_since_last_refresh(input)) in_time_since_last_refresh = Traits::time_since_last_refresh(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->time_since_last_refresh)::BaseType> time_since_last_refresh_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_time_since_last_refresh,
        time_since_last_refresh_fragment);

      fragment->time_since_last_refresh.Set(
          time_since_last_refresh_fragment.is_null() ? nullptr : time_since_last_refresh_fragment.data());

      decltype(Traits::time_since_last_fetch_attempt(input)) in_time_since_last_fetch_attempt = Traits::time_since_last_fetch_attempt(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->time_since_last_fetch_attempt)::BaseType> time_since_last_fetch_attempt_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_time_since_last_fetch_attempt,
        time_since_last_fetch_attempt_fragment);

      fragment->time_since_last_fetch_attempt.Set(
          time_since_last_fetch_attempt_fragment.is_null() ? nullptr : time_since_last_fetch_attempt_fragment.data());

      decltype(Traits::extension_install_time_since_last_refresh(input)) in_extension_install_time_since_last_refresh = Traits::extension_install_time_since_last_refresh(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->extension_install_time_since_last_refresh)::BaseType> extension_install_time_since_last_refresh_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_extension_install_time_since_last_refresh,
        extension_install_time_since_last_refresh_fragment);

      fragment->extension_install_time_since_last_refresh.Set(
          extension_install_time_since_last_refresh_fragment.is_null() ? nullptr : extension_install_time_since_last_refresh_fragment.data());

      decltype(Traits::extension_install_time_since_last_fetch_attempt(input)) in_extension_install_time_since_last_fetch_attempt = Traits::extension_install_time_since_last_fetch_attempt(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->extension_install_time_since_last_fetch_attempt)::BaseType> extension_install_time_since_last_fetch_attempt_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_extension_install_time_since_last_fetch_attempt,
        extension_install_time_since_last_fetch_attempt_fragment);

      fragment->extension_install_time_since_last_fetch_attempt.Set(
          extension_install_time_since_last_fetch_attempt_fragment.is_null() ? nullptr : extension_install_time_since_last_fetch_attempt_fragment.data());

      decltype(Traits::last_cloud_report_sent_timestamp(input)) in_last_cloud_report_sent_timestamp = Traits::last_cloud_report_sent_timestamp(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->last_cloud_report_sent_timestamp)::BaseType> last_cloud_report_sent_timestamp_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_last_cloud_report_sent_timestamp,
        last_cloud_report_sent_timestamp_fragment);

      fragment->last_cloud_report_sent_timestamp.Set(
          last_cloud_report_sent_timestamp_fragment.is_null() ? nullptr : last_cloud_report_sent_timestamp_fragment.data());

      decltype(Traits::time_since_last_cloud_report_sent(input)) in_time_since_last_cloud_report_sent = Traits::time_since_last_cloud_report_sent(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->time_since_last_cloud_report_sent)::BaseType> time_since_last_cloud_report_sent_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_time_since_last_cloud_report_sent,
        time_since_last_cloud_report_sent_fragment);

      fragment->time_since_last_cloud_report_sent.Set(
          time_since_last_cloud_report_sent_fragment.is_null() ? nullptr : time_since_last_cloud_report_sent_fragment.data());

      decltype(Traits::enterprise_domain_manager(input)) in_enterprise_domain_manager = Traits::enterprise_domain_manager(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->enterprise_domain_manager)::BaseType> enterprise_domain_manager_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_enterprise_domain_manager,
        enterprise_domain_manager_fragment);

      fragment->enterprise_domain_manager.Set(
          enterprise_domain_manager_fragment.is_null() ? nullptr : enterprise_domain_manager_fragment.data());
      fragment->is_affiliated_$flag = Traits::is_affiliated(input).has_value();
      if (Traits::is_affiliated(input).has_value()) {
        fragment->is_affiliated_$value = Traits::is_affiliated(input).value();
      }

      fragment->policies_push_available = Traits::policies_push_available(input);

      fragment->error = Traits::error(input);

      fragment->extension_install_error = Traits::extension_install_error(input);
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::policy::mojom::ConflictDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::ConflictDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::Conflict_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::level(input)) in_level = Traits::level(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->level)::BaseType> level_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_level,
        level_fragment);

      fragment->level.Set(
          level_fragment.is_null() ? nullptr : level_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->level.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null level in Conflict struct");

      decltype(Traits::scope(input)) in_scope = Traits::scope(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->scope)::BaseType> scope_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_scope,
        scope_fragment);

      fragment->scope.Set(
          scope_fragment.is_null() ? nullptr : scope_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->scope.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null scope in Conflict struct");

      decltype(Traits::source(input)) in_source = Traits::source(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->source)::BaseType> source_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_source,
        source_fragment);

      fragment->source.Set(
          source_fragment.is_null() ? nullptr : source_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->source.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null source in Conflict struct");

      decltype(Traits::value(input)) in_value = Traits::value(input);
      mojo::internal::MessageFragment<decltype(fragment->value)>
          value_fragment(fragment.message());
      value_fragment.Claim(&fragment->value);
      
      mojo::internal::Serialize<::mojo_base::mojom::ValueDataView, send_validation>(
        in_value,
        value_fragment,
        true);
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::policy::mojom::PolicyDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::PolicyDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::Policy_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      fragment->ignored = Traits::ignored(input);

      decltype(Traits::name(input)) in_name = Traits::name(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->name)::BaseType> name_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_name,
        name_fragment);

      fragment->name.Set(
          name_fragment.is_null() ? nullptr : name_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->name.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null name in Policy struct");

      decltype(Traits::level(input)) in_level = Traits::level(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->level)::BaseType> level_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_level,
        level_fragment);

      fragment->level.Set(
          level_fragment.is_null() ? nullptr : level_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->level.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null level in Policy struct");

      decltype(Traits::scope(input)) in_scope = Traits::scope(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->scope)::BaseType> scope_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_scope,
        scope_fragment);

      fragment->scope.Set(
          scope_fragment.is_null() ? nullptr : scope_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->scope.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null scope in Policy struct");

      decltype(Traits::source(input)) in_source = Traits::source(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->source)::BaseType> source_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_source,
        source_fragment);

      fragment->source.Set(
          source_fragment.is_null() ? nullptr : source_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->source.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null source in Policy struct");

      decltype(Traits::value(input)) in_value = Traits::value(input);
      mojo::internal::MessageFragment<decltype(fragment->value)>
          value_fragment(fragment.message());
      value_fragment.Claim(&fragment->value);
      
      mojo::internal::Serialize<::mojo_base::mojom::ValueDataView, send_validation>(
        in_value,
        value_fragment,
        true);

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->value.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null value in Policy struct");

      fragment->restart_required = Traits::restart_required(input);

      fragment->deprecated = Traits::deprecated(input);

      fragment->future = Traits::future(input);
      fragment->all_sources_merged_$flag = Traits::all_sources_merged(input).has_value();
      if (Traits::all_sources_merged(input).has_value()) {
        fragment->all_sources_merged_$value = Traits::all_sources_merged(input).value();
      }

      decltype(Traits::conflicts(input)) in_conflicts = Traits::conflicts(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->conflicts)::BaseType>
          conflicts_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& conflicts_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::policy::mojom::ConflictDataView>, send_validation>(
        in_conflicts,
        conflicts_fragment,
        &conflicts_validate_params);

      fragment->conflicts.Set(
          conflicts_fragment.is_null() ? nullptr : conflicts_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->conflicts.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null conflicts in Policy struct");

      decltype(Traits::superseded(input)) in_superseded = Traits::superseded(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->superseded)::BaseType>
          superseded_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& superseded_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::policy::mojom::ConflictDataView>, send_validation>(
        in_superseded,
        superseded_fragment,
        &superseded_validate_params);

      fragment->superseded.Set(
          superseded_fragment.is_null() ? nullptr : superseded_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->superseded.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null superseded in Policy struct");

      decltype(Traits::error(input)) in_error = Traits::error(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->error)::BaseType> error_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_error,
        error_fragment);

      fragment->error.Set(
          error_fragment.is_null() ? nullptr : error_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->error.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null error in Policy struct");

      decltype(Traits::warning(input)) in_warning = Traits::warning(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->warning)::BaseType> warning_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_warning,
        warning_fragment);

      fragment->warning.Set(
          warning_fragment.is_null() ? nullptr : warning_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->warning.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null warning in Policy struct");

      decltype(Traits::info(input)) in_info = Traits::info(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->info)::BaseType> info_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_info,
        info_fragment);

      fragment->info.Set(
          info_fragment.is_null() ? nullptr : info_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->info.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null info in Policy struct");
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::policy::mojom::PolicyGroupDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::PolicyGroupDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::PolicyGroup_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::name(input)) in_name = Traits::name(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->name)::BaseType> name_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_name,
        name_fragment);

      fragment->name.Set(
          name_fragment.is_null() ? nullptr : name_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->name.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null name in PolicyGroup struct");

      decltype(Traits::policies(input)) in_policies = Traits::policies(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->policies)::BaseType>
          policies_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& policies_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>(), *&mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<mojo::StringDataView, ::policy::mojom::PolicyDataView>, send_validation>(
        in_policies,
        policies_fragment,
        &policies_validate_params);

      fragment->policies.Set(
          policies_fragment.is_null() ? nullptr : policies_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->policies.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null policies in PolicyGroup struct");

      decltype(Traits::precedence_order(input)) in_precedence_order = Traits::precedence_order(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->precedence_order)::BaseType>
          precedence_order_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& precedence_order_validate_params =
          mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<mojo::StringDataView>, send_validation>(
        in_precedence_order,
        precedence_order_fragment,
        &precedence_order_validate_params);

      fragment->precedence_order.Set(
          precedence_order_fragment.is_null() ? nullptr : precedence_order_fragment.data());

      fragment->is_extension = Traits::is_extension(input);

      fragment->for_signin_screen = Traits::for_signin_screen(input);
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::policy::mojom::PolicyGroupsResponseDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::PolicyGroupsResponseDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::PolicyGroupsResponse_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::policy_ids_presentation_order(input)) in_policy_ids_presentation_order = Traits::policy_ids_presentation_order(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->policy_ids_presentation_order)::BaseType>
          policy_ids_presentation_order_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& policy_ids_presentation_order_validate_params =
          mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<mojo::StringDataView>, send_validation>(
        in_policy_ids_presentation_order,
        policy_ids_presentation_order_fragment,
        &policy_ids_presentation_order_validate_params);

      fragment->policy_ids_presentation_order.Set(
          policy_ids_presentation_order_fragment.is_null() ? nullptr : policy_ids_presentation_order_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->policy_ids_presentation_order.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null policy_ids_presentation_order in PolicyGroupsResponse struct");

      decltype(Traits::policy_groups(input)) in_policy_groups = Traits::policy_groups(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->policy_groups)::BaseType>
          policy_groups_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& policy_groups_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>(), *&mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<mojo::StringDataView, ::policy::mojom::PolicyGroupDataView>, send_validation>(
        in_policy_groups,
        policy_groups_fragment,
        &policy_groups_validate_params);

      fragment->policy_groups.Set(
          policy_groups_fragment.is_null() ? nullptr : policy_groups_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->policy_groups.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null policy_groups in PolicyGroupsResponse struct");
  }
};

}  // namespace mojo::internal

#endif  // COMPONENTS_POLICY_RESOURCES_WEBUI_MOJOM_POLICY_MOJOM_SEND_VALIDATION_H_