syntax = "proto3";

package rv.data;

option cc_enable_arenas = true;
option csharp_namespace = "Pro.SerializationInterop.RVProtoData";
option swift_prefix = "RVData_";

import "proApiV1Color.proto";
import "proApiV1Identifier.proto";
import "proApiV1LayerType.proto";

message API_v1_ClearGroup {
  enum API_v1_ClearGroupLayerType {
    music = 0;
    audio_effects = 1;
    props = 2;
    messages = 3;
    announcements = 4;
    presentation = 5;
    presentation_media = 6;
    video_input = 7;
  }

  .rv.data.API_v1_Identifier id = 1;
  string icon = 2;
  .rv.data.API_v1_Color tint = 3;
  repeated .rv.data.API_v1_ClearGroup.API_v1_ClearGroupLayerType layers = 4;
  bool stop_timeline_announcements = 5;
  bool stop_timeline_presentation = 6;
  bool clear_next_presentation = 7;
}

message API_v1_Clear_Request {
  message ClearLayer {
    .rv.data.API_v1_LayerType layer = 1;
  }

  message CreateGroup {
    .rv.data.API_v1_ClearGroup group = 1;
  }

  message GetGroup {
    string id = 1;
  }

  message PutGroup {
    string id = 1;
    .rv.data.API_v1_ClearGroup group = 2;
  }

  message GetGroupIcon {
    string id = 1;
  }

  message PutGroupIcon {
    string id = 1;
    string content_type = 2;
    bytes icon = 3;
  }

  message DeleteGroup {
    string id = 1;
  }

  message TriggerGroup {
    string id = 1;
  }

  message GetGroups {
  }

  oneof Request {
    .rv.data.API_v1_Clear_Request.ClearLayer clear_layer = 1;
    .rv.data.API_v1_Clear_Request.CreateGroup create_group = 2;
    .rv.data.API_v1_Clear_Request.GetGroup get_group = 3;
    .rv.data.API_v1_Clear_Request.PutGroup put_group = 4;
    .rv.data.API_v1_Clear_Request.GetGroupIcon get_group_icon = 5;
    .rv.data.API_v1_Clear_Request.PutGroupIcon put_group_icon = 6;
    .rv.data.API_v1_Clear_Request.DeleteGroup delete_group = 7;
    .rv.data.API_v1_Clear_Request.TriggerGroup trigger_group = 8;
    .rv.data.API_v1_Clear_Request.GetGroups get_groups = 9;
  }
}

message API_v1_Clear_Response {
  message ClearLayer {
  }

  message PutGroup {
    .rv.data.API_v1_ClearGroup group = 1;
  }

  message DeleteGroup {
  }

  message TriggerGroup {
  }

  message CreateGroup {
    .rv.data.API_v1_ClearGroup group = 1;
  }

  message GetGroup {
    .rv.data.API_v1_ClearGroup group = 1;
  }

  message GetGroups {
    repeated .rv.data.API_v1_ClearGroup groups = 1;
  }

  message GetGroupIcon {
    string content_type = 1;
    bytes icon = 2;
  }

  message PutGroupIcon {
  }

  oneof Response {
    .rv.data.API_v1_Clear_Response.ClearLayer clear_layer = 1;
    .rv.data.API_v1_Clear_Response.CreateGroup create_group = 2;
    .rv.data.API_v1_Clear_Response.GetGroup get_group = 3;
    .rv.data.API_v1_Clear_Response.PutGroup put_group = 4;
    .rv.data.API_v1_Clear_Response.DeleteGroup delete_group = 5;
    .rv.data.API_v1_Clear_Response.TriggerGroup trigger_group = 6;
    .rv.data.API_v1_Clear_Response.GetGroups get_groups = 7;
    .rv.data.API_v1_Clear_Response.GetGroupIcon get_group_icon = 8;
    .rv.data.API_v1_Clear_Response.PutGroupIcon put_group_icon = 9;
  }
}

