syntax = "proto3";

package com.android.bedstead.testapp;

option java_package = "com.android.bedstead.testapp";

message TestAppIndex {
  repeated AndroidApp apps = 1;
}

message AndroidApp {
  string apk_name = 1;
  string package_name = 2;
  UsesSdk uses_sdk = 3;
  repeated Permission permissions = 4;
  repeated Activity activities = 5;
  repeated Service services = 6;
  bool test_only = 7;
  repeated Metadata metadata = 8;
  string sharedUserId = 9;
  string label = 10;
  bool cross_profile = 11;
  repeated Receiver receivers = 12;
  repeated ActivityAlias activityAliases = 13;
}

message UsesSdk {
  uint32 minSdkVersion = 1;
  uint32 targetSdkVersion = 2;
  uint32 maxSdkVersion = 3;
}

message Permission {
  string name = 1;
}

message Activity {
  string name = 1;
  bool exported = 2;
  repeated IntentFilter intent_filters = 3;
  string permission = 4;
}

message ActivityAlias {
  string name = 1;
  bool exported = 2;
  repeated IntentFilter intent_filters = 3;
  string permission = 4;
}

message IntentFilter {
  repeated string actions = 1;
  repeated string categories = 2;
}

message Service {
  string name = 1;
  bool exported = 2;
  repeated IntentFilter intent_filters = 3;
  repeated Metadata metadata = 4;
}

message Metadata {
  string name = 1;
  string value = 2;
  string resource = 3;
}

message Receiver {
  string name = 1;
  string permission = 2;
  bool exported = 3;
  repeated Metadata metadata = 4;
  repeated IntentFilter intent_filters = 5;
}
