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

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

option java_outer_classname = "CastLogsProtos";
option java_package = "org.chromium.components.metrics";

package metrics;  // Cast-enabled device specific log data included in
                  // ChromeUserMetricsExtension.

// Next tag: 7
message CastLogsProto {
  // Cast specific device information.
  // Next tag: 7
  message CastDeviceInfo {
    // The product type of Cast device sent from Cast-enabled devices.
    // Next tag: 8
    enum CastProductType {
      CAST_PRODUCT_TYPE_UNKNOWN = 0;
      CAST_PRODUCT_TYPE_CHROMECAST = 1;
      CAST_PRODUCT_TYPE_TV = 2;
      CAST_PRODUCT_TYPE_AUDIO = 3;
      CAST_PRODUCT_TYPE_ANDROID_TV = 4;
      CAST_PRODUCT_TYPE_ASSISTANT = 5;
      CAST_PRODUCT_TYPE_ANDROID_THINGS = 6;
      CAST_PRODUCT_TYPE_CHROME_OS = 7;
    }
    optional CastProductType type = 1;

    // The hardware revision of each product.
    optional string hardware_revision = 2;

    // The manufacturer of Cast device, this value is empty when the device
    // is manufactured by Google.
    optional string manufacturer = 3;

    // The model of the Cast device.
    optional string model = 4;

    // The serial number.
    optional string serial_number = 5;

    // Hardware information stored in factory partition.
    message HardwareInfo {
      optional string color = 1;

      optional string mic = 2;

      optional string memory = 3;

      optional string nand = 4;

      optional string mfg_date = 5;

      optional string build_name = 6;

      optional string config = 7;

      optional string emmc = 8;

      optional string display = 9;

      optional string amp = 10;
    }
    optional HardwareInfo hardware_info = 6;
  }
  // The device sends this information at least once per day.
  optional CastDeviceInfo cast_device_info = 1;

  // Information about Cast V2 API connection between sender application and
  // Cast-enabled device.
  // Next tag: 4
  message CastConnectionInfo {
    optional fixed32 transport_connection_id = 1;

    optional fixed32 virtual_connection_id = 2;

    // This message describes a detail sender device and sdk.
    // Next tag: 10
    message SenderInfo {
      // The identifier for the sender device, that is pseudonymous and can be
      // reset.  This id has no link to a specific user or device.
      optional fixed64 sender_device_id = 1;

      // SDK type the sender application was using.
      // Next tag: 3
      enum SDKType {
        SDK_UNKNOWN = 0;

        // Native SDK type,
        // E.G. Android sdk, iOS sdk.
        SDK_NATIVE = 1;

        // SDK via Chrome extension.
        SDK_CHROME_EXTENSION = 2;
      }
      optional SDKType sdk_type = 2;

      // Version of sender sdk/extension used to connection. The format varies
      // by each platform.
      optional string version = 3;

      // Chrome browser version where the Chrome extension running.
      // Only Chrome extension sends this information.
      optional string chrome_browser_version = 4;

      // Platform of sender device.
      // Next tag: 8
      enum Platform {
        // Any platform other then cases below.
        PLATFORM_OTHER = 0;

        PLATFORM_ANDROID = 1;
        PLATFORM_IOS = 2;
        PLATFORM_WINDOWS = 3;
        PLATFORM_OSX = 4;
        PLATFORM_CHROMEOS = 5;
        PLATFORM_LINUX = 6;

        // The sender is Cast device - including itself.
        PLATFORM_CAST = 7;
      }
      optional Platform platform = 5;

      // Sender device system version.
      optional string system_version = 6;

      // What type of connection type used to establish between sender and
      // receiver.
      enum ConnectionType {
        CONNECTION_TYPE_UNKNOWN = 0;

        // A connection established directly between sender and receiver.
        CONNECTION_TYPE_LOCAL = 1;

        // A connection created by opencast to the device via the cloud relay.
        CONNECTION_TYPE_RELAY = 2;

        // A connection created by receiver itself internally.
        CONNECTION_TYPE_INTERNAL = 3;
      }
      optional ConnectionType transport_connection_type = 7;

      // Sender device model.
      optional string model = 8;

      // Last 2 bytes of the sender’s local IP addresses (both IP4/IP6) when
      // the sender connected. This field stores ip fragment to last 2 bytes and
      // first 2 bytes won't be used.
      optional int32 sender_local_ip_fragment = 9;
    }
    optional SenderInfo sender_info = 3;
  }

  // Virtual connection established between sender application and Cast device.
  repeated CastConnectionInfo cast_connection_info = 2;

  // Stores Cast-enabled device specific events with a various context data.
  // Next tag: 19
  message CastEventProto {
    // The name of the action, hashed by same logic used to hash user action
    // event and histogram.
    optional fixed64 name_hash = 1;

    // The timestamp for the event, in milliseconds.
    optional int64 time_msec = 2;

    // The Cast receiver app ID related with this event.
    optional fixed32 app_id = 3;

    // The identifier for receiver application session.
    optional fixed64 application_session_id = 4;

    // Receiver side Cast SDK version.
    optional fixed64 cast_receiver_version = 5;

    // Cast MPL version.
    optional fixed64 cast_mpl_version = 9;

    // transport_connection_id related with this event.
    optional fixed32 transport_connection_id = 6;

    // virtual_connection_id related with this event.
    optional fixed32 virtual_connection_id = 7;

    // An optional value for the associated event, often a measurement in
    // milliseconds.
    optional int64 value = 8;

    // Group id of Multizone Audio.
    optional fixed64 group_uuid = 10;

    optional string conversation_key = 11;

    // Request id of V2 Application Protocol
    optional fixed32 request_id = 12;

    optional string event_id = 13;

    optional string aogh_request_id = 16;

    optional int64 aogh_local_agent_id = 18;

    // Optional value associated with the event. For example, may be used for
    // error codes.
    message Metadata {
      optional fixed64 name_hash = 1;
      optional int64 value = 2;
    }
    repeated Metadata metadata = 14;

    // Optional values associated with the event.
    repeated float feature_vector = 15;

    // Optional value associated with timezone update event.
    optional string timezone_id = 17;
  }
  repeated CastEventProto cast_event = 3;

  // Virtual release track for releases sent to partners, trusted beta testers,
  // developers, etc.
  optional fixed32 virtual_release_track = 4;

  // Cast specific device information which is expected to change over time.
  // Next tag: 8
  message CastDeviceMutableInfo {
    // This is the last type of reboot the device encountered
    // Next tag: 9
    enum RebootType {
      REBOOT_TYPE_UNKNOWN = 0;
      REBOOT_TYPE_FORCED = 1;  // Power removed from device
      REBOOT_TYPE_API = 2;     // Requested from reboot setup api
      REBOOT_TYPE_NIGHTLY = 3;
      REBOOT_TYPE_OTA = 4;
      REBOOT_TYPE_WATCHDOG = 5;
      REBOOT_TYPE_PROCESS_MANAGER = 6;
      REBOOT_TYPE_CRASH_UPLOADER = 7;
      REBOOT_TYPE_FDR = 8;
    }
    optional RebootType last_reboot_type = 1;

    // System version which the cast_shell is running.
    optional fixed64 system_build_number = 2;

    // An identifier that is specific to the combination of app and device, in
    // this case the one used by backdrop.
    optional string backdrop_app_device_id = 3;

    // Chromecast release version like "1.23", "1.24". The format is "X.Y"
    // where X is major version and Y is sub major version.
    optional fixed32 release_version = 4;

    // IP version of the primary network interface.
    enum NetifIPVersion {
      IP_UNKNOWN = 0;
      IP_V4 = 1;
      IP_V6 = 2;
      IP_DUAL_STACK = 3;
    }
    optional NetifIPVersion netif_ip_version = 5;

    // True if the system which cast_shell is running on, supports ip dual stack
    // sockets.
    optional bool ip_dual_stack_supported = 6;

    // Current timezone which the device is using.
    optional string timezone_id = 7;
  }
  // The device sends this information at least once per day.
  optional CastDeviceMutableInfo cast_device_mutable_info = 5;

  optional fixed64 receiver_metrics_id = 6;
}
