# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: twirp/twitch.fulton.beefcake/service.proto

require 'google/protobuf'

require 'google/protobuf/timestamp_pb'
require 'google/protobuf/wrappers_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
  add_message "twitch.fulton.beefcake.CreateRoleRequest" do
    optional :name, :string, 1
  end
  add_message "twitch.fulton.beefcake.CreateRoleResponse" do
    optional :id, :string, 1
    optional :name, :string, 2
  end
  add_message "twitch.fulton.beefcake.AddRolePermissionRequest" do
    optional :role_id, :string, 1
    optional :permission, :message, 2, "twitch.fulton.beefcake.Permission"
  end
  add_message "twitch.fulton.beefcake.AddRolePermissionResponse" do
  end
  add_message "twitch.fulton.beefcake.AddLegacyPermissionToRoleRequest" do
    optional :role_id, :string, 1
    optional :legacy_permission_id, :string, 2
  end
  add_message "twitch.fulton.beefcake.AddLegacyPermissionToRoleResponse" do
  end
  add_message "twitch.fulton.beefcake.RemoveLegacyPermissionFromRoleRequest" do
    optional :role_id, :string, 1
    optional :legacy_permission_id, :string, 2
  end
  add_message "twitch.fulton.beefcake.RemoveLegacyPermissionFromRoleResponse" do
  end
  add_message "twitch.fulton.beefcake.OverrideRoleRequest" do
    optional :id, :string, 1
    optional :name, :string, 2
    repeated :permissions, :message, 3, "twitch.fulton.beefcake.Permission"
    repeated :user_memberships, :message, 4, "twitch.fulton.beefcake.Role.UserMembership"
  end
  add_message "twitch.fulton.beefcake.OverrideRoleResponse" do
  end
  add_message "twitch.fulton.beefcake.GetRolesRequest" do
  end
  add_message "twitch.fulton.beefcake.GetRolesResponse" do
    repeated :roles, :message, 1, "twitch.fulton.beefcake.GetRolesResponse.Role"
  end
  add_message "twitch.fulton.beefcake.GetRolesResponse.Role" do
    optional :id, :string, 1
    optional :name, :string, 2
  end
  add_message "twitch.fulton.beefcake.GetRoleRequest" do
    optional :id, :string, 1
  end
  add_message "twitch.fulton.beefcake.Role" do
    optional :id, :string, 1
    optional :name, :string, 2
    repeated :user_memberships, :message, 3, "twitch.fulton.beefcake.Role.UserMembership"
    repeated :permissions, :message, 4, "twitch.fulton.beefcake.AttachedPermission"
  end
  add_message "twitch.fulton.beefcake.Role.UserMembership" do
    optional :user_id, :string, 1
    optional :expiration, :message, 2, "google.protobuf.Timestamp"
    optional :date_added, :message, 3, "google.protobuf.Timestamp"
  end
  add_message "twitch.fulton.beefcake.StringArrayValue" do
    repeated :value, :string, 1
  end
  add_message "twitch.fulton.beefcake.UpdateRoleRequest" do
    optional :id, :string, 1
    optional :name, :message, 2, "google.protobuf.StringValue"
    optional :legacy_permission_ids, :message, 3, "twitch.fulton.beefcake.StringArrayValue"
  end
  add_message "twitch.fulton.beefcake.UpdateRoleResponse" do
  end
  add_message "twitch.fulton.beefcake.RemoveRolePermissionRequest" do
    optional :role_id, :string, 1
    optional :role_permission_id, :string, 2
  end
  add_message "twitch.fulton.beefcake.RemoveRolePermissionResponse" do
  end
  add_message "twitch.fulton.beefcake.UpdateRolePermissionScopeRequest" do
    optional :role_id, :string, 1
    optional :role_permission_id, :string, 2
    repeated :scope, :message, 3, "twitch.fulton.beefcake.PermissionScope"
  end
  add_message "twitch.fulton.beefcake.UpdateRolePermissionScopeResponse" do
  end
  add_message "twitch.fulton.beefcake.AddUserToRoleRequest" do
    optional :role_id, :string, 1
    optional :user_id, :string, 2
    optional :membership_expiration, :message, 3, "google.protobuf.Timestamp"
  end
  add_message "twitch.fulton.beefcake.AddUserToRoleResponse" do
  end
  add_message "twitch.fulton.beefcake.RemoveUserFromRoleRequest" do
    optional :role_id, :string, 1
    optional :user_id, :string, 2
  end
  add_message "twitch.fulton.beefcake.RemoveUserFromRoleResponse" do
  end
  add_message "twitch.fulton.beefcake.DeleteRoleRequest" do
    optional :id, :string, 1
  end
  add_message "twitch.fulton.beefcake.DeleteRoleResponse" do
  end
  add_message "twitch.fulton.beefcake.GetUserRequest" do
    optional :id, :string, 1
  end
  add_message "twitch.fulton.beefcake.User" do
    optional :id, :string, 1
    repeated :role_memberships, :message, 2, "twitch.fulton.beefcake.User.RoleMembership"
    repeated :permissions, :message, 3, "twitch.fulton.beefcake.AttachedPermission"
    optional :active, :bool, 4
  end
  add_message "twitch.fulton.beefcake.User.RoleMembership" do
    optional :id, :string, 1
    optional :name, :string, 2
    optional :membership_expiration, :message, 3, "google.protobuf.Timestamp"
    repeated :permissions, :message, 4, "twitch.fulton.beefcake.AttachedPermission"
    optional :date_added, :message, 5, "google.protobuf.Timestamp"
  end
  add_message "twitch.fulton.beefcake.ReactivateUserRequest" do
    optional :id, :string, 1
  end
  add_message "twitch.fulton.beefcake.ReactivateUserResponse" do
  end
  add_message "twitch.fulton.beefcake.GetLegacyPermissionsRequest" do
  end
  add_message "twitch.fulton.beefcake.GetLegacyPermissionsResponse" do
    repeated :legacy_permissions, :message, 1, "twitch.fulton.beefcake.GetLegacyPermissionsResponse.LegacyPermission"
  end
  add_message "twitch.fulton.beefcake.GetLegacyPermissionsResponse.LegacyPermission" do
    optional :id, :string, 1
    optional :name, :string, 2
    optional :description, :string, 3
  end
  add_message "twitch.fulton.beefcake.CreateLegacyPermissionRequest" do
    optional :id, :string, 1
    optional :name, :string, 2
    optional :description, :string, 3
  end
  add_message "twitch.fulton.beefcake.CreateLegacyPermissionResponse" do
  end
  add_message "twitch.fulton.beefcake.GetLegacyPermissionRequest" do
    optional :id, :string, 1
  end
  add_message "twitch.fulton.beefcake.LegacyPermission" do
    optional :id, :string, 1
    optional :name, :string, 2
    optional :description, :string, 3
    repeated :roles, :message, 4, "twitch.fulton.beefcake.LegacyPermission.Role"
    repeated :users, :message, 5, "twitch.fulton.beefcake.LegacyPermission.User"
  end
  add_message "twitch.fulton.beefcake.LegacyPermission.Role" do
    optional :id, :string, 1
    optional :name, :string, 2
    repeated :user_memberships, :message, 3, "twitch.fulton.beefcake.LegacyPermission.Role.UserMembership"
  end
  add_message "twitch.fulton.beefcake.LegacyPermission.Role.UserMembership" do
    optional :user_id, :string, 1
    optional :expiration, :message, 2, "google.protobuf.Timestamp"
    optional :date_added, :message, 3, "google.protobuf.Timestamp"
  end
  add_message "twitch.fulton.beefcake.LegacyPermission.User" do
    optional :id, :string, 1
  end
  add_message "twitch.fulton.beefcake.UpdateLegacyPermissionRequest" do
    optional :id, :string, 1
    optional :name, :message, 2, "google.protobuf.StringValue"
    optional :description, :message, 3, "google.protobuf.StringValue"
  end
  add_message "twitch.fulton.beefcake.UpdateLegacyPermissionResponse" do
  end
  add_message "twitch.fulton.beefcake.DeleteLegacyPermissionRequest" do
    optional :id, :string, 1
  end
  add_message "twitch.fulton.beefcake.DeleteLegacyPermissionResponse" do
  end
  add_message "twitch.fulton.beefcake.Permission" do
    oneof :value do
      optional :legacy, :message, 1, "twitch.fulton.beefcake.Permission.LegacyPermission"
      optional :twitch_user, :message, 2, "twitch.fulton.beefcake.Permission.TwitchUserPermission"
    end
  end
  add_message "twitch.fulton.beefcake.Permission.LegacyPermission" do
    optional :id, :string, 1
    optional :name, :string, 2
  end
  add_message "twitch.fulton.beefcake.Permission.TwitchUserPermission" do
    optional :action, :enum, 1, "twitch.fulton.beefcake.Permission.TwitchUserPermission.ActionType"
    oneof :resource do
      optional :any, :message, 2, "twitch.fulton.beefcake.Permission.TwitchUserPermission.AnyResource"
      optional :twitch_user_id, :string, 3
    end
  end
  add_message "twitch.fulton.beefcake.Permission.TwitchUserPermission.AnyResource" do
  end
  add_enum "twitch.fulton.beefcake.Permission.TwitchUserPermission.ActionType" do
    value :ANY, 0
    value :GET_PII, 1
  end
  add_message "twitch.fulton.beefcake.AttachedPermission" do
    optional :id, :string, 1
    optional :permission, :message, 2, "twitch.fulton.beefcake.Permission"
    repeated :scope, :message, 3, "twitch.fulton.beefcake.PermissionScope"
  end
  add_message "twitch.fulton.beefcake.PermissionScope" do
    oneof :scope do
      optional :channel_payout, :enum, 1, "twitch.fulton.beefcake.PermissionScope.ChannelPayoutType"
    end
  end
  add_enum "twitch.fulton.beefcake.PermissionScope.ChannelPayoutType" do
    value :NO_PAYOUT_TYPE, 0
    value :AFFILIATE, 1
    value :PARTNER, 2
    value :DEVELOPER, 3
  end
end

module Twitch
  module Fulton
    module Beefcake
      CreateRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.CreateRoleRequest").msgclass
      CreateRoleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.CreateRoleResponse").msgclass
      AddRolePermissionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.AddRolePermissionRequest").msgclass
      AddRolePermissionResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.AddRolePermissionResponse").msgclass
      AddLegacyPermissionToRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.AddLegacyPermissionToRoleRequest").msgclass
      AddLegacyPermissionToRoleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.AddLegacyPermissionToRoleResponse").msgclass
      RemoveLegacyPermissionFromRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.RemoveLegacyPermissionFromRoleRequest").msgclass
      RemoveLegacyPermissionFromRoleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.RemoveLegacyPermissionFromRoleResponse").msgclass
      OverrideRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.OverrideRoleRequest").msgclass
      OverrideRoleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.OverrideRoleResponse").msgclass
      GetRolesRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetRolesRequest").msgclass
      GetRolesResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetRolesResponse").msgclass
      GetRolesResponse::Role = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetRolesResponse.Role").msgclass
      GetRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetRoleRequest").msgclass
      Role = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.Role").msgclass
      Role::UserMembership = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.Role.UserMembership").msgclass
      StringArrayValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.StringArrayValue").msgclass
      UpdateRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.UpdateRoleRequest").msgclass
      UpdateRoleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.UpdateRoleResponse").msgclass
      RemoveRolePermissionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.RemoveRolePermissionRequest").msgclass
      RemoveRolePermissionResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.RemoveRolePermissionResponse").msgclass
      UpdateRolePermissionScopeRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.UpdateRolePermissionScopeRequest").msgclass
      UpdateRolePermissionScopeResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.UpdateRolePermissionScopeResponse").msgclass
      AddUserToRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.AddUserToRoleRequest").msgclass
      AddUserToRoleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.AddUserToRoleResponse").msgclass
      RemoveUserFromRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.RemoveUserFromRoleRequest").msgclass
      RemoveUserFromRoleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.RemoveUserFromRoleResponse").msgclass
      DeleteRoleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.DeleteRoleRequest").msgclass
      DeleteRoleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.DeleteRoleResponse").msgclass
      GetUserRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetUserRequest").msgclass
      User = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.User").msgclass
      User::RoleMembership = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.User.RoleMembership").msgclass
      ReactivateUserRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.ReactivateUserRequest").msgclass
      ReactivateUserResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.ReactivateUserResponse").msgclass
      GetLegacyPermissionsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetLegacyPermissionsRequest").msgclass
      GetLegacyPermissionsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetLegacyPermissionsResponse").msgclass
      GetLegacyPermissionsResponse::LegacyPermission = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetLegacyPermissionsResponse.LegacyPermission").msgclass
      CreateLegacyPermissionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.CreateLegacyPermissionRequest").msgclass
      CreateLegacyPermissionResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.CreateLegacyPermissionResponse").msgclass
      GetLegacyPermissionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.GetLegacyPermissionRequest").msgclass
      LegacyPermission = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.LegacyPermission").msgclass
      LegacyPermission::Role = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.LegacyPermission.Role").msgclass
      LegacyPermission::Role::UserMembership = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.LegacyPermission.Role.UserMembership").msgclass
      LegacyPermission::User = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.LegacyPermission.User").msgclass
      UpdateLegacyPermissionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.UpdateLegacyPermissionRequest").msgclass
      UpdateLegacyPermissionResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.UpdateLegacyPermissionResponse").msgclass
      DeleteLegacyPermissionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.DeleteLegacyPermissionRequest").msgclass
      DeleteLegacyPermissionResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.DeleteLegacyPermissionResponse").msgclass
      Permission = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.Permission").msgclass
      Permission::LegacyPermission = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.Permission.LegacyPermission").msgclass
      Permission::TwitchUserPermission = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.Permission.TwitchUserPermission").msgclass
      Permission::TwitchUserPermission::AnyResource = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.Permission.TwitchUserPermission.AnyResource").msgclass
      Permission::TwitchUserPermission::ActionType = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.Permission.TwitchUserPermission.ActionType").enummodule
      AttachedPermission = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.AttachedPermission").msgclass
      PermissionScope = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.PermissionScope").msgclass
      PermissionScope::ChannelPayoutType = Google::Protobuf::DescriptorPool.generated_pool.lookup("twitch.fulton.beefcake.PermissionScope.ChannelPayoutType").enummodule
    end
  end
end
