You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

157 lines
9.3 KiB

syntax = "proto2";
import "steammessages_base.proto";
import "steammessages_unified_base.proto";
option py_generic_services = true;
message CGameNotifications_Variable {
optional string key = 1 [(description) = "The name of the variable in the localized text -- anywhere that %variablename% is found within the text it will be substituded with the given value"];
optional string value = 2 [(description) = "The value of the variable to substitute in the localized text in place of the given variable. Can itself be a localization token."];
}
message CGameNotifications_LocalizedText {
optional string token = 1 [(description) = "A localization token that maps to the desired string."];
repeated .CGameNotifications_Variable variables = 2 [(description) = "A list of variables values to substitute in any variables found in the localized string."];
optional string rendered_text = 3 [(description) = "Text rendered in the requested language, complete with variable substitutions, if a language was specified."];
}
message CGameNotifications_UserStatus {
optional fixed64 steamid = 1 [(description) = "The specific user's steamid."];
optional string state = 2 [(description) = "The user's state. ready -- the user is ready to play. waiting -- The game is waiting on an action from the user. completed, the game is over."];
optional .CGameNotifications_LocalizedText title = 3 [(description) = "Title of the session to display to this user in their list of active sessions."];
optional .CGameNotifications_LocalizedText message = 4 [(description) = "Subtitle of the session to display to this user user within their list of active sessions."];
}
message CGameNotifications_CreateSession_Request {
optional uint32 appid = 1 [(description) = "The appid to create the session for."];
optional uint64 context = 2 [(description) = "Game-specified context value the game can used to associate the session with some object on their backend."];
optional .CGameNotifications_LocalizedText title = 3 [(description) = "The title of the session to be displayed within each user's list of sessions."];
repeated .CGameNotifications_UserStatus users = 4 [(description) = "The initial state of all users in the session."];
optional fixed64 steamid = 5 [(description) = "(Optional) steamid to make the request on behalf of -- if specified, the user must be in the session and all users being added to the session must be friends with the user."];
}
message CGameNotifications_CreateSession_Response {
optional uint64 sessionid = 1 [(description) = "The sessionid of the created session."];
}
message CGameNotifications_DeleteSession_Request {
optional uint64 sessionid = 1 [(description) = "The sessionid to delete."];
optional uint32 appid = 2 [(description) = "The appid of the session to delete."];
optional fixed64 steamid = 3 [(description) = "(Optional) steamid to make the request on behalf of -- if specified, the user must be in the session."];
}
message CGameNotifications_DeleteSession_Response {
}
message CGameNotifications_UpdateSession_Request {
optional uint64 sessionid = 1 [(description) = "The sessionid to update."];
optional uint32 appid = 2 [(description) = "The appid of the session to update."];
optional .CGameNotifications_LocalizedText title = 3 [(description) = "(Optional) The new title of the session. If not specified, the title will not be changed."];
repeated .CGameNotifications_UserStatus users = 4 [(description) = "(Optional) A list of users whose state will be updated to reflect the given state. If the users are not already in the session, they will be added to it."];
optional fixed64 steamid = 6 [(description) = "(Optional) steamid to make the request on behalf of -- if specified, the user must be in the session and all users being added to the session must be friends with the user."];
}
message CGameNotifications_UpdateSession_Response {
}
message CGameNotifications_EnumerateSessions_Request {
optional uint32 appid = 1 [(description) = "The sessionid to request details for. Optional. If not specified, all the user's sessions will be returned."];
optional bool include_all_user_messages = 3 [(description) = "(Optional) Boolean determining whether the message for all users should be included. Defaults to false."];
optional bool include_auth_user_message = 4 [(description) = "(Optional) Boolean determining whether the message for the authenticated user should be included. Defaults to false."];
optional string language = 5 [(description) = "(Optional) Language to localize the text in."];
}
message CGameNotifications_Session {
optional uint64 sessionid = 1 [(description) = "The sessionid for this session."];
optional uint64 appid = 2 [(description) = "The appid for the session."];
optional uint64 context = 3 [(description) = "Game-specified context value the game can used to associate the session with some object on their backend."];
optional .CGameNotifications_LocalizedText title = 4 [(description) = "The current title for the session."];
optional uint32 time_created = 5 [(description) = "The time the session was created."];
optional uint32 time_updated = 6 [(description) = "The last time the session was updated."];
repeated .CGameNotifications_UserStatus user_status = 7 [(description) = "The status of all the users in the session."];
}
message CGameNotifications_EnumerateSessions_Response {
repeated .CGameNotifications_Session sessions = 1 [(description) = "A list of the user's sessions."];
}
message CGameNotifications_GetSessionDetails_Request {
message RequestedSession {
optional uint64 sessionid = 1 [(description) = "The sessionid to get details for."];
optional bool include_auth_user_message = 3 [(description) = "(Optional) Boolean determining whether the message for the authenticated user should be included. Defaults to false."];
}
repeated .CGameNotifications_GetSessionDetails_Request.RequestedSession sessions = 1;
optional uint32 appid = 2 [(description) = "The appid for the sessions."];
optional string language = 3 [(description) = "Language to localize the text in."];
}
message CGameNotifications_GetSessionDetails_Response {
repeated .CGameNotifications_Session sessions = 1 [(description) = "The details of the session."];
}
message GameNotificationSettings {
optional uint32 appid = 1 [(description) = "The appid to create the session for."];
optional bool allow_notifications = 2 [(description) = "Whether the user allows notification for this app."];
}
message CGameNotifications_UpdateNotificationSettings_Request {
repeated .GameNotificationSettings game_notification_settings = 1;
}
message CGameNotifications_UpdateNotificationSettings_Response {
}
message CGameNotifications_OnNotificationsRequested_Notification {
optional fixed64 steamid = 1 [(description) = "steamid of the user who notifications were requested for."];
optional uint32 appid = 2 [(description) = "The appid that requested notifications."];
}
message CGameNotifications_OnUserStatusChanged_Notification {
optional fixed64 steamid = 1 [(description) = "steamid of the user whose status changed."];
optional uint64 sessionid = 2 [(description) = "The sessionid of the session where the user's status was changed."];
optional uint32 appid = 3 [(description) = "The appid of the session where the user's status changed."];
optional .CGameNotifications_UserStatus status = 4 [(description) = "(Optional) New status of the user."];
optional bool removed = 5 [(description) = "(Optional) User has been removed from the session."];
}
service GameNotifications {
option (service_description) = "A service for functions related to the asyncronous game notification server.";
rpc UserCreateSession (.CGameNotifications_CreateSession_Request) returns (.CGameNotifications_CreateSession_Response) {
option (method_description) = "Creates an async game session";
}
rpc UserDeleteSession (.CGameNotifications_DeleteSession_Request) returns (.CGameNotifications_DeleteSession_Response) {
option (method_description) = "Deletes an async game session";
}
rpc UserUpdateSession (.CGameNotifications_UpdateSession_Request) returns (.CGameNotifications_UpdateSession_Response) {
option (method_description) = "Updates an async game session";
}
rpc EnumerateSessions (.CGameNotifications_EnumerateSessions_Request) returns (.CGameNotifications_EnumerateSessions_Response) {
option (method_description) = "Enumerates a user's sessions";
}
rpc GetSessionDetails (.CGameNotifications_GetSessionDetails_Request) returns (.CGameNotifications_GetSessionDetails_Response) {
option (method_description) = "Get the details for a specific session";
}
rpc UpdateNotificationSettings (.CGameNotifications_UpdateNotificationSettings_Request) returns (.CGameNotifications_UpdateNotificationSettings_Response) {
option (method_description) = "Updates whether a user allows game notifications for a specific app";
}
}
service GameNotificationsClient {
option (service_description) = "Client notifications";
option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
rpc OnNotificationsRequested (.CGameNotifications_OnNotificationsRequested_Notification) returns (.NoResponse) {
option (method_description) = "Requests that the user opt into notifications";
}
rpc OnUserStatusChanged (.CGameNotifications_OnUserStatusChanged_Notification) returns (.NoResponse) {
option (method_description) = "Notification that the user's status has changed";
}
}