syntax = "proto2"; message AppInfo { optional string identifier = 0x1; optional int32 version_int = 0x2; } message AppInfoList { repeated AppInfo items = 0x1; } message SemanticVersion { optional int32 major = 0x1; optional int32 minor = 0x2; optional int32 patch = 0x3; } message RequestHeader { optional string market = 0x1; optional Platform platform = 0x2; enum Platform { WIN32_X86 = 0x0; OSX_X86 = 0x1; LINUX_X86 = 0x2; IPHONE_ARM = 0x3; SYMBIANS60_ARM = 0x4; OSX_POWERPC = 0x5; ANDROID_ARM = 0x6; WINCE_ARM = 0x7; LINUX_X86_64 = 0x8; OSX_X86_64 = 0x9; PALM_ARM = 0xa; LINUX_SH = 0xb; FREEBSD_X86 = 0xc; FREEBSD_X86_64 = 0xd; BLACKBERRY_ARM = 0xe; SONOS_UNKNOWN = 0xf; LINUX_MIPS = 0x10; LINUX_ARM = 0x11; LOGITECH_ARM = 0x12; LINUX_BLACKFIN = 0x13; ONKYO_ARM = 0x15; QNXNTO_ARM = 0x16; BADPLATFORM = 0xff; } optional AppInfoList app_infos = 0x6; optional string bridge_identifier = 0x7; optional SemanticVersion bridge_version = 0x8; optional DeviceClass device_class = 0x9; enum DeviceClass { DESKTOP = 0x1; TABLET = 0x2; MOBILE = 0x3; WEB = 0x4; TV = 0x5; } } message AppItem { optional string identifier = 0x1; optional Requirement requirement = 0x2; enum Requirement { REQUIRED_INSTALL = 0x1; LAZYLOAD = 0x2; OPTIONAL_INSTALL = 0x3; } optional string manifest = 0x4; optional string checksum = 0x5; optional string bundle_uri = 0x6; optional string small_icon_uri = 0x7; optional string large_icon_uri = 0x8; optional string medium_icon_uri = 0x9; optional Type bundle_type = 0xa; enum Type { APPLICATION = 0x0; FRAMEWORK = 0x1; BRIDGE = 0x2; } optional SemanticVersion version = 0xb; optional uint32 ttl_in_seconds = 0xc; optional IdentifierList categories = 0xd; } message AppList { repeated AppItem items = 0x1; } message IdentifierList { repeated string identifiers = 0x1; } message BannerConfig { optional string json = 0x1; }