chromium/components/supervised_user/core/browser/proto/families_common.proto

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package kidsmanagement;

// Basic user profile information.
message FamilyMemberProfile {
  // The user's full name, synthesized with structured and unstructured name
  // fields informed by the user. Optional.
  optional string display_name = 1;

  optional string profile_url = 2;

  // Portrait photo of the user. Optional.
  optional string profile_image_url = 3;

  // Primary email address of the user. Will always not be set for ULP accounts.
  optional string email = 4;
}

// The role a user has within a family.
// Details on which actions are tied to those roles.
// LINT.IfChange
enum FamilyRole {
  UNKNOWN_FAMILY_ROLE = 0;
  // The (only) head of household of the family.
  HEAD_OF_HOUSEHOLD = 1;
  // A parent in the family.
  PARENT = 2;
  // A member of the family. Can be an overage child or any other member
  // without approval rights.
  MEMBER = 3;
  // An underage child in the family. The user always has a Unicorn account.
  CHILD = 4;
  // An unconfirmed member of the family who has been directly added to the
  // family.
  UNCONFIRMED_MEMBER = 5;
}
// LINT.ThenChange(//components/supervised_user/core/browser/child_account_service.cc)

// Data about a family member.
message FamilyMember {
  // Obfuscated Gaia ID of the member. Required.
  optional string user_id = 1;

  // The user's role in the family. Required.
  optional FamilyRole role = 3;

  // Profile of the family member.
  optional FamilyMemberProfile profile = 4;
}