// third_party/blink/public/mojom/webid/federated_request.mojom-params-data.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBID_FEDERATED_REQUEST_MOJOM_PARAMS_DATA_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBID_FEDERATED_REQUEST_MOJOM_PARAMS_DATA_H_
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"

#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif

namespace mojo::internal {
class ValidationContext;
}


namespace blink::mojom {
namespace internal {
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequest_Abort_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequest_Abort_Params_Data>;

  FederatedRequest_Abort_Params_Data();
  ~FederatedRequest_Abort_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequest_Abort_Params_Data) == 8,
              "Bad sizeof(FederatedRequest_Abort_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_StartTokenRequest_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::IdentityProviderGetParameters_Data>>> idp_get_params;
  int32_t requirement;
  mojo::internal::Handle_Data request_receiver;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_StartTokenRequest_Params_Data>;

  FederatedRequestService_StartTokenRequest_Params_Data();
  ~FederatedRequestService_StartTokenRequest_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_StartTokenRequest_Params_Data) == 24,
              "Bad sizeof(FederatedRequestService_StartTokenRequest_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_StartTokenRequest_ResponseParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  internal::FederatedRequestService_StartTokenRequest_ResponseParam_Result_Data result;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_StartTokenRequest_ResponseParams_Data>;

  FederatedRequestService_StartTokenRequest_ResponseParams_Data();
  ~FederatedRequestService_StartTokenRequest_ResponseParams_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_StartTokenRequest_ResponseParams_Data) == 24,
              "Bad sizeof(FederatedRequestService_StartTokenRequest_ResponseParams_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_RegisterIdP_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> url;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_RegisterIdP_Params_Data>;

  FederatedRequestService_RegisterIdP_Params_Data();
  ~FederatedRequestService_RegisterIdP_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_RegisterIdP_Params_Data) == 16,
              "Bad sizeof(FederatedRequestService_RegisterIdP_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_RegisterIdP_ResponseParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  int32_t status;
  uint8_t padfinal_[4];

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_RegisterIdP_ResponseParams_Data>;

  FederatedRequestService_RegisterIdP_ResponseParams_Data();
  ~FederatedRequestService_RegisterIdP_ResponseParams_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_RegisterIdP_ResponseParams_Data) == 16,
              "Bad sizeof(FederatedRequestService_RegisterIdP_ResponseParams_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_UnregisterIdP_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> url;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_UnregisterIdP_Params_Data>;

  FederatedRequestService_UnregisterIdP_Params_Data();
  ~FederatedRequestService_UnregisterIdP_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_UnregisterIdP_Params_Data) == 16,
              "Bad sizeof(FederatedRequestService_UnregisterIdP_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_UnregisterIdP_ResponseParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  uint8_t success : 1;
  uint8_t padfinal_[7];

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_UnregisterIdP_ResponseParams_Data>;

  FederatedRequestService_UnregisterIdP_ResponseParams_Data();
  ~FederatedRequestService_UnregisterIdP_ResponseParams_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_UnregisterIdP_ResponseParams_Data) == 16,
              "Bad sizeof(FederatedRequestService_UnregisterIdP_ResponseParams_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_CloseModalDialogView_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_CloseModalDialogView_Params_Data>;

  FederatedRequestService_CloseModalDialogView_Params_Data();
  ~FederatedRequestService_CloseModalDialogView_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_CloseModalDialogView_Params_Data) == 8,
              "Bad sizeof(FederatedRequestService_CloseModalDialogView_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_PreventSilentAccess_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_PreventSilentAccess_Params_Data>;

  FederatedRequestService_PreventSilentAccess_Params_Data();
  ~FederatedRequestService_PreventSilentAccess_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_PreventSilentAccess_Params_Data) == 8,
              "Bad sizeof(FederatedRequestService_PreventSilentAccess_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_PreventSilentAccess_ResponseParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_PreventSilentAccess_ResponseParams_Data>;

  FederatedRequestService_PreventSilentAccess_ResponseParams_Data();
  ~FederatedRequestService_PreventSilentAccess_ResponseParams_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_PreventSilentAccess_ResponseParams_Data) == 8,
              "Bad sizeof(FederatedRequestService_PreventSilentAccess_ResponseParams_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_RequestUserInfo_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<internal::IdentityProviderConfig_Data> provider;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_RequestUserInfo_Params_Data>;

  FederatedRequestService_RequestUserInfo_Params_Data();
  ~FederatedRequestService_RequestUserInfo_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_RequestUserInfo_Params_Data) == 16,
              "Bad sizeof(FederatedRequestService_RequestUserInfo_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_RequestUserInfo_ResponseParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  internal::RequestUserInfoResult_Data result;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_RequestUserInfo_ResponseParams_Data>;

  FederatedRequestService_RequestUserInfo_ResponseParams_Data();
  ~FederatedRequestService_RequestUserInfo_ResponseParams_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_RequestUserInfo_ResponseParams_Data) == 24,
              "Bad sizeof(FederatedRequestService_RequestUserInfo_ResponseParams_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_Disconnect_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<internal::IdentityCredentialDisconnectOptions_Data> options;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_Disconnect_Params_Data>;

  FederatedRequestService_Disconnect_Params_Data();
  ~FederatedRequestService_Disconnect_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_Disconnect_Params_Data) == 16,
              "Bad sizeof(FederatedRequestService_Disconnect_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_Disconnect_ResponseParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  int32_t status;
  uint8_t padfinal_[4];

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_Disconnect_ResponseParams_Data>;

  FederatedRequestService_Disconnect_ResponseParams_Data();
  ~FederatedRequestService_Disconnect_ResponseParams_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_Disconnect_ResponseParams_Data) == 16,
              "Bad sizeof(FederatedRequestService_Disconnect_ResponseParams_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_ResolveTokenRequest_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::String_Data> account_id;
  internal::ResolveTokenParams_Data params;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_ResolveTokenRequest_Params_Data>;

  FederatedRequestService_ResolveTokenRequest_Params_Data();
  ~FederatedRequestService_ResolveTokenRequest_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_ResolveTokenRequest_Params_Data) == 32,
              "Bad sizeof(FederatedRequestService_ResolveTokenRequest_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_ResolveTokenRequest_ResponseParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  uint8_t success : 1;
  uint8_t padfinal_[7];

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_ResolveTokenRequest_ResponseParams_Data>;

  FederatedRequestService_ResolveTokenRequest_ResponseParams_Data();
  ~FederatedRequestService_ResolveTokenRequest_ResponseParams_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_ResolveTokenRequest_ResponseParams_Data) == 16,
              "Bad sizeof(FederatedRequestService_ResolveTokenRequest_ResponseParams_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_SetIdpSigninStatus_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Origin_Data> origin;
  int32_t status;
  uint8_t pad1_[4];
  mojo::internal::Pointer<internal::LoginStatusOptions_Data> options;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_SetIdpSigninStatus_Params_Data>;

  FederatedRequestService_SetIdpSigninStatus_Params_Data();
  ~FederatedRequestService_SetIdpSigninStatus_Params_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_SetIdpSigninStatus_Params_Data) == 32,
              "Bad sizeof(FederatedRequestService_SetIdpSigninStatus_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) FederatedRequestService_SetIdpSigninStatus_ResponseParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;

 private:
  friend class mojo::internal::MessageFragment<FederatedRequestService_SetIdpSigninStatus_ResponseParams_Data>;

  FederatedRequestService_SetIdpSigninStatus_ResponseParams_Data();
  ~FederatedRequestService_SetIdpSigninStatus_ResponseParams_Data() = delete;
};
static_assert(sizeof(FederatedRequestService_SetIdpSigninStatus_ResponseParams_Data) == 8,
              "Bad sizeof(FederatedRequestService_SetIdpSigninStatus_ResponseParams_Data)");

}  // namespace internal


class FederatedRequest_Abort_ParamsDataView {
 public:
  FederatedRequest_Abort_ParamsDataView() = default;

  FederatedRequest_Abort_ParamsDataView(
      internal::FederatedRequest_Abort_Params_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
 private:
  internal::FederatedRequest_Abort_Params_Data* data_ = nullptr;
};


class FederatedRequestService_StartTokenRequest_ParamsDataView {
 public:
  FederatedRequestService_StartTokenRequest_ParamsDataView() = default;

  FederatedRequestService_StartTokenRequest_ParamsDataView(
      internal::FederatedRequestService_StartTokenRequest_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetIdpGetParamsDataView(
      mojo::ArrayDataView<IdentityProviderGetParametersDataView>* output);

  template <typename UserType>
  [[nodiscard]] bool ReadIdpGetParams(UserType* output) {
    
    auto* pointer = data_->idp_get_params.Get();
    return mojo::internal::Deserialize<mojo::ArrayDataView<::blink::mojom::IdentityProviderGetParametersDataView>>(
        pointer, output, message_);
  }
  template <typename UserType>
  [[nodiscard]] bool ReadRequirement(UserType* output) const {
    auto data_value = data_->requirement;
    return mojo::internal::Deserialize<::blink::mojom::CredentialMediationRequirement>(
        data_value, output);
  }
  ::blink::mojom::CredentialMediationRequirement requirement() const {
    return ::mojo::internal::ToKnownEnumValueHelper(
          static_cast<::blink::mojom::CredentialMediationRequirement>(data_->requirement));
  }
  template <typename UserType>
  UserType TakeRequestReceiver() {
    UserType result;
    bool ret =
        mojo::internal::Deserialize<mojo::InterfaceRequestDataView<::blink::mojom::FederatedRequestInterfaceBase>>(
            &data_->request_receiver, &result, message_);
    DCHECK(ret);
    return result;
  }
 private:
  internal::FederatedRequestService_StartTokenRequest_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_StartTokenRequest_ResponseParamsDataView {
 public:
  FederatedRequestService_StartTokenRequest_ResponseParamsDataView() = default;

  FederatedRequestService_StartTokenRequest_ResponseParamsDataView(
      internal::FederatedRequestService_StartTokenRequest_ResponseParams_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetResultDataView(
      FederatedRequestService_StartTokenRequest_ResponseParam_ResultDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadResult(UserType* output) {
    
    auto* pointer = !data_->result.is_null() ? &data_->result : nullptr;
    return mojo::internal::Deserialize<::blink::mojom::FederatedRequestService_StartTokenRequest_ResponseParam_ResultDataView>(
        pointer, output, message_);
  }
 private:
  internal::FederatedRequestService_StartTokenRequest_ResponseParams_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_RegisterIdP_ParamsDataView {
 public:
  FederatedRequestService_RegisterIdP_ParamsDataView() = default;

  FederatedRequestService_RegisterIdP_ParamsDataView(
      internal::FederatedRequestService_RegisterIdP_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetUrlDataView(
      ::url::mojom::UrlDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadUrl(UserType* output) {
    
    auto* pointer = data_->url.Get();
    return mojo::internal::Deserialize<::url::mojom::UrlDataView>(
        pointer, output, message_);
  }
 private:
  internal::FederatedRequestService_RegisterIdP_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_RegisterIdP_ResponseParamsDataView {
 public:
  FederatedRequestService_RegisterIdP_ResponseParamsDataView() = default;

  FederatedRequestService_RegisterIdP_ResponseParamsDataView(
      internal::FederatedRequestService_RegisterIdP_ResponseParams_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
  template <typename UserType>
  [[nodiscard]] bool ReadStatus(UserType* output) const {
    auto data_value = data_->status;
    return mojo::internal::Deserialize<::blink::mojom::RegisterIdpStatus>(
        data_value, output);
  }
  RegisterIdpStatus status() const {
    return ::mojo::internal::ToKnownEnumValueHelper(
          static_cast<::blink::mojom::RegisterIdpStatus>(data_->status));
  }
 private:
  internal::FederatedRequestService_RegisterIdP_ResponseParams_Data* data_ = nullptr;
};


class FederatedRequestService_UnregisterIdP_ParamsDataView {
 public:
  FederatedRequestService_UnregisterIdP_ParamsDataView() = default;

  FederatedRequestService_UnregisterIdP_ParamsDataView(
      internal::FederatedRequestService_UnregisterIdP_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetUrlDataView(
      ::url::mojom::UrlDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadUrl(UserType* output) {
    
    auto* pointer = data_->url.Get();
    return mojo::internal::Deserialize<::url::mojom::UrlDataView>(
        pointer, output, message_);
  }
 private:
  internal::FederatedRequestService_UnregisterIdP_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_UnregisterIdP_ResponseParamsDataView {
 public:
  FederatedRequestService_UnregisterIdP_ResponseParamsDataView() = default;

  FederatedRequestService_UnregisterIdP_ResponseParamsDataView(
      internal::FederatedRequestService_UnregisterIdP_ResponseParams_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
  bool success() const {
    return data_->success;
  }
 private:
  internal::FederatedRequestService_UnregisterIdP_ResponseParams_Data* data_ = nullptr;
};


class FederatedRequestService_CloseModalDialogView_ParamsDataView {
 public:
  FederatedRequestService_CloseModalDialogView_ParamsDataView() = default;

  FederatedRequestService_CloseModalDialogView_ParamsDataView(
      internal::FederatedRequestService_CloseModalDialogView_Params_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
 private:
  internal::FederatedRequestService_CloseModalDialogView_Params_Data* data_ = nullptr;
};


class FederatedRequestService_PreventSilentAccess_ParamsDataView {
 public:
  FederatedRequestService_PreventSilentAccess_ParamsDataView() = default;

  FederatedRequestService_PreventSilentAccess_ParamsDataView(
      internal::FederatedRequestService_PreventSilentAccess_Params_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
 private:
  internal::FederatedRequestService_PreventSilentAccess_Params_Data* data_ = nullptr;
};


class FederatedRequestService_PreventSilentAccess_ResponseParamsDataView {
 public:
  FederatedRequestService_PreventSilentAccess_ResponseParamsDataView() = default;

  FederatedRequestService_PreventSilentAccess_ResponseParamsDataView(
      internal::FederatedRequestService_PreventSilentAccess_ResponseParams_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
 private:
  internal::FederatedRequestService_PreventSilentAccess_ResponseParams_Data* data_ = nullptr;
};


class FederatedRequestService_RequestUserInfo_ParamsDataView {
 public:
  FederatedRequestService_RequestUserInfo_ParamsDataView() = default;

  FederatedRequestService_RequestUserInfo_ParamsDataView(
      internal::FederatedRequestService_RequestUserInfo_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetProviderDataView(
      IdentityProviderConfigDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadProvider(UserType* output) {
    
    auto* pointer = data_->provider.Get();
    return mojo::internal::Deserialize<::blink::mojom::IdentityProviderConfigDataView>(
        pointer, output, message_);
  }
 private:
  internal::FederatedRequestService_RequestUserInfo_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_RequestUserInfo_ResponseParamsDataView {
 public:
  FederatedRequestService_RequestUserInfo_ResponseParamsDataView() = default;

  FederatedRequestService_RequestUserInfo_ResponseParamsDataView(
      internal::FederatedRequestService_RequestUserInfo_ResponseParams_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetResultDataView(
      RequestUserInfoResultDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadResult(UserType* output) {
    
    auto* pointer = !data_->result.is_null() ? &data_->result : nullptr;
    return mojo::internal::Deserialize<::blink::mojom::RequestUserInfoResultDataView>(
        pointer, output, message_);
  }
 private:
  internal::FederatedRequestService_RequestUserInfo_ResponseParams_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_Disconnect_ParamsDataView {
 public:
  FederatedRequestService_Disconnect_ParamsDataView() = default;

  FederatedRequestService_Disconnect_ParamsDataView(
      internal::FederatedRequestService_Disconnect_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetOptionsDataView(
      IdentityCredentialDisconnectOptionsDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadOptions(UserType* output) {
    
    auto* pointer = data_->options.Get();
    return mojo::internal::Deserialize<::blink::mojom::IdentityCredentialDisconnectOptionsDataView>(
        pointer, output, message_);
  }
 private:
  internal::FederatedRequestService_Disconnect_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_Disconnect_ResponseParamsDataView {
 public:
  FederatedRequestService_Disconnect_ResponseParamsDataView() = default;

  FederatedRequestService_Disconnect_ResponseParamsDataView(
      internal::FederatedRequestService_Disconnect_ResponseParams_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
  template <typename UserType>
  [[nodiscard]] bool ReadStatus(UserType* output) const {
    auto data_value = data_->status;
    return mojo::internal::Deserialize<::blink::mojom::DisconnectStatus>(
        data_value, output);
  }
  DisconnectStatus status() const {
    return ::mojo::internal::ToKnownEnumValueHelper(
          static_cast<::blink::mojom::DisconnectStatus>(data_->status));
  }
 private:
  internal::FederatedRequestService_Disconnect_ResponseParams_Data* data_ = nullptr;
};


class FederatedRequestService_ResolveTokenRequest_ParamsDataView {
 public:
  FederatedRequestService_ResolveTokenRequest_ParamsDataView() = default;

  FederatedRequestService_ResolveTokenRequest_ParamsDataView(
      internal::FederatedRequestService_ResolveTokenRequest_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetAccountIdDataView(
      mojo::StringDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadAccountId(UserType* output) {
    
static_assert(
    mojo::internal::IsValidUserTypeForOptionalValue<
        mojo::StringDataView, UserType>(),
    "Attempting to read the optional `account_id` field into a type which "
    "cannot represent a null value. Either wrap the destination object "
    "with std::optional, ensure that any corresponding "
    "{Struct/Union/Array/String}Traits define the necessary IsNull and "
    "SetToNull methods, or use `MaybeReadAccountId` instead "
    "of `ReadAccountId if you're fine with null values being "
    "silently ignored in this case.");
    auto* pointer = data_->account_id.Get();
    return mojo::internal::Deserialize<mojo::StringDataView>(
        pointer, output, message_);
  }
  inline void GetParamsDataView(
      ResolveTokenParamsDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadParams(UserType* output) {
    
    auto* pointer = !data_->params.is_null() ? &data_->params : nullptr;
    return mojo::internal::Deserialize<::blink::mojom::ResolveTokenParamsDataView>(
        pointer, output, message_);
  }
 private:
  internal::FederatedRequestService_ResolveTokenRequest_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_ResolveTokenRequest_ResponseParamsDataView {
 public:
  FederatedRequestService_ResolveTokenRequest_ResponseParamsDataView() = default;

  FederatedRequestService_ResolveTokenRequest_ResponseParamsDataView(
      internal::FederatedRequestService_ResolveTokenRequest_ResponseParams_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
  bool success() const {
    return data_->success;
  }
 private:
  internal::FederatedRequestService_ResolveTokenRequest_ResponseParams_Data* data_ = nullptr;
};


class FederatedRequestService_SetIdpSigninStatus_ParamsDataView {
 public:
  FederatedRequestService_SetIdpSigninStatus_ParamsDataView() = default;

  FederatedRequestService_SetIdpSigninStatus_ParamsDataView(
      internal::FederatedRequestService_SetIdpSigninStatus_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetOriginDataView(
      ::url::mojom::OriginDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadOrigin(UserType* output) {
    
    auto* pointer = data_->origin.Get();
    return mojo::internal::Deserialize<::url::mojom::OriginDataView>(
        pointer, output, message_);
  }
  template <typename UserType>
  [[nodiscard]] bool ReadStatus(UserType* output) const {
    auto data_value = data_->status;
    return mojo::internal::Deserialize<::blink::mojom::IdpSigninStatus>(
        data_value, output);
  }
  IdpSigninStatus status() const {
    return ::mojo::internal::ToKnownEnumValueHelper(
          static_cast<::blink::mojom::IdpSigninStatus>(data_->status));
  }
  inline void GetOptionsDataView(
      LoginStatusOptionsDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadOptions(UserType* output) {
    
static_assert(
    mojo::internal::IsValidUserTypeForOptionalValue<
        ::blink::mojom::LoginStatusOptionsDataView, UserType>(),
    "Attempting to read the optional `options` field into a type which "
    "cannot represent a null value. Either wrap the destination object "
    "with std::optional, ensure that any corresponding "
    "{Struct/Union/Array/String}Traits define the necessary IsNull and "
    "SetToNull methods, or use `MaybeReadOptions` instead "
    "of `ReadOptions if you're fine with null values being "
    "silently ignored in this case.");
    auto* pointer = data_->options.Get();
    return mojo::internal::Deserialize<::blink::mojom::LoginStatusOptionsDataView>(
        pointer, output, message_);
  }
 private:
  internal::FederatedRequestService_SetIdpSigninStatus_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class FederatedRequestService_SetIdpSigninStatus_ResponseParamsDataView {
 public:
  FederatedRequestService_SetIdpSigninStatus_ResponseParamsDataView() = default;

  FederatedRequestService_SetIdpSigninStatus_ResponseParamsDataView(
      internal::FederatedRequestService_SetIdpSigninStatus_ResponseParams_Data* data,
      mojo::Message* message)
      : data_(data) {}

  bool is_null() const { return !data_; }
 private:
  internal::FederatedRequestService_SetIdpSigninStatus_ResponseParams_Data* data_ = nullptr;
};



inline void FederatedRequestService_StartTokenRequest_ParamsDataView::GetIdpGetParamsDataView(
    mojo::ArrayDataView<IdentityProviderGetParametersDataView>* output) {
  auto pointer = data_->idp_get_params.Get();
  *output = mojo::ArrayDataView<IdentityProviderGetParametersDataView>(pointer, message_);
}


inline void FederatedRequestService_StartTokenRequest_ResponseParamsDataView::GetResultDataView(
    FederatedRequestService_StartTokenRequest_ResponseParam_ResultDataView* output) {
  auto pointer = &data_->result;
  *output = FederatedRequestService_StartTokenRequest_ResponseParam_ResultDataView(pointer, message_);
}


inline void FederatedRequestService_RegisterIdP_ParamsDataView::GetUrlDataView(
    ::url::mojom::UrlDataView* output) {
  auto pointer = data_->url.Get();
  *output = ::url::mojom::UrlDataView(pointer, message_);
}




inline void FederatedRequestService_UnregisterIdP_ParamsDataView::GetUrlDataView(
    ::url::mojom::UrlDataView* output) {
  auto pointer = data_->url.Get();
  *output = ::url::mojom::UrlDataView(pointer, message_);
}










inline void FederatedRequestService_RequestUserInfo_ParamsDataView::GetProviderDataView(
    IdentityProviderConfigDataView* output) {
  auto pointer = data_->provider.Get();
  *output = IdentityProviderConfigDataView(pointer, message_);
}


inline void FederatedRequestService_RequestUserInfo_ResponseParamsDataView::GetResultDataView(
    RequestUserInfoResultDataView* output) {
  auto pointer = &data_->result;
  *output = RequestUserInfoResultDataView(pointer, message_);
}


inline void FederatedRequestService_Disconnect_ParamsDataView::GetOptionsDataView(
    IdentityCredentialDisconnectOptionsDataView* output) {
  auto pointer = data_->options.Get();
  *output = IdentityCredentialDisconnectOptionsDataView(pointer, message_);
}




inline void FederatedRequestService_ResolveTokenRequest_ParamsDataView::GetAccountIdDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->account_id.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void FederatedRequestService_ResolveTokenRequest_ParamsDataView::GetParamsDataView(
    ResolveTokenParamsDataView* output) {
  auto pointer = &data_->params;
  *output = ResolveTokenParamsDataView(pointer, message_);
}




inline void FederatedRequestService_SetIdpSigninStatus_ParamsDataView::GetOriginDataView(
    ::url::mojom::OriginDataView* output) {
  auto pointer = data_->origin.Get();
  *output = ::url::mojom::OriginDataView(pointer, message_);
}
inline void FederatedRequestService_SetIdpSigninStatus_ParamsDataView::GetOptionsDataView(
    LoginStatusOptionsDataView* output) {
  auto pointer = data_->options.Get();
  *output = LoginStatusOptionsDataView(pointer, message_);
}





}  // blink::mojom

#if defined(__clang__)
#pragma clang diagnostic pop
#endif

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBID_FEDERATED_REQUEST_MOJOM_PARAMS_DATA_H_