# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: steammessages_publishedfile.steamclient.proto
# plugin: python-betterproto
# Last updated 09/09/2021

from dataclasses import dataclass
from typing import List

import betterproto

from .player import EBanContentCheckResult


class EPublishedFileRevision(betterproto.Enum):
    Default = 0
    Latest = 1
    ApprovedSnapshot = 2
    ApprovedSnapshotChina = 3
    RejectedSnapshot = 4
    RejectedSnapshotChina = 5


class EPublishedFileForSaleStatus(betterproto.Enum):
    NotForSale = 0
    PendingApproval = 1
    ApprovedForSale = 2
    RejectedForSale = 3
    NoLongerForSale = 4
    TentativeApproval = 5


@dataclass(eq=False, repr=False)
class SubscribeRequest(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    list_type: int = betterproto.uint32_field(2)
    appid: int = betterproto.int32_field(3)
    notify_client: bool = betterproto.bool_field(4)


@dataclass(eq=False, repr=False)
class SubscribeResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class UnsubscribeRequest(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    list_type: int = betterproto.uint32_field(2)
    appid: int = betterproto.int32_field(3)
    notify_client: bool = betterproto.bool_field(4)


@dataclass(eq=False, repr=False)
class UnsubscribeResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class CanSubscribeRequest(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)


@dataclass(eq=False, repr=False)
class CanSubscribeResponse(betterproto.Message):
    can_subscribe: bool = betterproto.bool_field(1)


@dataclass(eq=False, repr=False)
class PublishRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    consumer_appid: int = betterproto.uint32_field(2)
    cloudfilename: str = betterproto.string_field(3)
    preview_cloudfilename: str = betterproto.string_field(4)
    title: str = betterproto.string_field(5)
    file_description: str = betterproto.string_field(6)
    file_type: int = betterproto.uint32_field(7)
    consumer_shortcut_name: str = betterproto.string_field(8)
    youtube_username: str = betterproto.string_field(9)
    youtube_videoid: str = betterproto.string_field(10)
    visibility: int = betterproto.uint32_field(11)
    redirect_uri: str = betterproto.string_field(12)
    tags: List[str] = betterproto.string_field(13)
    collection_type: str = betterproto.string_field(14)
    game_type: str = betterproto.string_field(15)
    url: str = betterproto.string_field(16)


@dataclass(eq=False, repr=False)
class PublishResponse(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    redirect_uri: str = betterproto.string_field(2)


@dataclass(eq=False, repr=False)
class GetDetailsRequest(betterproto.Message):
    publishedfileids: List[int] = betterproto.fixed64_field(1)
    includetags: bool = betterproto.bool_field(2)
    includeadditionalpreviews: bool = betterproto.bool_field(3)
    includechildren: bool = betterproto.bool_field(4)
    includekvtags: bool = betterproto.bool_field(5)
    includevotes: bool = betterproto.bool_field(6)
    short_description: bool = betterproto.bool_field(8)
    includeforsaledata: bool = betterproto.bool_field(10)
    includemetadata: bool = betterproto.bool_field(11)
    language: int = betterproto.int32_field(12)
    return_playtime_stats: int = betterproto.uint32_field(13)
    appid: int = betterproto.uint32_field(14)
    strip_description_bbcode: bool = betterproto.bool_field(15)
    desired_revision: "EPublishedFileRevision" = betterproto.enum_field(16)
    includereactions: bool = betterproto.bool_field(17)


@dataclass(eq=False, repr=False)
class PublishedFileDetails(betterproto.Message):
    result: int = betterproto.uint32_field(1)
    publishedfileid: int = betterproto.uint64_field(2)
    creator: int = betterproto.fixed64_field(3)
    creator_appid: int = betterproto.uint32_field(4)
    consumer_appid: int = betterproto.uint32_field(5)
    consumer_shortcutid: int = betterproto.uint32_field(6)
    filename: str = betterproto.string_field(7)
    file_size: int = betterproto.uint64_field(8)
    preview_file_size: int = betterproto.uint64_field(9)
    file_url: str = betterproto.string_field(10)
    preview_url: str = betterproto.string_field(11)
    youtubevideoid: str = betterproto.string_field(12)
    url: str = betterproto.string_field(13)
    hcontent_file: int = betterproto.fixed64_field(14)
    hcontent_preview: int = betterproto.fixed64_field(15)
    title: str = betterproto.string_field(16)
    file_description: str = betterproto.string_field(17)
    short_description: str = betterproto.string_field(18)
    time_created: int = betterproto.uint32_field(19)
    time_updated: int = betterproto.uint32_field(20)
    visibility: int = betterproto.uint32_field(21)
    flags: int = betterproto.uint32_field(22)
    workshop_file: bool = betterproto.bool_field(23)
    workshop_accepted: bool = betterproto.bool_field(24)
    show_subscribe_all: bool = betterproto.bool_field(25)
    num_comments_developer: int = betterproto.int32_field(26)
    num_comments_public: int = betterproto.int32_field(27)
    banned: bool = betterproto.bool_field(28)
    ban_reason: str = betterproto.string_field(29)
    banner: int = betterproto.fixed64_field(30)
    can_be_deleted: bool = betterproto.bool_field(31)
    incompatible: bool = betterproto.bool_field(32)
    app_name: str = betterproto.string_field(33)
    file_type: int = betterproto.uint32_field(34)
    can_subscribe: bool = betterproto.bool_field(35)
    subscriptions: int = betterproto.uint32_field(36)
    favorited: int = betterproto.uint32_field(37)
    followers: int = betterproto.uint32_field(38)
    lifetime_subscriptions: int = betterproto.uint32_field(39)
    lifetime_favorited: int = betterproto.uint32_field(40)
    lifetime_followers: int = betterproto.uint32_field(41)
    lifetime_playtime: int = betterproto.uint64_field(62)
    lifetime_playtime_sessions: int = betterproto.uint64_field(63)
    views: int = betterproto.uint32_field(42)
    image_width: int = betterproto.uint32_field(43)
    image_height: int = betterproto.uint32_field(44)
    image_url: str = betterproto.string_field(45)
    spoiler_tag: bool = betterproto.bool_field(46)
    shortcutid: int = betterproto.uint32_field(47)
    shortcutname: str = betterproto.string_field(48)
    num_children: int = betterproto.uint32_field(49)
    num_reports: int = betterproto.uint32_field(50)
    previews: List["PublishedFileDetailsPreview"] = betterproto.message_field(51)
    tags: List["PublishedFileDetailsTag"] = betterproto.message_field(52)
    children: List["PublishedFileDetailsChild"] = betterproto.message_field(53)
    kvtags: List["PublishedFileDetailsKvTag"] = betterproto.message_field(54)
    vote_data: "PublishedFileDetailsVoteData" = betterproto.message_field(55)
    playtime_stats: "PublishedFileDetailsPlaytimeStats" = betterproto.message_field(64)
    time_subscribed: int = betterproto.uint32_field(56)
    for_sale_data: "PublishedFileDetailsForSaleData" = betterproto.message_field(57)
    metadata: str = betterproto.string_field(58)
    language: int = betterproto.int32_field(61)
    maybe_inappropriate_sex: bool = betterproto.bool_field(65)
    maybe_inappropriate_violence: bool = betterproto.bool_field(66)
    revision_change_number: int = betterproto.uint64_field(67)
    revision: "EPublishedFileRevision" = betterproto.enum_field(68)
    available_revisions: List["EPublishedFileRevision"] = betterproto.enum_field(69)
    reactions: List["PublishedFileDetailsReaction"] = betterproto.message_field(70)
    ban_text_check_result: EBanContentCheckResult = betterproto.enum_field(71)


@dataclass(eq=False, repr=False)
class PublishedFileDetailsTag(betterproto.Message):
    tag: str = betterproto.string_field(1)
    adminonly: bool = betterproto.bool_field(2)
    display_name: str = betterproto.string_field(3)


@dataclass(eq=False, repr=False)
class PublishedFileDetailsPreview(betterproto.Message):
    previewid: int = betterproto.uint64_field(1)
    sortorder: int = betterproto.uint32_field(2)
    url: str = betterproto.string_field(3)
    size: int = betterproto.uint32_field(4)
    filename: str = betterproto.string_field(5)
    youtubevideoid: str = betterproto.string_field(6)
    preview_type: int = betterproto.uint32_field(7)
    external_reference: str = betterproto.string_field(8)


@dataclass(eq=False, repr=False)
class PublishedFileDetailsChild(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    sortorder: int = betterproto.uint32_field(2)
    file_type: int = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class PublishedFileDetailsKvTag(betterproto.Message):
    key: str = betterproto.string_field(1)
    value: str = betterproto.string_field(2)


@dataclass(eq=False, repr=False)
class PublishedFileDetailsVoteData(betterproto.Message):
    score: float = betterproto.float_field(1)
    votes_up: int = betterproto.uint32_field(2)
    votes_down: int = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class PublishedFileDetailsForSaleData(betterproto.Message):
    is_for_sale: bool = betterproto.bool_field(1)
    price_category: int = betterproto.uint32_field(2)
    estatus: "EPublishedFileForSaleStatus" = betterproto.enum_field(3)
    price_category_floor: int = betterproto.uint32_field(4)
    price_is_pay_what_you_want: bool = betterproto.bool_field(5)
    discount_percentage: int = betterproto.uint32_field(6)


@dataclass(eq=False, repr=False)
class PublishedFileDetailsPlaytimeStats(betterproto.Message):
    playtime_seconds: int = betterproto.uint64_field(1)
    num_sessions: int = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class PublishedFileDetailsReaction(betterproto.Message):
    reactionid: int = betterproto.uint32_field(1)
    count: int = betterproto.uint32_field(2)


@dataclass(eq=False, repr=False)
class GetDetailsResponse(betterproto.Message):
    publishedfiledetails: List["PublishedFileDetails"] = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class GetItemInfoRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    last_time_updated: int = betterproto.uint32_field(2)
    workshop_items: List["GetItemInfoRequestWorkshopItem"] = betterproto.message_field(3)


@dataclass(eq=False, repr=False)
class GetItemInfoRequestWorkshopItem(betterproto.Message):
    published_file_id: int = betterproto.fixed64_field(1)
    time_updated: int = betterproto.uint32_field(2)
    desired_revision: "EPublishedFileRevision" = betterproto.enum_field(3)


@dataclass(eq=False, repr=False)
class GetItemInfoResponse(betterproto.Message):
    update_time: int = betterproto.uint32_field(1)
    workshop_items: List["GetItemInfoResponseWorkshopItemInfo"] = betterproto.message_field(2)
    private_items: List[int] = betterproto.fixed64_field(3)


@dataclass(eq=False, repr=False)
class GetItemInfoResponseWorkshopItemInfo(betterproto.Message):
    published_file_id: int = betterproto.fixed64_field(1)
    time_updated: int = betterproto.uint32_field(2)
    manifest_id: int = betterproto.fixed64_field(3)
    flags: int = betterproto.uint32_field(4)


@dataclass(eq=False, repr=False)
class GetUserFilesRequest(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)
    appid: int = betterproto.uint32_field(2)
    page: int = betterproto.uint32_field(4)
    numperpage: int = betterproto.uint32_field(5)
    type: str = betterproto.string_field(6)
    sortmethod: str = betterproto.string_field(7)
    privacy: int = betterproto.uint32_field(9)
    requiredtags: List[str] = betterproto.string_field(10)
    excludedtags: List[str] = betterproto.string_field(11)
    required_kv_tags: List["GetUserFilesRequestKvTag"] = betterproto.message_field(30)
    filetype: int = betterproto.uint32_field(14)
    creator_appid: int = betterproto.uint32_field(15)
    match_cloud_filename: str = betterproto.string_field(16)
    cache_max_age_seconds: int = betterproto.uint32_field(27)
    language: int = betterproto.int32_field(29)
    taggroups: List["GetUserFilesRequestTagGroup"] = betterproto.message_field(34)
    totalonly: bool = betterproto.bool_field(17)
    ids_only: bool = betterproto.bool_field(18)
    return_vote_data: bool = betterproto.bool_field(19)
    return_tags: bool = betterproto.bool_field(20)
    return_kv_tags: bool = betterproto.bool_field(21)
    return_previews: bool = betterproto.bool_field(22)
    return_children: bool = betterproto.bool_field(23)
    return_short_description: bool = betterproto.bool_field(24)
    return_for_sale_data: bool = betterproto.bool_field(26)
    return_metadata: bool = betterproto.bool_field(28)
    return_playtime_stats: int = betterproto.uint32_field(31)
    strip_description_bbcode: bool = betterproto.bool_field(32)
    return_reactions: bool = betterproto.bool_field(35)
    startindex_override: int = betterproto.uint32_field(25)
    desired_revision: "EPublishedFileRevision" = betterproto.enum_field(33)


@dataclass(eq=False, repr=False)
class GetUserFilesRequestKvTag(betterproto.Message):
    key: str = betterproto.string_field(1)
    value: str = betterproto.string_field(2)


@dataclass(eq=False, repr=False)
class GetUserFilesRequestTagGroup(betterproto.Message):
    tags: List[str] = betterproto.string_field(1)


@dataclass(eq=False, repr=False)
class GetUserFilesResponse(betterproto.Message):
    total: int = betterproto.uint32_field(1)
    startindex: int = betterproto.uint32_field(2)
    publishedfiledetails: List["PublishedFileDetails"] = betterproto.message_field(3)
    apps: List["GetUserFilesResponseApp"] = betterproto.message_field(4)


@dataclass(eq=False, repr=False)
class GetUserFilesResponseApp(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    name: str = betterproto.string_field(2)
    shortcutid: int = betterproto.uint32_field(3)
    private: bool = betterproto.bool_field(4)


@dataclass(eq=False, repr=False)
class AreFilesInSubscriptionListRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    publishedfileids: List[int] = betterproto.fixed64_field(2)
    listtype: int = betterproto.uint32_field(3)
    filetype: int = betterproto.uint32_field(4)
    workshopfiletype: int = betterproto.uint32_field(5)


@dataclass(eq=False, repr=False)
class AreFilesInSubscriptionListResponse(betterproto.Message):
    files: List["AreFilesInSubscriptionListResponseInList"] = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class AreFilesInSubscriptionListResponseInList(betterproto.Message):
    publishedfileid: int = betterproto.fixed64_field(1)
    inlist: bool = betterproto.bool_field(2)


@dataclass(eq=False, repr=False)
class UpdateRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    publishedfileid: int = betterproto.fixed64_field(2)
    title: str = betterproto.string_field(3)
    file_description: str = betterproto.string_field(4)
    visibility: int = betterproto.uint32_field(5)
    tags: List[str] = betterproto.string_field(6)
    filename: str = betterproto.string_field(7)
    preview_filename: str = betterproto.string_field(8)
    image_width: int = betterproto.uint32_field(15)
    image_height: int = betterproto.uint32_field(16)


@dataclass(eq=False, repr=False)
class UpdateResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class GetChangeHistoryEntryRequest(betterproto.Message):
    publishedfileid: int = betterproto.fixed64_field(1)
    timestamp: int = betterproto.uint32_field(2)
    language: int = betterproto.int32_field(3)


@dataclass(eq=False, repr=False)
class GetChangeHistoryEntryResponse(betterproto.Message):
    change_description: str = betterproto.string_field(1)
    language: int = betterproto.int32_field(2)


@dataclass(eq=False, repr=False)
class GetChangeHistoryRequest(betterproto.Message):
    publishedfileid: int = betterproto.fixed64_field(1)
    total_only: bool = betterproto.bool_field(2)
    startindex: int = betterproto.uint32_field(3)
    count: int = betterproto.uint32_field(4)
    language: int = betterproto.int32_field(5)


@dataclass(eq=False, repr=False)
class GetChangeHistoryResponse(betterproto.Message):
    changes: List["GetChangeHistoryResponseChangeLog"] = betterproto.message_field(1)
    total: int = betterproto.uint32_field(2)


@dataclass(eq=False, repr=False)
class GetChangeHistoryResponseChangeLog(betterproto.Message):
    timestamp: int = betterproto.uint32_field(1)
    change_description: str = betterproto.string_field(2)
    language: int = betterproto.int32_field(3)


@dataclass(eq=False, repr=False)
class RefreshVotingQueueRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    matching_file_type: int = betterproto.uint32_field(2)
    tags: List[str] = betterproto.string_field(3)
    match_all_tags: bool = betterproto.bool_field(4)
    excluded_tags: List[str] = betterproto.string_field(5)
    desired_queue_size: int = betterproto.uint32_field(6)
    desired_revision: "EPublishedFileRevision" = betterproto.enum_field(8)


@dataclass(eq=False, repr=False)
class RefreshVotingQueueResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class QueryFilesRequest(betterproto.Message):
    query_type: int = betterproto.uint32_field(1)
    page: int = betterproto.uint32_field(2)
    cursor: str = betterproto.string_field(39)
    numperpage: int = betterproto.uint32_field(3)
    creator_appid: int = betterproto.uint32_field(4)
    appid: int = betterproto.uint32_field(5)
    requiredtags: List[str] = betterproto.string_field(6)
    excludedtags: List[str] = betterproto.string_field(7)
    match_all_tags: bool = betterproto.bool_field(8)
    required_flags: List[str] = betterproto.string_field(9)
    omitted_flags: List[str] = betterproto.string_field(10)
    search_text: str = betterproto.string_field(11)
    filetype: int = betterproto.uint32_field(12)
    child_publishedfileid: int = betterproto.fixed64_field(13)
    days: int = betterproto.uint32_field(14)
    include_recent_votes_only: bool = betterproto.bool_field(15)
    cache_max_age_seconds: int = betterproto.uint32_field(31)
    language: int = betterproto.int32_field(33)
    required_kv_tags: List["QueryFilesRequestKvTag"] = betterproto.message_field(34)
    taggroups: List["QueryFilesRequestTagGroup"] = betterproto.message_field(42)
    totalonly: bool = betterproto.bool_field(16)
    ids_only: bool = betterproto.bool_field(35)
    return_vote_data: bool = betterproto.bool_field(17)
    return_tags: bool = betterproto.bool_field(18)
    return_kv_tags: bool = betterproto.bool_field(19)
    return_previews: bool = betterproto.bool_field(20)
    return_children: bool = betterproto.bool_field(21)
    return_short_description: bool = betterproto.bool_field(22)
    return_for_sale_data: bool = betterproto.bool_field(30)
    return_metadata: bool = betterproto.bool_field(32)
    return_playtime_stats: int = betterproto.uint32_field(36)
    return_details: bool = betterproto.bool_field(37)
    strip_description_bbcode: bool = betterproto.bool_field(38)
    desired_revision: "EPublishedFileRevision" = betterproto.enum_field(40)
    return_reactions: bool = betterproto.bool_field(43)


@dataclass(eq=False, repr=False)
class QueryFilesRequestKvTag(betterproto.Message):
    key: str = betterproto.string_field(1)
    value: str = betterproto.string_field(2)


@dataclass(eq=False, repr=False)
class QueryFilesRequestTagGroup(betterproto.Message):
    tags: List[str] = betterproto.string_field(1)


@dataclass(eq=False, repr=False)
class QueryFilesResponse(betterproto.Message):
    total: int = betterproto.uint32_field(1)
    publishedfiledetails: List["PublishedFileDetails"] = betterproto.message_field(2)
    next_cursor: str = betterproto.string_field(3)


@dataclass(eq=False, repr=False)
class AddAppRelationshipRequest(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    appid: int = betterproto.uint32_field(2)
    relationship: int = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class AddAppRelationshipResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class RemoveAppRelationshipRequest(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    appid: int = betterproto.uint32_field(2)
    relationship: int = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class RemoveAppRelationshipResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class GetAppRelationshipsRequest(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)


@dataclass(eq=False, repr=False)
class GetAppRelationshipsResponse(betterproto.Message):
    app_relationships: List["GetAppRelationshipsResponseAppRelationship"] = betterproto.message_field(3)


@dataclass(eq=False, repr=False)
class GetAppRelationshipsResponseAppRelationship(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    relationship: int = betterproto.uint32_field(2)


@dataclass(eq=False, repr=False)
class StartPlaytimeTrackingRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    publishedfileids: List[int] = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class StartPlaytimeTrackingResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class StopPlaytimeTrackingRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    publishedfileids: List[int] = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class StopPlaytimeTrackingResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class StopPlaytimeTrackingForAllAppItemsRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)


@dataclass(eq=False, repr=False)
class StopPlaytimeTrackingForAllAppItemsResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class SetPlaytimeForControllerConfigsRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    controller_config_usage: List[
        "SetPlaytimeForControllerConfigsRequestControllerConfigUsage"
    ] = betterproto.message_field(2)


@dataclass(eq=False, repr=False)
class SetPlaytimeForControllerConfigsRequestControllerConfigUsage(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    seconds_active: float = betterproto.float_field(2)


@dataclass(eq=False, repr=False)
class SetPlaytimeForControllerConfigsResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class AddChildRequest(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    child_publishedfileid: int = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class AddChildResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class RemoveChildRequest(betterproto.Message):
    publishedfileid: int = betterproto.uint64_field(1)
    child_publishedfileid: int = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class RemoveChildResponse(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class GetUserVoteSummaryRequest(betterproto.Message):
    publishedfileids: List[int] = betterproto.fixed64_field(1)


@dataclass(eq=False, repr=False)
class GetUserVoteSummaryResponse(betterproto.Message):
    summaries: List["GetUserVoteSummaryResponseVoteSummary"] = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class GetUserVoteSummaryResponseVoteSummary(betterproto.Message):
    publishedfileid: int = betterproto.fixed64_field(1)
    vote_for: bool = betterproto.bool_field(2)
    vote_against: bool = betterproto.bool_field(3)
    reported: bool = betterproto.bool_field(4)


@dataclass(eq=False, repr=False)
class GetItemChangesRequest(betterproto.Message):
    appid: int = betterproto.uint32_field(1)
    last_time_updated: int = betterproto.uint32_field(2)
    num_items_max: int = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class GetItemChangesResponse(betterproto.Message):
    update_time: int = betterproto.uint32_field(1)
    workshop_items: List["GetItemChangesResponseWorkshopItemInfo"] = betterproto.message_field(2)


@dataclass(eq=False, repr=False)
class GetItemChangesResponseWorkshopItemInfo(betterproto.Message):
    published_file_id: int = betterproto.fixed64_field(1)
    time_updated: int = betterproto.uint32_field(2)
    manifest_id: int = betterproto.fixed64_field(3)


@dataclass(eq=False, repr=False)
class FileSubscribedNotification(betterproto.Message):
    published_file_id: int = betterproto.fixed64_field(1)
    app_id: int = betterproto.uint32_field(2)
    file_hcontent: int = betterproto.fixed64_field(3)
    file_size: int = betterproto.uint32_field(4)
    rtime_subscribed: int = betterproto.uint32_field(5)
    is_depot_content: bool = betterproto.bool_field(6)
    rtime_updated: int = betterproto.uint32_field(7)
    revisions: List["FileSubscribedNotificationRevisionData"] = betterproto.message_field(8)


@dataclass(eq=False, repr=False)
class FileSubscribedNotificationRevisionData(betterproto.Message):
    revision: "EPublishedFileRevision" = betterproto.enum_field(1)
    file_hcontent: int = betterproto.fixed64_field(2)
    rtime_updated: int = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class FileUnsubscribedNotification(betterproto.Message):
    published_file_id: int = betterproto.fixed64_field(1)
    app_id: int = betterproto.uint32_field(2)


@dataclass(eq=False, repr=False)
class FileDeletedClientNotification(betterproto.Message):
    published_file_id: int = betterproto.fixed64_field(1)
    app_id: int = betterproto.uint32_field(2)
