# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: steammessages_broadcast.proto
# plugin: python-betterproto

from dataclasses import dataclass
from typing import List

import betterproto


class EBroadcastWatchLocation(betterproto.Enum):
    Invalid = 0
    SteamTV_Tab = 1
    SteamTV_WatchParty = 2
    Chat_Tab = 3
    Chat_WatchParty = 4
    CommunityPage = 5
    StoreAppPage = 6
    InGame = 7
    BigPicture = 8
    SalesPage = 9
    CuratorPage = 10
    DeveloperPage = 11
    Chat_Friends = 12
    SteamTV_Web = 13


class EBroadcastChatPermission(betterproto.Enum):
    Public = 0
    OwnsApp = 1


class CBroadcast_WatchBroadcast_ResponseEWatchResponse(betterproto.Enum):
    Ready = 1
    NotAvailable = 2
    WaitingForApproval = 3
    WaitingForStart = 4
    InvalidSession = 5
    TooManyBroadcasts = 6
    WaitingForReconnect = 7
    SystemNotSupported = 8
    UserRestricted = 9
    ClientOutOfDate = 10
    PoorUploadQuality = 11
    MissingSubscription = 12


class CBroadcast_BroadcastViewerState_NotificationEViewerState(betterproto.Enum):
    rNeedsApproval = 1
    rWatching = 2
    rLeft = 3


@dataclass
class CBroadcast_BeginBroadcastSession_Request(betterproto.Message):
    permission: int = betterproto.int32_field(1)
    gameid: int = betterproto.uint64_field(2)
    client_instance_id: int = betterproto.uint64_field(3)
    title: str = betterproto.string_field(4)
    cellid: int = betterproto.uint32_field(5)
    rtmp_token: int = betterproto.uint64_field(6)
    thumbnail_upload: bool = betterproto.bool_field(7)
    client_beta: str = betterproto.string_field(8)
    sysid: int = betterproto.uint32_field(9)


@dataclass
class CBroadcast_BeginBroadcastSession_Response(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)
    thumbnail_upload_address: str = betterproto.string_field(2)
    thumbnail_upload_token: str = betterproto.string_field(3)
    thumbnail_interval_seconds: int = betterproto.uint32_field(4)
    heartbeat_interval_seconds: int = betterproto.uint32_field(5)


@dataclass
class CBroadcast_EndBroadcastSession_Request(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_EndBroadcastSession_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_StartBroadcastUpload_Request(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)
    cellid: int = betterproto.uint32_field(2)
    as_rtmp: bool = betterproto.bool_field(3)
    delay_seconds: int = betterproto.uint32_field(4)
    rtmp_token: int = betterproto.uint64_field(5)
    upload_ip_address: int = betterproto.uint32_field(6)
    is_replay: bool = betterproto.bool_field(7)
    sysid: int = betterproto.uint32_field(8)


@dataclass
class CBroadcast_StartBroadcastUpload_Response(betterproto.Message):
    upload_token: str = betterproto.string_field(1)
    upload_address: str = betterproto.string_field(2)
    broadcast_upload_id: float = betterproto.fixed64_field(3)
    enable_replay: bool = betterproto.bool_field(6)
    http_address: str = betterproto.string_field(7)


@dataclass
class CBroadcast_NotifyBroadcastUploadStop_Notification(betterproto.Message):
    broadcast_upload_id: float = betterproto.fixed64_field(1)
    upload_result: int = betterproto.uint32_field(2)


@dataclass
class CBroadcast_WatchBroadcast_Request(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    existing_broadcast_id: float = betterproto.fixed64_field(2)
    viewer_token: float = betterproto.fixed64_field(3)
    client_ip: int = betterproto.uint32_field(4)
    client_cell: int = betterproto.uint32_field(5)
    watch_location: "EBroadcastWatchLocation" = betterproto.enum_field(6)
    is_webrtc: bool = betterproto.bool_field(7)


@dataclass
class CBroadcast_WatchBroadcast_Response(betterproto.Message):
    response: "CBroadcast_WatchBroadcast_ResponseEWatchResponse" = betterproto.enum_field(1)
    mpd_url: str = betterproto.string_field(2)
    broadcast_id: float = betterproto.fixed64_field(3)
    gameid: int = betterproto.uint64_field(4)
    title: str = betterproto.string_field(5)
    num_viewers: int = betterproto.uint32_field(6)
    permission: int = betterproto.int32_field(7)
    is_rtmp: bool = betterproto.bool_field(8)
    seconds_delay: int = betterproto.int32_field(9)
    viewer_token: float = betterproto.fixed64_field(10)
    hls_m3u8_master_url: str = betterproto.string_field(11)
    heartbeat_interval: int = betterproto.int32_field(12)
    thumbnail_url: str = betterproto.string_field(13)
    is_webrtc: bool = betterproto.bool_field(14)
    webrtc_session_id: float = betterproto.fixed64_field(15)
    webrtc_offer_sdp: str = betterproto.string_field(16)
    webrtc_turn_server: str = betterproto.string_field(17)
    is_replay: bool = betterproto.bool_field(18)
    duration: int = betterproto.int32_field(19)


@dataclass
class CBroadcast_HeartbeatBroadcast_Notification(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    broadcast_id: float = betterproto.fixed64_field(2)
    viewer_token: float = betterproto.fixed64_field(3)
    representation: int = betterproto.uint32_field(4)


@dataclass
class CBroadcast_StopWatchingBroadcast_Notification(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    broadcast_id: float = betterproto.fixed64_field(2)
    viewer_token: float = betterproto.fixed64_field(3)


@dataclass
class CBroadcast_GetBroadcastStatus_Request(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    broadcast_id: float = betterproto.fixed64_field(2)


@dataclass
class CBroadcast_GetBroadcastStatus_Response(betterproto.Message):
    gameid: int = betterproto.uint64_field(1)
    title: str = betterproto.string_field(2)
    num_viewers: int = betterproto.uint32_field(3)
    permission: int = betterproto.int32_field(4)
    is_rtmp: bool = betterproto.bool_field(5)
    seconds_delay: int = betterproto.int32_field(6)
    is_publisher: bool = betterproto.bool_field(7)
    thumbnail_url: str = betterproto.string_field(8)
    update_interval: int = betterproto.int32_field(9)
    is_uploading: bool = betterproto.bool_field(10)
    duration: int = betterproto.uint32_field(11)
    is_replay: bool = betterproto.bool_field(12)
    is_capturing_vod: bool = betterproto.bool_field(13)
    is_store_whitelisted: bool = betterproto.bool_field(14)


@dataclass
class CBroadcast_GetBroadcastThumbnail_Request(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    broadcast_id: float = betterproto.fixed64_field(2)


@dataclass
class CBroadcast_GetBroadcastThumbnail_Response(betterproto.Message):
    thumbnail_url: str = betterproto.string_field(1)
    update_interval: int = betterproto.int32_field(2)
    num_viewers: int = betterproto.int32_field(3)
    duration: int = betterproto.int32_field(4)


@dataclass
class CBroadcast_InviteToBroadcast_Request(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    approval_response: bool = betterproto.bool_field(2)


@dataclass
class CBroadcast_InviteToBroadcast_Response(betterproto.Message):
    success: bool = betterproto.bool_field(1)


@dataclass
class CBroadcast_SendBroadcastStateToServer_Request(betterproto.Message):
    permission: int = betterproto.int32_field(1)
    gameid: int = betterproto.uint64_field(2)
    title: str = betterproto.string_field(3)
    game_data_config: str = betterproto.string_field(4)


@dataclass
class CBroadcast_SendBroadcastStateToServer_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_NotifyBroadcastSessionHeartbeat_Notification(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_GetBroadcastChatInfo_Request(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    broadcast_id: float = betterproto.fixed64_field(2)
    client_ip: int = betterproto.uint32_field(3)
    client_cell: int = betterproto.uint32_field(4)


@dataclass
class CBroadcast_GetBroadcastChatInfo_Response(betterproto.Message):
    chat_id: float = betterproto.fixed64_field(1)
    view_url_template: str = betterproto.string_field(3)
    flair_group_ids: List[int] = betterproto.uint32_field(4)


@dataclass
class CBroadcast_PostChatMessage_Request(betterproto.Message):
    chat_id: float = betterproto.fixed64_field(1)
    message: str = betterproto.string_field(2)
    instance_id: int = betterproto.uint32_field(3)
    language: int = betterproto.uint32_field(4)
    country_code: str = betterproto.string_field(5)


@dataclass
class CBroadcast_PostChatMessage_Response(betterproto.Message):
    persona_name: str = betterproto.string_field(1)
    in_game: bool = betterproto.bool_field(2)
    result: int = betterproto.int32_field(3)
    cooldown_time_seconds: int = betterproto.int32_field(4)


@dataclass
class CBroadcast_UpdateChatMessageFlair_Request(betterproto.Message):
    chat_id: float = betterproto.fixed64_field(1)
    flair: str = betterproto.string_field(2)


@dataclass
class CBroadcast_UpdateChatMessageFlair_Response(betterproto.Message):
    result: int = betterproto.int32_field(1)
    chat_id: float = betterproto.fixed64_field(2)
    flair: str = betterproto.string_field(3)


@dataclass
class CBroadcast_MuteBroadcastChatUser_Request(betterproto.Message):
    chat_id: float = betterproto.fixed64_field(1)
    user_steamid: float = betterproto.fixed64_field(2)
    muted: bool = betterproto.bool_field(3)


@dataclass
class CBroadcast_MuteBroadcastChatUser_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_RemoveUserChatText_Request(betterproto.Message):
    chat_id: float = betterproto.fixed64_field(1)
    user_steamid: float = betterproto.fixed64_field(2)


@dataclass
class CBroadcast_RemoveUserChatText_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_GetBroadcastChatUserNames_Request(betterproto.Message):
    chat_id: float = betterproto.fixed64_field(1)
    user_steamid: List[float] = betterproto.fixed64_field(2)


@dataclass
class CBroadcast_GetBroadcastChatUserNames_Response(betterproto.Message):
    persona_names: List["CBroadcast_GetBroadcastChatUserNames_ResponsePersonaName"] = betterproto.message_field(1)


@dataclass
class CBroadcast_GetBroadcastChatUserNames_ResponsePersonaName(betterproto.Message):
    steam_id: float = betterproto.fixed64_field(1)
    persona: str = betterproto.string_field(2)


@dataclass
class CBroadcast_StartBuildClip_Request(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    broadcast_session_id: float = betterproto.fixed64_field(2)
    first_segment: int = betterproto.int32_field(3)
    num_segments: int = betterproto.int32_field(4)
    clip_description: str = betterproto.string_field(5)


@dataclass
class CBroadcast_StartBuildClip_Response(betterproto.Message):
    broadcast_clip_id: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_GetBuildClipStatus_Request(betterproto.Message):
    broadcast_clip_id: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_GetBuildClipStatus_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_SetClipDetails_Request(betterproto.Message):
    broadcast_clip_id: int = betterproto.uint64_field(1)
    start_time: int = betterproto.uint32_field(2)
    end_time: int = betterproto.uint32_field(3)
    video_description: str = betterproto.string_field(4)


@dataclass
class CBroadcast_SetClipDetails_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_GetClipDetails_Request(betterproto.Message):
    broadcast_clip_id: int = betterproto.uint64_field(1)


@dataclass
class CBroadcast_GetClipDetails_Response(betterproto.Message):
    broadcast_clip_id: int = betterproto.uint64_field(1)
    video_id: int = betterproto.uint64_field(2)
    channel_id: int = betterproto.uint64_field(3)
    app_id: int = betterproto.uint32_field(4)
    accountid_broadcaster: int = betterproto.uint32_field(5)
    accountid_clipmaker: int = betterproto.uint32_field(6)
    video_description: str = betterproto.string_field(7)
    start_time: int = betterproto.uint32_field(8)
    length_milliseconds: int = betterproto.uint32_field(9)
    thumbnail_path: str = betterproto.string_field(10)


@dataclass
class CBroadcast_SetRTMPInfo_Request(betterproto.Message):
    broadcast_permission: int = betterproto.int32_field(1)
    update_token: bool = betterproto.bool_field(2)
    broadcast_delay: int = betterproto.int32_field(3)
    app_id: int = betterproto.uint32_field(4)
    required_app_id: int = betterproto.uint32_field(5)
    broadcast_chat_permission: "EBroadcastChatPermission" = betterproto.enum_field(6)
    broadcast_buffer: int = betterproto.int32_field(7)
    steamid: float = betterproto.fixed64_field(8)
    chat_rate_limit: int = betterproto.uint32_field(9)
    enable_replay: bool = betterproto.bool_field(10)


@dataclass
class CBroadcast_SetRTMPInfo_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_GetRTMPInfo_Request(betterproto.Message):
    ip: int = betterproto.uint32_field(1)
    steamid: float = betterproto.fixed64_field(2)


@dataclass
class CBroadcast_GetRTMPInfo_Response(betterproto.Message):
    broadcast_permission: int = betterproto.int32_field(1)
    rtmp_host: str = betterproto.string_field(2)
    rtmp_token: str = betterproto.string_field(3)
    broadcast_delay: int = betterproto.int32_field(4)
    app_id: int = betterproto.uint32_field(5)
    required_app_id: int = betterproto.uint32_field(6)
    broadcast_chat_permission: "EBroadcastChatPermission" = betterproto.enum_field(7)
    broadcast_buffer: int = betterproto.int32_field(8)
    steamid: float = betterproto.fixed64_field(9)
    chat_rate_limit: int = betterproto.uint32_field(10)
    enable_replay: bool = betterproto.bool_field(11)


@dataclass
class CBroadcast_WebRTCHaveTURNServer_Notification(betterproto.Message):
    broadcast_session_id: float = betterproto.fixed64_field(1)
    turn_server: str = betterproto.string_field(2)


@dataclass
class CBroadcast_WebRTCStartResult_Request(betterproto.Message):
    webrtc_session_id: float = betterproto.fixed64_field(1)
    started: bool = betterproto.bool_field(2)
    offer: str = betterproto.string_field(3)
    resolution_x: int = betterproto.uint32_field(4)
    resolution_y: int = betterproto.uint32_field(5)
    fps: int = betterproto.uint32_field(6)


@dataclass
class CBroadcast_WebRTCStartResult_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_WebRTCStopped_Request(betterproto.Message):
    webrtc_session_id: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_WebRTCStopped_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_WebRTCSetAnswer_Request(betterproto.Message):
    broadcaster_steamid: float = betterproto.fixed64_field(1)
    webrtc_session_id: float = betterproto.fixed64_field(2)
    answer: str = betterproto.string_field(3)


@dataclass
class CBroadcast_WebRTCSetAnswer_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_WebRTCLookupTURNServer_Request(betterproto.Message):
    cellid: int = betterproto.uint32_field(1)


@dataclass
class CBroadcast_WebRTCLookupTURNServer_Response(betterproto.Message):
    turn_server: str = betterproto.string_field(1)


@dataclass
class CBroadcast_WebRTC_Candidate(betterproto.Message):
    sdp_mid: str = betterproto.string_field(1)
    sdp_mline_index: int = betterproto.int32_field(2)
    candidate: str = betterproto.string_field(3)


@dataclass
class CBroadcast_WebRTCAddHostCandidate_Request(betterproto.Message):
    webrtc_session_id: float = betterproto.fixed64_field(1)
    candidate: "CBroadcast_WebRTC_Candidate" = betterproto.message_field(2)


@dataclass
class CBroadcast_WebRTCAddHostCandidate_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_WebRTCAddViewerCandidate_Request(betterproto.Message):
    broadcaster_steamid: float = betterproto.fixed64_field(1)
    webrtc_session_id: float = betterproto.fixed64_field(2)
    candidate: "CBroadcast_WebRTC_Candidate" = betterproto.message_field(3)


@dataclass
class CBroadcast_WebRTCAddViewerCandidate_Response(betterproto.Message):
    pass


@dataclass
class CBroadcast_WebRTCGetHostCandidates_Request(betterproto.Message):
    broadcaster_steamid: float = betterproto.fixed64_field(1)
    webrtc_session_id: float = betterproto.fixed64_field(2)
    candidate_generation: int = betterproto.uint32_field(3)


@dataclass
class CBroadcast_WebRTCGetHostCandidates_Response(betterproto.Message):
    candidate_generation: int = betterproto.uint32_field(1)
    candidates: List["CBroadcast_WebRTC_Candidate"] = betterproto.message_field(2)


@dataclass
class CBroadcast_GetBroadcastUploadStats_Request(betterproto.Message):
    row_limit: int = betterproto.uint32_field(1)
    start_time: int = betterproto.uint32_field(2)
    upload_id: int = betterproto.uint64_field(3)
    steamid: float = betterproto.fixed64_field(4)
    session_id: int = betterproto.uint64_field(5)


@dataclass
class CBroadcast_GetBroadcastUploadStats_Response(betterproto.Message):
    upload_stats: List["CBroadcast_GetBroadcastUploadStats_ResponseUploadStats"] = betterproto.message_field(1)


@dataclass
class CBroadcast_GetBroadcastUploadStats_ResponseUploadStats(betterproto.Message):
    upload_result: int = betterproto.uint32_field(1)
    time_stopped: int = betterproto.uint32_field(2)
    seconds_uploaded: int = betterproto.uint32_field(3)
    max_viewers: int = betterproto.uint32_field(4)
    resolution_x: int = betterproto.uint32_field(5)
    resolution_y: int = betterproto.uint32_field(6)
    avg_bandwidth: int = betterproto.uint32_field(7)
    total_bytes: int = betterproto.uint64_field(8)
    app_id: int = betterproto.uint32_field(9)
    total_unique_viewers: int = betterproto.uint32_field(10)
    total_seconds_watched: int = betterproto.uint64_field(11)
    time_started: int = betterproto.uint32_field(12)
    upload_id: int = betterproto.uint64_field(13)
    local_address: str = betterproto.string_field(14)
    remote_address: str = betterproto.string_field(15)
    frames_per_second: int = betterproto.uint32_field(16)
    num_representations: int = betterproto.uint32_field(17)
    app_name: str = betterproto.string_field(18)
    is_replay: bool = betterproto.bool_field(19)
    session_id: int = betterproto.uint64_field(20)


@dataclass
class CBroadcast_GetBroadcastViewerStats_Request(betterproto.Message):
    upload_id: int = betterproto.uint64_field(1)
    steamid: float = betterproto.fixed64_field(2)


@dataclass
class CBroadcast_GetBroadcastViewerStats_Response(betterproto.Message):
    viewer_stats: List["CBroadcast_GetBroadcastViewerStats_ResponseViewerStats"] = betterproto.message_field(1)
    country_stats: List["CBroadcast_GetBroadcastViewerStats_ResponseCountryStats"] = betterproto.message_field(2)


@dataclass
class CBroadcast_GetBroadcastViewerStats_ResponseViewerStats(betterproto.Message):
    time: int = betterproto.uint32_field(1)
    num_viewers: int = betterproto.uint32_field(2)


@dataclass
class CBroadcast_GetBroadcastViewerStats_ResponseCountryStats(betterproto.Message):
    country_code: str = betterproto.string_field(1)
    num_viewers: int = betterproto.uint32_field(2)


@dataclass
class CBroadcast_BroadcastViewerState_Notification(betterproto.Message):
    steamid: float = betterproto.fixed64_field(1)
    state: "CBroadcast_BroadcastViewerState_NotificationEViewerState" = betterproto.enum_field(2)


@dataclass
class CBroadcast_WaitingBroadcastViewer_Notification(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_BroadcastUploadStarted_Notification(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)
    upload_token: str = betterproto.string_field(2)
    upload_address: str = betterproto.string_field(3)
    http_address: str = betterproto.string_field(4)
    broadcast_upload_id: float = betterproto.fixed64_field(5)
    heartbeat_interval_seconds: int = betterproto.uint32_field(6)
    is_rtmp: bool = betterproto.bool_field(7)


@dataclass
class CBroadcast_StopBroadcastUpload_Notification(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)
    broadcast_relay_id: float = betterproto.fixed64_field(2)
    upload_result: int = betterproto.uint32_field(3)
    too_many_poor_uploads: bool = betterproto.bool_field(4)


@dataclass
class CBroadcast_SessionClosed_Notification(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_ViewerBroadcastInvite_Notification(betterproto.Message):
    broadcaster_steamid: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_BroadcastStatus_Notification(betterproto.Message):
    broadcast_id: float = betterproto.fixed64_field(1)
    num_viewers: int = betterproto.int32_field(2)


@dataclass
class CBroadcast_BroadcastChannelLive_Notification(betterproto.Message):
    broadcast_channel_id: float = betterproto.fixed64_field(1)
    broadcast_channel_name: str = betterproto.string_field(2)
    broadcast_channel_avatar: str = betterproto.string_field(3)


@dataclass
class CBroadcast_SendThumbnailToRelay_Notification(betterproto.Message):
    thumbnail_upload_token: str = betterproto.string_field(1)
    thumbnail_broadcast_session_id: float = betterproto.fixed64_field(2)
    thumbnail_data: bytes = betterproto.bytes_field(3)
    thumbnail_width: int = betterproto.uint32_field(4)
    thumbnail_height: int = betterproto.uint32_field(5)


@dataclass
class CBroadcast_WebRTCNeedTURNServer_Notification(betterproto.Message):
    broadcast_session_id: float = betterproto.fixed64_field(1)


@dataclass
class CBroadcast_WebRTCStart_Notification(betterproto.Message):
    broadcast_session_id: float = betterproto.fixed64_field(1)
    webrtc_session_id: float = betterproto.fixed64_field(2)
    viewer_steamid: float = betterproto.fixed64_field(3)
    viewer_token: float = betterproto.fixed64_field(4)


@dataclass
class CBroadcast_WebRTCSetAnswer_Notification(betterproto.Message):
    broadcast_session_id: float = betterproto.fixed64_field(1)
    webrtc_session_id: float = betterproto.fixed64_field(2)
    answer: str = betterproto.string_field(3)


@dataclass
class CBroadcast_WebRTCAddViewerCandidate_Notification(betterproto.Message):
    broadcast_session_id: float = betterproto.fixed64_field(1)
    webrtc_session_id: float = betterproto.fixed64_field(2)
    candidate: "CBroadcast_WebRTC_Candidate" = betterproto.message_field(3)
