# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: twirp/code.justin.tv.commerce.percy/service.proto

require 'google/protobuf'

require 'google/protobuf/wrappers_pb'
require 'google/protobuf/timestamp_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
  add_message "code.justin.tv.commerce.percy.HealthCheckReq" do
  end
  add_message "code.justin.tv.commerce.percy.HealthCheckResp" do
    optional :response, :string, 1
  end
  add_message "code.justin.tv.commerce.percy.GetHypeTrainConfigReq" do
    optional :channel_id, :string, 1
  end
  add_message "code.justin.tv.commerce.percy.GetHypeTrainConfigResp" do
    optional :channel_id, :string, 1
    optional :config, :message, 2, "code.justin.tv.commerce.percy.HypeTrainConfig"
  end
  add_message "code.justin.tv.commerce.percy.UpdateHypeTrainConfigReq" do
    optional :channel_id, :string, 1
    optional :enabled, :message, 2, "google.protobuf.BoolValue"
    optional :num_of_events_to_kickoff, :message, 3, "google.protobuf.Int64Value"
    optional :difficulty, :enum, 4, "code.justin.tv.commerce.percy.Difficulty"
    optional :cooldown_duration_minutes, :message, 5, "google.protobuf.Int64Value"
    optional :callout_emote_id, :message, 6, "google.protobuf.StringValue"
    optional :theme_color, :message, 7, "google.protobuf.StringValue"
  end
  add_message "code.justin.tv.commerce.percy.UpdateHypeTrainConfigResp" do
    optional :channel_id, :string, 1
    optional :config, :message, 2, "code.justin.tv.commerce.percy.HypeTrainConfig"
  end
  add_message "code.justin.tv.commerce.percy.UnsetHypeTrainConfigReq" do
    optional :channel_id, :string, 1
    optional :enabled, :message, 2, "google.protobuf.BoolValue"
    optional :num_of_events_to_kickoff, :message, 3, "google.protobuf.BoolValue"
    optional :difficulty, :message, 4, "google.protobuf.BoolValue"
    optional :cooldown_duration_minutes, :message, 5, "google.protobuf.BoolValue"
    optional :callout_emote_id, :message, 6, "google.protobuf.BoolValue"
    optional :theme_color, :message, 7, "google.protobuf.BoolValue"
  end
  add_message "code.justin.tv.commerce.percy.UnsetHypeTrainConfigResp" do
    optional :channel_id, :string, 1
    optional :config, :message, 2, "code.justin.tv.commerce.percy.HypeTrainConfig"
  end
  add_message "code.justin.tv.commerce.percy.HypeTrainConfig" do
    optional :enabled, :bool, 1
    optional :kickoff_config, :message, 2, "code.justin.tv.commerce.percy.KickoffConfig"
    optional :cooldown_duration_minutes, :int64, 3
    optional :level_duration_seconds, :int64, 4
    optional :difficulty, :enum, 5, "code.justin.tv.commerce.percy.Difficulty"
    repeated :difficulty_settings, :message, 6, "code.justin.tv.commerce.percy.DifficultySetting"
    repeated :conductor_rewards, :message, 7, "code.justin.tv.commerce.percy.ConductorReward"
    repeated :participation_conversion_rates, :message, 8, "code.justin.tv.commerce.percy.ParticipationConversionRate"
    repeated :notification_thresholds, :message, 9, "code.justin.tv.commerce.percy.NotificationThreshold"
    optional :is_whitelisted, :bool, 10
    optional :reward_end_date, :message, 11, "google.protobuf.Timestamp"
    optional :callout_emote_id, :string, 12
    optional :theme_color, :string, 13
  end
  add_message "code.justin.tv.commerce.percy.KickoffConfig" do
    optional :num_of_events, :int64, 1
    optional :min_points, :int64, 2
    optional :duration_seconds, :int64, 3
  end
  add_message "code.justin.tv.commerce.percy.DifficultySetting" do
    optional :difficulty, :enum, 1, "code.justin.tv.commerce.percy.Difficulty"
    repeated :level_settings, :message, 2, "code.justin.tv.commerce.percy.LevelSetting"
  end
  add_message "code.justin.tv.commerce.percy.LevelSetting" do
    optional :level, :int64, 1
    optional :goal, :int64, 2
    repeated :rewards, :message, 3, "code.justin.tv.commerce.percy.Reward"
  end
  add_message "code.justin.tv.commerce.percy.Reward" do
    optional :id, :string, 1
    optional :group_id, :string, 2
    optional :type, :enum, 3, "code.justin.tv.commerce.percy.RewardType"
  end
  add_message "code.justin.tv.commerce.percy.ConductorReward" do
    optional :source, :enum, 1, "code.justin.tv.commerce.percy.ParticipationSource"
    optional :type, :enum, 2, "code.justin.tv.commerce.percy.ConductorType"
    repeated :rewards, :message, 3, "code.justin.tv.commerce.percy.Reward"
  end
  add_message "code.justin.tv.commerce.percy.Conductor" do
    optional :source, :enum, 1, "code.justin.tv.commerce.percy.ParticipationSource"
    optional :user_id, :string, 2
    repeated :participations, :message, 3, "code.justin.tv.commerce.percy.Participation"
  end
  add_message "code.justin.tv.commerce.percy.ParticipationConversionRate" do
    optional :source, :enum, 1, "code.justin.tv.commerce.percy.ParticipationSource"
    optional :action, :enum, 2, "code.justin.tv.commerce.percy.ParticipationAction"
    optional :rate, :int64, 3
  end
  add_message "code.justin.tv.commerce.percy.NotificationThreshold" do
    optional :source, :enum, 1, "code.justin.tv.commerce.percy.ParticipationSource"
    optional :action, :enum, 2, "code.justin.tv.commerce.percy.ParticipationAction"
    optional :quantity, :int64, 3
  end
  add_message "code.justin.tv.commerce.percy.HypeTrain" do
    optional :channel_id, :string, 1
    optional :id, :string, 2
    optional :started_at, :message, 3, "google.protobuf.Timestamp"
    optional :expires_at, :message, 4, "google.protobuf.Timestamp"
    optional :updated_at, :message, 5, "google.protobuf.Timestamp"
    optional :ended_at, :message, 6, "google.protobuf.Timestamp"
    optional :ending_reason, :enum, 7, "code.justin.tv.commerce.percy.EndingReason"
    optional :config, :message, 8, "code.justin.tv.commerce.percy.HypeTrainConfig"
    repeated :conductors, :message, 9, "code.justin.tv.commerce.percy.Conductor"
    repeated :participations, :message, 10, "code.justin.tv.commerce.percy.Participation"
    optional :is_active, :bool, 11
    optional :level_progress, :message, 12, "code.justin.tv.commerce.percy.Progress"
  end
  add_message "code.justin.tv.commerce.percy.Progress" do
    optional :setting, :message, 1, "code.justin.tv.commerce.percy.LevelSetting"
    optional :progression, :int64, 2
    optional :goal, :int64, 3
    optional :total, :int64, 4
    optional :remaining_seconds, :int64, 5
  end
  add_message "code.justin.tv.commerce.percy.Participation" do
    optional :source, :enum, 1, "code.justin.tv.commerce.percy.ParticipationSource"
    optional :action, :enum, 2, "code.justin.tv.commerce.percy.ParticipationAction"
    optional :quantity, :int64, 3
  end
  add_message "code.justin.tv.commerce.percy.GetOngoingHypeTrainReq" do
    optional :channel_id, :string, 1
  end
  add_message "code.justin.tv.commerce.percy.GetOngoingHypeTrainResp" do
    optional :hype_train, :message, 1, "code.justin.tv.commerce.percy.HypeTrain"
  end
  add_message "code.justin.tv.commerce.percy.UpsertHypeTrainReq" do
    optional :hype_train, :message, 1, "code.justin.tv.commerce.percy.HypeTrain"
  end
  add_message "code.justin.tv.commerce.percy.UpsertHypeTrainResp" do
  end
  add_message "code.justin.tv.commerce.percy.CanStartHypeTrainReq" do
    optional :channel_id, :string, 1
  end
  add_message "code.justin.tv.commerce.percy.CanStartHypeTrainResp" do
    optional :can_start_hype_train, :bool, 1
  end
  add_message "code.justin.tv.commerce.percy.GetHypeTrainBadgesReq" do
    optional :user_id, :string, 1
    optional :channel_id, :string, 2
  end
  add_message "code.justin.tv.commerce.percy.GetHypeTrainBadgesResp" do
    repeated :badges, :message, 1, "code.justin.tv.commerce.percy.HypeTrainBadge"
  end
  add_message "code.justin.tv.commerce.percy.HypeTrainBadge" do
    optional :badge_type, :enum, 1, "code.justin.tv.commerce.percy.BadgeType"
  end
  add_message "code.justin.tv.commerce.percy.HelixGetMostRecentHypeTrainReq" do
    optional :channel_id, :string, 1
  end
  add_message "code.justin.tv.commerce.percy.Contribution" do
    optional :type, :string, 1
    optional :user, :string, 2
    optional :total, :int64, 3
  end
  add_message "code.justin.tv.commerce.percy.HelixGetMostRecentHypeTrainResp" do
    optional :hype_train_id, :string, 1
    optional :started_at, :message, 2, "google.protobuf.Timestamp"
    optional :expires_at, :message, 3, "google.protobuf.Timestamp"
    optional :cooldown_end_time, :message, 4, "google.protobuf.Timestamp"
    optional :level, :int64, 5
    optional :goal, :int64, 6
    optional :total, :int64, 7
    repeated :top_contributions, :message, 8, "code.justin.tv.commerce.percy.Contribution"
    optional :last_contribution, :message, 9, "code.justin.tv.commerce.percy.Contribution"
  end
  add_message "code.justin.tv.commerce.percy.AdminGrantHypeTrainRewardsReq" do
    optional :channel_id, :string, 1
    optional :user_id, :string, 2
    oneof :hype_train_identifier do
      optional :hype_train_id, :string, 3
      optional :participated_at, :message, 4, "google.protobuf.Timestamp"
    end
  end
  add_message "code.justin.tv.commerce.percy.AdminGrantHypeTrainRewardsResp" do
    optional :channel_id, :string, 1
    optional :user_id, :string, 2
    optional :hype_train, :message, 3, "code.justin.tv.commerce.percy.HypeTrain"
    repeated :granted_rewards, :message, 4, "code.justin.tv.commerce.percy.Reward"
    repeated :user_owned_rewards, :message, 5, "code.justin.tv.commerce.percy.Reward"
    repeated :participation_totals, :message, 6, "code.justin.tv.commerce.percy.Participation"
  end
  add_enum "code.justin.tv.commerce.percy.Difficulty" do
    value :UNKNOWN_DIFFICULTY, 0
    value :EASY, 1
    value :MEDIUM, 2
    value :HARD, 3
    value :SUPER_HARD, 4
    value :INSANE, 5
  end
  add_enum "code.justin.tv.commerce.percy.RewardType" do
    value :UNKNOWN_REWARD_TYPE, 0
    value :EMOTE, 1
    value :BADGE, 2
  end
  add_enum "code.justin.tv.commerce.percy.ConductorType" do
    value :UNKNOWN_CONDUCTOR_TYPE, 0
    value :CURRENT, 1
    value :FORMER, 2
  end
  add_enum "code.justin.tv.commerce.percy.ParticipationSource" do
    value :UNKNOWN_SOURCE, 0
    value :BITS, 1
    value :SUBS, 2
    value :ADMIN_SOURCE, 3
  end
  add_enum "code.justin.tv.commerce.percy.ParticipationAction" do
    value :UNKNOWN_ACTION, 0
    value :CHEER, 1
    value :EXTENSION, 2
    value :POLL, 3
    value :TIER_1_SUB, 4
    value :TIER_2_SUB, 5
    value :TIER_3_SUB, 6
    value :TIER_1_GIFTED_SUB, 7
    value :TIER_2_GIFTED_SUB, 8
    value :TIER_3_GIFTED_SUB, 9
    value :ADMIN_ACTION, 10
  end
  add_enum "code.justin.tv.commerce.percy.EndingReason" do
    value :UNKNOWN_REASON, 0
    value :IN_PROGRESS, 1
    value :EXPIRED, 2
    value :COMPLETED, 3
  end
  add_enum "code.justin.tv.commerce.percy.BadgeType" do
    value :UNKNOWN_BADGE, 0
    value :CURRENT_CONDUCTOR, 1
    value :FORMER_CONDUCTOR, 2
  end
end

module Code
  module Justin
    module Tv
      module Commerce
        module Percy
          HealthCheckReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.HealthCheckReq").msgclass
          HealthCheckResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.HealthCheckResp").msgclass
          GetHypeTrainConfigReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.GetHypeTrainConfigReq").msgclass
          GetHypeTrainConfigResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.GetHypeTrainConfigResp").msgclass
          UpdateHypeTrainConfigReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.UpdateHypeTrainConfigReq").msgclass
          UpdateHypeTrainConfigResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.UpdateHypeTrainConfigResp").msgclass
          UnsetHypeTrainConfigReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.UnsetHypeTrainConfigReq").msgclass
          UnsetHypeTrainConfigResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.UnsetHypeTrainConfigResp").msgclass
          HypeTrainConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.HypeTrainConfig").msgclass
          KickoffConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.KickoffConfig").msgclass
          DifficultySetting = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.DifficultySetting").msgclass
          LevelSetting = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.LevelSetting").msgclass
          Reward = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.Reward").msgclass
          ConductorReward = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.ConductorReward").msgclass
          Conductor = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.Conductor").msgclass
          ParticipationConversionRate = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.ParticipationConversionRate").msgclass
          NotificationThreshold = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.NotificationThreshold").msgclass
          HypeTrain = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.HypeTrain").msgclass
          Progress = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.Progress").msgclass
          Participation = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.Participation").msgclass
          GetOngoingHypeTrainReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.GetOngoingHypeTrainReq").msgclass
          GetOngoingHypeTrainResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.GetOngoingHypeTrainResp").msgclass
          UpsertHypeTrainReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.UpsertHypeTrainReq").msgclass
          UpsertHypeTrainResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.UpsertHypeTrainResp").msgclass
          CanStartHypeTrainReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.CanStartHypeTrainReq").msgclass
          CanStartHypeTrainResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.CanStartHypeTrainResp").msgclass
          GetHypeTrainBadgesReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.GetHypeTrainBadgesReq").msgclass
          GetHypeTrainBadgesResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.GetHypeTrainBadgesResp").msgclass
          HypeTrainBadge = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.HypeTrainBadge").msgclass
          HelixGetMostRecentHypeTrainReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.HelixGetMostRecentHypeTrainReq").msgclass
          Contribution = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.Contribution").msgclass
          HelixGetMostRecentHypeTrainResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.HelixGetMostRecentHypeTrainResp").msgclass
          AdminGrantHypeTrainRewardsReq = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.AdminGrantHypeTrainRewardsReq").msgclass
          AdminGrantHypeTrainRewardsResp = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.AdminGrantHypeTrainRewardsResp").msgclass
          Difficulty = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.Difficulty").enummodule
          RewardType = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.RewardType").enummodule
          ConductorType = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.ConductorType").enummodule
          ParticipationSource = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.ParticipationSource").enummodule
          ParticipationAction = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.ParticipationAction").enummodule
          EndingReason = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.EndingReason").enummodule
          BadgeType = Google::Protobuf::DescriptorPool.generated_pool.lookup("code.justin.tv.commerce.percy.BadgeType").enummodule
        end
      end
    end
  end
end
