syntax = "proto2";

import "steammessages_base.proto";
import "steammessages_unified_base.steamclient.proto";
import "enums_productinfo.proto";

option cc_generic_services = true;

enum EPublishedFileRevision {
  k_EPublishedFileRevision_Default = 0;
  k_EPublishedFileRevision_Latest = 1;
  k_EPublishedFileRevision_ApprovedSnapshot = 2;
  k_EPublishedFileRevision_ApprovedSnapshot_China = 3;
  k_EPublishedFileRevision_RejectedSnapshot = 4;
  k_EPublishedFileRevision_RejectedSnapshot_China = 5;
  k_EPublishedFileRevision_AuthorSnapshot = 6;
}

enum EPublishedFileForSaleStatus {
  k_PFFSS_NotForSale = 0;
  k_PFFSS_PendingApproval = 1;
  k_PFFSS_ApprovedForSale = 2;
  k_PFFSS_RejectedForSale = 3;
  k_PFFSS_NoLongerForSale = 4;
  k_PFFSS_TentativeApproval = 5;
}

message CPublishedFile_Vote_Request {
  optional uint64 publishedfileid = 1;
  optional bool vote_up = 2;
}

message CPublishedFile_Vote_Response {
}

message CPublishedFile_Subscribe_Request {
  optional uint64 publishedfileid = 1;
  optional uint32 list_type = 2;
  optional int32 appid = 3;
  optional bool notify_client = 4;
  optional bool include_dependencies = 5;
}

message CPublishedFile_Subscribe_Response {
}

message CPublishedFile_Unsubscribe_Request {
  optional uint64 publishedfileid = 1;
  optional uint32 list_type = 2;
  optional int32 appid = 3;
  optional bool notify_client = 4;
}

message CPublishedFile_Unsubscribe_Response {
}

message CPublishedFile_CanSubscribe_Request {
  optional uint64 publishedfileid = 1;
}

message CPublishedFile_CanSubscribe_Response {
  optional bool can_subscribe = 1;
}

message CPublishedFile_GetSubSectionData_Request {
  optional uint64 publishedfileid = 1;
  optional bool for_table_of_contents = 2;
  optional uint64 specific_sectionid = 3;
  optional EPublishedFileRevision desired_revision = 4 [default = k_EPublishedFileRevision_Default];
}

message PublishedFileSubSection {
  optional uint64 sectionid = 1;
  optional string title = 2;
  optional string description_text = 3;
  optional uint32 sort_order = 4;
}

message CPublishedFile_GetSubSectionData_Response {
  repeated PublishedFileSubSection sub_sections = 1;
}

message CPublishedFile_Publish_Request {
  optional uint32 appid = 1;
  optional uint32 consumer_appid = 2;
  optional string cloudfilename = 3;
  optional string preview_cloudfilename = 4;
  optional string title = 5;
  optional string file_description = 6;
  optional uint32 file_type = 7;
  optional string consumer_shortcut_name = 8;
  optional string youtube_username = 9;
  optional string youtube_videoid = 10;
  optional uint32 visibility = 11;
  optional string redirect_uri = 12;
  repeated string tags = 13;
  optional string collection_type = 14;
  optional string game_type = 15;
  optional string url = 16;
}

message CPublishedFile_Publish_Response {
  optional uint64 publishedfileid = 1;
  optional string redirect_uri = 2;
}

message CPublishedFile_GetDetails_Request {
  repeated fixed64 publishedfileids = 1;
  optional bool includetags = 2;
  optional bool includeadditionalpreviews = 3;
  optional bool includechildren = 4;
  optional bool includekvtags = 5;
  optional bool includevotes = 6;
  optional bool short_description = 8;
  optional bool includeforsaledata = 10;
  optional bool includemetadata = 11;
  optional int32 language = 12 [default = 0];
  optional uint32 return_playtime_stats = 13;
  optional uint32 appid = 14;
  optional bool strip_description_bbcode = 15;
  optional EPublishedFileRevision desired_revision = 16 [default = k_EPublishedFileRevision_Default];
  optional bool includereactions = 17 [default = false];
  optional bool admin_query = 18;
}

message PublishedFileAuthorSnapshot {
  optional uint32 timestamp = 1;
  optional string game_branch_min = 2;
  optional string game_branch_max = 3;
  optional fixed64 manifestid = 4;
}

message PublishedFileDetails {
  message Tag {
    optional string tag = 1;
    optional bool adminonly = 2;
    optional string display_name = 3;
  }
  message Preview {
    optional uint64 previewid = 1;
    optional uint32 sortorder = 2;
    optional string url = 3;
    optional uint32 size = 4;
    optional string filename = 5;
    optional string youtubevideoid = 6;
    optional uint32 preview_type = 7;
    optional string external_reference = 8;
  }
  message Child {
    optional uint64 publishedfileid = 1;
    optional uint32 sortorder = 2;
    optional uint32 file_type = 3;
  }
  message KVTag {
    optional string key = 1;
    optional string value = 2;
  }
  message VoteData {
    optional float score = 1;
    optional uint32 votes_up = 2;
    optional uint32 votes_down = 3;
    optional float trusted_score = 4;
    optional uint32 trusted_votes_up = 5;
    optional uint32 trusted_votes_down = 6;
  }
  message ForSaleData {
    optional bool is_for_sale = 1;
    optional uint32 price_category = 2;
    optional EPublishedFileForSaleStatus estatus = 3;
    optional uint32 price_category_floor = 4;
    optional bool price_is_pay_what_you_want = 5;
    optional uint32 discount_percentage = 6;
  }
  message PlaytimeStats {
    optional uint64 playtime_seconds = 1;
    optional uint64 num_sessions = 2;
  }
  message Reaction {
    optional uint32 reactionid = 1;
    optional uint32 count = 2;
  }
  optional uint32 result = 1;
  optional uint64 publishedfileid = 2;
  optional fixed64 creator = 3;
  optional uint32 creator_appid = 4;
  optional uint32 consumer_appid = 5;
  optional uint32 consumer_shortcutid = 6;
  optional string filename = 7;
  optional uint64 file_size = 8;
  optional uint64 preview_file_size = 9;
  optional string file_url = 10;
  optional string preview_url = 11;
  optional string youtubevideoid = 12;
  optional string url = 13;
  optional fixed64 hcontent_file = 14;
  optional fixed64 hcontent_preview = 15;
  optional string title = 16;
  optional string file_description = 17;
  optional string short_description = 18;
  optional uint32 time_created = 19;
  optional uint32 time_updated = 20;
  optional uint32 visibility = 21;
  optional uint32 flags = 22;
  optional bool workshop_file = 23;
  optional bool workshop_accepted = 24;
  optional bool show_subscribe_all = 25;
  optional int32 num_comments_developer = 26;
  optional int32 num_comments_public = 27;
  optional bool banned = 28;
  optional string ban_reason = 29;
  optional fixed64 banner = 30;
  optional bool can_be_deleted = 31;
  optional bool incompatible = 32;
  optional string app_name = 33;
  optional uint32 file_type = 34;
  optional bool can_subscribe = 35;
  optional uint32 subscriptions = 36;
  optional uint32 favorited = 37;
  optional uint32 followers = 38;
  optional uint32 lifetime_subscriptions = 39;
  optional uint32 lifetime_favorited = 40;
  optional uint32 lifetime_followers = 41;
  optional uint64 lifetime_playtime = 62;
  optional uint64 lifetime_playtime_sessions = 63;
  optional uint32 views = 42;
  optional uint32 image_width = 43;
  optional uint32 image_height = 44;
  optional string image_url = 45;
  optional bool spoiler_tag = 46;
  optional uint32 shortcutid = 47;
  optional string shortcutname = 48;
  optional uint32 num_children = 49;
  optional uint32 num_reports = 50;
  repeated PublishedFileDetails.Preview previews = 51;
  repeated PublishedFileDetails.Tag tags = 52;
  repeated PublishedFileDetails.Child children = 53;
  repeated PublishedFileDetails.KVTag kvtags = 54;
  optional PublishedFileDetails.VoteData vote_data = 55;
  optional PublishedFileDetails.PlaytimeStats playtime_stats = 64;
  optional uint32 time_subscribed = 56;
  optional PublishedFileDetails.ForSaleData for_sale_data = 57;
  optional string metadata = 58;
  optional int32 language = 61 [default = 0];
  optional bool maybe_inappropriate_sex = 65;
  optional bool maybe_inappropriate_violence = 66;
  repeated EContentDescriptorID content_descriptorids = 72;
  optional uint64 revision_change_number = 67;
  optional EPublishedFileRevision revision = 68;
  repeated EPublishedFileRevision available_revisions = 69;
  repeated PublishedFileDetails.Reaction reactions = 70;
  optional EBanContentCheckResult ban_text_check_result = 71;
  optional float search_score = 73;
  optional uint64 external_asset_id = 74;
  repeated PublishedFileAuthorSnapshot author_snapshots = 75;
}

message CPublishedFile_GetDetails_Response {
  repeated PublishedFileDetails publishedfiledetails = 1;
}

message CPublishedFile_GetItemInfo_Request {
  message WorkshopItem {
    optional fixed64 published_file_id = 1;
    optional uint32 time_updated = 2;
    optional EPublishedFileRevision desired_revision = 3 [default = k_EPublishedFileRevision_Default];
  }
  optional uint32 appid = 1;
  optional uint32 last_time_updated = 2;
  repeated CPublishedFile_GetItemInfo_Request.WorkshopItem workshop_items = 3;
  optional EPublishedFileRevision desired_revision = 4 [default = k_EPublishedFileRevision_Default];
}

message CPublishedFile_GetItemInfo_Response {
  message WorkshopItemInfo {
    optional fixed64 published_file_id = 1;
    optional uint32 time_updated = 2;
    optional fixed64 manifest_id = 3;
    optional uint32 flags = 4;
    optional EPublishedFileRevision revision = 5;
    repeated PublishedFileAuthorSnapshot author_snapshots = 6;
  }
  optional uint32 update_time = 1;
  repeated CPublishedFile_GetItemInfo_Response.WorkshopItemInfo workshop_items = 2;
  repeated fixed64 private_items = 3;
}

message CPublishedFile_GetUserFiles_Request {
  message KVTag {
    optional string key = 1;
    optional string value = 2;
  }
  message TagGroup {
    repeated string tags = 1;
  }
  optional fixed64 steamid = 1;
  optional uint32 appid = 2;
  optional uint32 shortcutid = 3;
  optional uint32 page = 4 [default = 1];
  optional uint32 numperpage = 5 [default = 1];
  optional string type = 6 [default = "myfiles"];
  optional string sortmethod = 7 [default = "lastupdated"];
  optional uint32 privacy = 9;
  repeated string requiredtags = 10;
  repeated string excludedtags = 11;
  repeated CPublishedFile_GetUserFiles_Request.KVTag required_kv_tags = 30;
  optional uint32 filetype = 14;
  optional uint32 creator_appid = 15;
  optional string match_cloud_filename = 16;
  optional uint32 cache_max_age_seconds = 27 [default = 0];
  optional int32 language = 29 [default = 0];
  repeated CPublishedFile_GetUserFiles_Request.TagGroup taggroups = 34;
  repeated EContentDescriptorID excluded_content_descriptors = 37;
  optional bool admin_query = 38;
  optional bool totalonly = 17;
  optional bool ids_only = 18;
  optional bool return_vote_data = 19 [default = true];
  optional bool return_tags = 20;
  optional bool return_kv_tags = 21 [default = true];
  optional bool return_previews = 22;
  optional bool return_children = 23;
  optional bool return_short_description = 24 [default = true];
  optional bool return_for_sale_data = 26;
  optional bool return_metadata = 28 [default = false];
  optional uint32 return_playtime_stats = 31;
  optional bool strip_description_bbcode = 32;
  optional bool return_reactions = 35 [default = false];
  optional uint32 startindex_override = 25;
  optional EPublishedFileRevision desired_revision = 33 [default = k_EPublishedFileRevision_Default];
  optional bool return_apps = 36;
}

message CPublishedFile_GetUserFiles_Response {
  message App {
    optional uint32 appid = 1;
    optional string name = 2;
    optional uint32 shortcutid = 3;
    optional bool private = 4;
  }
  optional uint32 total = 1;
  optional uint32 startindex = 2;
  repeated PublishedFileDetails publishedfiledetails = 3;
  repeated CPublishedFile_GetUserFiles_Response.App apps = 4;
}

message CPublishedFile_AreFilesInSubscriptionList_Request {
  optional uint32 appid = 1;
  repeated fixed64 publishedfileids = 2;
  optional uint32 listtype = 3;
  optional uint32 filetype = 4;
  optional uint32 workshopfiletype = 5;
}

message CPublishedFile_AreFilesInSubscriptionList_Response {
  message InList {
    optional fixed64 publishedfileid = 1;
    optional bool inlist = 2;
  }
  repeated CPublishedFile_AreFilesInSubscriptionList_Response.InList files = 1;
}

message CPublishedFile_Update_Request {
  optional uint32 appid = 1;
  optional fixed64 publishedfileid = 2;
  optional string title = 3;
  optional string file_description = 4;
  optional uint32 visibility = 5;
  repeated string tags = 6;
  optional string filename = 7;
  optional string preview_filename = 8;
  optional bool spoiler_tag = 10;
  optional uint32 image_width = 15;
  optional uint32 image_height = 16;
  optional int32 language = 17;
}

message CPublishedFile_Update_Response {
}

message CPublishedFile_Delete_Request {
  optional fixed64 publishedfileid = 1;
  optional uint32 appid = 5;
}

message CPublishedFile_Delete_Response {
}

message CPublishedFile_GetChangeHistoryEntry_Request {
  optional fixed64 publishedfileid = 1;
  optional uint32 timestamp = 2;
  optional int32 language = 3;
}

message CPublishedFile_GetChangeHistoryEntry_Response {
  optional string change_description = 1;
  optional int32 language = 2;
  optional bool saved_snapshot = 3;
  optional string snapshot_game_branch_min = 4;
  optional string snapshot_game_branch_max = 5;
  optional fixed64 manifest_id = 6;
  optional uint32 accountid = 7;
}

message CPublishedFile_GetChangeHistory_Request {
  optional fixed64 publishedfileid = 1;
  optional bool total_only = 2;
  optional uint32 startindex = 3;
  optional uint32 count = 4;
  optional int32 language = 5 [default = 0];
}

message CPublishedFile_GetChangeHistory_Response {
  message ChangeLog {
    optional uint32 timestamp = 1;
    optional string change_description = 2;
    optional int32 language = 3;
    optional bool saved_snapshot = 4;
    optional string snapshot_game_branch_min = 5;
    optional string snapshot_game_branch_max = 6;
    optional fixed64 manifest_id = 7;
    optional uint32 accountid = 8;
  }
  repeated CPublishedFile_GetChangeHistory_Response.ChangeLog changes = 1;
  optional uint32 total = 2;
}

message CPublishedFile_RefreshVotingQueue_Request {
  optional uint32 appid = 1;
  optional uint32 matching_file_type = 2;
  repeated string tags = 3;
  optional bool match_all_tags = 4 [default = true];
  repeated string excluded_tags = 5;
  optional uint32 desired_queue_size = 6;
  optional EPublishedFileRevision desired_revision = 8 [default = k_EPublishedFileRevision_Default];
}

message CPublishedFile_RefreshVotingQueue_Response {
}

message CPublishedFile_QueryFiles_Request {
  message KVTag {
    optional string key = 1;
    optional string value = 2;
  }
  message TagGroup {
    repeated string tags = 1;
  }
  message DateRange {
    optional uint32 timestamp_start = 1;
    optional uint32 timestamp_end = 2;
  }
  optional uint32 query_type = 1;
  optional uint32 page = 2;
  optional string cursor = 39;
  optional uint32 numperpage = 3 [default = 1];
  optional uint32 creator_appid = 4;
  optional uint32 appid = 5;
  repeated string requiredtags = 6;
  repeated string excludedtags = 7;
  optional bool match_all_tags = 8 [default = true];
  repeated string required_flags = 9;
  repeated string omitted_flags = 10;
  optional string search_text = 11;
  optional uint32 filetype = 12;
  optional fixed64 child_publishedfileid = 13;
  optional uint32 days = 14;
  optional bool include_recent_votes_only = 15;
  optional uint32 cache_max_age_seconds = 31 [default = 0];
  optional int32 language = 33 [default = 0];
  repeated CPublishedFile_QueryFiles_Request.KVTag required_kv_tags = 34;
  repeated CPublishedFile_QueryFiles_Request.TagGroup taggroups = 42;
  optional CPublishedFile_QueryFiles_Request.DateRange date_range_created = 44;
  optional CPublishedFile_QueryFiles_Request.DateRange date_range_updated = 45;
  repeated EContentDescriptorID excluded_content_descriptors = 46;
  optional bool admin_query = 47;
  optional bool totalonly = 16;
  optional bool ids_only = 35;
  optional bool return_vote_data = 17;
  optional bool return_tags = 18;
  optional bool return_kv_tags = 19;
  optional bool return_previews = 20;
  optional bool return_children = 21;
  optional bool return_short_description = 22;
  optional bool return_for_sale_data = 30;
  optional bool return_metadata = 32 [default = false];
  optional uint32 return_playtime_stats = 36;
  optional bool return_details = 37;
  optional bool strip_description_bbcode = 38;
  optional EPublishedFileRevision desired_revision = 40 [default = k_EPublishedFileRevision_Default];
  optional bool return_reactions = 43 [default = false];
}

message CPublishedFile_QueryFiles_Response {
  optional uint32 total = 1;
  repeated PublishedFileDetails publishedfiledetails = 2;
  optional string next_cursor = 3;
}

message CPublishedFile_AddAppRelationship_Request {
  optional uint64 publishedfileid = 1;
  optional uint32 appid = 2;
  optional uint32 relationship = 3;
}

message CPublishedFile_AddAppRelationship_Response {
}

message CPublishedFile_RemoveAppRelationship_Request {
  optional uint64 publishedfileid = 1;
  optional uint32 appid = 2;
  optional uint32 relationship = 3;
}

message CPublishedFile_RemoveAppRelationship_Response {
}

message CPublishedFile_GetAppRelationships_Request {
  optional uint64 publishedfileid = 1;
}

message CPublishedFile_GetAppRelationships_Response {
  message AppRelationship {
    optional uint32 appid = 1;
    optional uint32 relationship = 2;
  }
  repeated CPublishedFile_GetAppRelationships_Response.AppRelationship app_relationships = 3;
}

message CPublishedFile_GetAppRelationshipsBatched_Request {
  repeated uint64 publishedfileids = 1;
  optional uint32 filter_relationship = 2;
}

message CPublishedFile_GetAppRelationshipsBatched_Response {
  message AppRelationship {
    optional uint32 appid = 1;
    optional uint32 relationship = 2;
  }
  message PublishedFileAppRelationship {
    optional uint64 publishedfileid = 1;
    optional uint32 result = 2;
    repeated CPublishedFile_GetAppRelationshipsBatched_Response.AppRelationship app_relationships = 3;
  }
  repeated CPublishedFile_GetAppRelationshipsBatched_Response.PublishedFileAppRelationship relationships = 1;
}

message CPublishedFile_StartPlaytimeTracking_Request {
  optional uint32 appid = 1;
  repeated uint64 publishedfileids = 2;
}

message CPublishedFile_StartPlaytimeTracking_Response {
}

message CPublishedFile_StopPlaytimeTracking_Request {
  optional uint32 appid = 1;
  repeated uint64 publishedfileids = 2;
}

message CPublishedFile_StopPlaytimeTracking_Response {
}

message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
  optional uint32 appid = 1;
}

message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
}

message CPublishedFile_SetPlaytimeForControllerConfigs_Request {
  message ControllerConfigUsage {
    optional uint64 publishedfileid = 1;
    optional float seconds_active = 2;
  }
  optional uint32 appid = 1;
  repeated CPublishedFile_SetPlaytimeForControllerConfigs_Request.ControllerConfigUsage controller_config_usage = 2;
}

message CPublishedFile_SetPlaytimeForControllerConfigs_Response {
}

message CPublishedFile_AddChild_Request {
  optional uint64 publishedfileid = 1;
  optional uint64 child_publishedfileid = 2;
}

message CPublishedFile_AddChild_Response {
}

message CPublishedFile_RemoveChild_Request {
  optional uint64 publishedfileid = 1;
  optional uint64 child_publishedfileid = 2;
}

message CPublishedFile_RemoveChild_Response {
}

message CPublishedFile_SetCollectionChildren_Request {
  optional uint32 appid = 1;
  optional uint64 publishedfileid = 2;
  repeated uint64 children = 3;
}

message CPublishedFile_SetCollectionChildren_Response {
}

message CPublishedFile_SetSubscriptionListFromCollection_Request {
  optional uint32 appid = 1;
  optional uint32 list_type = 2;
  optional uint64 publishedfileid = 3;
  optional bool add_only = 4;
}

message CPublishedFile_SetSubscriptionListFromCollection_Response {
}

message CPublishedFile_GetUserVoteSummary_Request {
  repeated fixed64 publishedfileids = 1;
}

message CPublishedFile_GetUserVoteSummary_Response {
  message VoteSummary {
    optional fixed64 publishedfileid = 1;
    optional bool vote_for = 2;
    optional bool vote_against = 3;
    optional bool reported = 4;
  }
  repeated CPublishedFile_GetUserVoteSummary_Response.VoteSummary summaries = 1;
}

message CPublishedFile_GetItemChanges_Request {
  optional uint32 appid = 1;
  optional uint32 last_time_updated = 2;
  optional uint32 num_items_max = 3;
  optional EPublishedFileRevision desired_revision = 4;
}

message CPublishedFile_GetItemChanges_Response {
  message WorkshopItemInfo {
    optional fixed64 published_file_id = 1;
    optional uint32 time_updated = 2;
    optional fixed64 manifest_id = 3;
    repeated PublishedFileAuthorSnapshot author_snapshots = 4;
  }
  optional uint32 update_time = 1;
  repeated CPublishedFile_GetItemChanges_Response.WorkshopItemInfo workshop_items = 2;
}

message CPublishedFile_GetContentDescriptors_Request {
  optional fixed64 publishedfileid = 1;
}

message CPublishedFile_GetContentDescriptors_Response {
  message ContentDescriptor {
    optional EContentDescriptorID descriptorid = 1;
    optional uint32 accountid = 2;
    optional uint32 timestamp = 3;
    optional bool moderator_set = 4;
  }
  repeated CPublishedFile_GetContentDescriptors_Response.ContentDescriptor content_descriptors = 1;
}

message CPublishedFile_UpdateContentDescriptors_Request {
  optional fixed64 publishedfileid = 1;
  repeated EContentDescriptorID descriptors_to_add = 2;
  repeated EContentDescriptorID descriptors_to_remove = 3;
}

message CPublishedFile_UpdateContentDescriptors_Response {
  optional uint32 timestamp_updated = 1;
}

message CPublishedFile_FileSubscribed_Notification {
  message RevisionData {
    optional EPublishedFileRevision revision = 1;
    optional fixed64 file_hcontent = 2;
    optional uint32 rtime_updated = 3;
    optional string game_branch_min = 4;
    optional string game_branch_max = 5;
  }
  optional fixed64 published_file_id = 1;
  optional uint32 app_id = 2;
  optional fixed64 file_hcontent = 3;
  optional uint32 file_size = 4;
  optional uint32 rtime_subscribed = 5;
  optional bool is_depot_content = 6;
  optional uint32 rtime_updated = 7;
  optional EPublishedFileRevision revision = 9;
  repeated CPublishedFile_FileSubscribed_Notification.RevisionData revisions = 8;
}

message CPublishedFile_FileUnsubscribed_Notification {
  optional fixed64 published_file_id = 1;
  optional uint32 app_id = 2;
}

message CPublishedFile_FileDeleted_Client_Notification {
  optional fixed64 published_file_id = 1;
  optional uint32 app_id = 2;
}

service PublishedFile {
  rpc Vote (.CPublishedFile_Vote_Request) returns (.CPublishedFile_Vote_Response) {
  }
  rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response) {
  }
  rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response) {
  }
  rpc CanSubscribe (.CPublishedFile_CanSubscribe_Request) returns (.CPublishedFile_CanSubscribe_Response) {
  }
  rpc GetSubSectionData (.CPublishedFile_GetSubSectionData_Request) returns (.CPublishedFile_GetSubSectionData_Response) {
  }
  rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response) {
  }
  rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response) {
  }
  rpc GetItemInfo (.CPublishedFile_GetItemInfo_Request) returns (.CPublishedFile_GetItemInfo_Response) {
  }
  rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) {
  }
  rpc GetUserFileCount (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) {
  }
  rpc AreFilesInSubscriptionList (.CPublishedFile_AreFilesInSubscriptionList_Request) returns (.CPublishedFile_AreFilesInSubscriptionList_Response) {
  }
  rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response) {
  }
  rpc Delete (.CPublishedFile_Delete_Request) returns (.CPublishedFile_Delete_Response) {
  }
  rpc GetChangeHistoryEntry (.CPublishedFile_GetChangeHistoryEntry_Request) returns (.CPublishedFile_GetChangeHistoryEntry_Response) {
  }
  rpc GetChangeHistory (.CPublishedFile_GetChangeHistory_Request) returns (.CPublishedFile_GetChangeHistory_Response) {
  }
  rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response) {
  }
  rpc QueryFiles (.CPublishedFile_QueryFiles_Request) returns (.CPublishedFile_QueryFiles_Response) {
  }
  rpc AddAppRelationship (.CPublishedFile_AddAppRelationship_Request) returns (.CPublishedFile_AddAppRelationship_Response) {
  }
  rpc RemoveAppRelationship (.CPublishedFile_RemoveAppRelationship_Request) returns (.CPublishedFile_RemoveAppRelationship_Response) {
  }
  rpc GetAppRelationships (.CPublishedFile_GetAppRelationships_Request) returns (.CPublishedFile_GetAppRelationships_Response) {
  }
  rpc GetAppRelationshipsBatched (.CPublishedFile_GetAppRelationshipsBatched_Request) returns (.CPublishedFile_GetAppRelationshipsBatched_Response) {
  }
  rpc StartPlaytimeTracking (.CPublishedFile_StartPlaytimeTracking_Request) returns (.CPublishedFile_StartPlaytimeTracking_Response) {
  }
  rpc StopPlaytimeTracking (.CPublishedFile_StopPlaytimeTracking_Request) returns (.CPublishedFile_StopPlaytimeTracking_Response) {
  }
  rpc StopPlaytimeTrackingForAllAppItems (.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request) returns (.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response) {
  }
  rpc SetPlaytimeForControllerConfigs (.CPublishedFile_SetPlaytimeForControllerConfigs_Request) returns (.CPublishedFile_SetPlaytimeForControllerConfigs_Response) {
  }
  rpc AddChild (.CPublishedFile_AddChild_Request) returns (.CPublishedFile_AddChild_Response) {
  }
  rpc RemoveChild (.CPublishedFile_RemoveChild_Request) returns (.CPublishedFile_RemoveChild_Response) {
  }
  rpc SetCollectionChildren (.CPublishedFile_SetCollectionChildren_Request) returns (.CPublishedFile_SetCollectionChildren_Response) {
  }
  rpc SetSubscriptionListFromCollection (.CPublishedFile_SetSubscriptionListFromCollection_Request) returns (.CPublishedFile_SetSubscriptionListFromCollection_Response) {
  }
  rpc GetUserVoteSummary (.CPublishedFile_GetUserVoteSummary_Request) returns (.CPublishedFile_GetUserVoteSummary_Response) {
  }
  rpc GetItemChanges (.CPublishedFile_GetItemChanges_Request) returns (.CPublishedFile_GetItemChanges_Response) {
  }
  rpc GetContentDescriptors (.CPublishedFile_GetContentDescriptors_Request) returns (.CPublishedFile_GetContentDescriptors_Response) {
  }
  rpc UpdateContentDescriptors (.CPublishedFile_UpdateContentDescriptors_Request) returns (.CPublishedFile_UpdateContentDescriptors_Response) {
  }
}

service PublishedFileClient {
  rpc NotifyFileSubscribed (.CPublishedFile_FileSubscribed_Notification) returns (.NoResponse);
  rpc NotifyFileUnsubscribed (.CPublishedFile_FileUnsubscribed_Notification) returns (.NoResponse);
  rpc NotifyFileDeleted (.CPublishedFile_FileDeleted_Client_Notification) returns (.NoResponse);
}

