├── latest ├── proto │ ├── appconfig │ │ └── v1 │ │ │ └── appconfig.proto │ ├── common │ │ ├── heartbeat.proto │ │ ├── resources.proto │ │ └── value.proto │ ├── timber │ │ └── v1 │ │ │ ├── common.proto │ │ │ ├── trade_box.proto │ │ │ └── resources.proto │ ├── ugcstore │ │ └── v1 │ │ │ ├── resources.proto │ │ │ ├── screening.proto │ │ │ ├── query.proto │ │ │ ├── write.proto │ │ │ └── ugcstore.proto │ ├── maintenance │ │ └── v1 │ │ │ ├── resources.proto │ │ │ └── maintenance_schedule.proto │ ├── toyohr │ │ └── v1 │ │ │ ├── common.proto │ │ │ ├── locker.proto │ │ │ ├── canola.proto │ │ │ ├── userscreening.proto │ │ │ ├── coop_scenario.proto │ │ │ ├── lobby_messaging.proto │ │ │ ├── fest.proto │ │ │ ├── replay.proto │ │ │ ├── schedule.proto │ │ │ ├── cloud_save.proto │ │ │ ├── game_record.proto │ │ │ └── resources.proto │ ├── hydro │ │ └── v1 │ │ │ ├── resources.proto │ │ │ └── datastore.proto │ ├── auth │ │ └── v1 │ │ │ ├── resources.proto │ │ │ ├── user.proto │ │ │ └── auth.proto │ ├── globalcounter │ │ └── v1 │ │ │ ├── resources.proto │ │ │ └── global_counter.proto │ ├── matchmaking │ │ └── v1 │ │ │ ├── matchmaker.proto │ │ │ ├── resources.proto │ │ │ └── game_session_service.proto │ ├── friends │ │ └── v1 │ │ │ ├── resources.proto │ │ │ ├── presence.proto │ │ │ └── friends.proto │ ├── leaderboard │ │ └── v1 │ │ │ ├── resources.proto │ │ │ └── leaderboard.proto │ ├── messaging │ │ └── v1 │ │ │ └── messaging.proto │ ├── errdetails │ │ └── nerror.proto │ └── gamesync │ │ └── v1 │ │ ├── resources.proto │ │ └── gamesync.proto └── google │ ├── protobuf │ ├── empty.proto │ ├── any.proto │ ├── duration.proto │ ├── field_mask.proto │ ├── timestamp.proto │ ├── wrappers.proto │ └── struct.proto │ ├── rpc │ └── status.proto │ └── api │ ├── annotations.proto │ ├── client.proto │ ├── field_behavior.proto │ ├── http.proto │ └── resource.proto ├── 0.20.x ├── proto │ ├── common │ │ ├── resources.proto │ │ └── value.proto │ ├── auth │ │ └── v1 │ │ │ ├── resources.proto │ │ │ └── auth.proto │ ├── matchmaking │ │ └── v1 │ │ │ ├── matchmaker.proto │ │ │ ├── resources.proto │ │ │ └── game_session_service.proto │ ├── friends │ │ └── v1 │ │ │ ├── resources.proto │ │ │ ├── presence.proto │ │ │ └── friends.proto │ ├── messaging │ │ └── v1 │ │ │ └── messaging.proto │ ├── errdetails │ │ └── nerror.proto │ └── gamesync │ │ └── v1 │ │ ├── resources.proto │ │ └── gamesync.proto ├── google │ ├── protobuf │ │ ├── empty.proto │ │ ├── any.proto │ │ ├── duration.proto │ │ ├── field_mask.proto │ │ ├── timestamp.proto │ │ └── struct.proto │ ├── rpc │ │ └── status.proto │ └── api │ │ ├── annotations.proto │ │ ├── client.proto │ │ ├── field_behavior.proto │ │ ├── http.proto │ │ └── resource.proto └── validate │ └── validate.proto ├── 0.21.x ├── proto │ ├── common │ │ ├── resources.proto │ │ └── value.proto │ ├── auth │ │ └── v1 │ │ │ ├── resources.proto │ │ │ └── auth.proto │ ├── matchmaking │ │ └── v1 │ │ │ ├── matchmaker.proto │ │ │ ├── resources.proto │ │ │ └── game_session_service.proto │ ├── friends │ │ └── v1 │ │ │ ├── resources.proto │ │ │ ├── presence.proto │ │ │ └── friends.proto │ ├── messaging │ │ └── v1 │ │ │ └── messaging.proto │ ├── errdetails │ │ └── nerror.proto │ └── gamesync │ │ └── v1 │ │ ├── resources.proto │ │ └── gamesync.proto ├── google │ ├── protobuf │ │ ├── empty.proto │ │ ├── any.proto │ │ ├── duration.proto │ │ ├── field_mask.proto │ │ ├── timestamp.proto │ │ └── struct.proto │ ├── rpc │ │ └── status.proto │ └── api │ │ ├── annotations.proto │ │ ├── client.proto │ │ ├── field_behavior.proto │ │ ├── http.proto │ │ └── resource.proto └── validate │ └── validate.proto ├── README.md └── generate_patch.py /latest/proto/appconfig/v1/appconfig.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.appconfig.v1; 5 | 6 | service Appconfig { 7 | // rpc FindApplicationConfig; 8 | // rpc PullModifiedApplicationConfig; 9 | } 10 | -------------------------------------------------------------------------------- /latest/proto/common/heartbeat.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.common; 5 | 6 | import "google/protobuf/duration.proto"; 7 | 8 | message Heartbeat { 9 | google.protobuf.Duration interval = 1; 10 | } 11 | -------------------------------------------------------------------------------- /latest/proto/timber/v1/common.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.timber.v1; 5 | 6 | import "google/protobuf/duration.proto"; 7 | 8 | message KeepAlive { 9 | google.protobuf.Duration duration = 1; 10 | } 11 | -------------------------------------------------------------------------------- /0.20.x/proto/common/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.common; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | import "google/api/resource.proto"; 8 | 9 | option go_package = "npln.nintendo.net/npln-practice/proto/common;common"; 10 | option cc_enable_arenas = true; 11 | 12 | extend google.protobuf.FileOptions { 13 | bool imported = 50000; 14 | } 15 | -------------------------------------------------------------------------------- /0.21.x/proto/common/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.common; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | import "google/api/resource.proto"; 8 | 9 | option go_package = "npln.nintendo.net/npln-practice/proto/common;common"; 10 | option cc_enable_arenas = true; 11 | 12 | extend google.protobuf.FileOptions { 13 | bool imported = 50000; 14 | } 15 | -------------------------------------------------------------------------------- /latest/proto/common/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.common; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | import "google/api/resource.proto"; 8 | 9 | option go_package = "npln.nintendo.net/npln-practice/proto/common;common"; 10 | option cc_enable_arenas = true; 11 | 12 | extend google.protobuf.FileOptions { 13 | bool imported = 50000; 14 | } 15 | -------------------------------------------------------------------------------- /0.20.x/google/protobuf/empty.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "EmptyProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/empty"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Empty { 15 | } 16 | -------------------------------------------------------------------------------- /0.21.x/google/protobuf/empty.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "EmptyProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/empty"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Empty { 15 | } 16 | -------------------------------------------------------------------------------- /latest/google/protobuf/empty.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "EmptyProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/empty"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Empty { 15 | } 16 | -------------------------------------------------------------------------------- /latest/proto/ugcstore/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.ugcstore.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | import "proto/common/value.proto"; 8 | 9 | message Document { 10 | string name = 1; 11 | nn.npln.common.MapValue fields = 2; 12 | google.protobuf.Timestamp create_time = 3; 13 | google.protobuf.Timestamp update_time = 4; 14 | } 15 | 16 | message DocumentShortAlias { 17 | string name = 1; 18 | string document = 2; 19 | string scope = 3; 20 | } 21 | -------------------------------------------------------------------------------- /0.20.x/google/protobuf/any.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "AnyProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/any"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Any { 15 | string type_url = 1; 16 | bytes value = 2; 17 | } 18 | -------------------------------------------------------------------------------- /0.21.x/google/protobuf/any.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "AnyProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/any"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Any { 15 | string type_url = 1; 16 | bytes value = 2; 17 | } 18 | -------------------------------------------------------------------------------- /latest/google/protobuf/any.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "AnyProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/any"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Any { 15 | string type_url = 1; 16 | bytes value = 2; 17 | } 18 | -------------------------------------------------------------------------------- /0.20.x/google/protobuf/duration.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "DurationProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/duration"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Duration { 15 | int64 seconds = 1; 16 | int32 nanos = 2; 17 | } 18 | -------------------------------------------------------------------------------- /0.20.x/google/protobuf/field_mask.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "FieldMaskProto"; 8 | option java_multiple_files = true; 9 | option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message FieldMask { 15 | repeated string paths = 1; 16 | } 17 | -------------------------------------------------------------------------------- /0.20.x/google/protobuf/timestamp.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "TimestampProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/timestamp"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Timestamp { 15 | int64 seconds = 1; 16 | int32 nanos = 2; 17 | } 18 | -------------------------------------------------------------------------------- /0.21.x/google/protobuf/duration.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "DurationProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/duration"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Duration { 15 | int64 seconds = 1; 16 | int32 nanos = 2; 17 | } 18 | -------------------------------------------------------------------------------- /0.21.x/google/protobuf/field_mask.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "FieldMaskProto"; 8 | option java_multiple_files = true; 9 | option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message FieldMask { 15 | repeated string paths = 1; 16 | } 17 | -------------------------------------------------------------------------------- /0.21.x/google/protobuf/timestamp.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "TimestampProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/timestamp"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Timestamp { 15 | int64 seconds = 1; 16 | int32 nanos = 2; 17 | } 18 | -------------------------------------------------------------------------------- /latest/google/protobuf/duration.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "DurationProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/duration"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Duration { 15 | int64 seconds = 1; 16 | int32 nanos = 2; 17 | } 18 | -------------------------------------------------------------------------------- /latest/google/protobuf/field_mask.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "FieldMaskProto"; 8 | option java_multiple_files = true; 9 | option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message FieldMask { 15 | repeated string paths = 1; 16 | } 17 | -------------------------------------------------------------------------------- /latest/google/protobuf/timestamp.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "TimestampProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/timestamp"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | message Timestamp { 15 | int64 seconds = 1; 16 | int32 nanos = 2; 17 | } 18 | -------------------------------------------------------------------------------- /0.20.x/google/rpc/status.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.rpc; 5 | 6 | import "google/protobuf/any.proto"; 7 | 8 | option java_package = "com.google.rpc"; 9 | option java_outer_classname = "StatusProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/rpc/status;status"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "RPC"; 14 | 15 | message Status { 16 | int32 code = 1; 17 | string message = 2; 18 | repeated google.protobuf.Any details = 3; 19 | } 20 | -------------------------------------------------------------------------------- /0.21.x/google/rpc/status.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.rpc; 5 | 6 | import "google/protobuf/any.proto"; 7 | 8 | option java_package = "com.google.rpc"; 9 | option java_outer_classname = "StatusProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/rpc/status;status"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "RPC"; 14 | 15 | message Status { 16 | int32 code = 1; 17 | string message = 2; 18 | repeated google.protobuf.Any details = 3; 19 | } 20 | -------------------------------------------------------------------------------- /latest/google/rpc/status.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.rpc; 5 | 6 | import "google/protobuf/any.proto"; 7 | 8 | option java_package = "com.google.rpc"; 9 | option java_outer_classname = "StatusProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/rpc/status;status"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "RPC"; 14 | 15 | message Status { 16 | int32 code = 1; 17 | string message = 2; 18 | repeated google.protobuf.Any details = 3; 19 | } 20 | -------------------------------------------------------------------------------- /latest/proto/maintenance/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.maintenance.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | 8 | message MaintenanceSchedule { 9 | string name = 1; 10 | string service_account = 2; 11 | google.protobuf.Timestamp start_time = 3; 12 | google.protobuf.Timestamp end_time = 4; 13 | google.protobuf.Timestamp update_time = 5; 14 | oneof updater { 15 | string updater_service_account = 6; 16 | string updater_user = 7; 17 | string updater_application_schedule = 8; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/common.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "proto/common/value.proto"; 7 | import "proto/ugcstore/v1/resources.proto"; 8 | 9 | message IkasuDocumentRequest { 10 | string name = 1; 11 | } 12 | 13 | message IkasuDocumentResponse { 14 | } 15 | 16 | message SelectDocumentsRequest { 17 | string tenant = 1; 18 | string type = 2; 19 | nn.npln.common.MapValue params = 3; 20 | } 21 | 22 | message SelectDocumentsResponse { 23 | repeated nn.npln.ugcstore.v1.Document documents = 1; 24 | } 25 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/locker.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "proto/toyohr/v1/common.proto"; 7 | 8 | message LockerRegisterDocumentRequest { 9 | string name = 1; 10 | } 11 | 12 | message LockerRegisterDocumentResponse { 13 | } 14 | 15 | service Locker { 16 | rpc IkasuDocument(IkasuDocumentRequest) returns (IkasuDocumentResponse); 17 | rpc SelectDocuments(SelectDocumentsRequest) returns (SelectDocumentsResponse); 18 | rpc RegisterDocument(LockerRegisterDocumentRequest) returns (LockerRegisterDocumentResponse); 19 | } 20 | -------------------------------------------------------------------------------- /0.20.x/google/api/annotations.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/api/http.proto"; 7 | import "google/protobuf/descriptor.proto"; 8 | 9 | option java_package = "com.google.api"; 10 | option java_outer_classname = "AnnotationsProto"; 11 | option java_multiple_files = true; 12 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 13 | option cc_enable_arenas = true; 14 | option objc_class_prefix = "GAPI"; 15 | 16 | extend google.protobuf.MethodOptions { 17 | google.api.HttpRule http = 72295728; 18 | } 19 | -------------------------------------------------------------------------------- /0.21.x/google/api/annotations.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/api/http.proto"; 7 | import "google/protobuf/descriptor.proto"; 8 | 9 | option java_package = "com.google.api"; 10 | option java_outer_classname = "AnnotationsProto"; 11 | option java_multiple_files = true; 12 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 13 | option cc_enable_arenas = true; 14 | option objc_class_prefix = "GAPI"; 15 | 16 | extend google.protobuf.MethodOptions { 17 | google.api.HttpRule http = 72295728; 18 | } 19 | -------------------------------------------------------------------------------- /latest/google/api/annotations.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/api/http.proto"; 7 | import "google/protobuf/descriptor.proto"; 8 | 9 | option java_package = "com.google.api"; 10 | option java_outer_classname = "AnnotationsProto"; 11 | option java_multiple_files = true; 12 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 13 | option cc_enable_arenas = true; 14 | option objc_class_prefix = "GAPI"; 15 | 16 | extend google.protobuf.MethodOptions { 17 | google.api.HttpRule http = 72295728; 18 | } 19 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/canola.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "proto/toyohr/v1/common.proto"; 7 | 8 | message CanolaRegisterDocumentRequest { 9 | string name = 1; 10 | string tweet_id = 2; 11 | } 12 | 13 | message CanolaRegisterDocumentResponse { 14 | } 15 | 16 | service Canola { 17 | rpc IkasuDocument(IkasuDocumentRequest) returns (IkasuDocumentResponse); 18 | rpc SelectDocuments(SelectDocumentsRequest) returns (SelectDocumentsResponse); 19 | rpc RegisterDocument(CanolaRegisterDocumentRequest) returns (CanolaRegisterDocumentResponse); 20 | } 21 | -------------------------------------------------------------------------------- /latest/google/protobuf/wrappers.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | message DoubleValue { 7 | double value = 1; 8 | } 9 | 10 | message FloatValue { 11 | float value = 1; 12 | } 13 | 14 | message Int64Value { 15 | int64 value = 1; 16 | } 17 | 18 | message UInt64Value { 19 | uint64 value = 1; 20 | } 21 | 22 | message Int32Value { 23 | int32 value = 1; 24 | } 25 | 26 | message UInt32Value { 27 | uint32 value = 1; 28 | } 29 | 30 | message BoolValue { 31 | bool value = 1; 32 | } 33 | 34 | message StringValue { 35 | string value = 1; 36 | } 37 | 38 | message BytesValue { 39 | bytes value = 1; 40 | } 41 | -------------------------------------------------------------------------------- /0.20.x/google/api/client.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "ClientProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.MethodOptions { 16 | repeated string method_signature = 1051; 17 | } 18 | 19 | extend google.protobuf.ServiceOptions { 20 | string default_host = 1049; 21 | } 22 | 23 | extend google.protobuf.ServiceOptions { 24 | string oauth_scopes = 1050; 25 | } 26 | -------------------------------------------------------------------------------- /0.21.x/google/api/client.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "ClientProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.MethodOptions { 16 | repeated string method_signature = 1051; 17 | } 18 | 19 | extend google.protobuf.ServiceOptions { 20 | string default_host = 1049; 21 | } 22 | 23 | extend google.protobuf.ServiceOptions { 24 | string oauth_scopes = 1050; 25 | } 26 | -------------------------------------------------------------------------------- /latest/google/api/client.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "ClientProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.MethodOptions { 16 | repeated string method_signature = 1051; 17 | } 18 | 19 | extend google.protobuf.ServiceOptions { 20 | string default_host = 1049; 21 | } 22 | 23 | extend google.protobuf.ServiceOptions { 24 | string oauth_scopes = 1050; 25 | } 26 | -------------------------------------------------------------------------------- /0.20.x/google/api/field_behavior.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "FieldBehaviorProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.FieldOptions { 16 | repeated google.api.FieldBehavior field_behavior = 1052; 17 | } 18 | 19 | enum FieldBehavior { 20 | FIELD_BEHAVIOR_UNSPECIFIED = 0; 21 | OPTIONAL = 1; 22 | REQUIRED = 2; 23 | OUTPUT_ONLY = 3; 24 | INPUT_ONLY = 4; 25 | IMMUTABLE = 5; 26 | } 27 | -------------------------------------------------------------------------------- /0.21.x/google/api/field_behavior.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "FieldBehaviorProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.FieldOptions { 16 | repeated google.api.FieldBehavior field_behavior = 1052; 17 | } 18 | 19 | enum FieldBehavior { 20 | FIELD_BEHAVIOR_UNSPECIFIED = 0; 21 | OPTIONAL = 1; 22 | REQUIRED = 2; 23 | OUTPUT_ONLY = 3; 24 | INPUT_ONLY = 4; 25 | IMMUTABLE = 5; 26 | } 27 | -------------------------------------------------------------------------------- /latest/google/api/field_behavior.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "FieldBehaviorProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.FieldOptions { 16 | repeated google.api.FieldBehavior field_behavior = 1052; 17 | } 18 | 19 | enum FieldBehavior { 20 | FIELD_BEHAVIOR_UNSPECIFIED = 0; 21 | OPTIONAL = 1; 22 | REQUIRED = 2; 23 | OUTPUT_ONLY = 3; 24 | INPUT_ONLY = 4; 25 | IMMUTABLE = 5; 26 | } 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NPLN-Protocols 2 | This repo contains protobuf files for Nintendo's [NPLN services](https://github.com/kinnay/NintendoClients/wiki/NPLN-Servers). 3 | 4 | The protobuf files for NPLN version 0.20.x and 0.21.x were decompiled automatically from reflection data that is stored in the Monster Hunter Rise game. 5 | 6 | Because Nintendo enabled the [LITE_RUNTIME](https://developers.google.com/protocol-buffers/docs/proto#options) optimization in later versions, this reflection data is no longer available. The protobuf files in the `latest` folder were decompiled manually using various sources. 7 | 8 | `generate_patch.py` generates an IPS patch that disables TLS certificate verification, given the filename of the main NSO. This is useful if you want to capture traffic or write your own NPLN servers. 9 | -------------------------------------------------------------------------------- /latest/proto/hydro/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.hydro.v1; 5 | 6 | import "google/protobuf/duration.proto"; 7 | import "google/protobuf/timestamp.proto"; 8 | import "proto/common/value.proto"; 9 | 10 | message Content { 11 | enum ContentPermission { 12 | CONTENT_PERMISSION_UNSPECIFIED = 0; 13 | READ = 1; 14 | UPDATE = 2; 15 | } 16 | 17 | string name = 1; 18 | string user = 2; 19 | repeated ContentPermission permissions = 3 [packed=true]; 20 | google.protobuf.Timestamp create_time = 4; 21 | google.protobuf.Timestamp update_time = 5; 22 | bytes payload = 6; 23 | map attributes = 7; 24 | string etag = 8; 25 | oneof expiration { 26 | google.protobuf.Timestamp expire_time = 9; 27 | google.protobuf.Duration ttl = 10; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/userscreening.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "proto/toyohr/v1/resources.proto"; 7 | 8 | message CreateReportRequest { 9 | string parent = 1; 10 | Report report = 2; 11 | } 12 | 13 | message GetViolationRequest { 14 | string name = 1; 15 | } 16 | 17 | message GetViolationResponse { 18 | // [UNKNOWN] 19 | } 20 | 21 | message SelectSnapshotRequest { 22 | string user = 1; 23 | string string_value = 2; 24 | } 25 | 26 | message SelectSnapshotResponse { 27 | // [UNKNOWN] 28 | } 29 | 30 | service UserScreening { 31 | rpc CreateReport(CreateReportRequest) returns (Report); 32 | rpc GetViolation(GetViolationRequest) returns (GetViolationResponse); 33 | rpc SelectSnapshot(SelectSnapshotRequest) returns (SelectSnapshotResponse); 34 | } 35 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/coop_scenario.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "proto/toyohr/v1/resources.proto"; 7 | import "proto/ugcstore/v1/resources.proto"; 8 | 9 | message CoopScenarioRegisterDocumentRequest { 10 | string name = 1; 11 | } 12 | 13 | message CoopScenarioRegisterDocumentResponse { 14 | CoopScenarioCode code = 1; 15 | } 16 | 17 | message ResolveCoopScenarioCodeRequest { 18 | string name = 1; 19 | } 20 | 21 | message ResolveCoopScenarioCodeResponse { 22 | nn.npln.ugcstore.v1.Document document = 1; 23 | } 24 | 25 | service CoopScenario { 26 | rpc RegisterDocument(CoopScenarioRegisterDocumentRequest) returns (CoopScenarioRegisterDocumentResponse); 27 | rpc ResolveCoopScenarioCode(ResolveCoopScenarioCodeRequest) returns (ResolveCoopScenarioCodeResponse); 28 | } 29 | -------------------------------------------------------------------------------- /latest/proto/maintenance/v1/maintenance_schedule.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.maintenance.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | import "proto/maintenance/v1/resources.proto"; 8 | 9 | message SubscribeMaintenanceSchedulesRequest { 10 | string tenant = 1; 11 | } 12 | 13 | message SubscribeMaintenanceSchedulesResponse { 14 | oneof response { 15 | SubscribeMaintenanceSchedulesResponseMessage message = 1; 16 | KeepAlive keep_alive = 2; 17 | } 18 | } 19 | 20 | message KeepAlive { 21 | } 22 | 23 | message SubscribeMaintenanceSchedulesResponseMessage { 24 | google.protobuf.Timestamp timestamp = 1; 25 | MaintenanceSchedule schedule = 2; 26 | } 27 | 28 | service MaintenanceScheduleService { 29 | rpc SubscribeMaintenanceSchedules(SubscribeMaintenanceSchedulesRequest) returns (stream SubscribeMaintenanceSchedulesResponse); 30 | } 31 | -------------------------------------------------------------------------------- /0.20.x/google/protobuf/struct.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "StructProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/struct;structpb"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | enum NullValue { 15 | NULL_VALUE = 0; 16 | } 17 | 18 | message Struct { 19 | map fields = 1; 20 | } 21 | 22 | message Value { 23 | oneof kind { 24 | NullValue null_value = 1; 25 | double number_value = 2; 26 | string string_value = 3; 27 | bool bool_value = 4; 28 | Struct struct_value = 5; 29 | ListValue list_value = 6; 30 | } 31 | } 32 | 33 | message ListValue { 34 | repeated Value values = 1; 35 | } 36 | -------------------------------------------------------------------------------- /0.21.x/google/protobuf/struct.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "StructProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/struct;structpb"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | enum NullValue { 15 | NULL_VALUE = 0; 16 | } 17 | 18 | message Struct { 19 | map fields = 1; 20 | } 21 | 22 | message Value { 23 | oneof kind { 24 | NullValue null_value = 1; 25 | double number_value = 2; 26 | string string_value = 3; 27 | bool bool_value = 4; 28 | Struct struct_value = 5; 29 | ListValue list_value = 6; 30 | } 31 | } 32 | 33 | message ListValue { 34 | repeated Value values = 1; 35 | } 36 | -------------------------------------------------------------------------------- /latest/google/protobuf/struct.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.protobuf; 5 | 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "StructProto"; 8 | option java_multiple_files = true; 9 | option go_package = "github.com/golang/protobuf/ptypes/struct;structpb"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GPB"; 12 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 13 | 14 | enum NullValue { 15 | NULL_VALUE = 0; 16 | } 17 | 18 | message Struct { 19 | map fields = 1; 20 | } 21 | 22 | message Value { 23 | oneof kind { 24 | NullValue null_value = 1; 25 | double number_value = 2; 26 | string string_value = 3; 27 | bool bool_value = 4; 28 | Struct struct_value = 5; 29 | ListValue list_value = 6; 30 | } 31 | } 32 | 33 | message ListValue { 34 | repeated Value values = 1; 35 | } 36 | -------------------------------------------------------------------------------- /0.20.x/proto/common/value.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.common; 5 | 6 | import "google/protobuf/struct.proto"; 7 | import "google/protobuf/timestamp.proto"; 8 | import "validate/validate.proto"; 9 | 10 | option go_package = "npln.nintendo.net/npln-practice/proto/common;common"; 11 | option cc_enable_arenas = true; 12 | 13 | message Value { 14 | oneof value_type { 15 | google.protobuf.NullValue null_value = 1; 16 | bool boolean_value = 2; 17 | int64 integer_value = 3; 18 | float float_value = 4; 19 | double double_value = 5; 20 | google.protobuf.Timestamp timestamp_value = 6; 21 | string string_value = 7; 22 | bytes bytes_value = 8; 23 | ArrayValue array_value = 9; 24 | MapValue map_value = 10; 25 | } 26 | } 27 | 28 | message ArrayValue { 29 | repeated Value values = 1; 30 | } 31 | 32 | message MapValue { 33 | map fields = 1; 34 | } 35 | -------------------------------------------------------------------------------- /0.21.x/proto/common/value.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.common; 5 | 6 | import "google/protobuf/struct.proto"; 7 | import "google/protobuf/timestamp.proto"; 8 | import "validate/validate.proto"; 9 | 10 | option go_package = "npln.nintendo.net/npln-practice/proto/common;common"; 11 | option cc_enable_arenas = true; 12 | 13 | message Value { 14 | oneof value_type { 15 | google.protobuf.NullValue null_value = 1; 16 | bool boolean_value = 2; 17 | int64 integer_value = 3; 18 | float float_value = 4; 19 | double double_value = 5; 20 | google.protobuf.Timestamp timestamp_value = 6; 21 | string string_value = 7; 22 | bytes bytes_value = 8; 23 | ArrayValue array_value = 9; 24 | MapValue map_value = 10; 25 | } 26 | } 27 | 28 | message ArrayValue { 29 | repeated Value values = 1; 30 | } 31 | 32 | message MapValue { 33 | map fields = 1; 34 | } 35 | -------------------------------------------------------------------------------- /0.20.x/proto/auth/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.auth.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | import "proto/common/resources.proto"; 10 | 11 | option go_package = "npln.nintendo.net/npln-practice/proto/auth/v1;auth"; 12 | option cc_enable_arenas = true; 13 | 14 | enum ExternalIdType { 15 | EXTERNAL_ID_TYPE_UNSPECIFIED = 0; 16 | NSA_ID = 1; 17 | DUMMY_EXT_ID = 2; 18 | } 19 | 20 | message Account { 21 | string name = 1; 22 | bool banned = 2; 23 | google.protobuf.Timestamp update_time = 3; 24 | } 25 | 26 | message User { 27 | string name = 1; 28 | string account = 2; 29 | } 30 | 31 | message UserExternalId { 32 | string name = 1; 33 | string user = 2; 34 | ExternalId external_id = 3; 35 | } 36 | 37 | message ExternalId { 38 | ExternalIdType type = 1; 39 | string id = 2; 40 | } 41 | -------------------------------------------------------------------------------- /0.21.x/proto/auth/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.auth.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | import "proto/common/resources.proto"; 10 | 11 | option go_package = "npln.nintendo.net/npln-practice/proto/auth/v1;auth"; 12 | option cc_enable_arenas = true; 13 | 14 | enum ExternalIdType { 15 | EXTERNAL_ID_TYPE_UNSPECIFIED = 0; 16 | NSA_ID = 1; 17 | DUMMY_EXT_ID = 2; 18 | } 19 | 20 | message Account { 21 | string name = 1; 22 | bool banned = 2; 23 | google.protobuf.Timestamp update_time = 3; 24 | } 25 | 26 | message User { 27 | string name = 1; 28 | string account = 2; 29 | } 30 | 31 | message UserExternalId { 32 | string name = 1; 33 | string user = 2; 34 | ExternalId external_id = 3; 35 | } 36 | 37 | message ExternalId { 38 | ExternalIdType type = 1; 39 | string id = 2; 40 | } 41 | -------------------------------------------------------------------------------- /latest/proto/common/value.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.common; 5 | 6 | import "google/protobuf/struct.proto"; 7 | import "google/protobuf/timestamp.proto"; 8 | import "validate/validate.proto"; 9 | 10 | option go_package = "npln.nintendo.net/npln-practice/proto/common;common"; 11 | option cc_enable_arenas = true; 12 | 13 | message Value { 14 | oneof value_type { 15 | google.protobuf.NullValue null_value = 1; 16 | bool boolean_value = 2; 17 | int64 integer_value = 3; 18 | float float_value = 4; 19 | double double_value = 5; 20 | google.protobuf.Timestamp timestamp_value = 6; 21 | string string_value = 7; 22 | bytes bytes_value = 8; 23 | ArrayValue array_value = 9; 24 | MapValue map_value = 10; 25 | string reference_value = 11; 26 | } 27 | } 28 | 29 | message ArrayValue { 30 | repeated Value values = 1; 31 | } 32 | 33 | message MapValue { 34 | map fields = 1; 35 | } 36 | -------------------------------------------------------------------------------- /0.20.x/google/api/http.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | option java_package = "com.google.api"; 7 | option java_outer_classname = "HttpProto"; 8 | option java_multiple_files = true; 9 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GAPI"; 12 | 13 | message Http { 14 | repeated HttpRule rules = 1; 15 | bool fully_decode_reserved_expansion = 2; 16 | } 17 | 18 | message HttpRule { 19 | string selector = 1; 20 | oneof pattern { 21 | string get = 2; 22 | string put = 3; 23 | string post = 4; 24 | string delete = 5; 25 | string patch = 6; 26 | CustomHttpPattern custom = 8; 27 | } 28 | string body = 7; 29 | string response_body = 12; 30 | repeated HttpRule additional_bindings = 11; 31 | } 32 | 33 | message CustomHttpPattern { 34 | string kind = 1; 35 | string path = 2; 36 | } 37 | -------------------------------------------------------------------------------- /0.21.x/google/api/http.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | option java_package = "com.google.api"; 7 | option java_outer_classname = "HttpProto"; 8 | option java_multiple_files = true; 9 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GAPI"; 12 | 13 | message Http { 14 | repeated HttpRule rules = 1; 15 | bool fully_decode_reserved_expansion = 2; 16 | } 17 | 18 | message HttpRule { 19 | string selector = 1; 20 | oneof pattern { 21 | string get = 2; 22 | string put = 3; 23 | string post = 4; 24 | string delete = 5; 25 | string patch = 6; 26 | CustomHttpPattern custom = 8; 27 | } 28 | string body = 7; 29 | string response_body = 12; 30 | repeated HttpRule additional_bindings = 11; 31 | } 32 | 33 | message CustomHttpPattern { 34 | string kind = 1; 35 | string path = 2; 36 | } 37 | -------------------------------------------------------------------------------- /latest/google/api/http.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | option java_package = "com.google.api"; 7 | option java_outer_classname = "HttpProto"; 8 | option java_multiple_files = true; 9 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 10 | option cc_enable_arenas = true; 11 | option objc_class_prefix = "GAPI"; 12 | 13 | message Http { 14 | repeated HttpRule rules = 1; 15 | bool fully_decode_reserved_expansion = 2; 16 | } 17 | 18 | message HttpRule { 19 | string selector = 1; 20 | oneof pattern { 21 | string get = 2; 22 | string put = 3; 23 | string post = 4; 24 | string delete = 5; 25 | string patch = 6; 26 | CustomHttpPattern custom = 8; 27 | } 28 | string body = 7; 29 | string response_body = 12; 30 | repeated HttpRule additional_bindings = 11; 31 | } 32 | 33 | message CustomHttpPattern { 34 | string kind = 1; 35 | string path = 2; 36 | } 37 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/lobby_messaging.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "google/protobuf/empty.proto"; 7 | import "proto/toyohr/v1/resources.proto"; 8 | 9 | message RecvMessageRequest { 10 | string user = 1; 11 | string lobby = 2; 12 | string message_resume_token = 3; 13 | } 14 | 15 | message RecvMessageResponse { 16 | // [UNKNOWN] 17 | } 18 | 19 | message SendMessageRequest { 20 | string user = 1; 21 | repeated string receiver_users = 2; 22 | MessageBody message_body = 3; 23 | } 24 | 25 | message SendLobbyMessageRequest { 26 | string user = 1; 27 | string lobby = 2; 28 | MessageBody message_body = 3; 29 | } 30 | 31 | service LobbyMessaging { 32 | rpc RecvMessage(RecvMessageRequest) returns (stream RecvMessageResponse); 33 | rpc SendMessage(SendMessageRequest) returns (google.protobuf.Empty); 34 | rpc SendLobbyMessage(SendLobbyMessageRequest) returns (google.protobuf.Empty); 35 | } 36 | -------------------------------------------------------------------------------- /latest/proto/ugcstore/v1/screening.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.ugcstore.v1; 5 | 6 | import "google/protobuf/empty.proto"; 7 | import "google/protobuf/timestamp.proto"; 8 | import "proto/common/value.proto"; 9 | import "proto/ugcstore/v1/ugcstore.proto"; 10 | 11 | message AttachmentContext { 12 | string key = 1; 13 | string attachment_document = 2; 14 | string upload_uri = 3; 15 | } 16 | 17 | message Report { 18 | string name = 1; 19 | string category = 2; 20 | string reason = 3; 21 | string language_code = 4; 22 | google.protobuf.Timestamp create_time = 5; 23 | string screening_target = 6; 24 | string screening_target_type = 7; 25 | nn.npln.common.MapValue context = 8; 26 | bool use_attachment = 9; 27 | repeated AttachmentContext attachment_context = 10; 28 | } 29 | 30 | message CreateReportRequest { 31 | string parent = 1; 32 | Report report = 2; 33 | } 34 | 35 | service Screening { 36 | rpc CreateReport(CreateReportRequest) returns (Report); 37 | rpc IssueUploadUri(IssueUploadUriRequest) returns (IssueUploadUriResponse); 38 | } 39 | -------------------------------------------------------------------------------- /latest/proto/timber/v1/trade_box.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.timber.v1; 5 | 6 | import "google/protobuf/empty.proto"; 7 | import "proto/timber/v1/common.proto"; 8 | import "proto/timber/v1/resources.proto"; 9 | 10 | message CreateTradeBoxRequest { 11 | string parent = 1; 12 | TradeBox trade_box = 2; 13 | string trade_box_id = 3; 14 | } 15 | 16 | message DeleteTradeBoxRequest { 17 | string name = 1; 18 | } 19 | 20 | message CancelTradeBoxRequest { 21 | string name = 1; 22 | } 23 | 24 | message CancelTradeBoxResponse { 25 | } 26 | 27 | message TrackTradeBoxRequest { 28 | string name = 1; 29 | } 30 | 31 | message TrackTradeBoxResponse { 32 | TradeBox trade_box = 1; 33 | bool unk = 2; 34 | KeepAlive keep_alive = 3; 35 | } 36 | 37 | service TradeBoxService { 38 | rpc CreateTradeBox(CreateTradeBoxRequest) returns (TradeBox); 39 | rpc DeleteTradeBox(DeleteTradeBoxRequest) returns (google.protobuf.Empty); 40 | rpc CancelTradeBox(CancelTradeBoxRequest) returns (CancelTradeBoxResponse); 41 | rpc TrackTradeBox(TrackTradeBoxRequest) returns (stream TrackTradeBoxResponse); 42 | } 43 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/fest.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "proto/toyohr/v1/resources.proto"; 7 | 8 | message CreateFestEntryRequest { 9 | string parent = 1; 10 | FestEntry fest_entry = 2; 11 | } 12 | 13 | message GetFestEntryRequest { 14 | string name = 1; 15 | } 16 | 17 | message GetFestResultRequest { 18 | string name = 1; 19 | } 20 | 21 | message SelectFestScheduleRequest { 22 | string tenant = 1; 23 | string region = 2; 24 | string target = 3; 25 | } 26 | 27 | message SelectFestScheduleResponse { 28 | FestSchedule schedule = 1; 29 | } 30 | 31 | message GetFestDecryptionKeyRequest { 32 | string name = 1; 33 | bool show_all_keys = 2; 34 | } 35 | 36 | service FestService { 37 | rpc CreateFestEntry(CreateFestEntryRequest) returns (FestEntry); 38 | rpc GetFestEntry(GetFestEntryRequest) returns (FestEntry); 39 | rpc GetFestResult(GetFestResultRequest) returns (FestResult); 40 | rpc SelectFestSchedule(SelectFestScheduleRequest) returns (SelectFestScheduleResponse); 41 | rpc GetFestDecryptionKey(GetFestDecryptionKeyRequest) returns (FestDecryptionKey); 42 | } 43 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/replay.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | import "proto/toyohr/v1/resources.proto"; 8 | import "proto/ugcstore/v1/resources.proto"; 9 | 10 | message ReplayRegisterDocumentRequest { 11 | string name = 1; 12 | } 13 | 14 | message ReplayRegisterDocumentResponse { 15 | ReplayCode code = 1; 16 | } 17 | 18 | message ResolveReplayCodeRequest { 19 | string name = 1; 20 | } 21 | 22 | message ResolveReplayCodeResponse { 23 | nn.npln.ugcstore.v1.Document document = 1; 24 | } 25 | 26 | message FulfillReservationsRequest { 27 | string user = 1; 28 | google.protobuf.Timestamp last_fulfill_time = 2; 29 | } 30 | 31 | message FulfillReservationsResponse { 32 | repeated nn.npln.ugcstore.v1.Document document = 1; 33 | google.protobuf.Timestamp timestamp = 2; 34 | } 35 | 36 | service Replay { 37 | rpc RegisterDocument(ReplayRegisterDocumentRequest) returns (ReplayRegisterDocumentResponse); 38 | rpc ResolveReplayCode(ResolveReplayCodeRequest) returns (ResolveReplayCodeResponse); 39 | rpc FulfillReservations(FulfillReservationsRequest) returns (FulfillReservationsResponse); 40 | } 41 | -------------------------------------------------------------------------------- /latest/proto/auth/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.auth.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | import "proto/common/resources.proto"; 10 | 11 | option go_package = "npln.nintendo.net/npln-practice/proto/auth/v1;auth"; 12 | option cc_enable_arenas = true; 13 | 14 | enum ExternalIdType { 15 | EXTERNAL_ID_TYPE_UNSPECIFIED = 0; 16 | NSA_ID = 1; 17 | DUMMY_EXT_ID = 2; 18 | } 19 | 20 | message Account { 21 | string name = 1; 22 | bool banned = 2; 23 | google.protobuf.Timestamp update_time = 3; 24 | } 25 | 26 | message AccountExternalId { 27 | string name = 1; 28 | ExternalId external_id = 2; 29 | } 30 | 31 | message User { 32 | string name = 1; 33 | string account = 2; 34 | google.protobuf.Timestamp create_time = 3; 35 | google.protobuf.Timestamp last_login_time = 4; 36 | int64 short_id = 5; 37 | } 38 | 39 | message UserExternalId { 40 | string name = 1; 41 | string user = 2; 42 | ExternalId external_id = 3; 43 | google.protobuf.Timestamp token_last_issue_time = 4; 44 | } 45 | 46 | message ExternalId { 47 | ExternalIdType type = 1; 48 | string id = 2; 49 | } 50 | -------------------------------------------------------------------------------- /0.20.x/google/api/resource.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "ResourceProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.FieldOptions { 16 | google.api.ResourceReference resource_reference = 1055; 17 | } 18 | 19 | extend google.protobuf.FileOptions { 20 | repeated google.api.ResourceDescriptor resource_definition = 1053; 21 | } 22 | 23 | extend google.protobuf.MessageOptions { 24 | google.api.ResourceDescriptor resource = 1053; 25 | } 26 | 27 | message ResourceDescriptor { 28 | enum History { 29 | HISTORY_UNSPECIFIED = 0; 30 | ORIGINALLY_SINGLE_PATTERN = 1; 31 | FUTURE_MULTI_PATTERN = 2; 32 | } 33 | 34 | string type = 1; 35 | repeated string pattern = 2; 36 | string name_field = 3; 37 | History history = 4; 38 | string plural = 5; 39 | string singular = 6; 40 | } 41 | 42 | message ResourceReference { 43 | string type = 1; 44 | string child_type = 2; 45 | } 46 | -------------------------------------------------------------------------------- /0.21.x/google/api/resource.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "ResourceProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.FieldOptions { 16 | google.api.ResourceReference resource_reference = 1055; 17 | } 18 | 19 | extend google.protobuf.FileOptions { 20 | repeated google.api.ResourceDescriptor resource_definition = 1053; 21 | } 22 | 23 | extend google.protobuf.MessageOptions { 24 | google.api.ResourceDescriptor resource = 1053; 25 | } 26 | 27 | message ResourceDescriptor { 28 | enum History { 29 | HISTORY_UNSPECIFIED = 0; 30 | ORIGINALLY_SINGLE_PATTERN = 1; 31 | FUTURE_MULTI_PATTERN = 2; 32 | } 33 | 34 | string type = 1; 35 | repeated string pattern = 2; 36 | string name_field = 3; 37 | History history = 4; 38 | string plural = 5; 39 | string singular = 6; 40 | } 41 | 42 | message ResourceReference { 43 | string type = 1; 44 | string child_type = 2; 45 | } 46 | -------------------------------------------------------------------------------- /latest/google/api/resource.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package google.api; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | 8 | option java_package = "com.google.api"; 9 | option java_outer_classname = "ResourceProto"; 10 | option java_multiple_files = true; 11 | option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; 12 | option cc_enable_arenas = true; 13 | option objc_class_prefix = "GAPI"; 14 | 15 | extend google.protobuf.FieldOptions { 16 | google.api.ResourceReference resource_reference = 1055; 17 | } 18 | 19 | extend google.protobuf.FileOptions { 20 | repeated google.api.ResourceDescriptor resource_definition = 1053; 21 | } 22 | 23 | extend google.protobuf.MessageOptions { 24 | google.api.ResourceDescriptor resource = 1053; 25 | } 26 | 27 | message ResourceDescriptor { 28 | enum History { 29 | HISTORY_UNSPECIFIED = 0; 30 | ORIGINALLY_SINGLE_PATTERN = 1; 31 | FUTURE_MULTI_PATTERN = 2; 32 | } 33 | 34 | string type = 1; 35 | repeated string pattern = 2; 36 | string name_field = 3; 37 | History history = 4; 38 | string plural = 5; 39 | string singular = 6; 40 | } 41 | 42 | message ResourceReference { 43 | string type = 1; 44 | string child_type = 2; 45 | } 46 | -------------------------------------------------------------------------------- /latest/proto/globalcounter/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.globalcounter.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | import "google/protobuf/wrappers.proto"; 8 | import "proto/common/value.proto"; 9 | 10 | message Count { 11 | string name = 1; 12 | string holder = 2; 13 | Holder holder_detail = 3; 14 | int64 count = 4; 15 | google.protobuf.Timestamp update_time = 5; 16 | string resource_link = 6; 17 | nn.npln.common.MapValue fields = 7; 18 | } 19 | 20 | message Counter { 21 | string name = 1; 22 | int32 current_season_id = 2; 23 | int32 min_season_id = 3; 24 | string resource_link = 4; 25 | } 26 | 27 | message Holder { 28 | string name = 1; 29 | string display_name = 2; 30 | int64 type = 3; 31 | string owner = 4; 32 | google.protobuf.Timestamp create_time = 5; 33 | google.protobuf.Timestamp update_time = 6; 34 | string resource_link = 7; 35 | nn.npln.common.MapValue fields = 8; 36 | } 37 | 38 | message Season { 39 | string name = 1; 40 | int64 count = 2; 41 | int64 uniq_user = 3; 42 | google.protobuf.Timestamp season_start_time = 4; 43 | google.protobuf.Timestamp season_end_time = 5; 44 | bool read_final_permission = 6; 45 | bool write_final_permission = 7; 46 | google.protobuf.BoolValue read_setting_permission = 8; 47 | google.protobuf.BoolValue write_setting_permission = 9; 48 | } 49 | -------------------------------------------------------------------------------- /0.20.x/proto/matchmaking/v1/matchmaker.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/empty.proto"; 10 | import "proto/common/resources.proto"; 11 | import "proto/matchmaking/v1/resources.proto"; 12 | 13 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 14 | option cc_enable_arenas = true; 15 | 16 | message CreateMatchmakingTicketRequest { 17 | string parent = 1; 18 | MatchmakingTicket matchmaking_ticket = 2; 19 | repeated string user_delegation_tokens = 3; 20 | } 21 | 22 | message TrackMatchmakingTicketRequest { 23 | string name = 1; 24 | repeated string include_id_token_users = 2; 25 | repeated string user_delegation_tokens = 3; 26 | } 27 | 28 | message CancelMatchmakingTicketRequest { 29 | string name = 1; 30 | } 31 | 32 | message CreateAcceptanceRequest { 33 | string parent = 1; 34 | Acceptance acceptance = 2; 35 | } 36 | 37 | service Matchmaker { 38 | rpc CreateMatchmakingTicket(CreateMatchmakingTicketRequest) returns (MatchmakingTicket); 39 | rpc TrackMatchmakingTicket(TrackMatchmakingTicketRequest) returns (stream MatchmakingTicket); 40 | rpc CancelMatchmakingTicket(CancelMatchmakingTicketRequest) returns (google.protobuf.Empty); 41 | rpc CreateAcceptance(CreateAcceptanceRequest) returns (Acceptance); 42 | } 43 | -------------------------------------------------------------------------------- /0.21.x/proto/matchmaking/v1/matchmaker.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/empty.proto"; 10 | import "proto/common/resources.proto"; 11 | import "proto/matchmaking/v1/resources.proto"; 12 | 13 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 14 | option cc_enable_arenas = true; 15 | 16 | message CreateMatchmakingTicketRequest { 17 | string parent = 1; 18 | MatchmakingTicket matchmaking_ticket = 2; 19 | repeated string user_delegation_tokens = 3; 20 | } 21 | 22 | message TrackMatchmakingTicketRequest { 23 | string name = 1; 24 | repeated string include_id_token_users = 2; 25 | repeated string user_delegation_tokens = 3; 26 | } 27 | 28 | message CancelMatchmakingTicketRequest { 29 | string name = 1; 30 | } 31 | 32 | message CreateAcceptanceRequest { 33 | string parent = 1; 34 | Acceptance acceptance = 2; 35 | } 36 | 37 | service Matchmaker { 38 | rpc CreateMatchmakingTicket(CreateMatchmakingTicketRequest) returns (MatchmakingTicket); 39 | rpc TrackMatchmakingTicket(TrackMatchmakingTicketRequest) returns (stream MatchmakingTicket); 40 | rpc CancelMatchmakingTicket(CancelMatchmakingTicketRequest) returns (google.protobuf.Empty); 41 | rpc CreateAcceptance(CreateAcceptanceRequest) returns (Acceptance); 42 | } 43 | -------------------------------------------------------------------------------- /latest/proto/matchmaking/v1/matchmaker.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/empty.proto"; 10 | import "proto/common/resources.proto"; 11 | import "proto/matchmaking/v1/resources.proto"; 12 | 13 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 14 | option cc_enable_arenas = true; 15 | 16 | message CreateMatchmakingTicketRequest { 17 | string parent = 1; 18 | MatchmakingTicket matchmaking_ticket = 2; 19 | repeated string user_delegation_tokens = 3; 20 | } 21 | 22 | message TrackMatchmakingTicketRequest { 23 | string name = 1; 24 | repeated string include_id_token_users = 2; 25 | repeated string user_delegation_tokens = 3; 26 | } 27 | 28 | message CancelMatchmakingTicketRequest { 29 | string name = 1; 30 | } 31 | 32 | message CreateAcceptanceRequest { 33 | string parent = 1; 34 | Acceptance acceptance = 2; 35 | } 36 | 37 | service Matchmaker { 38 | rpc CreateMatchmakingTicket(CreateMatchmakingTicketRequest) returns (MatchmakingTicket); 39 | rpc TrackMatchmakingTicket(TrackMatchmakingTicketRequest) returns (stream MatchmakingTicket); 40 | rpc CancelMatchmakingTicket(CancelMatchmakingTicketRequest) returns (google.protobuf.Empty); 41 | rpc CreateAcceptance(CreateAcceptanceRequest) returns (Acceptance); 42 | } 43 | -------------------------------------------------------------------------------- /0.20.x/proto/friends/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | import "validate/validate.proto"; 10 | import "proto/common/value.proto"; 11 | import "proto/common/resources.proto"; 12 | 13 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 14 | option cc_enable_arenas = true; 15 | 16 | enum State { 17 | STATE_UNSPECIFIED = 0; 18 | ONLINE = 1; 19 | OFFLINE = 2; 20 | INACTIVE = 3; 21 | } 22 | 23 | enum Range { 24 | RANGE_UNSPECIFIED = 0; 25 | PRIVATE = 1; 26 | FAVORITE_FRIENDS = 2; 27 | FRIENDS = 3; 28 | } 29 | 30 | message FriendUser { 31 | string name = 1; 32 | string friend_user = 2; 33 | string nsa_id = 3; 34 | } 35 | 36 | message BlockingUser { 37 | string name = 1; 38 | string blocking_user = 2; 39 | string nsa_id = 3; 40 | } 41 | 42 | message Presence { 43 | string name = 1; 44 | State state = 2; 45 | map attributes = 3; 46 | google.protobuf.Timestamp last_online_time = 4; 47 | bool unsubscribed = 5; 48 | } 49 | 50 | message FriendNsa { 51 | string name = 1; 52 | string friend_nsa = 2; 53 | bool favorite = 3; 54 | } 55 | 56 | message BlockingNsa { 57 | string name = 1; 58 | string blocking_nsa = 2; 59 | } 60 | 61 | message NsaSettings { 62 | string name = 1; 63 | Range presence_open_range = 2; 64 | } 65 | -------------------------------------------------------------------------------- /0.21.x/proto/friends/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | import "validate/validate.proto"; 10 | import "proto/common/value.proto"; 11 | import "proto/common/resources.proto"; 12 | 13 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 14 | option cc_enable_arenas = true; 15 | 16 | enum State { 17 | STATE_UNSPECIFIED = 0; 18 | ONLINE = 1; 19 | OFFLINE = 2; 20 | INACTIVE = 3; 21 | } 22 | 23 | enum Range { 24 | RANGE_UNSPECIFIED = 0; 25 | PRIVATE = 1; 26 | FAVORITE_FRIENDS = 2; 27 | FRIENDS = 3; 28 | } 29 | 30 | message FriendUser { 31 | string name = 1; 32 | string friend_user = 2; 33 | string nsa_id = 3; 34 | } 35 | 36 | message BlockingUser { 37 | string name = 1; 38 | string blocking_user = 2; 39 | string nsa_id = 3; 40 | } 41 | 42 | message Presence { 43 | string name = 1; 44 | State state = 2; 45 | map attributes = 3; 46 | google.protobuf.Timestamp last_online_time = 4; 47 | bool unsubscribed = 5; 48 | } 49 | 50 | message FriendNsa { 51 | string name = 1; 52 | string friend_nsa = 2; 53 | bool favorite = 3; 54 | } 55 | 56 | message BlockingNsa { 57 | string name = 1; 58 | string blocking_nsa = 2; 59 | } 60 | 61 | message NsaSettings { 62 | string name = 1; 63 | Range presence_open_range = 2; 64 | } 65 | -------------------------------------------------------------------------------- /latest/proto/auth/v1/user.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.auth.v1; 5 | 6 | import "proto/auth/v1/resources.proto"; 7 | 8 | message QueryUserExternalIdsRequest { 9 | message ExternalIdCondition { 10 | repeated string users = 1; 11 | repeated ExternalIdType external_id_types = 2 [packed=true]; 12 | } 13 | 14 | message UserCondition { 15 | repeated ExternalId external_ids = 1; 16 | } 17 | 18 | string tenant = 1; 19 | oneof condition { 20 | UserCondition user_condition = 2; 21 | ExternalIdCondition external_id_condition = 3; 22 | } 23 | int32 page_size = 4; 24 | string page_token = 5; 25 | } 26 | 27 | message QueryUserExternalIdsResponse { 28 | repeated UserExternalId user_external_ids = 1; 29 | string next_page_token = 2; 30 | } 31 | 32 | message GetUserRequest { 33 | string name = 1; 34 | } 35 | 36 | message QueryUserShortIdsRequest { 37 | message ShortIds { 38 | repeated int64 ids = 1 [packed=true]; 39 | } 40 | 41 | message UserIds { 42 | repeated string ids = 1; 43 | } 44 | 45 | string tenant = 1; 46 | oneof condition { 47 | UserIds user_ids = 2; 48 | ShortIds short_ids = 3; 49 | } 50 | } 51 | 52 | message QueryUserShortIdsResponse { 53 | message UserShortId { 54 | string user_id = 1; 55 | int64 short_id = 2; 56 | } 57 | 58 | repeated UserShortId user_short_ids = 1; 59 | } 60 | 61 | service UserService { 62 | rpc QueryUserExternalIds(QueryUserExternalIdsRequest) returns (QueryUserExternalIdsResponse); 63 | rpc GetUser(GetUserRequest) returns (User); 64 | rpc QueryUserShortIds(QueryUserShortIdsRequest) returns (QueryUserShortIdsResponse); 65 | } 66 | -------------------------------------------------------------------------------- /latest/proto/friends/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | import "validate/validate.proto"; 10 | import "proto/common/value.proto"; 11 | import "proto/common/resources.proto"; 12 | 13 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 14 | option cc_enable_arenas = true; 15 | 16 | enum State { 17 | STATE_UNSPECIFIED = 0; 18 | ONLINE = 1; 19 | OFFLINE = 2; 20 | INACTIVE = 3; 21 | } 22 | 23 | enum Range { 24 | RANGE_UNSPECIFIED = 0; 25 | PRIVATE = 1; 26 | FAVORITE_FRIENDS = 2; 27 | FRIENDS = 3; 28 | } 29 | 30 | message FriendUser { 31 | message Relationship { 32 | bool favorite = 1; 33 | bool presence_deliverable = 2; 34 | bool presence_receivable = 3; 35 | } 36 | 37 | string name = 1; 38 | string friend_user = 2; 39 | string nsa_id = 3; 40 | Relationship relationship = 4; 41 | } 42 | 43 | message BlockingUser { 44 | string name = 1; 45 | string blocking_user = 2; 46 | string nsa_id = 3; 47 | } 48 | 49 | message Presence { 50 | message DebugInfo { 51 | bool debug = 1; 52 | } 53 | 54 | string name = 1; 55 | State state = 2; 56 | map attributes = 3; 57 | google.protobuf.Timestamp last_online_time = 4; 58 | bool unsubscribed = 5; 59 | DebugInfo debug_info = 6; 60 | } 61 | 62 | message FriendNsa { 63 | string name = 1; 64 | string friend_nsa = 2; 65 | bool favorite = 3; 66 | } 67 | 68 | message BlockingNsa { 69 | string name = 1; 70 | string blocking_nsa = 2; 71 | } 72 | 73 | message NsaSettings { 74 | string name = 1; 75 | Range presence_open_range = 2; 76 | } 77 | -------------------------------------------------------------------------------- /0.20.x/proto/friends/v1/presence.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "google/protobuf/field_mask.proto"; 11 | import "proto/friends/v1/resources.proto"; 12 | import "proto/common/resources.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 15 | option cc_enable_arenas = true; 16 | 17 | message KeepAliveRequest { 18 | message UpdatePresence { 19 | Presence presence = 1; 20 | google.protobuf.FieldMask update_mask = 2; 21 | } 22 | 23 | oneof request { 24 | UpdatePresence update_presence = 1; 25 | Ack ack = 2; 26 | } 27 | } 28 | 29 | message KeepAliveResponse { 30 | Heartbeat heartbeat = 1; 31 | } 32 | 33 | message SubscribePresencesRequest { 34 | string user = 1; 35 | repeated string presences = 2; 36 | google.protobuf.FieldMask read_mask = 3; 37 | int32 max_presence_count = 4; 38 | string resume_token = 5; 39 | } 40 | 41 | message SubscribePresencesResponse { 42 | message Presences { 43 | repeated Presence presences = 1; 44 | string resume_token = 2; 45 | } 46 | 47 | message PresenceEnumerationDone { 48 | } 49 | 50 | oneof response { 51 | Presences presences = 1; 52 | PresenceEnumerationDone enumeration_done = 2; 53 | Heartbeat heartbeat = 3; 54 | } 55 | } 56 | 57 | message Heartbeat { 58 | google.protobuf.Duration interval = 1; 59 | } 60 | 61 | message Ack { 62 | string user = 1; 63 | } 64 | 65 | service PresenceService { 66 | rpc KeepAlive(stream KeepAliveRequest) returns (stream KeepAliveResponse); 67 | rpc SubscribePresences(SubscribePresencesRequest) returns (stream SubscribePresencesResponse); 68 | } 69 | -------------------------------------------------------------------------------- /0.21.x/proto/friends/v1/presence.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "google/protobuf/field_mask.proto"; 11 | import "proto/friends/v1/resources.proto"; 12 | import "proto/common/resources.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 15 | option cc_enable_arenas = true; 16 | 17 | message KeepAliveRequest { 18 | message UpdatePresence { 19 | Presence presence = 1; 20 | google.protobuf.FieldMask update_mask = 2; 21 | } 22 | 23 | oneof request { 24 | UpdatePresence update_presence = 1; 25 | Ack ack = 2; 26 | } 27 | } 28 | 29 | message KeepAliveResponse { 30 | Heartbeat heartbeat = 1; 31 | } 32 | 33 | message SubscribePresencesRequest { 34 | string user = 1; 35 | repeated string presences = 2; 36 | google.protobuf.FieldMask read_mask = 3; 37 | int32 max_presence_count = 4; 38 | string resume_token = 5; 39 | } 40 | 41 | message SubscribePresencesResponse { 42 | message Presences { 43 | repeated Presence presences = 1; 44 | string resume_token = 2; 45 | } 46 | 47 | message PresenceEnumerationDone { 48 | } 49 | 50 | oneof response { 51 | Presences presences = 1; 52 | PresenceEnumerationDone enumeration_done = 2; 53 | Heartbeat heartbeat = 3; 54 | } 55 | } 56 | 57 | message Heartbeat { 58 | google.protobuf.Duration interval = 1; 59 | } 60 | 61 | message Ack { 62 | string user = 1; 63 | } 64 | 65 | service PresenceService { 66 | rpc KeepAlive(stream KeepAliveRequest) returns (stream KeepAliveResponse); 67 | rpc SubscribePresences(SubscribePresencesRequest) returns (stream SubscribePresencesResponse); 68 | } 69 | -------------------------------------------------------------------------------- /latest/proto/friends/v1/presence.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "google/protobuf/field_mask.proto"; 11 | import "proto/friends/v1/resources.proto"; 12 | import "proto/common/resources.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 15 | option cc_enable_arenas = true; 16 | 17 | message KeepAliveRequest { 18 | message UpdatePresence { 19 | Presence presence = 1; 20 | google.protobuf.FieldMask update_mask = 2; 21 | } 22 | 23 | oneof request { 24 | UpdatePresence update_presence = 1; 25 | Ack ack = 2; 26 | } 27 | } 28 | 29 | message KeepAliveResponse { 30 | Heartbeat heartbeat = 1; 31 | } 32 | 33 | message SubscribePresencesRequest { 34 | string user = 1; 35 | repeated string presences = 2; 36 | google.protobuf.FieldMask read_mask = 3; 37 | int32 max_presence_count = 4; 38 | string resume_token = 5; 39 | } 40 | 41 | message SubscribePresencesResponse { 42 | message Presences { 43 | repeated Presence presences = 1; 44 | string resume_token = 2; 45 | } 46 | 47 | message PresenceEnumerationDone { 48 | } 49 | 50 | oneof response { 51 | Presences presences = 1; 52 | PresenceEnumerationDone enumeration_done = 2; 53 | Heartbeat heartbeat = 3; 54 | } 55 | } 56 | 57 | message Heartbeat { 58 | google.protobuf.Duration interval = 1; 59 | } 60 | 61 | message Ack { 62 | string user = 1; 63 | } 64 | 65 | service PresenceService { 66 | rpc KeepAlive(stream KeepAliveRequest) returns (stream KeepAliveResponse); 67 | rpc SubscribePresences(SubscribePresencesRequest) returns (stream SubscribePresencesResponse); 68 | } 69 | -------------------------------------------------------------------------------- /0.20.x/proto/auth/v1/auth.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.auth.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "proto/auth/v1/resources.proto"; 11 | import "proto/common/resources.proto"; 12 | 13 | option go_package = "npln.nintendo.net/npln-practice/proto/auth/v1;auth"; 14 | option cc_enable_arenas = true; 15 | 16 | message CreateUserRequest { 17 | string parent = 1; 18 | User user = 2; 19 | ExternalIdToken external_id_token = 3; 20 | } 21 | 22 | message IssueTokenRequest { 23 | string user = 1; 24 | ExternalIdToken external_id_token = 2; 25 | } 26 | 27 | message IssueTokenResponse { 28 | Token token = 1; 29 | } 30 | 31 | message RefreshTokenRequest { 32 | string user = 1; 33 | string refresh_token = 2; 34 | } 35 | 36 | message RefreshTokenResponse { 37 | Token token = 1; 38 | } 39 | 40 | message IssuePrearrangedUserTokenRequest { 41 | string tenant = 1; 42 | int32 user_index = 2; 43 | ExternalIdToken external_id_token = 3; 44 | } 45 | 46 | message IssuePrearrangedUserTokenResponse { 47 | User user = 1; 48 | Token token = 2; 49 | } 50 | 51 | message Token { 52 | string user = 1; 53 | string access_token = 2; 54 | string refresh_token = 3; 55 | google.protobuf.Duration ttl = 4; 56 | } 57 | 58 | message ExternalIdToken { 59 | oneof token { 60 | string nsa_id_token = 1; 61 | string dummy_ext_id_token = 2; 62 | } 63 | } 64 | 65 | service Auth { 66 | rpc CreateUser(CreateUserRequest) returns (User); 67 | rpc IssueToken(IssueTokenRequest) returns (IssueTokenResponse); 68 | rpc RefreshToken(RefreshTokenRequest) returns (RefreshTokenResponse); 69 | rpc IssuePrearrangedUserToken(IssuePrearrangedUserTokenRequest) returns (IssuePrearrangedUserTokenResponse); 70 | } 71 | -------------------------------------------------------------------------------- /0.21.x/proto/auth/v1/auth.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.auth.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "proto/auth/v1/resources.proto"; 11 | import "proto/common/resources.proto"; 12 | 13 | option go_package = "npln.nintendo.net/npln-practice/proto/auth/v1;auth"; 14 | option cc_enable_arenas = true; 15 | 16 | message CreateUserRequest { 17 | string parent = 1; 18 | User user = 2; 19 | ExternalIdToken external_id_token = 3; 20 | } 21 | 22 | message IssueTokenRequest { 23 | string user = 1; 24 | ExternalIdToken external_id_token = 2; 25 | } 26 | 27 | message IssueTokenResponse { 28 | Token token = 1; 29 | } 30 | 31 | message RefreshTokenRequest { 32 | string user = 1; 33 | string refresh_token = 2; 34 | } 35 | 36 | message RefreshTokenResponse { 37 | Token token = 1; 38 | } 39 | 40 | message IssuePrearrangedUserTokenRequest { 41 | string tenant = 1; 42 | int32 user_index = 2; 43 | ExternalIdToken external_id_token = 3; 44 | } 45 | 46 | message IssuePrearrangedUserTokenResponse { 47 | User user = 1; 48 | Token token = 2; 49 | } 50 | 51 | message Token { 52 | string user = 1; 53 | string access_token = 2; 54 | string refresh_token = 3; 55 | google.protobuf.Duration ttl = 4; 56 | } 57 | 58 | message ExternalIdToken { 59 | oneof token { 60 | string nsa_id_token = 1; 61 | string dummy_ext_id_token = 2; 62 | } 63 | } 64 | 65 | service Auth { 66 | rpc CreateUser(CreateUserRequest) returns (User); 67 | rpc IssueToken(IssueTokenRequest) returns (IssueTokenResponse); 68 | rpc RefreshToken(RefreshTokenRequest) returns (RefreshTokenResponse); 69 | rpc IssuePrearrangedUserToken(IssuePrearrangedUserTokenRequest) returns (IssuePrearrangedUserTokenResponse); 70 | } 71 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/schedule.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "google/protobuf/duration.proto"; 7 | import "google/protobuf/timestamp.proto"; 8 | import "proto/toyohr/v1/resources.proto"; 9 | 10 | message SelectVsParamsRequest { 11 | string target = 1; 12 | string etag = 2; 13 | google.protobuf.Timestamp current_time = 3; 14 | int32 vs_params_count = 4; 15 | } 16 | 17 | message SelectVsParamsResponse { 18 | bool unk = 1; 19 | VsParams params = 2; 20 | string etag = 3; 21 | } 22 | 23 | message SelectVsSchedulesRequest { 24 | string target = 1; 25 | string etag = 2; 26 | google.protobuf.Timestamp current_time = 3; 27 | google.protobuf.Duration select_duration = 4; 28 | } 29 | 30 | message SelectVsSchedulesResponse { 31 | bool unk = 1; 32 | repeated VsSchedule schedules = 2; 33 | string etag = 3; 34 | } 35 | 36 | message SelectCoopSchedulesRequest { 37 | string target = 1; 38 | string etag = 2; 39 | google.protobuf.Timestamp current_time = 3; 40 | } 41 | 42 | message SelectCoopSchedulesResponse { 43 | bool unk = 1; 44 | repeated CoopSchedule schedules = 2; 45 | string etag = 3; 46 | } 47 | 48 | message SelectSeasonSchedulesRequest { 49 | string tenant = 1; 50 | string etag = 2; 51 | google.protobuf.Timestamp current_time = 3; 52 | int32 season_schedule_count = 4; 53 | } 54 | 55 | message SelectSeasonSchedulesResponse { 56 | bool unk = 1; 57 | repeated SeasonSchedule schedules = 2; 58 | string etag = 3; 59 | } 60 | 61 | service Schedule { 62 | rpc SelectVsParams(SelectVsParamsRequest) returns (SelectVsParamsResponse); 63 | rpc SelectVsSchedules(SelectVsSchedulesRequest) returns (SelectVsSchedulesResponse); 64 | rpc SelectCoopSchedules(SelectCoopSchedulesRequest) returns (SelectCoopSchedulesResponse); 65 | rpc SelectSeasonSchedules(SelectSeasonSchedulesRequest) returns (SelectSeasonSchedulesResponse); 66 | } 67 | -------------------------------------------------------------------------------- /0.20.x/proto/friends/v1/friends.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "proto/friends/v1/resources.proto"; 10 | import "proto/common/resources.proto"; 11 | 12 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 13 | option cc_enable_arenas = true; 14 | 15 | message ActivateUserRequest { 16 | string name = 1; 17 | } 18 | 19 | message ActivateUserResponse { 20 | } 21 | 22 | message ListFriendUsersRequest { 23 | string parent = 1; 24 | int32 page_size = 2; 25 | string page_token = 3; 26 | } 27 | 28 | message ListFriendUsersResponse { 29 | repeated FriendUser friend_users = 1; 30 | string next_page_token = 2; 31 | } 32 | 33 | message ListBlockingUsersRequest { 34 | string parent = 1; 35 | int32 page_size = 2; 36 | string page_token = 3; 37 | } 38 | 39 | message ListBlockingUsersResponse { 40 | repeated BlockingUser blocking_users = 1; 41 | string next_page_token = 2; 42 | } 43 | 44 | message SubscribeFriendUsersRequest { 45 | string user = 1; 46 | } 47 | 48 | message SubscribeFriendUsersResponse { 49 | message FriendAccount { 50 | string nsa_id = 1; 51 | repeated FriendUser users = 2; 52 | } 53 | 54 | message BlockingAccount { 55 | string nsa_id = 1; 56 | repeated BlockingUser users = 2; 57 | } 58 | 59 | repeated FriendAccount friend_accounts = 1; 60 | repeated BlockingAccount blocking_accounts = 2; 61 | } 62 | 63 | service Friends { 64 | rpc ActivateUser(ActivateUserRequest) returns (ActivateUserResponse); 65 | rpc ListFriendUsers(ListFriendUsersRequest) returns (ListFriendUsersResponse); 66 | rpc ListBlockingUsers(ListBlockingUsersRequest) returns (ListBlockingUsersResponse); 67 | rpc SubscribeFriendUsers(SubscribeFriendUsersRequest) returns (stream SubscribeFriendUsersResponse); 68 | } 69 | -------------------------------------------------------------------------------- /0.21.x/proto/friends/v1/friends.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "proto/friends/v1/resources.proto"; 10 | import "proto/common/resources.proto"; 11 | 12 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 13 | option cc_enable_arenas = true; 14 | 15 | message ActivateUserRequest { 16 | string name = 1; 17 | } 18 | 19 | message ActivateUserResponse { 20 | } 21 | 22 | message ListFriendUsersRequest { 23 | string parent = 1; 24 | int32 page_size = 2; 25 | string page_token = 3; 26 | } 27 | 28 | message ListFriendUsersResponse { 29 | repeated FriendUser friend_users = 1; 30 | string next_page_token = 2; 31 | } 32 | 33 | message ListBlockingUsersRequest { 34 | string parent = 1; 35 | int32 page_size = 2; 36 | string page_token = 3; 37 | } 38 | 39 | message ListBlockingUsersResponse { 40 | repeated BlockingUser blocking_users = 1; 41 | string next_page_token = 2; 42 | } 43 | 44 | message SubscribeFriendUsersRequest { 45 | string user = 1; 46 | } 47 | 48 | message SubscribeFriendUsersResponse { 49 | message FriendAccount { 50 | string nsa_id = 1; 51 | repeated FriendUser users = 2; 52 | } 53 | 54 | message BlockingAccount { 55 | string nsa_id = 1; 56 | repeated BlockingUser users = 2; 57 | } 58 | 59 | repeated FriendAccount friend_accounts = 1; 60 | repeated BlockingAccount blocking_accounts = 2; 61 | } 62 | 63 | service Friends { 64 | rpc ActivateUser(ActivateUserRequest) returns (ActivateUserResponse); 65 | rpc ListFriendUsers(ListFriendUsersRequest) returns (ListFriendUsersResponse); 66 | rpc ListBlockingUsers(ListBlockingUsersRequest) returns (ListBlockingUsersResponse); 67 | rpc SubscribeFriendUsers(SubscribeFriendUsersRequest) returns (stream SubscribeFriendUsersResponse); 68 | } 69 | -------------------------------------------------------------------------------- /latest/proto/friends/v1/friends.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.friends.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "proto/friends/v1/resources.proto"; 10 | import "proto/common/resources.proto"; 11 | 12 | option go_package = "npln.nintendo.net/npln-practice/proto/friends/v1;friends"; 13 | option cc_enable_arenas = true; 14 | 15 | message ActivateUserRequest { 16 | string name = 1; 17 | } 18 | 19 | message ActivateUserResponse { 20 | } 21 | 22 | message ListFriendUsersRequest { 23 | string parent = 1; 24 | int32 page_size = 2; 25 | string page_token = 3; 26 | } 27 | 28 | message ListFriendUsersResponse { 29 | repeated FriendUser friend_users = 1; 30 | string next_page_token = 2; 31 | } 32 | 33 | message ListBlockingUsersRequest { 34 | string parent = 1; 35 | int32 page_size = 2; 36 | string page_token = 3; 37 | } 38 | 39 | message ListBlockingUsersResponse { 40 | repeated BlockingUser blocking_users = 1; 41 | string next_page_token = 2; 42 | } 43 | 44 | message SubscribeFriendUsersRequest { 45 | string user = 1; 46 | } 47 | 48 | message SubscribeFriendUsersResponse { 49 | message FriendAccount { 50 | string nsa_id = 1; 51 | repeated FriendUser users = 2; 52 | } 53 | 54 | message BlockingAccount { 55 | string nsa_id = 1; 56 | repeated BlockingUser users = 2; 57 | } 58 | 59 | repeated FriendAccount friend_accounts = 1; 60 | repeated BlockingAccount blocking_accounts = 2; 61 | } 62 | 63 | service Friends { 64 | rpc ActivateUser(ActivateUserRequest) returns (ActivateUserResponse); 65 | rpc ListFriendUsers(ListFriendUsersRequest) returns (ListFriendUsersResponse); 66 | rpc ListBlockingUsers(ListBlockingUsersRequest) returns (ListBlockingUsersResponse); 67 | rpc SubscribeFriendUsers(SubscribeFriendUsersRequest) returns (stream SubscribeFriendUsersResponse); 68 | } 69 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/cloud_save.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | import "proto/common/value.proto"; 8 | import "proto/toyohr/v1/resources.proto"; 9 | 10 | message CreateSaveRecordRequest { 11 | string parent = 1; 12 | string save_record_id = 2; 13 | SaveRecord save_record = 3; 14 | } 15 | 16 | message GetSaveRecordRequest { 17 | string name = 1; 18 | } 19 | 20 | message ValidateSaveRecordRequest { 21 | string name = 1; 22 | google.protobuf.Timestamp update_time = 2; 23 | } 24 | 25 | message ValidateSaveRecordResponse { 26 | // [UNKNOWN] 27 | } 28 | 29 | message WriteSaveRecordRequest { 30 | string name = 1; 31 | google.protobuf.Timestamp update_time = 2; 32 | string save_event_type = 3; 33 | nn.npln.common.MapValue event_param = 4; 34 | SaveRecord save_record = 5; 35 | } 36 | 37 | message WriteSaveRecordResponse { 38 | google.protobuf.Timestamp timestamp = 1; 39 | } 40 | 41 | message ChangeUserNameRequest { 42 | string save_record = 1; 43 | string user_name = 2; 44 | google.protobuf.Timestamp update_time = 3; 45 | bytes language_code = 4; 46 | } 47 | 48 | message ChangeUserNameResponse { 49 | string identifier = 1; 50 | google.protobuf.Timestamp timestamp1 = 2; 51 | google.protobuf.Timestamp timestamp2 = 3; 52 | } 53 | 54 | message DeleteSaveRecordRequest { 55 | string name = 1; 56 | } 57 | 58 | message DeleteSaveRecordResponse { 59 | // [UNKNOWN] 60 | } 61 | 62 | service CloudSave { 63 | rpc CreateSaveRecord(CreateSaveRecordRequest) returns (SaveRecord); 64 | rpc GetSaveRecord(GetSaveRecordRequest) returns (SaveRecord); 65 | rpc ValidateSaveRecord(ValidateSaveRecordRequest) returns (ValidateSaveRecordResponse); 66 | rpc WriteSaveRecord(WriteSaveRecordRequest) returns (WriteSaveRecordResponse); 67 | rpc ChangeUserName(ChangeUserNameRequest) returns (ChangeUserNameResponse); 68 | rpc DeleteSaveRecord(DeleteSaveRecordRequest) returns (DeleteSaveRecordResponse); 69 | } 70 | -------------------------------------------------------------------------------- /latest/proto/leaderboard/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.leaderboard.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | import "proto/common/value.proto"; 8 | 9 | enum ShrinkState { 10 | SHRINK_STATE_UNSPECIFIED = 0; 11 | NOT_YET = 1; 12 | SHRINKING = 2; 13 | SHRUNK = 3; 14 | } 15 | 16 | message Category { 17 | string name = 1; 18 | int32 current_season = 2; 19 | int32 min_season = 3; 20 | } 21 | 22 | message Chart { 23 | string name = 1; 24 | int32 bins_size = 2; 25 | bool score_order_asc = 3; 26 | int64 highest_bin_score = 4; 27 | int64 lowest_bin_score = 5; 28 | int64 bins_width = 6; 29 | repeated int64 quantities = 7 [packed=true]; 30 | google.protobuf.Timestamp chart_update_time = 8; 31 | google.protobuf.Timestamp rank_update_time = 9; 32 | int32 total_count = 10; 33 | int64 highest_score = 11; 34 | int64 lowest_score = 12; 35 | int64 median_score = 13; 36 | string attribute = 14; 37 | } 38 | 39 | message Holder { 40 | string name = 1; 41 | int64 type = 2; 42 | string display_name = 3; 43 | nn.npln.common.MapValue fields = 4; 44 | string owner = 5; 45 | string resource_link = 6; 46 | google.protobuf.Timestamp create_time = 7; 47 | google.protobuf.Timestamp update_time = 8; 48 | } 49 | 50 | message Rank { 51 | int32 rank = 1; 52 | int32 index = 2; 53 | } 54 | 55 | message Score { 56 | string name = 1; 57 | string holder = 2; 58 | int64 score = 3; 59 | string resource_link = 4; 60 | nn.npln.common.MapValue fields = 5; 61 | google.protobuf.Timestamp update_time = 6; 62 | Holder holder_detail = 7; 63 | Rank rank = 8; 64 | } 65 | 66 | message Season { 67 | string name = 1; 68 | bool read_final_permission = 2; 69 | bool write_final_permission = 3; 70 | google.protobuf.Timestamp rank_update_time = 4; 71 | int32 count = 5; 72 | google.protobuf.Timestamp season_start_time = 8; 73 | google.protobuf.Timestamp season_end_time = 9; 74 | ShrinkState shrink_state = 10; 75 | bool registration_closed = 12; 76 | } 77 | -------------------------------------------------------------------------------- /0.20.x/proto/messaging/v1/messaging.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.messaging.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/timestamp.proto"; 10 | import "proto/common/resources.proto"; 11 | import "proto/common/value.proto"; 12 | import "validate/validate.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/messaging/v1;messaging"; 15 | option cc_enable_arenas = true; 16 | 17 | message RecvMessageRequest { 18 | string user = 1; 19 | string message_resume_token = 2; 20 | string ack_resume_token = 3; 21 | } 22 | 23 | message RecvMessageResponse { 24 | oneof reply { 25 | RecvMessage message = 1; 26 | RecvAck ack = 2; 27 | KeepAlive keep_alive = 3; 28 | } 29 | } 30 | 31 | message SendAckRequest { 32 | string user = 1; 33 | repeated AckBody acks = 2; 34 | } 35 | 36 | message SendAckResponse { 37 | } 38 | 39 | message SendMessageRequest { 40 | string user = 1; 41 | repeated string receiver_users = 2; 42 | MessageBody message_body = 3; 43 | } 44 | 45 | message SendMessageResponse { 46 | } 47 | 48 | message RecvMessage { 49 | MessageBody message_body = 1; 50 | string sender_user = 2; 51 | string message_resume_token = 3; 52 | google.protobuf.Timestamp send_time = 4; 53 | } 54 | 55 | message MessageBody { 56 | string message_request_id = 1; 57 | bool need_ack = 2; 58 | nn.npln.common.MapValue fields = 3; 59 | string message_type = 4; 60 | } 61 | 62 | message RecvAck { 63 | AckBody ack = 1; 64 | string receiver_user = 2; 65 | string ack_resume_token = 3; 66 | google.protobuf.Timestamp ack_send_time = 4; 67 | } 68 | 69 | message AckBody { 70 | string message_request_id = 1; 71 | string sender_user = 2; 72 | } 73 | 74 | message KeepAlive { 75 | } 76 | 77 | service Messaging { 78 | rpc RecvMessage(RecvMessageRequest) returns (stream RecvMessageResponse); 79 | rpc SendMessage(SendMessageRequest) returns (SendMessageResponse); 80 | rpc SendAck(SendAckRequest) returns (SendAckResponse); 81 | } 82 | -------------------------------------------------------------------------------- /0.21.x/proto/messaging/v1/messaging.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.messaging.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/timestamp.proto"; 10 | import "proto/common/resources.proto"; 11 | import "proto/common/value.proto"; 12 | import "validate/validate.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/messaging/v1;messaging"; 15 | option cc_enable_arenas = true; 16 | 17 | message RecvMessageRequest { 18 | string user = 1; 19 | string message_resume_token = 2; 20 | string ack_resume_token = 3; 21 | } 22 | 23 | message RecvMessageResponse { 24 | oneof reply { 25 | RecvMessage message = 1; 26 | RecvAck ack = 2; 27 | KeepAlive keep_alive = 3; 28 | } 29 | } 30 | 31 | message SendAckRequest { 32 | string user = 1; 33 | repeated AckBody acks = 2; 34 | } 35 | 36 | message SendAckResponse { 37 | } 38 | 39 | message SendMessageRequest { 40 | string user = 1; 41 | repeated string receiver_users = 2; 42 | MessageBody message_body = 3; 43 | } 44 | 45 | message SendMessageResponse { 46 | } 47 | 48 | message RecvMessage { 49 | MessageBody message_body = 1; 50 | string sender_user = 2; 51 | string message_resume_token = 3; 52 | google.protobuf.Timestamp send_time = 4; 53 | } 54 | 55 | message MessageBody { 56 | string message_request_id = 1; 57 | bool need_ack = 2; 58 | nn.npln.common.MapValue fields = 3; 59 | string message_type = 4; 60 | } 61 | 62 | message RecvAck { 63 | AckBody ack = 1; 64 | string receiver_user = 2; 65 | string ack_resume_token = 3; 66 | google.protobuf.Timestamp ack_send_time = 4; 67 | } 68 | 69 | message AckBody { 70 | string message_request_id = 1; 71 | string sender_user = 2; 72 | } 73 | 74 | message KeepAlive { 75 | } 76 | 77 | service Messaging { 78 | rpc RecvMessage(RecvMessageRequest) returns (stream RecvMessageResponse); 79 | rpc SendMessage(SendMessageRequest) returns (SendMessageResponse); 80 | rpc SendAck(SendAckRequest) returns (SendAckResponse); 81 | } 82 | -------------------------------------------------------------------------------- /latest/proto/ugcstore/v1/query.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.ugcstore.v1; 5 | 6 | import "google/protobuf/wrappers.proto"; 7 | import "proto/common/value.proto"; 8 | 9 | message Cursor { 10 | repeated nn.npln.common.Value values = 1; 11 | bool before = 2; 12 | } 13 | 14 | message StructuredQuery { 15 | message CollectionSelector { 16 | string collection_id = 2; 17 | bool all_descendants = 3; 18 | } 19 | 20 | message CompositeFilter { 21 | enum Operator { 22 | OPERATOR_UNSPECIFIED = 0; 23 | AND = 1; 24 | } 25 | 26 | Operator op = 1; 27 | repeated Filter filters = 2; 28 | } 29 | 30 | message FieldFilter { 31 | enum Operator { 32 | OPERATOR_UNSPECIFIED = 0; 33 | LESS_THAN = 1; 34 | LESS_THAN_OR_EQUAL = 2; 35 | GREATER_THAN = 3; 36 | GREATER_THAN_OR_EQUAL = 4; 37 | EQUAL = 5; 38 | NOT_EQUAL = 6; 39 | ARRAY_CONTAINS = 7; 40 | IN = 8; 41 | ARRAY_CONTAINS_ANY = 9; 42 | NOT_IN = 10; 43 | } 44 | 45 | FieldReference field = 1; 46 | Operator op = 2; 47 | nn.npln.common.Value value = 3; 48 | } 49 | 50 | message FieldReference { 51 | string field_path = 2; 52 | } 53 | 54 | message Filter { 55 | oneof filter_type { 56 | CompositeFilter composite_filter = 1; 57 | FieldFilter field_filter = 2; 58 | UnaryFilter unary_filter = 3; 59 | } 60 | } 61 | 62 | message Order { 63 | enum Direction { 64 | DIRECTION_UNSPECIFIED = 0; 65 | ASCENDING = 1; 66 | DESCENDING = 2; 67 | } 68 | 69 | FieldReference field = 1; 70 | Direction direction = 2; 71 | } 72 | 73 | message Projection { 74 | repeated FieldReference fields = 1; 75 | } 76 | 77 | message UnaryFilter { 78 | enum Operator { 79 | OPERATOR_UNSPECIFIED = 0; 80 | IS_NAN = 2; 81 | IS_NULL = 3; 82 | } 83 | 84 | Operator op = 1; 85 | oneof operand_type { 86 | FieldReference field = 2; 87 | } 88 | } 89 | 90 | Projection select = 1; 91 | repeated CollectionSelector from = 2; 92 | Filter where = 3; 93 | repeated Order order_by = 4; 94 | google.protobuf.Int32Value limit = 5; 95 | int32 offset = 6; 96 | Cursor start_at = 7; 97 | Cursor end_at = 8; 98 | } 99 | -------------------------------------------------------------------------------- /latest/proto/messaging/v1/messaging.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.messaging.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "google/protobuf/timestamp.proto"; 11 | import "proto/common/resources.proto"; 12 | import "proto/common/value.proto"; 13 | import "validate/validate.proto"; 14 | 15 | option go_package = "npln.nintendo.net/npln-practice/proto/messaging/v1;messaging"; 16 | option cc_enable_arenas = true; 17 | 18 | message RecvMessageRequest { 19 | string user = 1; 20 | string message_resume_token = 2; 21 | string ack_resume_token = 3; 22 | } 23 | 24 | message RecvMessageResponse { 25 | oneof reply { 26 | RecvMessage message = 1; 27 | RecvAck ack = 2; 28 | KeepAlive keep_alive = 3; 29 | } 30 | } 31 | 32 | message SendAckRequest { 33 | string user = 1; 34 | repeated AckBody acks = 2; 35 | } 36 | 37 | message SendAckResponse { 38 | } 39 | 40 | message SendMessageRequest { 41 | string user = 1; 42 | repeated string receiver_users = 2; 43 | MessageBody message_body = 3; 44 | } 45 | 46 | message SendMessageResponse { 47 | } 48 | 49 | message RecvMessage { 50 | MessageBody message_body = 1; 51 | string sender_user = 2; 52 | string message_resume_token = 3; 53 | google.protobuf.Timestamp send_time = 4; 54 | } 55 | 56 | message MessageBody { 57 | string message_request_id = 1; 58 | bool need_ack = 2; 59 | nn.npln.common.MapValue fields = 3; 60 | string message_type = 4; 61 | } 62 | 63 | message RecvAck { 64 | AckBody ack = 1; 65 | string receiver_user = 2; 66 | string ack_resume_token = 3; 67 | google.protobuf.Timestamp ack_send_time = 4; 68 | } 69 | 70 | message AckBody { 71 | string message_request_id = 1; 72 | string sender_user = 2; 73 | } 74 | 75 | message KeepAlive { 76 | google.protobuf.Duration idle_timeout = 1; 77 | } 78 | 79 | service Messaging { 80 | rpc RecvMessage(RecvMessageRequest) returns (stream RecvMessageResponse); 81 | rpc SendMessage(SendMessageRequest) returns (SendMessageResponse); 82 | rpc SendAck(SendAckRequest) returns (SendAckResponse); 83 | } 84 | -------------------------------------------------------------------------------- /generate_patch.py: -------------------------------------------------------------------------------- 1 | 2 | import lz4.block 3 | import hashlib 4 | import struct 5 | import sys 6 | 7 | 8 | class Patch: 9 | def __init__(self, instrs, patch, offset=0): 10 | self.data = struct.pack(">%iI" %len(instrs), *instrs) 11 | self.patch = patch 12 | self.offset = offset 13 | 14 | 15 | instrs1 = [ 16 | 0xF8031F2A, #MOV W24, WZR 17 | 0x930200F9, #STR X19, [X20] 18 | 0x9BFFFF17, #B ... 19 | 0x480340F9, #LDR X8, [X26] 20 | 0x080140F9, #LDR X8, [X8] 21 | ] 22 | 23 | instrs2 = [ 24 | 0xE00317AA, #MOV X0, X23 25 | 0x21008052, #MOV W1, #1 26 | 0x5F010071, #CMP W10, #0 27 | 0x2201889A #CSEL X2, X9, X8, EQ 28 | ] 29 | 30 | instrs3 = [ 31 | 0xE00316AA, #MOV X0, X22 32 | 0x21008052, #MOV W1, #1 33 | 0x5F010071, #CMP W10, #0 34 | 0x2201889A #CSEL X2, X9, X8, EQ 35 | ] 36 | 37 | patches = [ 38 | Patch(instrs1, 0x1F2003D5, -0x24), #NOP 39 | Patch(instrs2, 0x2A008052, -0x14), #MOV W10, #1 40 | Patch(instrs3, 0x2A008052, -0x14), #MOV W10, #1 41 | ] 42 | 43 | 44 | def u32(data, offs): 45 | return struct.unpack_from("IHI", addr, 4, instruction) 80 | return b"IPS32" + patch + b"EEOF" 81 | 82 | def main(): 83 | if len(sys.argv) != 2: 84 | print("Usage: python3 generate_patch.py ") 85 | return 86 | 87 | filename = sys.argv[1] 88 | with open(filename, "rb") as f: 89 | data = f.read() 90 | 91 | patch = generate_patch(data) 92 | 93 | module_id = data[0x40:0x60].hex().upper() 94 | with open("%s.ips" %module_id, "wb") as f: 95 | f.write(patch) 96 | 97 | main() 98 | -------------------------------------------------------------------------------- /latest/proto/ugcstore/v1/write.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.ugcstore.v1; 5 | 6 | import "google/protobuf/field_mask.proto"; 7 | import "google/protobuf/timestamp.proto"; 8 | import "proto/common/value.proto"; 9 | import "proto/ugcstore/v1/resources.proto"; 10 | 11 | enum ServerValueType { 12 | SERVER_VALUE_TYPE_UNSPECIFIED = 0; 13 | REQUEST_TIME = 1; 14 | } 15 | 16 | message FieldTransform { 17 | string field_path = 1; 18 | oneof transform_type { 19 | ServerValueType set_server_value = 2; 20 | nn.npln.common.Value increment = 3; 21 | nn.npln.common.Value maximum = 4; 22 | nn.npln.common.Value minimum = 5; 23 | nn.npln.common.Value buffered_increment = 6; // Removed in 1.46.0 24 | } 25 | } 26 | 27 | message BufferedFieldTransform { 28 | string field_path = 1; 29 | oneof transform_type { 30 | nn.npln.common.Value increment = 2; 31 | } 32 | } 33 | 34 | message Precondition { 35 | oneof condition_type { 36 | bool exists = 1; 37 | google.protobuf.Timestamp update_time = 2; 38 | } 39 | } 40 | 41 | message UpdateDocumentRequest { 42 | Document document = 1; 43 | google.protobuf.FieldMask update_mask = 2; 44 | Precondition current_document = 3; 45 | } 46 | 47 | message DeleteDocumentRequest { 48 | string name = 1; 49 | Precondition current_document = 2; 50 | } 51 | 52 | message SetAttachmentRequest { 53 | string parent = 1; 54 | bytes body = 2; 55 | oneof precondition { 56 | bool exists = 3; 57 | } 58 | string mime_type = 4; 59 | } 60 | 61 | message UnsetAttachmentRequest { 62 | string parent = 1; 63 | bool force = 3; 64 | } 65 | 66 | message ImportAttachmentRequest { 67 | string parent = 1; 68 | string uri = 2; 69 | string mime_type = 3; 70 | } 71 | 72 | message TransformDocumentRequest { 73 | string name = 1; 74 | repeated FieldTransform field_transforms = 2; 75 | repeated BufferedFieldTransform buffered_field_transforms = 3; 76 | } 77 | 78 | message WriteOperation { 79 | oneof operation_type { 80 | UpdateDocumentRequest update_document = 1; 81 | DeleteDocumentRequest delete_document = 2; 82 | TransformDocumentRequest transform_document = 6; 83 | SetAttachmentRequest set_attachment = 3; 84 | UnsetAttachmentRequest unset_attachment = 4; 85 | ImportAttachmentRequest import_attachment = 5; 86 | } 87 | } 88 | 89 | message WriteResult { 90 | google.protobuf.Timestamp update_time = 1; 91 | repeated nn.npln.common.Value transform_results = 2; 92 | } 93 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/game_record.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "proto/common/value.proto"; 7 | import "proto/toyohr/v1/resources.proto"; 8 | 9 | message CreateBankaraChallengeRequest { 10 | string parent = 1; 11 | BankaraChallenge bankara_challenge = 2; 12 | } 13 | 14 | message InitializeAttributesRequest { 15 | message InitialVs { 16 | int32 season_id = 1; 17 | double initial_rate = 2; 18 | bool transferred = 3; 19 | } 20 | 21 | message Area {} 22 | message Lift {} 23 | message Goal {} 24 | message Clam {} 25 | 26 | message XPowerArea {} 27 | message XPowerLift {} 28 | message XPowerGoal {} 29 | message XPowerClam {} 30 | 31 | message InitialCoop {} 32 | 33 | message CoopShift { 34 | string shift_id = 1; 35 | string job_type = 2; 36 | } 37 | 38 | message CoopGrade { 39 | int32 total_grade_point = 1; 40 | } 41 | 42 | message NewSeason { 43 | int32 season_id = 1; 44 | } 45 | 46 | string user = 1; 47 | string initialize_type = 2; 48 | int32 unk1 = 3; 49 | int32 unk2 = 4; 50 | string season = 5; 51 | InitialVs initial_vs = 6; 52 | Area area = 7; 53 | Lift lift = 8; 54 | Goal goal = 9; 55 | Clam clam = 10; 56 | XPowerArea x_power_area = 11; 57 | XPowerLift x_power_lift = 12; 58 | XPowerGoal x_power_goal = 13; 59 | XPowerClam x_power_clam = 14; 60 | InitialCoop initial_coop = 15; 61 | CoopShift coop_shift = 16; 62 | CoopGrade coop_grade = 17; 63 | NewSeason new_season = 18; 64 | } 65 | 66 | message InitializeAttributesResponse { 67 | nn.npln.common.MapValue attributes = 1; 68 | string document = 2; 69 | } 70 | 71 | message CreateFestPowerMeasurementRequest { 72 | string parent = 1; 73 | FestPowerMeasurement fest_power_measurement = 2; 74 | } 75 | 76 | message InitializeTagRequest { 77 | string tenant = 1; 78 | repeated string users = 2; 79 | string league_schedule = 3; 80 | int32 game_rule = 4; 81 | } 82 | 83 | message InitializeTagResponse { 84 | // [UNKNOWN] 85 | } 86 | 87 | message GetTagRequest { 88 | string name = 1; 89 | } 90 | 91 | message GetTagResponse { 92 | // [UNKNOWN] 93 | } 94 | 95 | message SelectTagsRequest { 96 | string tenant = 1; 97 | string user = 2; 98 | int32 page_size = 3; 99 | string page_token = 4; 100 | } 101 | 102 | message SelectTagsResponse { 103 | // [UNKNOWN] 104 | } 105 | 106 | service GameRecord { 107 | rpc CreateBankaraChallenge(CreateBankaraChallengeRequest) returns (BankaraChallenge); 108 | rpc InitializeAttributes(InitializeAttributesRequest) returns (InitializeAttributesResponse); 109 | rpc CreateFestPowerMeasurement(CreateFestPowerMeasurementRequest) returns (FestPowerMeasurement); 110 | rpc InitializeTag(InitializeTagRequest) returns (InitializeTagResponse); 111 | rpc GetTag(GetTagRequest) returns (GetTagResponse); 112 | rpc SelectTags(SelectTagsRequest) returns (SelectTagsResponse); 113 | } 114 | -------------------------------------------------------------------------------- /latest/proto/auth/v1/auth.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.auth.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "google/protobuf/empty.proto"; 11 | import "proto/auth/v1/resources.proto"; 12 | import "proto/common/resources.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/auth/v1;auth"; 15 | option cc_enable_arenas = true; 16 | 17 | message CreateUserRequest { 18 | string parent = 1; 19 | User user = 2; 20 | ExternalIdToken external_id_token = 3; 21 | } 22 | 23 | message IssueTokenRequest { 24 | string user = 1; 25 | ExternalIdToken external_id_token = 2; 26 | } 27 | 28 | message IssueTokenResponse { 29 | Token token = 1; 30 | } 31 | 32 | message RefreshTokenRequest { 33 | string user = 1; 34 | string refresh_token = 2; 35 | } 36 | 37 | message RefreshTokenResponse { 38 | Token token = 1; 39 | } 40 | 41 | message IssuePrearrangedUserTokenRequest { 42 | string tenant = 1; 43 | int32 user_index = 2; 44 | ExternalIdToken external_id_token = 3; 45 | } 46 | 47 | message IssuePrearrangedUserTokenResponse { 48 | User user = 1; 49 | Token token = 2; 50 | } 51 | 52 | message IssueAnonymousUserTokenRequest { 53 | string tenant = 1; 54 | ExternalIdToken external_id_token = 2; 55 | } 56 | 57 | message IssueAnonymousUserTokenResponse { 58 | Token token = 1; 59 | } 60 | 61 | message RefreshAnonymousTokenRequest { 62 | string tenant = 1; 63 | string refresh_token = 2; 64 | } 65 | 66 | message RefreshAnonymousTokenResponse { 67 | Token token = 1; 68 | } 69 | 70 | message ListUsersRequest { 71 | string parent = 1; 72 | } 73 | 74 | message ListUsersResponse { 75 | repeated User users = 1; 76 | } 77 | 78 | message DeleteUserRequest { 79 | string name = 1; 80 | } 81 | 82 | message Token { 83 | string user = 1; 84 | string access_token = 2; 85 | string refresh_token = 3; 86 | google.protobuf.Duration ttl = 4; 87 | } 88 | 89 | message ExternalIdToken { 90 | oneof token { 91 | string nsa_id_token = 1; 92 | string dummy_ext_id_token = 2; 93 | } 94 | } 95 | 96 | service Auth { 97 | rpc CreateUser(CreateUserRequest) returns (User); 98 | rpc IssueToken(IssueTokenRequest) returns (IssueTokenResponse); 99 | rpc RefreshToken(RefreshTokenRequest) returns (RefreshTokenResponse); 100 | rpc IssuePrearrangedUserToken(IssuePrearrangedUserTokenRequest) returns (IssuePrearrangedUserTokenResponse); 101 | rpc IssueAnonymousUserToken(IssueAnonymousUserTokenRequest) returns (IssueAnonymousUserTokenResponse); 102 | rpc RefreshAnonymousUserToken(RefreshAnonymousTokenRequest) returns (RefreshAnonymousTokenResponse); 103 | // rpc ValidateToken; 104 | rpc ListUsers(ListUsersRequest) returns (ListUsersResponse); 105 | rpc DeleteUser(DeleteUserRequest) returns (google.protobuf.Empty); 106 | } 107 | -------------------------------------------------------------------------------- /0.20.x/proto/errdetails/nerror.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.errdetails; 5 | 6 | option go_package = "npln.nintendo.net/npln-practice/proto/errdetails"; 7 | option cc_enable_arenas = true; 8 | 9 | message NError { 10 | enum CancelledDetailCode { 11 | CANCELLED_GENERIC = 0; 12 | } 13 | 14 | enum UnknownDetailCode { 15 | UNKNOWN_GENERIC = 0; 16 | } 17 | 18 | enum InvalidArgumentDetailCode { 19 | INVALID_ARGUMENT_GENERIC = 0; 20 | } 21 | 22 | enum DeadlineExceededDetailCode { 23 | DEADLINE_EXCEEDED_GENERIC = 0; 24 | } 25 | 26 | enum NotFoundDetailCode { 27 | NOT_FOUND_GENERIC = 0; 28 | } 29 | 30 | enum AlreadyExistsDetailCode { 31 | ALREADY_EXISTS_GENERIC = 0; 32 | } 33 | 34 | enum PermissionDeniedDetailCode { 35 | PERMISSION_DENIED_GENERIC = 0; 36 | } 37 | 38 | enum ResourceExhaustedDetailCode { 39 | RESOURCE_EXHAUSTED_GENERIC = 0; 40 | RESOURCE_EXHAUSTED_OUT_OF_MEMORY_SERVER = 1; 41 | } 42 | 43 | enum FailedPreconditionDetailCode { 44 | FAILED_PRECONDITION_GENERIC = 0; 45 | FAILED_PRECONDITION_USER_CREATION_LIMIT_EXCEEDED = 1; 46 | } 47 | 48 | enum AbortedDetailCode { 49 | ABORTED_GENERIC = 0; 50 | } 51 | 52 | enum OutOfRangeDetailCode { 53 | OUT_OF_RANGE_GENERIC = 0; 54 | } 55 | 56 | enum UnimplementedDetailCode { 57 | UNIMPLEMENTED_GENERIC = 0; 58 | } 59 | 60 | enum InternalDetailCode { 61 | INTERNAL_GENERIC = 0; 62 | } 63 | 64 | enum UnavailableDetailCode { 65 | UNAVAILABLE_GENERIC = 0; 66 | UNAVAILABLE_UNDER_MAINTENANCE = 1; 67 | UNAVAILABLE_OUT_OF_SERVICE_PERIOD = 2; 68 | UNAVAILABLE_SERVICE_CLOSED = 3; 69 | } 70 | 71 | enum DataLossDetailCode { 72 | DATA_LOSS_GENERIC = 0; 73 | } 74 | 75 | enum UnauthenticatedDetailCode { 76 | UNAUTHENTICATED_GENERIC = 0; 77 | UNAUTHENTICATED_UPDATE_REQUIRED = 1; 78 | UNAUTHENTICATED_TOKEN_EXPIRED = 2; 79 | UNAUTHENTICATED_UNAUTHENTICATED_DEVICE = 3; 80 | UNAUTHENTICATED_TOKEN_INVALID = 4; 81 | UNAUTHENTICATED_NEED_SUBSCRIPTION = 5; 82 | } 83 | 84 | string trace_id = 1; 85 | oneof detail_code_type { 86 | CancelledDetailCode cancelled_detail_code = 2; 87 | UnknownDetailCode unknown_detail_code = 3; 88 | InvalidArgumentDetailCode invalid_argument_detail_code = 4; 89 | DeadlineExceededDetailCode deadline_exceeded_detail_code = 5; 90 | NotFoundDetailCode not_found_detail_code = 6; 91 | AlreadyExistsDetailCode already_exists_detail_code = 7; 92 | PermissionDeniedDetailCode permission_denied_detail_code = 8; 93 | ResourceExhaustedDetailCode resource_exhausted_detail_code = 9; 94 | FailedPreconditionDetailCode failed_precondition_detail_code = 10; 95 | AbortedDetailCode aborted_detail_code = 11; 96 | OutOfRangeDetailCode out_of_range_detail_code = 12; 97 | UnimplementedDetailCode unimplemented_detail_code = 13; 98 | InternalDetailCode internal_detail_code = 14; 99 | UnavailableDetailCode unavailable_detail_code = 15; 100 | DataLossDetailCode data_loss_detail_code = 16; 101 | UnauthenticatedDetailCode unauthenticated_detail_code = 17; 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /0.21.x/proto/errdetails/nerror.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.errdetails; 5 | 6 | option go_package = "npln.nintendo.net/npln-practice/proto/errdetails"; 7 | option cc_enable_arenas = true; 8 | 9 | message NError { 10 | enum CancelledDetailCode { 11 | CANCELLED_GENERIC = 0; 12 | } 13 | 14 | enum UnknownDetailCode { 15 | UNKNOWN_GENERIC = 0; 16 | } 17 | 18 | enum InvalidArgumentDetailCode { 19 | INVALID_ARGUMENT_GENERIC = 0; 20 | } 21 | 22 | enum DeadlineExceededDetailCode { 23 | DEADLINE_EXCEEDED_GENERIC = 0; 24 | } 25 | 26 | enum NotFoundDetailCode { 27 | NOT_FOUND_GENERIC = 0; 28 | } 29 | 30 | enum AlreadyExistsDetailCode { 31 | ALREADY_EXISTS_GENERIC = 0; 32 | } 33 | 34 | enum PermissionDeniedDetailCode { 35 | PERMISSION_DENIED_GENERIC = 0; 36 | } 37 | 38 | enum ResourceExhaustedDetailCode { 39 | RESOURCE_EXHAUSTED_GENERIC = 0; 40 | RESOURCE_EXHAUSTED_OUT_OF_MEMORY_SERVER = 1; 41 | } 42 | 43 | enum FailedPreconditionDetailCode { 44 | FAILED_PRECONDITION_GENERIC = 0; 45 | FAILED_PRECONDITION_USER_CREATION_LIMIT_EXCEEDED = 1; 46 | } 47 | 48 | enum AbortedDetailCode { 49 | ABORTED_GENERIC = 0; 50 | } 51 | 52 | enum OutOfRangeDetailCode { 53 | OUT_OF_RANGE_GENERIC = 0; 54 | } 55 | 56 | enum UnimplementedDetailCode { 57 | UNIMPLEMENTED_GENERIC = 0; 58 | } 59 | 60 | enum InternalDetailCode { 61 | INTERNAL_GENERIC = 0; 62 | } 63 | 64 | enum UnavailableDetailCode { 65 | UNAVAILABLE_GENERIC = 0; 66 | UNAVAILABLE_UNDER_MAINTENANCE = 1; 67 | UNAVAILABLE_OUT_OF_SERVICE_PERIOD = 2; 68 | UNAVAILABLE_SERVICE_CLOSED = 3; 69 | } 70 | 71 | enum DataLossDetailCode { 72 | DATA_LOSS_GENERIC = 0; 73 | } 74 | 75 | enum UnauthenticatedDetailCode { 76 | UNAUTHENTICATED_GENERIC = 0; 77 | UNAUTHENTICATED_UPDATE_REQUIRED = 1; 78 | UNAUTHENTICATED_TOKEN_EXPIRED = 2; 79 | UNAUTHENTICATED_UNAUTHENTICATED_DEVICE = 3; 80 | UNAUTHENTICATED_TOKEN_INVALID = 4; 81 | UNAUTHENTICATED_NEED_SUBSCRIPTION = 5; 82 | } 83 | 84 | string trace_id = 1; 85 | oneof detail_code_type { 86 | CancelledDetailCode cancelled_detail_code = 2; 87 | UnknownDetailCode unknown_detail_code = 3; 88 | InvalidArgumentDetailCode invalid_argument_detail_code = 4; 89 | DeadlineExceededDetailCode deadline_exceeded_detail_code = 5; 90 | NotFoundDetailCode not_found_detail_code = 6; 91 | AlreadyExistsDetailCode already_exists_detail_code = 7; 92 | PermissionDeniedDetailCode permission_denied_detail_code = 8; 93 | ResourceExhaustedDetailCode resource_exhausted_detail_code = 9; 94 | FailedPreconditionDetailCode failed_precondition_detail_code = 10; 95 | AbortedDetailCode aborted_detail_code = 11; 96 | OutOfRangeDetailCode out_of_range_detail_code = 12; 97 | UnimplementedDetailCode unimplemented_detail_code = 13; 98 | InternalDetailCode internal_detail_code = 14; 99 | UnavailableDetailCode unavailable_detail_code = 15; 100 | DataLossDetailCode data_loss_detail_code = 16; 101 | UnauthenticatedDetailCode unauthenticated_detail_code = 17; 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /latest/proto/errdetails/nerror.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.errdetails; 5 | 6 | option go_package = "npln.nintendo.net/npln-practice/proto/errdetails"; 7 | option cc_enable_arenas = true; 8 | 9 | message NError { 10 | enum CancelledDetailCode { 11 | CANCELLED_GENERIC = 0; 12 | } 13 | 14 | enum UnknownDetailCode { 15 | UNKNOWN_GENERIC = 0; 16 | } 17 | 18 | enum InvalidArgumentDetailCode { 19 | INVALID_ARGUMENT_GENERIC = 0; 20 | } 21 | 22 | enum DeadlineExceededDetailCode { 23 | DEADLINE_EXCEEDED_GENERIC = 0; 24 | } 25 | 26 | enum NotFoundDetailCode { 27 | NOT_FOUND_GENERIC = 0; 28 | NOT_FOUND_USER_NOT_FOUND = 1; 29 | NOT_FOUND_USER_MISMATCH = 2; 30 | } 31 | 32 | enum AlreadyExistsDetailCode { 33 | ALREADY_EXISTS_GENERIC = 0; 34 | } 35 | 36 | enum PermissionDeniedDetailCode { 37 | PERMISSION_DENIED_GENERIC = 0; 38 | PERMISSION_DENIED_GAME_SESSION_WRONG_PASSWORD = 1; 39 | } 40 | 41 | enum ResourceExhaustedDetailCode { 42 | RESOURCE_EXHAUSTED_GENERIC = 0; 43 | RESOURCE_EXHAUSTED_OUT_OF_MEMORY_SERVER = 1; 44 | } 45 | 46 | enum FailedPreconditionDetailCode { 47 | FAILED_PRECONDITION_GENERIC = 0; 48 | FAILED_PRECONDITION_USER_CREATION_LIMIT_EXCEEDED = 1; 49 | FAILED_PRECONDITION_GAME_SESSION_IS_FULL = 2; 50 | } 51 | 52 | enum AbortedDetailCode { 53 | ABORTED_GENERIC = 0; 54 | ABORTED_GAME_SESSION_EXPIRED = 1; 55 | } 56 | 57 | enum OutOfRangeDetailCode { 58 | OUT_OF_RANGE_GENERIC = 0; 59 | } 60 | 61 | enum UnimplementedDetailCode { 62 | UNIMPLEMENTED_GENERIC = 0; 63 | } 64 | 65 | enum InternalDetailCode { 66 | INTERNAL_GENERIC = 0; 67 | } 68 | 69 | enum UnavailableDetailCode { 70 | UNAVAILABLE_GENERIC = 0; 71 | UNAVAILABLE_UNDER_MAINTENANCE = 1; 72 | UNAVAILABLE_OUT_OF_SERVICE_PERIOD = 2; 73 | UNAVAILABLE_SERVICE_CLOSED = 3; 74 | } 75 | 76 | enum DataLossDetailCode { 77 | DATA_LOSS_GENERIC = 0; 78 | } 79 | 80 | enum UnauthenticatedDetailCode { 81 | UNAUTHENTICATED_GENERIC = 0; 82 | UNAUTHENTICATED_UPDATE_REQUIRED = 1; 83 | UNAUTHENTICATED_TOKEN_EXPIRED = 2; 84 | UNAUTHENTICATED_UNAUTHENTICATED_DEVICE = 3; 85 | UNAUTHENTICATED_TOKEN_INVALID = 4; 86 | UNAUTHENTICATED_NEED_SUBSCRIPTION = 5; 87 | UNAUTHENTICATED_INVALID_ACCOUNT = 6; 88 | UNAUTHENTICATED_APPLICATION_NOT_PERMITTED = 7; 89 | } 90 | 91 | string trace_id = 1; 92 | oneof detail_code_type { 93 | CancelledDetailCode cancelled_detail_code = 2; 94 | UnknownDetailCode unknown_detail_code = 3; 95 | InvalidArgumentDetailCode invalid_argument_detail_code = 4; 96 | DeadlineExceededDetailCode deadline_exceeded_detail_code = 5; 97 | NotFoundDetailCode not_found_detail_code = 6; 98 | AlreadyExistsDetailCode already_exists_detail_code = 7; 99 | PermissionDeniedDetailCode permission_denied_detail_code = 8; 100 | ResourceExhaustedDetailCode resource_exhausted_detail_code = 9; 101 | FailedPreconditionDetailCode failed_precondition_detail_code = 10; 102 | AbortedDetailCode aborted_detail_code = 11; 103 | OutOfRangeDetailCode out_of_range_detail_code = 12; 104 | UnimplementedDetailCode unimplemented_detail_code = 13; 105 | InternalDetailCode internal_detail_code = 14; 106 | UnavailableDetailCode unavailable_detail_code = 15; 107 | DataLossDetailCode data_loss_detail_code = 16; 108 | UnauthenticatedDetailCode unauthenticated_detail_code = 17; 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /latest/proto/hydro/v1/datastore.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.hydro.v1; 5 | 6 | import "google/protobuf/empty.proto"; 7 | import "google/protobuf/duration.proto"; 8 | import "google/rpc/status.proto"; 9 | import "proto/common/value.proto"; 10 | import "proto/hydro/v1/resources.proto"; 11 | 12 | message CreateContentRequest { 13 | string parent = 1; 14 | Content content = 2; 15 | } 16 | 17 | message GetContentRequest { 18 | string name = 1; 19 | } 20 | 21 | message DeleteContentRequest { 22 | string name = 1; 23 | string etag = 2; 24 | } 25 | 26 | message SearchContentRequest { 27 | string tenant = 1; 28 | string user = 2; 29 | // [UNKNOWN] unknown = 3 30 | int32 page_size = 4; 31 | string page_token = 5; 32 | string search_type = 6; 33 | nn.npln.common.MapValue params = 7; 34 | } 35 | 36 | message SearchContentResponse { 37 | repeated Content contents = 1; 38 | string next_page_token = 2; 39 | } 40 | 41 | message TrackContentRequest { 42 | string tenant = 1; 43 | string user = 2; 44 | map targets = 3; 45 | } 46 | 47 | message TrackContentResponse { 48 | // [UNKNOWN] unknown = 1 49 | // [UNKNOWN] unknown = 2 50 | // [UNKNOWN] unknown = 3 51 | } 52 | 53 | message TransformContentRequest { 54 | string name = 1; 55 | repeated FieldTransform field_transforms = 2; 56 | string etag = 3; 57 | } 58 | 59 | message TransformContentResponse { 60 | google.rpc.Status status = 1; 61 | } 62 | 63 | message BatchCreateContentRequest { 64 | string parent = 1; 65 | repeated CreateContentRequest requests = 2; 66 | } 67 | 68 | message BatchCreateContentResponse { 69 | repeated Content contents = 1; 70 | } 71 | 72 | message BatchDeleteContentRequest { 73 | string parent = 1; 74 | repeated DeleteContentRequest requests = 2; 75 | } 76 | 77 | message BulkDeleteContentRequest { 78 | string parent = 1; 79 | repeated DeleteContentRequest requests = 2; 80 | } 81 | 82 | message BulkDeleteContentResponse { 83 | repeated google.rpc.Status status = 1; 84 | } 85 | 86 | message BatchTransformContentRequest { 87 | string parent = 1; 88 | repeated BatchTransformContentRequest requests = 2; 89 | } 90 | 91 | message BatchTransformContentResponse { 92 | repeated TransformContentResponse responses = 1; 93 | } 94 | 95 | message BulkTransformContentRequest { 96 | string parent = 1; 97 | repeated TransformContentRequest requests = 2; 98 | } 99 | 100 | message BulkTransformContentResponse { 101 | repeated google.rpc.Status status = 1; 102 | } 103 | 104 | message FieldTransform { 105 | string field_path = 1; 106 | oneof transform_type { 107 | nn.npln.common.Value set = 2; 108 | nn.npln.common.Value increment = 3; 109 | } 110 | } 111 | 112 | message KeepAlive { 113 | google.protobuf.Duration duration = 1; 114 | } 115 | 116 | service Datastore { 117 | rpc CreateContent(CreateContentRequest) returns (Content); 118 | rpc GetContent(GetContentRequest) returns (Content); 119 | rpc DeleteContent(DeleteContentRequest) returns (google.protobuf.Empty); 120 | rpc SearchContent(SearchContentRequest) returns (SearchContentResponse); 121 | rpc TrackContent(TrackContentRequest) returns (stream TrackContentResponse); 122 | rpc TransformContent(TransformContentRequest) returns (TransformContentResponse); 123 | rpc BatchCreateContent(BatchCreateContentRequest) returns (BatchCreateContentResponse); 124 | rpc BatchDeleteContent(BatchDeleteContentRequest) returns (google.protobuf.Empty); 125 | rpc BulkDeleteContent(BulkDeleteContentRequest) returns (BulkDeleteContentResponse); 126 | rpc BatchTransformContent(BatchTransformContentRequest) returns (BatchTransformContentResponse); 127 | rpc BulkTransformContent(BulkTransformContentRequest) returns (BulkTransformContentResponse); 128 | } 129 | -------------------------------------------------------------------------------- /latest/proto/globalcounter/v1/global_counter.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.globalcounter.v1; 5 | 6 | import "google/protobuf/empty.proto"; 7 | import "google/protobuf/field_mask.proto"; 8 | import "google/protobuf/wrappers.proto"; 9 | import "proto/globalcounter/v1/resources.proto"; 10 | 11 | message GetCounterRequest { 12 | string name = 1; 13 | } 14 | 15 | message QueryCountersRequest { 16 | string parent = 1; 17 | string filter = 2; 18 | int32 page_size = 3; 19 | string page_token = 4; 20 | } 21 | 22 | message QueryCountersResponse { 23 | repeated Counter counters = 1; 24 | string next_page_token = 2; 25 | } 26 | 27 | message CreateHolderRequest { 28 | string parent = 1; 29 | Holder holder = 2; 30 | string request_id = 3; 31 | } 32 | 33 | message UpdateHolderRequest { 34 | Holder holder = 1; 35 | google.protobuf.FieldMask update_mask = 2; 36 | } 37 | 38 | message GetHolderRequest { 39 | string name = 1; 40 | } 41 | 42 | message DeleteHolderRequest { 43 | string name = 1; 44 | bool force = 2; 45 | } 46 | 47 | message ListHoldersRequest { 48 | string parent = 1; 49 | int32 page_size = 3; 50 | string page_token = 4; 51 | } 52 | 53 | message ListHoldersResponse { 54 | repeated Holder holders = 1; 55 | string next_page_token = 2; 56 | } 57 | 58 | message GetSeasonRequest { 59 | string name = 1; 60 | } 61 | 62 | message BatchGetSeasonsRequest { 63 | string parent = 1; 64 | repeated string names = 2; 65 | } 66 | 67 | message BatchGetSeasonsResponse { 68 | repeated Season seasons = 1; 69 | } 70 | 71 | message ListSeasonsRequest { 72 | string parent = 1; 73 | int32 page_size = 3; 74 | string page_token = 4; 75 | } 76 | 77 | message ListSeasonsResponse { 78 | repeated Season seasons = 1; 79 | string next_page_token = 2; 80 | } 81 | 82 | message GetCountRequest { 83 | string name = 1; 84 | } 85 | 86 | message DeleteCountRequest { 87 | string name = 1; 88 | } 89 | 90 | message ListCountsRequest { 91 | string parent = 1; 92 | int32 page_size = 2; 93 | string page_token = 3; 94 | } 95 | 96 | message ListCountsResponse { 97 | repeated Count counts = 1; 98 | string next_page_token = 2; 99 | } 100 | 101 | message UpdateCountRequest { 102 | Count count = 1; 103 | google.protobuf.FieldMask update_mask = 2; 104 | bool allow_missing = 3; 105 | } 106 | 107 | message AddCountRequest { 108 | string season = 1; 109 | int64 count = 2; 110 | string request_id = 3; 111 | } 112 | 113 | message MoveCountRequest { 114 | Count count = 1; 115 | string destination_season = 2; 116 | } 117 | 118 | message PurgeCountHoldersRequest { 119 | string parent = 1; 120 | string filter = 2; 121 | string holder = 3; 122 | bool force = 4; 123 | } 124 | 125 | message PurgeCountHoldersResponse { 126 | int32 purge_count = 1; 127 | repeated string purge_sample = 2; 128 | } 129 | 130 | message ForwardCurrentSeasonRequest { 131 | string counter = 1; 132 | google.protobuf.Int32Value current_season_id = 2; 133 | } 134 | 135 | service GlobalCounterService { 136 | rpc GetCounter(GetCounterRequest) returns (Counter); 137 | rpc QueryCounters(QueryCountersRequest) returns (QueryCountersResponse); 138 | rpc CreateHolder(CreateHolderRequest) returns (Holder); 139 | rpc UpdateHolder(UpdateHolderRequest) returns (Holder); 140 | rpc GetHolder(GetHolderRequest) returns (Holder); 141 | rpc DeleteHolder(DeleteHolderRequest) returns (google.protobuf.Empty); 142 | rpc ListHolders(ListHoldersRequest) returns (ListHoldersResponse); 143 | rpc GetSeason(GetSeasonRequest) returns (Season); 144 | rpc BatchGetSeasons(BatchGetSeasonsRequest) returns (BatchGetSeasonsResponse); 145 | rpc ListSeasons(ListSeasonsRequest) returns (ListSeasonsResponse); 146 | rpc GetCount(GetCountRequest) returns (Count); 147 | rpc DeleteCount(DeleteCountRequest) returns (google.protobuf.Empty); 148 | rpc ListCounts(ListCountsRequest) returns (ListCountsResponse); 149 | rpc UpdateCount(UpdateCountRequest) returns (Count); 150 | rpc AddCount(AddCountRequest) returns (Count); 151 | rpc MoveCount(MoveCountRequest) returns (Count); 152 | rpc PurgeCountHolders(PurgeCountHoldersRequest) returns (PurgeCountHoldersResponse); 153 | } 154 | -------------------------------------------------------------------------------- /latest/proto/ugcstore/v1/ugcstore.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.ugcstore.v1; 5 | 6 | import "google/protobuf/duration.proto"; 7 | import "google/protobuf/field_mask.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | 10 | import "proto/common/value.proto"; 11 | import "proto/ugcstore/v1/query.proto"; 12 | import "proto/ugcstore/v1/resources.proto"; 13 | import "proto/ugcstore/v1/write.proto"; 14 | 15 | message GetDocumentRequest { 16 | string name = 1; 17 | google.protobuf.FieldMask read_mask = 2; 18 | nn.npln.common.MapValue rule_context = 3; 19 | } 20 | 21 | message BulkGetDocumentsRequest { 22 | string parent = 1; 23 | repeated string names = 2; 24 | google.protobuf.FieldMask read_mask = 3; 25 | nn.npln.common.MapValue rule_context = 4; 26 | } 27 | 28 | message BulkGetDocumentsResponse { 29 | oneof result { 30 | Document found = 1; 31 | string missing = 2; 32 | } 33 | google.protobuf.Timestamp read_time = 4; 34 | } 35 | 36 | message RunQueryRequest { 37 | string parent = 1; 38 | oneof query_type { 39 | StructuredQuery structured_query = 2; 40 | } 41 | nn.npln.common.MapValue rule_context = 3; 42 | } 43 | 44 | message RunQueryResponse { 45 | Document document = 1; 46 | google.protobuf.Timestamp read_time = 3; 47 | int32 skipped_results = 4; 48 | } 49 | 50 | message CommitDocumentsRequest { 51 | string tenant = 1; 52 | repeated WriteOperation write_operations = 2; 53 | nn.npln.common.MapValue rule_context = 3; 54 | } 55 | 56 | message CommitDocumentsResponse { 57 | repeated WriteResult write_results = 1; 58 | google.protobuf.Timestamp commit_time = 2; 59 | } 60 | 61 | message IssueAttachmentUriRequest { 62 | string parent = 1; 63 | oneof expiration { 64 | google.protobuf.Timestamp expire_time = 2; 65 | google.protobuf.Duration ttl = 3; 66 | } 67 | nn.npln.common.MapValue rule_context = 4; 68 | } 69 | 70 | message IssueAttachmentUriResponse { 71 | string uri = 1; 72 | } 73 | 74 | message BulkIssueAttachmentUriRequest { 75 | repeated IssueAttachmentUriRequest requests = 1; 76 | bool allow_missing = 2; 77 | } 78 | 79 | message BulkIssueAttachmentUriResponse { 80 | repeated string uri = 1; 81 | repeated BulkIssueAttachmentUriResult results = 2; 82 | } 83 | 84 | message BulkIssueAttachmentUriResult { 85 | oneof result { 86 | string uri = 1; 87 | string missing = 2; 88 | } 89 | } 90 | 91 | message IssueUploadUriRequest { 92 | string tenant = 1; 93 | bool resumable = 2; 94 | } 95 | 96 | message IssueUploadUriResponse { 97 | string uri = 1; 98 | } 99 | 100 | message CreateDocumentShortAliasRequest { 101 | string parent = 1; 102 | DocumentShortAlias document_short_alias = 2; 103 | nn.npln.common.MapValue rule_context = 3; 104 | } 105 | 106 | message GetDocumentShortAliasRequest { 107 | string name = 1; 108 | } 109 | 110 | message BulkGetDocumentShortAliasesRequest { 111 | repeated GetDocumentShortAliasRequest requests = 1; 112 | } 113 | 114 | message BulkGetDocumentShortAliasesResponse { 115 | repeated BulkGetDocumentShortAliasesResult results = 1; 116 | } 117 | 118 | message BulkGetDocumentShortAliasesResult { 119 | oneof result { 120 | DocumentShortAlias found = 1; 121 | string missing = 2; 122 | } 123 | } 124 | 125 | service Ugcstore { 126 | rpc GetDocument(GetDocumentRequest) returns (Document); 127 | rpc BulkGetDocuments(BulkGetDocumentsRequest) returns (stream BulkGetDocumentsResponse); 128 | rpc RunQuery(RunQueryRequest) returns (stream RunQueryResponse); 129 | rpc CommitDocuments(CommitDocumentsRequest) returns (CommitDocumentsResponse); 130 | rpc IssueAttachmentUri(IssueAttachmentUriRequest) returns (IssueAttachmentUriResponse); 131 | rpc BulkIssueAttachmentUri(stream IssueAttachmentUriRequest) returns (stream IssueAttachmentUriResponse); 132 | rpc IssueUploadUri(IssueUploadUriRequest) returns (IssueUploadUriResponse); 133 | rpc CreateDocumentShortAlias(CreateDocumentShortAliasRequest) returns (DocumentShortAlias); 134 | rpc GetDocumentShortAlias(GetDocumentShortAliasRequest) returns (DocumentShortAlias); 135 | rpc BulkGetDocumentShortAliases(BulkGetDocumentShortAliasesRequest) returns (BulkGetDocumentShortAliasesResponse); 136 | } 137 | -------------------------------------------------------------------------------- /0.20.x/proto/gamesync/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.gamesync.v1; 5 | 6 | import "google/api/field_behavior.proto"; 7 | import "google/api/resource.proto"; 8 | import "google/protobuf/duration.proto"; 9 | import "google/protobuf/timestamp.proto"; 10 | import "google/protobuf/field_mask.proto"; 11 | import "google/rpc/status.proto"; 12 | import "proto/common/value.proto"; 13 | import "validate/validate.proto"; 14 | 15 | option go_package = "npln.nintendo.net/npln-practice/proto/gamesync/v1;gamesync"; 16 | option cc_enable_arenas = true; 17 | 18 | message Document { 19 | string name = 1; 20 | nn.npln.common.MapValue fields = 2; 21 | google.protobuf.Timestamp create_time = 3; 22 | google.protobuf.Timestamp update_time = 4; 23 | } 24 | 25 | message Deferment { 26 | string name = 1; 27 | repeated WriteOperation write_operations = 2; 28 | } 29 | 30 | message Target { 31 | string name = 1; 32 | oneof target_type { 33 | DocumentsTarget documents = 2; 34 | CollectionTarget collection = 3; 35 | } 36 | } 37 | 38 | message WriteOperation { 39 | oneof operation_type { 40 | UpdateDocumentRequest update_document = 1; 41 | MergeDocumentRequest merge_document = 2; 42 | TransformDocumentRequest transform_document = 3; 43 | DeleteDocumentRequest delete_document = 4; 44 | } 45 | } 46 | 47 | message LazyWriteOperation { 48 | oneof operation_type { 49 | MergeDocumentRequest merge_document = 1; 50 | TransformDocumentRequest transform_document = 2; 51 | } 52 | } 53 | 54 | message ReadResult { 55 | oneof result { 56 | Document found = 1; 57 | string missing = 2; 58 | } 59 | } 60 | 61 | message UpdateResult { 62 | } 63 | 64 | message DeleteResult { 65 | } 66 | 67 | message TransformResult { 68 | repeated nn.npln.common.Value results = 1; 69 | } 70 | 71 | message WriteResult { 72 | oneof result_type { 73 | UpdateResult update_result = 1; 74 | TransformResult transform_result = 2; 75 | DeleteResult delete_result = 3; 76 | } 77 | } 78 | 79 | message UpdateDocumentRequest { 80 | Document document = 1; 81 | google.protobuf.FieldMask update_mask = 2; 82 | Precondition current_document = 3; 83 | } 84 | 85 | message MergeDocumentRequest { 86 | Document document = 1; 87 | } 88 | 89 | message TransformDocumentRequest { 90 | string name = 1; 91 | repeated FieldTransform field_transforms = 2; 92 | } 93 | 94 | message DeleteDocumentRequest { 95 | string name = 1; 96 | Precondition current_document = 2; 97 | } 98 | 99 | message Precondition { 100 | oneof condition_type { 101 | bool exists = 1; 102 | google.protobuf.Timestamp update_time = 2; 103 | } 104 | } 105 | 106 | message FieldTransform { 107 | enum ServerValueType { 108 | SERVER_VALUE_TYPE_UNSPECIFIED = 0; 109 | REQUEST_TIME = 1; 110 | } 111 | 112 | string field_path = 1; 113 | oneof transform_type { 114 | ServerValueType set_server_value = 2; 115 | nn.npln.common.Value increment = 3; 116 | nn.npln.common.Value maximum = 4; 117 | nn.npln.common.Value minimum = 5; 118 | string load_global_value = 6; 119 | string store_global_value = 7; 120 | string clear_global_value = 8; 121 | } 122 | } 123 | 124 | message DefermentOperation { 125 | oneof operation_type { 126 | UpdateDefermentRequest update_deferment = 1; 127 | DeleteDefermentRequest delete_deferment = 2; 128 | } 129 | } 130 | 131 | message UpdateDefermentRequest { 132 | Deferment deferment = 1; 133 | } 134 | 135 | message DeleteDefermentRequest { 136 | string name = 1; 137 | } 138 | 139 | message DocumentsTarget { 140 | repeated string documents = 1; 141 | } 142 | 143 | message CollectionTarget { 144 | string collection = 1; 145 | } 146 | 147 | message DocumentChange { 148 | enum DocumentChangeType { 149 | DOCUMENT_CHANGE_TYPE_UNSPECIFIED = 0; 150 | EXIST = 1; 151 | UPDATED = 2; 152 | DELETED = 3; 153 | } 154 | 155 | string target_id = 1; 156 | DocumentChangeType document_change_type = 2; 157 | Document document = 3; 158 | } 159 | 160 | message TargetChange { 161 | enum TargetChangeType { 162 | TARGET_CHANGE_TYPE_UNSPECIFIED = 0; 163 | UPDATED = 1; 164 | LISTED = 2; 165 | DELETED = 3; 166 | FAILED = 4; 167 | } 168 | 169 | string target_id = 1; 170 | TargetChangeType target_change_type = 2; 171 | google.rpc.Status cause = 3; 172 | } 173 | 174 | message Token { 175 | string user_session = 1; 176 | string access_token = 2; 177 | string refresh_token = 3; 178 | google.protobuf.Duration ttl = 4; 179 | } 180 | -------------------------------------------------------------------------------- /0.21.x/proto/gamesync/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.gamesync.v1; 5 | 6 | import "google/api/field_behavior.proto"; 7 | import "google/api/resource.proto"; 8 | import "google/protobuf/duration.proto"; 9 | import "google/protobuf/timestamp.proto"; 10 | import "google/protobuf/field_mask.proto"; 11 | import "google/rpc/status.proto"; 12 | import "proto/common/value.proto"; 13 | import "validate/validate.proto"; 14 | 15 | option go_package = "npln.nintendo.net/npln-practice/proto/gamesync/v1;gamesync"; 16 | option cc_enable_arenas = true; 17 | 18 | message Document { 19 | string name = 1; 20 | nn.npln.common.MapValue fields = 2; 21 | google.protobuf.Timestamp create_time = 3; 22 | google.protobuf.Timestamp update_time = 4; 23 | } 24 | 25 | message Deferment { 26 | string name = 1; 27 | repeated WriteOperation write_operations = 2; 28 | } 29 | 30 | message Target { 31 | string name = 1; 32 | oneof target_type { 33 | DocumentsTarget documents = 2; 34 | CollectionTarget collection = 3; 35 | } 36 | } 37 | 38 | message WriteOperation { 39 | oneof operation_type { 40 | UpdateDocumentRequest update_document = 1; 41 | MergeDocumentRequest merge_document = 2; 42 | TransformDocumentRequest transform_document = 3; 43 | DeleteDocumentRequest delete_document = 4; 44 | } 45 | } 46 | 47 | message LazyWriteOperation { 48 | oneof operation_type { 49 | MergeDocumentRequest merge_document = 1; 50 | TransformDocumentRequest transform_document = 2; 51 | } 52 | } 53 | 54 | message ReadResult { 55 | oneof result { 56 | Document found = 1; 57 | string missing = 2; 58 | } 59 | } 60 | 61 | message UpdateResult { 62 | } 63 | 64 | message DeleteResult { 65 | } 66 | 67 | message TransformResult { 68 | repeated nn.npln.common.Value results = 1; 69 | } 70 | 71 | message WriteResult { 72 | oneof result_type { 73 | UpdateResult update_result = 1; 74 | TransformResult transform_result = 2; 75 | DeleteResult delete_result = 3; 76 | } 77 | } 78 | 79 | message UpdateDocumentRequest { 80 | Document document = 1; 81 | google.protobuf.FieldMask update_mask = 2; 82 | Precondition current_document = 3; 83 | } 84 | 85 | message MergeDocumentRequest { 86 | Document document = 1; 87 | } 88 | 89 | message TransformDocumentRequest { 90 | string name = 1; 91 | repeated FieldTransform field_transforms = 2; 92 | } 93 | 94 | message DeleteDocumentRequest { 95 | string name = 1; 96 | Precondition current_document = 2; 97 | } 98 | 99 | message Precondition { 100 | oneof condition_type { 101 | bool exists = 1; 102 | google.protobuf.Timestamp update_time = 2; 103 | } 104 | } 105 | 106 | message FieldTransform { 107 | enum ServerValueType { 108 | SERVER_VALUE_TYPE_UNSPECIFIED = 0; 109 | REQUEST_TIME = 1; 110 | } 111 | 112 | string field_path = 1; 113 | oneof transform_type { 114 | ServerValueType set_server_value = 2; 115 | nn.npln.common.Value increment = 3; 116 | nn.npln.common.Value maximum = 4; 117 | nn.npln.common.Value minimum = 5; 118 | string load_global_value = 6; 119 | string store_global_value = 7; 120 | string clear_global_value = 8; 121 | } 122 | } 123 | 124 | message DefermentOperation { 125 | oneof operation_type { 126 | UpdateDefermentRequest update_deferment = 1; 127 | DeleteDefermentRequest delete_deferment = 2; 128 | } 129 | } 130 | 131 | message UpdateDefermentRequest { 132 | Deferment deferment = 1; 133 | } 134 | 135 | message DeleteDefermentRequest { 136 | string name = 1; 137 | } 138 | 139 | message DocumentsTarget { 140 | repeated string documents = 1; 141 | } 142 | 143 | message CollectionTarget { 144 | string collection = 1; 145 | } 146 | 147 | message DocumentChange { 148 | enum DocumentChangeType { 149 | DOCUMENT_CHANGE_TYPE_UNSPECIFIED = 0; 150 | EXIST = 1; 151 | UPDATED = 2; 152 | DELETED = 3; 153 | } 154 | 155 | string target_id = 1; 156 | DocumentChangeType document_change_type = 2; 157 | Document document = 3; 158 | } 159 | 160 | message TargetChange { 161 | enum TargetChangeType { 162 | TARGET_CHANGE_TYPE_UNSPECIFIED = 0; 163 | UPDATED = 1; 164 | LISTED = 2; 165 | DELETED = 3; 166 | FAILED = 4; 167 | } 168 | 169 | string target_id = 1; 170 | TargetChangeType target_change_type = 2; 171 | google.rpc.Status cause = 3; 172 | } 173 | 174 | message Token { 175 | string user_session = 1; 176 | string access_token = 2; 177 | string refresh_token = 3; 178 | google.protobuf.Duration ttl = 4; 179 | } 180 | -------------------------------------------------------------------------------- /latest/proto/gamesync/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.gamesync.v1; 5 | 6 | import "google/api/field_behavior.proto"; 7 | import "google/api/resource.proto"; 8 | import "google/protobuf/duration.proto"; 9 | import "google/protobuf/timestamp.proto"; 10 | import "google/protobuf/field_mask.proto"; 11 | import "google/rpc/status.proto"; 12 | import "proto/common/value.proto"; 13 | import "validate/validate.proto"; 14 | 15 | option go_package = "npln.nintendo.net/npln-practice/proto/gamesync/v1;gamesync"; 16 | option cc_enable_arenas = true; 17 | 18 | message Document { 19 | string name = 1; 20 | nn.npln.common.MapValue fields = 2; 21 | google.protobuf.Timestamp create_time = 3; 22 | google.protobuf.Timestamp update_time = 4; 23 | } 24 | 25 | message Deferment { 26 | string name = 1; 27 | repeated WriteOperation write_operations = 2; 28 | } 29 | 30 | message Target { 31 | string name = 1; 32 | oneof target_type { 33 | DocumentsTarget documents = 2; 34 | CollectionTarget collection = 3; 35 | } 36 | } 37 | 38 | message WriteOperation { 39 | oneof operation_type { 40 | UpdateDocumentRequest update_document = 1; 41 | MergeDocumentRequest merge_document = 2; 42 | TransformDocumentRequest transform_document = 3; 43 | DeleteDocumentRequest delete_document = 4; 44 | } 45 | } 46 | 47 | message LazyWriteOperation { 48 | oneof operation_type { 49 | MergeDocumentRequest merge_document = 1; 50 | TransformDocumentRequest transform_document = 2; 51 | } 52 | } 53 | 54 | message ReadResult { 55 | oneof result { 56 | Document found = 1; 57 | string missing = 2; 58 | } 59 | } 60 | 61 | message UpdateResult { 62 | } 63 | 64 | message DeleteResult { 65 | } 66 | 67 | message TransformResult { 68 | repeated nn.npln.common.Value results = 1; 69 | } 70 | 71 | message WriteResult { 72 | oneof result_type { 73 | UpdateResult update_result = 1; 74 | TransformResult transform_result = 2; 75 | DeleteResult delete_result = 3; 76 | } 77 | } 78 | 79 | message UpdateDocumentRequest { 80 | Document document = 1; 81 | google.protobuf.FieldMask update_mask = 2; 82 | Precondition current_document = 3; 83 | } 84 | 85 | message MergeDocumentRequest { 86 | Document document = 1; 87 | } 88 | 89 | message TransformDocumentRequest { 90 | string name = 1; 91 | repeated FieldTransform field_transforms = 2; 92 | } 93 | 94 | message DeleteDocumentRequest { 95 | string name = 1; 96 | Precondition current_document = 2; 97 | } 98 | 99 | message Precondition { 100 | oneof condition_type { 101 | bool exists = 1; 102 | google.protobuf.Timestamp update_time = 2; 103 | } 104 | } 105 | 106 | message FieldTransform { 107 | enum ServerValueType { 108 | SERVER_VALUE_TYPE_UNSPECIFIED = 0; 109 | REQUEST_TIME = 1; 110 | } 111 | 112 | string field_path = 1; 113 | oneof transform_type { 114 | ServerValueType set_server_value = 2; 115 | nn.npln.common.Value increment = 3; 116 | nn.npln.common.Value maximum = 4; 117 | nn.npln.common.Value minimum = 5; 118 | string load_global_value = 6; 119 | string store_global_value = 7; 120 | string clear_global_value = 8; 121 | } 122 | } 123 | 124 | message DefermentOperation { 125 | oneof operation_type { 126 | UpdateDefermentRequest update_deferment = 1; 127 | DeleteDefermentRequest delete_deferment = 2; 128 | } 129 | } 130 | 131 | message UpdateDefermentRequest { 132 | Deferment deferment = 1; 133 | } 134 | 135 | message DeleteDefermentRequest { 136 | string name = 1; 137 | } 138 | 139 | message DocumentsTarget { 140 | repeated string documents = 1; 141 | } 142 | 143 | message CollectionTarget { 144 | string collection = 1; 145 | } 146 | 147 | message DocumentChange { 148 | enum DocumentChangeType { 149 | DOCUMENT_CHANGE_TYPE_UNSPECIFIED = 0; 150 | EXIST = 1; 151 | UPDATED = 2; 152 | DELETED = 3; 153 | } 154 | 155 | string target_id = 1; 156 | DocumentChangeType document_change_type = 2; 157 | Document document = 3; 158 | } 159 | 160 | message TargetChange { 161 | enum TargetChangeType { 162 | TARGET_CHANGE_TYPE_UNSPECIFIED = 0; 163 | UPDATED = 1; 164 | LISTED = 2; 165 | DELETED = 3; 166 | FAILED = 4; 167 | } 168 | 169 | string target_id = 1; 170 | TargetChangeType target_change_type = 2; 171 | google.rpc.Status cause = 3; 172 | } 173 | 174 | message Token { 175 | string user_session = 1; 176 | string access_token = 2; 177 | string refresh_token = 3; 178 | google.protobuf.Duration ttl = 4; 179 | } 180 | -------------------------------------------------------------------------------- /0.20.x/proto/gamesync/v1/gamesync.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.gamesync.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/client.proto"; 8 | import "google/api/field_behavior.proto"; 9 | import "google/api/resource.proto"; 10 | import "google/protobuf/empty.proto"; 11 | import "google/protobuf/field_mask.proto"; 12 | import "google/protobuf/timestamp.proto"; 13 | import "proto/gamesync/v1/resources.proto"; 14 | import "validate/validate.proto"; 15 | 16 | option go_package = "npln.nintendo.net/npln-practice/proto/gamesync/v1;gamesync"; 17 | option cc_enable_arenas = true; 18 | 19 | message IssueTokenRequest { 20 | string user_session = 1; 21 | string matchmaking_id_token = 2; 22 | } 23 | 24 | message IssueTokenResponse { 25 | Token token = 1; 26 | } 27 | 28 | message RefreshTokenRequest { 29 | string user_session = 1; 30 | string refresh_token = 2; 31 | } 32 | 33 | message RefreshTokenResponse { 34 | Token token = 1; 35 | } 36 | 37 | message GetDocumentRequest { 38 | string name = 1; 39 | google.protobuf.FieldMask read_mask = 2; 40 | bytes transaction = 3; 41 | } 42 | 43 | message ReadDocumentsRequest { 44 | repeated string documents = 1; 45 | google.protobuf.FieldMask read_mask = 2; 46 | bytes transaction = 3; 47 | } 48 | 49 | message ReadDocumentsResponse { 50 | repeated ReadResult results = 1; 51 | google.protobuf.Timestamp read_time = 2; 52 | } 53 | 54 | message ListDocumentsRequest { 55 | string parent = 1; 56 | int32 page_size = 2; 57 | string page_token = 3; 58 | google.protobuf.FieldMask read_mask = 4; 59 | bool show_missing = 5; 60 | } 61 | 62 | message ListDocumentsResponse { 63 | repeated Document documents = 1; 64 | string next_page_token = 2; 65 | } 66 | 67 | message QueryCollectionIdsRequest { 68 | string document = 1; 69 | int32 page_size = 2; 70 | string page_token = 3; 71 | } 72 | 73 | message QueryCollectionIdsResponse { 74 | repeated string collection_ids = 1; 75 | string next_page_token = 2; 76 | } 77 | 78 | message WriteDocumentsRequest { 79 | repeated WriteOperation write_operations = 1; 80 | repeated DefermentOperation deferment_operations = 2; 81 | } 82 | 83 | message WriteDocumentsResponse { 84 | repeated WriteResult write_results = 1; 85 | google.protobuf.Timestamp commit_time = 2; 86 | } 87 | 88 | message LazyWriteDocumentsRequest { 89 | repeated LazyWriteOperation write_operations = 1; 90 | string lazy_write_config = 2; 91 | } 92 | 93 | message LazyWriteDocumentsResponse { 94 | google.protobuf.Timestamp commit_time = 1; 95 | } 96 | 97 | message BeginTransactionRequest { 98 | } 99 | 100 | message BeginTransactionResponse { 101 | bytes transaction = 1; 102 | } 103 | 104 | message CommitTransactionRequest { 105 | repeated WriteOperation write_operations = 1; 106 | repeated DefermentOperation deferment_operations = 2; 107 | bytes transaction = 3; 108 | } 109 | 110 | message CommitTransactionResponse { 111 | repeated WriteResult write_results = 1; 112 | google.protobuf.Timestamp commit_time = 2; 113 | } 114 | 115 | message RollbackTransactionRequest { 116 | bytes transaction = 1; 117 | } 118 | 119 | message KeepUserSessionRequest { 120 | string name = 1; 121 | oneof request_type { 122 | string echo = 2; 123 | UpdateTargetRequest update_target = 3; 124 | DeleteTargetRequest delete_target = 4; 125 | } 126 | } 127 | 128 | message KeepUserSessionResponse { 129 | oneof response_type { 130 | string echo = 1; 131 | DocumentChange document_change = 2; 132 | TargetChange target_change = 3; 133 | } 134 | } 135 | 136 | message UpdateTargetRequest { 137 | Target target = 1; 138 | } 139 | 140 | message DeleteTargetRequest { 141 | string name = 1; 142 | } 143 | 144 | service Gamesync { 145 | rpc IssueToken(IssueTokenRequest) returns (IssueTokenResponse); 146 | rpc RefreshToken(RefreshTokenRequest) returns (RefreshTokenResponse); 147 | rpc GetDocument(GetDocumentRequest) returns (Document); 148 | rpc ReadDocuments(ReadDocumentsRequest) returns (ReadDocumentsResponse); 149 | rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse); 150 | rpc QueryCollectionIds(QueryCollectionIdsRequest) returns (QueryCollectionIdsResponse); 151 | rpc WriteDocuments(WriteDocumentsRequest) returns (WriteDocumentsResponse); 152 | rpc LazyWriteDocuments(LazyWriteDocumentsRequest) returns (LazyWriteDocumentsResponse); 153 | rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse); 154 | rpc CommitTransaction(CommitTransactionRequest) returns (CommitTransactionResponse); 155 | rpc RollbackTransaction(RollbackTransactionRequest) returns (google.protobuf.Empty); 156 | rpc KeepUserSession(stream KeepUserSessionRequest) returns (stream KeepUserSessionResponse); 157 | } 158 | -------------------------------------------------------------------------------- /0.21.x/proto/gamesync/v1/gamesync.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.gamesync.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/client.proto"; 8 | import "google/api/field_behavior.proto"; 9 | import "google/api/resource.proto"; 10 | import "google/protobuf/empty.proto"; 11 | import "google/protobuf/field_mask.proto"; 12 | import "google/protobuf/timestamp.proto"; 13 | import "proto/gamesync/v1/resources.proto"; 14 | import "validate/validate.proto"; 15 | 16 | option go_package = "npln.nintendo.net/npln-practice/proto/gamesync/v1;gamesync"; 17 | option cc_enable_arenas = true; 18 | 19 | message IssueTokenRequest { 20 | string user_session = 1; 21 | string matchmaking_id_token = 2; 22 | } 23 | 24 | message IssueTokenResponse { 25 | Token token = 1; 26 | } 27 | 28 | message RefreshTokenRequest { 29 | string user_session = 1; 30 | string refresh_token = 2; 31 | } 32 | 33 | message RefreshTokenResponse { 34 | Token token = 1; 35 | } 36 | 37 | message GetDocumentRequest { 38 | string name = 1; 39 | google.protobuf.FieldMask read_mask = 2; 40 | bytes transaction = 3; 41 | } 42 | 43 | message ReadDocumentsRequest { 44 | repeated string documents = 1; 45 | google.protobuf.FieldMask read_mask = 2; 46 | bytes transaction = 3; 47 | } 48 | 49 | message ReadDocumentsResponse { 50 | repeated ReadResult results = 1; 51 | google.protobuf.Timestamp read_time = 2; 52 | } 53 | 54 | message ListDocumentsRequest { 55 | string parent = 1; 56 | int32 page_size = 2; 57 | string page_token = 3; 58 | google.protobuf.FieldMask read_mask = 4; 59 | bool show_missing = 5; 60 | } 61 | 62 | message ListDocumentsResponse { 63 | repeated Document documents = 1; 64 | string next_page_token = 2; 65 | } 66 | 67 | message QueryCollectionIdsRequest { 68 | string document = 1; 69 | int32 page_size = 2; 70 | string page_token = 3; 71 | } 72 | 73 | message QueryCollectionIdsResponse { 74 | repeated string collection_ids = 1; 75 | string next_page_token = 2; 76 | } 77 | 78 | message WriteDocumentsRequest { 79 | repeated WriteOperation write_operations = 1; 80 | repeated DefermentOperation deferment_operations = 2; 81 | } 82 | 83 | message WriteDocumentsResponse { 84 | repeated WriteResult write_results = 1; 85 | google.protobuf.Timestamp commit_time = 2; 86 | } 87 | 88 | message LazyWriteDocumentsRequest { 89 | repeated LazyWriteOperation write_operations = 1; 90 | string lazy_write_config = 2; 91 | } 92 | 93 | message LazyWriteDocumentsResponse { 94 | google.protobuf.Timestamp commit_time = 1; 95 | } 96 | 97 | message BeginTransactionRequest { 98 | } 99 | 100 | message BeginTransactionResponse { 101 | bytes transaction = 1; 102 | } 103 | 104 | message CommitTransactionRequest { 105 | repeated WriteOperation write_operations = 1; 106 | repeated DefermentOperation deferment_operations = 2; 107 | bytes transaction = 3; 108 | } 109 | 110 | message CommitTransactionResponse { 111 | repeated WriteResult write_results = 1; 112 | google.protobuf.Timestamp commit_time = 2; 113 | } 114 | 115 | message RollbackTransactionRequest { 116 | bytes transaction = 1; 117 | } 118 | 119 | message KeepUserSessionRequest { 120 | string name = 1; 121 | oneof request_type { 122 | string echo = 2; 123 | UpdateTargetRequest update_target = 3; 124 | DeleteTargetRequest delete_target = 4; 125 | } 126 | } 127 | 128 | message KeepUserSessionResponse { 129 | oneof response_type { 130 | string echo = 1; 131 | DocumentChange document_change = 2; 132 | TargetChange target_change = 3; 133 | } 134 | } 135 | 136 | message UpdateTargetRequest { 137 | Target target = 1; 138 | } 139 | 140 | message DeleteTargetRequest { 141 | string name = 1; 142 | } 143 | 144 | service Gamesync { 145 | rpc IssueToken(IssueTokenRequest) returns (IssueTokenResponse); 146 | rpc RefreshToken(RefreshTokenRequest) returns (RefreshTokenResponse); 147 | rpc GetDocument(GetDocumentRequest) returns (Document); 148 | rpc ReadDocuments(ReadDocumentsRequest) returns (ReadDocumentsResponse); 149 | rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse); 150 | rpc QueryCollectionIds(QueryCollectionIdsRequest) returns (QueryCollectionIdsResponse); 151 | rpc WriteDocuments(WriteDocumentsRequest) returns (WriteDocumentsResponse); 152 | rpc LazyWriteDocuments(LazyWriteDocumentsRequest) returns (LazyWriteDocumentsResponse); 153 | rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse); 154 | rpc CommitTransaction(CommitTransactionRequest) returns (CommitTransactionResponse); 155 | rpc RollbackTransaction(RollbackTransactionRequest) returns (google.protobuf.Empty); 156 | rpc KeepUserSession(stream KeepUserSessionRequest) returns (stream KeepUserSessionResponse); 157 | } 158 | -------------------------------------------------------------------------------- /latest/proto/gamesync/v1/gamesync.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.gamesync.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/client.proto"; 8 | import "google/api/field_behavior.proto"; 9 | import "google/api/resource.proto"; 10 | import "google/protobuf/empty.proto"; 11 | import "google/protobuf/field_mask.proto"; 12 | import "google/protobuf/timestamp.proto"; 13 | import "proto/gamesync/v1/resources.proto"; 14 | import "validate/validate.proto"; 15 | 16 | option go_package = "npln.nintendo.net/npln-practice/proto/gamesync/v1;gamesync"; 17 | option cc_enable_arenas = true; 18 | 19 | message IssueTokenRequest { 20 | string user_session = 1; 21 | string matchmaking_id_token = 2; 22 | } 23 | 24 | message IssueTokenResponse { 25 | Token token = 1; 26 | } 27 | 28 | message RefreshTokenRequest { 29 | string user_session = 1; 30 | string refresh_token = 2; 31 | } 32 | 33 | message RefreshTokenResponse { 34 | Token token = 1; 35 | } 36 | 37 | message GetDocumentRequest { 38 | string name = 1; 39 | google.protobuf.FieldMask read_mask = 2; 40 | bytes transaction = 3; 41 | } 42 | 43 | message ReadDocumentsRequest { 44 | repeated string documents = 1; 45 | google.protobuf.FieldMask read_mask = 2; 46 | bytes transaction = 3; 47 | } 48 | 49 | message ReadDocumentsResponse { 50 | repeated ReadResult results = 1; 51 | google.protobuf.Timestamp read_time = 2; 52 | } 53 | 54 | message ListDocumentsRequest { 55 | string parent = 1; 56 | int32 page_size = 2; 57 | string page_token = 3; 58 | google.protobuf.FieldMask read_mask = 4; 59 | bool show_missing = 5; 60 | } 61 | 62 | message ListDocumentsResponse { 63 | repeated Document documents = 1; 64 | string next_page_token = 2; 65 | } 66 | 67 | message QueryCollectionIdsRequest { 68 | string document = 1; 69 | int32 page_size = 2; 70 | string page_token = 3; 71 | } 72 | 73 | message QueryCollectionIdsResponse { 74 | repeated string collection_ids = 1; 75 | string next_page_token = 2; 76 | } 77 | 78 | message WriteDocumentsRequest { 79 | repeated WriteOperation write_operations = 1; 80 | repeated DefermentOperation deferment_operations = 2; 81 | } 82 | 83 | message WriteDocumentsResponse { 84 | repeated WriteResult write_results = 1; 85 | google.protobuf.Timestamp commit_time = 2; 86 | } 87 | 88 | message LazyWriteDocumentsRequest { 89 | repeated LazyWriteOperation write_operations = 1; 90 | string lazy_write_config = 2; 91 | } 92 | 93 | message LazyWriteDocumentsResponse { 94 | google.protobuf.Timestamp commit_time = 1; 95 | } 96 | 97 | message BeginTransactionRequest { 98 | } 99 | 100 | message BeginTransactionResponse { 101 | bytes transaction = 1; 102 | } 103 | 104 | message CommitTransactionRequest { 105 | repeated WriteOperation write_operations = 1; 106 | repeated DefermentOperation deferment_operations = 2; 107 | bytes transaction = 3; 108 | } 109 | 110 | message CommitTransactionResponse { 111 | repeated WriteResult write_results = 1; 112 | google.protobuf.Timestamp commit_time = 2; 113 | } 114 | 115 | message RollbackTransactionRequest { 116 | bytes transaction = 1; 117 | } 118 | 119 | message KeepUserSessionRequest { 120 | string name = 1; 121 | oneof request_type { 122 | string echo = 2; 123 | UpdateTargetRequest update_target = 3; 124 | DeleteTargetRequest delete_target = 4; 125 | } 126 | } 127 | 128 | message KeepUserSessionResponse { 129 | oneof response_type { 130 | string echo = 1; 131 | DocumentChange document_change = 2; 132 | TargetChange target_change = 3; 133 | } 134 | } 135 | 136 | message UpdateTargetRequest { 137 | Target target = 1; 138 | } 139 | 140 | message DeleteTargetRequest { 141 | string name = 1; 142 | } 143 | 144 | service Gamesync { 145 | rpc IssueToken(IssueTokenRequest) returns (IssueTokenResponse); 146 | rpc RefreshToken(RefreshTokenRequest) returns (RefreshTokenResponse); 147 | rpc GetDocument(GetDocumentRequest) returns (Document); 148 | rpc ReadDocuments(ReadDocumentsRequest) returns (ReadDocumentsResponse); 149 | rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse); 150 | rpc QueryCollectionIds(QueryCollectionIdsRequest) returns (QueryCollectionIdsResponse); 151 | rpc WriteDocuments(WriteDocumentsRequest) returns (WriteDocumentsResponse); 152 | rpc LazyWriteDocuments(LazyWriteDocumentsRequest) returns (LazyWriteDocumentsResponse); 153 | rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse); 154 | rpc CommitTransaction(CommitTransactionRequest) returns (CommitTransactionResponse); 155 | rpc RollbackTransaction(RollbackTransactionRequest) returns (google.protobuf.Empty); 156 | rpc KeepUserSession(stream KeepUserSessionRequest) returns (stream KeepUserSessionResponse); 157 | // rpc CreateRound; 158 | } 159 | -------------------------------------------------------------------------------- /0.20.x/proto/matchmaking/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/descriptor.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "google/protobuf/timestamp.proto"; 11 | import "proto/common/resources.proto"; 12 | import "proto/common/value.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 15 | option cc_enable_arenas = true; 16 | 17 | extend google.protobuf.FileOptions { 18 | bool imported = 50005; 19 | } 20 | 21 | enum DelegationAction { 22 | DELEGATION_ACTION_UNSPECIFIED = 0; 23 | ANY_PARTICIPATION = 1; 24 | ACCEPTION = 2; 25 | INCLUDE_ID_TOKEN_FOR_SAME_CLIENT = 3; 26 | } 27 | 28 | message GameSessionCreationTicket { 29 | enum State { 30 | STATE_UNSPECIFIED = 0; 31 | PENDING = 1; 32 | SUCCEEDED = 2; 33 | CANCELLED = 3; 34 | TIMED_OUT = 4; 35 | FAILED = 5; 36 | } 37 | 38 | string name = 1; 39 | string matchmaking_config = 2; 40 | repeated UserDefinition user_definitions = 3; 41 | State state = 4; 42 | repeated MatchedUserSession matched_user_sessions = 5; 43 | GameSession game_session = 6; 44 | } 45 | 46 | message UserDelegationDetail { 47 | string delegator_user = 1; 48 | string mandatary_user = 2; 49 | nn.npln.common.MapValue attributes = 3; 50 | repeated DelegationAction delegation_actions = 4; 51 | string user_delegation_token = 5; 52 | google.protobuf.Duration ttl = 6; 53 | } 54 | 55 | message UserSession { 56 | enum State { 57 | STATE_UNSPECIFIED = 0; 58 | RESERVED = 1; 59 | ACTIVE = 2; 60 | } 61 | 62 | string name = 1; 63 | string user = 2; 64 | LatencyData latency_data = 3; 65 | google.protobuf.Timestamp create_time = 4; 66 | State state = 5; 67 | string team = 6; 68 | nn.npln.common.MapValue attributes = 7; 69 | } 70 | 71 | message GameSessionShortAlias { 72 | string name = 1; 73 | string game_session = 2; 74 | google.protobuf.Timestamp expire_time = 3; 75 | } 76 | 77 | message MatchmakingTicket { 78 | enum State { 79 | STATE_UNSPECIFIED = 0; 80 | SEARCHING = 1; 81 | PLACING = 2; 82 | SUCCEEDED = 3; 83 | TIMED_OUT = 4; 84 | FAILED = 5; 85 | CANCELLED = 6; 86 | REQUIRING_ACCEPTANCE = 7; 87 | DECLINED = 8; 88 | } 89 | 90 | string name = 1; 91 | string matchmaking_config = 2; 92 | Backfill backfill = 3; 93 | repeated UserDefinition user_definitions = 4; 94 | State state = 5; 95 | repeated MatchedUserSession matched_user_sessions = 6; 96 | GameSession game_session = 7; 97 | } 98 | 99 | message Backfill { 100 | string game_session = 1; 101 | string host = 2; 102 | int32 port = 3; 103 | } 104 | 105 | message GameSession { 106 | enum State { 107 | STATE_UNSPECIFIED = 0; 108 | CREATING = 1; 109 | ACTIVE = 2; 110 | TERMINATING = 3; 111 | TERMINATED = 4; 112 | } 113 | 114 | string name = 1; 115 | int32 max_participant_count = 2; 116 | int32 current_participant_count = 3; 117 | bool can_participate = 4; 118 | bool is_public = 5; 119 | string password = 6; 120 | State state = 7; 121 | string host = 8; 122 | int32 port = 9; 123 | google.protobuf.Timestamp create_time = 10; 124 | nn.npln.common.MapValue properties = 11; 125 | repeated UserSession user_sessions = 12; 126 | } 127 | 128 | message MatchedUserSession { 129 | UserDefinition user_definition = 1; 130 | string user_session = 2; 131 | string matchmaking_id_token = 3; 132 | } 133 | 134 | message UserDefinition { 135 | string user = 1; 136 | nn.npln.common.MapValue attributes = 2; 137 | LatencyData latency_data = 3; 138 | string team = 4; 139 | } 140 | 141 | message LatencyData { 142 | map latencies = 1; 143 | } 144 | 145 | message Acceptance { 146 | string name = 1; 147 | repeated string users = 2; 148 | bool accepted = 3; 149 | repeated string user_delegation_tokens = 4; 150 | } 151 | 152 | message IceServerSet { 153 | string name = 1; 154 | StunServer stun_server = 2; 155 | repeated TurnServer turn_servers = 3; 156 | google.protobuf.Duration ttl = 4; 157 | google.protobuf.Timestamp update_time = 5; 158 | google.protobuf.Duration client_cache_duration = 6; 159 | } 160 | 161 | message StunServer { 162 | enum Protocol { 163 | PROTOCOL_UNSPECIFIED = 0; 164 | UDP = 1; 165 | TCP = 2; 166 | TLS = 3; 167 | } 168 | 169 | string host = 1; 170 | int32 port = 2; 171 | Protocol protocol = 3; 172 | } 173 | 174 | message TurnServer { 175 | enum Protocol { 176 | PROTOCOL_UNSPECIFIED = 0; 177 | UDP = 1; 178 | TCP = 2; 179 | TLS = 3; 180 | } 181 | 182 | string host = 1; 183 | int32 port = 2; 184 | Protocol protocol = 3; 185 | string username = 4; 186 | string password = 5; 187 | } 188 | 189 | message LatencyMeasurementServer { 190 | enum Protocol { 191 | PROTOCOL_UNSPECIFIED = 0; 192 | UDP = 1; 193 | TCP = 2; 194 | HTTP = 3; 195 | } 196 | 197 | string name = 1; 198 | string region = 2; 199 | string host = 3; 200 | int32 port = 4; 201 | Protocol protocol = 5; 202 | } 203 | -------------------------------------------------------------------------------- /0.21.x/proto/matchmaking/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/descriptor.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "google/protobuf/timestamp.proto"; 11 | import "proto/common/resources.proto"; 12 | import "proto/common/value.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 15 | option cc_enable_arenas = true; 16 | 17 | extend google.protobuf.FileOptions { 18 | bool imported = 50005; 19 | } 20 | 21 | enum DelegationAction { 22 | DELEGATION_ACTION_UNSPECIFIED = 0; 23 | ANY_PARTICIPATION = 1; 24 | ACCEPTION = 2; 25 | INCLUDE_ID_TOKEN_FOR_SAME_CLIENT = 3; 26 | } 27 | 28 | message GameSessionCreationTicket { 29 | enum State { 30 | STATE_UNSPECIFIED = 0; 31 | PENDING = 1; 32 | SUCCEEDED = 2; 33 | CANCELLED = 3; 34 | TIMED_OUT = 4; 35 | FAILED = 5; 36 | } 37 | 38 | string name = 1; 39 | string matchmaking_config = 2; 40 | repeated UserDefinition user_definitions = 3; 41 | State state = 4; 42 | repeated MatchedUserSession matched_user_sessions = 5; 43 | GameSession game_session = 6; 44 | } 45 | 46 | message UserDelegationDetail { 47 | string delegator_user = 1; 48 | string mandatary_user = 2; 49 | nn.npln.common.MapValue attributes = 3; 50 | repeated DelegationAction delegation_actions = 4; 51 | string user_delegation_token = 5; 52 | google.protobuf.Duration ttl = 6; 53 | } 54 | 55 | message UserSession { 56 | enum State { 57 | STATE_UNSPECIFIED = 0; 58 | RESERVED = 1; 59 | ACTIVE = 2; 60 | } 61 | 62 | string name = 1; 63 | string user = 2; 64 | LatencyData latency_data = 3; 65 | google.protobuf.Timestamp create_time = 4; 66 | State state = 5; 67 | string team = 6; 68 | nn.npln.common.MapValue attributes = 7; 69 | } 70 | 71 | message GameSessionShortAlias { 72 | string name = 1; 73 | string game_session = 2; 74 | google.protobuf.Timestamp expire_time = 3; 75 | } 76 | 77 | message MatchmakingTicket { 78 | enum State { 79 | STATE_UNSPECIFIED = 0; 80 | SEARCHING = 1; 81 | PLACING = 2; 82 | SUCCEEDED = 3; 83 | TIMED_OUT = 4; 84 | FAILED = 5; 85 | CANCELLED = 6; 86 | REQUIRING_ACCEPTANCE = 7; 87 | DECLINED = 8; 88 | } 89 | 90 | string name = 1; 91 | string matchmaking_config = 2; 92 | Backfill backfill = 3; 93 | repeated UserDefinition user_definitions = 4; 94 | State state = 5; 95 | repeated MatchedUserSession matched_user_sessions = 6; 96 | GameSession game_session = 7; 97 | } 98 | 99 | message Backfill { 100 | string game_session = 1; 101 | string host = 2; 102 | int32 port = 3; 103 | } 104 | 105 | message GameSession { 106 | enum State { 107 | STATE_UNSPECIFIED = 0; 108 | CREATING = 1; 109 | ACTIVE = 2; 110 | TERMINATING = 3; 111 | TERMINATED = 4; 112 | } 113 | 114 | string name = 1; 115 | int32 max_participant_count = 2; 116 | int32 current_participant_count = 3; 117 | bool can_participate = 4; 118 | bool is_public = 5; 119 | string password = 6; 120 | State state = 7; 121 | string host = 8; 122 | int32 port = 9; 123 | google.protobuf.Timestamp create_time = 10; 124 | nn.npln.common.MapValue properties = 11; 125 | repeated UserSession user_sessions = 12; 126 | } 127 | 128 | message MatchedUserSession { 129 | UserDefinition user_definition = 1; 130 | string user_session = 2; 131 | string matchmaking_id_token = 3; 132 | } 133 | 134 | message UserDefinition { 135 | string user = 1; 136 | nn.npln.common.MapValue attributes = 2; 137 | LatencyData latency_data = 3; 138 | string team = 4; 139 | } 140 | 141 | message LatencyData { 142 | map latencies = 1; 143 | } 144 | 145 | message Acceptance { 146 | string name = 1; 147 | repeated string users = 2; 148 | bool accepted = 3; 149 | repeated string user_delegation_tokens = 4; 150 | } 151 | 152 | message IceServerSet { 153 | string name = 1; 154 | StunServer stun_server = 2; 155 | repeated TurnServer turn_servers = 3; 156 | google.protobuf.Duration ttl = 4; 157 | google.protobuf.Timestamp update_time = 5; 158 | google.protobuf.Duration client_cache_duration = 6; 159 | } 160 | 161 | message StunServer { 162 | enum Protocol { 163 | PROTOCOL_UNSPECIFIED = 0; 164 | UDP = 1; 165 | TCP = 2; 166 | TLS = 3; 167 | } 168 | 169 | string host = 1; 170 | int32 port = 2; 171 | Protocol protocol = 3; 172 | } 173 | 174 | message TurnServer { 175 | enum Protocol { 176 | PROTOCOL_UNSPECIFIED = 0; 177 | UDP = 1; 178 | TCP = 2; 179 | TLS = 3; 180 | } 181 | 182 | string host = 1; 183 | int32 port = 2; 184 | Protocol protocol = 3; 185 | string username = 4; 186 | string password = 5; 187 | } 188 | 189 | message LatencyMeasurementServer { 190 | enum Protocol { 191 | PROTOCOL_UNSPECIFIED = 0; 192 | UDP = 1; 193 | TCP = 2; 194 | HTTP = 3; 195 | } 196 | 197 | string name = 1; 198 | string region = 2; 199 | string host = 3; 200 | int32 port = 4; 201 | Protocol protocol = 5; 202 | } 203 | -------------------------------------------------------------------------------- /latest/proto/matchmaking/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/resource.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/protobuf/descriptor.proto"; 9 | import "google/protobuf/duration.proto"; 10 | import "google/protobuf/timestamp.proto"; 11 | import "proto/common/resources.proto"; 12 | import "proto/common/value.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 15 | option cc_enable_arenas = true; 16 | 17 | extend google.protobuf.FileOptions { 18 | bool imported = 50005; 19 | } 20 | 21 | enum DelegationAction { 22 | DELEGATION_ACTION_UNSPECIFIED = 0; 23 | ANY_PARTICIPATION = 1; 24 | ACCEPTANCE = 2; 25 | INCLUDE_ID_TOKEN_FOR_SAME_CLIENT = 3; 26 | } 27 | 28 | message GameSessionCreationTicket { 29 | enum State { 30 | STATE_UNSPECIFIED = 0; 31 | PENDING = 1; 32 | SUCCEEDED = 2; 33 | CANCELLED = 3; 34 | TIMED_OUT = 4; 35 | FAILED = 5; 36 | } 37 | 38 | string name = 1; 39 | string matchmaking_config = 2; 40 | repeated UserDefinition user_definitions = 3; 41 | State state = 4; 42 | repeated MatchedUserSession matched_user_sessions = 5; 43 | GameSession game_session = 6; 44 | } 45 | 46 | message UserDelegationDetail { 47 | string delegator_user = 1; 48 | string mandatary_user = 2; 49 | nn.npln.common.MapValue attributes = 3; 50 | repeated DelegationAction delegation_actions = 4; 51 | string user_delegation_token = 5; 52 | google.protobuf.Duration ttl = 6; 53 | } 54 | 55 | message UserSession { 56 | enum State { 57 | STATE_UNSPECIFIED = 0; 58 | RESERVED = 1; 59 | ACTIVE = 2; 60 | } 61 | 62 | string name = 1; 63 | string user = 2; 64 | LatencyData latency_data = 3; 65 | google.protobuf.Timestamp create_time = 4; 66 | State state = 5; 67 | string team = 6; 68 | nn.npln.common.MapValue attributes = 7; 69 | } 70 | 71 | message GameSessionShortAlias { 72 | string name = 1; 73 | string game_session = 2; 74 | google.protobuf.Timestamp expire_time = 3; 75 | } 76 | 77 | message MatchmakingTicket { 78 | enum State { 79 | STATE_UNSPECIFIED = 0; 80 | SEARCHING = 1; 81 | PLACING = 2; 82 | SUCCEEDED = 3; 83 | TIMED_OUT = 4; 84 | FAILED = 5; 85 | CANCELLED = 6; 86 | REQUIRING_ACCEPTANCE = 7; 87 | DECLINED = 8; 88 | } 89 | 90 | string name = 1; 91 | string matchmaking_config = 2; 92 | Backfill backfill = 3; 93 | repeated UserDefinition user_definitions = 4; 94 | State state = 5; 95 | repeated MatchedUserSession matched_user_sessions = 6; 96 | GameSession game_session = 7; 97 | } 98 | 99 | message Backfill { 100 | string game_session = 1; 101 | string host = 2; 102 | int32 port = 3; 103 | } 104 | 105 | message GameSession { 106 | enum State { 107 | STATE_UNSPECIFIED = 0; 108 | CREATING = 1; 109 | ACTIVE = 2; 110 | TERMINATING = 3; 111 | TERMINATED = 4; 112 | } 113 | 114 | string name = 1; 115 | int32 max_participant_count = 2; 116 | int32 current_participant_count = 3; 117 | bool can_participate = 4; 118 | bool is_public = 5; 119 | string password = 6; 120 | State state = 7; 121 | string host = 8; 122 | int32 port = 9; 123 | google.protobuf.Timestamp create_time = 10; 124 | nn.npln.common.MapValue properties = 11; 125 | repeated UserSession user_sessions = 12; 126 | } 127 | 128 | message MatchedUserSession { 129 | UserDefinition user_definition = 1; 130 | string user_session = 2; 131 | string matchmaking_id_token = 3; 132 | } 133 | 134 | message UserDefinition { 135 | string user = 1; 136 | nn.npln.common.MapValue attributes = 2; 137 | LatencyData latency_data = 3; 138 | string team = 4; 139 | } 140 | 141 | message LatencyData { 142 | map latencies = 1; 143 | } 144 | 145 | message Acceptance { 146 | string name = 1; 147 | repeated string users = 2; 148 | bool accepted = 3; 149 | repeated string user_delegation_tokens = 4; 150 | } 151 | 152 | message IceServerSet { 153 | string name = 1; 154 | StunServer stun_server = 2; 155 | repeated TurnServer turn_servers = 3; 156 | google.protobuf.Duration ttl = 4; 157 | google.protobuf.Timestamp update_time = 5; 158 | google.protobuf.Duration client_cache_duration = 6; 159 | } 160 | 161 | message StunServer { 162 | enum Protocol { 163 | PROTOCOL_UNSPECIFIED = 0; 164 | UDP = 1; 165 | TCP = 2; 166 | TLS = 3; 167 | } 168 | 169 | string host = 1; 170 | int32 port = 2; 171 | Protocol protocol = 3; 172 | } 173 | 174 | message TurnServer { 175 | enum Protocol { 176 | PROTOCOL_UNSPECIFIED = 0; 177 | UDP = 1; 178 | TCP = 2; 179 | TLS = 3; 180 | } 181 | 182 | string host = 1; 183 | int32 port = 2; 184 | Protocol protocol = 3; 185 | string username = 4; 186 | string password = 5; 187 | } 188 | 189 | message LatencyMeasurementServer { 190 | enum Protocol { 191 | PROTOCOL_UNSPECIFIED = 0; 192 | UDP = 1; 193 | TCP = 2; 194 | HTTP = 3; 195 | } 196 | 197 | string name = 1; 198 | string region = 2; 199 | string host = 3; 200 | int32 port = 4; 201 | Protocol protocol = 5; 202 | } 203 | -------------------------------------------------------------------------------- /0.20.x/proto/matchmaking/v1/game_session_service.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/empty.proto"; 10 | import "proto/common/resources.proto"; 11 | import "proto/common/value.proto"; 12 | import "proto/matchmaking/v1/resources.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 15 | option cc_enable_arenas = true; 16 | 17 | enum GameSessionView { 18 | GAME_SESSION_VIEW_UNSPECIFIED = 0; 19 | BASIC = 1; 20 | FULL = 2; 21 | } 22 | 23 | message CreateGameSessionCreationTicketRequest { 24 | string parent = 1; 25 | GameSessionCreationTicket game_session_creation_ticket = 2; 26 | repeated string user_delegation_tokens = 3; 27 | } 28 | 29 | message TrackGameSessionCreationTicketRequest { 30 | string name = 1; 31 | repeated string user_delegation_tokens = 2; 32 | repeated string include_id_token_users = 3; 33 | } 34 | 35 | message CancelGameSessionCreationTicketRequest { 36 | string name = 1; 37 | } 38 | 39 | message GetGameSessionRequest { 40 | string name = 1; 41 | GameSessionView view = 2; 42 | } 43 | 44 | message BatchGetGameSessionsRequest { 45 | string parent = 1; 46 | repeated string names = 2; 47 | GameSessionView view = 3; 48 | } 49 | 50 | message BatchGetGameSessionsResponse { 51 | repeated GameSession game_sessions = 1; 52 | } 53 | 54 | message QueryGameSessionsRequest { 55 | string tenant = 1; 56 | GameSessionView view = 2; 57 | string game_session_search_config = 3; 58 | int32 min_vacancy_count = 4; 59 | int32 min_participant_count = 5; 60 | nn.npln.common.MapValue properties = 6; 61 | repeated string users = 7; 62 | int32 page_size = 8; 63 | string page_token = 9; 64 | } 65 | 66 | message QueryGameSessionsResponse { 67 | repeated GameSession game_sessions = 1; 68 | string next_page_token = 2; 69 | } 70 | 71 | message JoinGameSessionRequest { 72 | string name = 1; 73 | string password = 2; 74 | repeated UserDefinition user_definitions = 3; 75 | repeated string user_delegation_tokens = 4; 76 | repeated string include_id_token_users = 5; 77 | } 78 | 79 | message JoinGameSessionResponse { 80 | repeated MatchedUserSession matched_user_sessions = 1; 81 | GameSession game_session = 2; 82 | } 83 | 84 | message SyncGameSessionRequest { 85 | GameSession game_session = 1; 86 | } 87 | 88 | message SyncGameSessionResponse { 89 | repeated UserSession user_sessions = 1; 90 | } 91 | 92 | message ListUserSessionsRequest { 93 | string parent = 1; 94 | int32 page_size = 2; 95 | string page_token = 3; 96 | } 97 | 98 | message ListUserSessionsResponse { 99 | repeated UserSession user_sessions = 1; 100 | string next_page_token = 2; 101 | } 102 | 103 | message GetUserSessionRequest { 104 | string name = 1; 105 | } 106 | 107 | message IssueMatchmakingIdTokenRequest { 108 | string game_session = 1; 109 | repeated string users = 2; 110 | repeated string user_delegation_tokens = 3; 111 | repeated string include_id_token_users = 4; 112 | } 113 | 114 | message IssueMatchmakingIdTokenResponse { 115 | repeated MatchedUserSession matched_user_sessions = 1; 116 | GameSession game_session = 2; 117 | } 118 | 119 | message IssuePublicKeyRequest { 120 | string parent = 1; 121 | } 122 | 123 | message IssuePublicKeyResponse { 124 | string key = 1; 125 | } 126 | 127 | message IssueUserDelegationTokenRequest { 128 | string parent = 1; 129 | string delegator_user = 2; 130 | string mandatary_user = 3; 131 | nn.npln.common.MapValue attributes = 4; 132 | repeated DelegationAction delegation_actions = 5; 133 | } 134 | 135 | message IssueUserDelegationTokenResponse { 136 | UserDelegationDetail user_delegation_detail = 1; 137 | } 138 | 139 | message CreateGameSessionShortAliasRequest { 140 | string parent = 1; 141 | GameSessionShortAlias game_session_short_alias = 2; 142 | } 143 | 144 | message GetGameSessionShortAliasRequest { 145 | string name = 1; 146 | } 147 | 148 | message AllocateIceServerSetRequest { 149 | string tenant = 1; 150 | string user = 2; 151 | } 152 | 153 | message ListLatencyMeasurementServersRequest { 154 | string parent = 1; 155 | int32 page_size = 2; 156 | string page_token = 3; 157 | } 158 | 159 | message ListLatencyMeasurementServersResponse { 160 | repeated LatencyMeasurementServer latency_measurement_servers = 1; 161 | string next_page_token = 2; 162 | } 163 | 164 | service GameSessionService { 165 | rpc CreateGameSessionCreationTicket(CreateGameSessionCreationTicketRequest) returns (GameSessionCreationTicket); 166 | rpc TrackGameSessionCreationTicket(TrackGameSessionCreationTicketRequest) returns (stream GameSessionCreationTicket); 167 | rpc CancelGameSessionCreationTicket(CancelGameSessionCreationTicketRequest) returns (google.protobuf.Empty); 168 | rpc GetGameSession(GetGameSessionRequest) returns (GameSession); 169 | rpc BatchGetGameSessions(BatchGetGameSessionsRequest) returns (BatchGetGameSessionsResponse); 170 | rpc QueryGameSessions(QueryGameSessionsRequest) returns (QueryGameSessionsResponse); 171 | rpc JoinGameSession(JoinGameSessionRequest) returns (JoinGameSessionResponse); 172 | rpc SyncGameSession(SyncGameSessionRequest) returns (SyncGameSessionResponse); 173 | rpc ListUserSessions(ListUserSessionsRequest) returns (ListUserSessionsResponse); 174 | rpc GetUserSession(GetUserSessionRequest) returns (UserSession); 175 | rpc IssueMatchmakingIdToken(IssueMatchmakingIdTokenRequest) returns (IssueMatchmakingIdTokenResponse); 176 | rpc IssueUserDelegationToken(IssueUserDelegationTokenRequest) returns (IssueUserDelegationTokenResponse); 177 | rpc IssuePublicKey(IssuePublicKeyRequest) returns (IssuePublicKeyResponse); 178 | rpc CreateGameSessionShortAlias(CreateGameSessionShortAliasRequest) returns (GameSessionShortAlias); 179 | rpc GetGameSessionShortAlias(GetGameSessionShortAliasRequest) returns (GameSessionShortAlias); 180 | rpc AllocateIceServerSet(AllocateIceServerSetRequest) returns (IceServerSet); 181 | rpc ListLatencyMeasurementServers(ListLatencyMeasurementServersRequest) returns (ListLatencyMeasurementServersResponse); 182 | } 183 | -------------------------------------------------------------------------------- /latest/proto/toyohr/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.toyohr.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | import "proto/common/value.proto"; 8 | 9 | message BankaraChallenge { 10 | string name = 1; 11 | nn.npln.common.MapValue fields = 2; 12 | google.protobuf.Timestamp create_time = 3; 13 | google.protobuf.Timestamp update_time = 4; 14 | string document = 5; 15 | } 16 | 17 | message BankaraSettings { 18 | int32 rule = 1; 19 | repeated int32 stages = 2; 20 | nn.npln.common.MapValue attributes = 3; 21 | } 22 | 23 | message CoopScenarioCode { 24 | string name = 1; 25 | } 26 | 27 | message CoopSchedule { 28 | message Normal { 29 | int32 stage = 1; 30 | string boss = 2; 31 | repeated int64 main_weapons = 3; 32 | int32 kuma_weapon = 4; 33 | string reward_type = 5; 34 | int32 reward_gear_id = 6; 35 | nn.npln.common.MapValue attributes = 7; 36 | } 37 | 38 | message BigRun { 39 | int32 unk1 = 1; 40 | int32 stage = 2; 41 | string boss = 3; 42 | repeated int64 main_weapons = 4; 43 | int32 kuma_weapon = 5; 44 | string reward_type = 6; 45 | int32 reward_gear_id = 7; 46 | repeated int64 rewards = 8; 47 | nn.npln.common.MapValue attributes = 9; 48 | } 49 | 50 | string name = 1; 51 | int32 unk = 2; 52 | string schedule_set_id = 3; 53 | google.protobuf.Timestamp start_time = 4; 54 | google.protobuf.Timestamp end_time = 5; 55 | Normal normal = 6; 56 | BigRun big_run = 7; 57 | string shift_id = 9; 58 | google.protobuf.Timestamp timestamp = 10; 59 | } 60 | 61 | message FestDecryptionKey { 62 | string name = 1; 63 | string notice_key = 2; 64 | string start_key = 3; 65 | string result_winning_team_key = 4; 66 | string team_alpha_key = 5; 67 | string team_bravo_key = 6; 68 | string team_charlie_key = 7; 69 | string winning_team = 8; 70 | } 71 | 72 | message FestEntry { 73 | string name = 1; 74 | string fest_team = 2; 75 | string fest_region = 3; 76 | } 77 | 78 | message FestPowerMeasurement { 79 | string name = 1; 80 | nn.npln.common.MapValue fields = 2; 81 | google.protobuf.Timestamp create_time = 3; 82 | google.protobuf.Timestamp update_time = 4; 83 | string document = 5; 84 | } 85 | 86 | message FestPublishment { 87 | google.protobuf.Timestamp start_time = 1; 88 | google.protobuf.Timestamp end_time = 2; 89 | } 90 | 91 | message FestResult { 92 | string name = 1; 93 | YobisaiResult yobisai = 2; 94 | HonsaiMidtermResult honsai_midterm = 3; 95 | HonsaiFinalResult honsai_final = 4; 96 | OverallResult overall = 5; 97 | } 98 | 99 | message FestSchedule { 100 | string name = 1; 101 | string fest = 2; 102 | repeated string fest_regions = 3; 103 | string target = 4; 104 | string fest_game_data = 5; 105 | string fest_game_data_revision = 6; 106 | FestTimetable timetable = 7; 107 | map fest_publishments = 8; 108 | nn.npln.common.MapValue attributes = 9; 109 | } 110 | 111 | message FestTeamPoint { 112 | string fest_team = 1; 113 | int64 points = 2; 114 | } 115 | 116 | message FestTeamRatio { 117 | string fest_team = 1; 118 | double ratio = 2; 119 | } 120 | 121 | message FestTimetable { 122 | google.protobuf.Timestamp open_time = 1; 123 | google.protobuf.Timestamp start_time = 2; 124 | google.protobuf.Timestamp mid_time = 3; 125 | google.protobuf.Timestamp end_time = 4; 126 | google.protobuf.Timestamp close_time = 5; 127 | } 128 | 129 | message HonsaiFinalResult { 130 | bool is_valid = 1; 131 | repeated FestTeamRatio team_ratios1 = 2; 132 | repeated FestTeamRatio team_ratios2 = 3; 133 | repeated FestTeamRatio team_ratios3 = 4; 134 | } 135 | 136 | message HonsaiMidtermResult { 137 | bool is_valid = 1; 138 | repeated FestTeamRatio team_ratios = 2; 139 | } 140 | 141 | message LeagueSettings { 142 | int32 unk1 = 1; 143 | int32 rule = 2; 144 | repeated int32 stages = 3; 145 | nn.npln.common.MapValue unk4 = 4; 146 | nn.npln.common.MapValue unk5 = 5; 147 | } 148 | 149 | message MessageBody { 150 | string message_request_id = 1; 151 | nn.npln.common.MapValue fields = 2; 152 | string message_type = 3; 153 | } 154 | 155 | message OverallResult { 156 | bool is_valid = 1; 157 | repeated FestTeamPoint points = 2; 158 | nn.npln.common.MapValue weights = 3; 159 | } 160 | 161 | message RegularSettings { 162 | repeated int32 stages = 1; 163 | nn.npln.common.MapValue attributes = 2; 164 | } 165 | 166 | message ReplayCode { 167 | string name = 1; 168 | string document = 2; 169 | google.protobuf.Timestamp timestamp = 3; 170 | } 171 | 172 | message Report { 173 | string name = 1; 174 | string category = 2; 175 | string reason = 3; 176 | string language_code = 4; 177 | google.protobuf.Timestamp create_time = 5; 178 | string screening_target = 6; 179 | double weight = 7; 180 | nn.npln.common.MapValue context = 8; 181 | string screening_target_type = 9; 182 | } 183 | 184 | message SaveRecord { 185 | string name = 1; 186 | nn.npln.common.MapValue save_data = 2; 187 | google.protobuf.Timestamp create_time = 3; 188 | google.protobuf.Timestamp update_time = 4; 189 | } 190 | 191 | message SeasonSchedule { 192 | string name = 1; 193 | int32 unk2 = 2; 194 | int32 unk3 = 3; 195 | google.protobuf.Timestamp start_time = 4; 196 | google.protobuf.Timestamp end_time = 5; 197 | nn.npln.common.MapValue attributes = 6; 198 | string schedule_set_id = 7; 199 | } 200 | 201 | message VsParams { 202 | string name = 1; 203 | google.protobuf.Timestamp timestamp1 = 2; 204 | google.protobuf.Timestamp timestamp2 = 3; 205 | nn.npln.common.MapValue attributes = 4; 206 | string params_set_id = 5; 207 | } 208 | 209 | message VsSchedule { 210 | string name = 1; 211 | google.protobuf.Timestamp start_time = 2; 212 | google.protobuf.Timestamp end_time = 3; 213 | RegularSettings regular_settings = 4; 214 | repeated BankaraSettings bankara_settings = 5; 215 | XSettings x_settings = 6; 216 | LeagueSettings league_settings = 7; 217 | string schedule_set_id = 8; 218 | } 219 | 220 | message XSettings { 221 | int32 rule = 1; 222 | repeated int32 stages = 2; 223 | nn.npln.common.MapValue attributes = 3; 224 | } 225 | 226 | message YobisaiResult { 227 | bool is_valid = 1; 228 | repeated FestTeamRatio team_ratios = 2; 229 | } 230 | -------------------------------------------------------------------------------- /0.21.x/proto/matchmaking/v1/game_session_service.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/empty.proto"; 10 | import "proto/common/resources.proto"; 11 | import "proto/common/value.proto"; 12 | import "proto/matchmaking/v1/resources.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 15 | option cc_enable_arenas = true; 16 | 17 | enum GameSessionView { 18 | GAME_SESSION_VIEW_UNSPECIFIED = 0; 19 | BASIC = 1; 20 | FULL = 2; 21 | USER_SESSION_BASIC = 3; 22 | } 23 | 24 | message CreateGameSessionCreationTicketRequest { 25 | string parent = 1; 26 | GameSessionCreationTicket game_session_creation_ticket = 2; 27 | repeated string user_delegation_tokens = 3; 28 | } 29 | 30 | message TrackGameSessionCreationTicketRequest { 31 | string name = 1; 32 | repeated string user_delegation_tokens = 2; 33 | repeated string include_id_token_users = 3; 34 | } 35 | 36 | message CancelGameSessionCreationTicketRequest { 37 | string name = 1; 38 | } 39 | 40 | message GetGameSessionRequest { 41 | string name = 1; 42 | GameSessionView view = 2; 43 | } 44 | 45 | message BatchGetGameSessionsRequest { 46 | string parent = 1; 47 | repeated string names = 2; 48 | GameSessionView view = 3; 49 | } 50 | 51 | message BatchGetGameSessionsResponse { 52 | repeated GameSession game_sessions = 1; 53 | } 54 | 55 | message QueryGameSessionsRequest { 56 | string tenant = 1; 57 | GameSessionView view = 2; 58 | string game_session_search_config = 3; 59 | int32 min_vacancy_count = 4; 60 | int32 min_participant_count = 5 [deprecated=true]; 61 | nn.npln.common.MapValue properties = 6; 62 | repeated string users = 7; 63 | int32 page_size = 8; 64 | string page_token = 9; 65 | } 66 | 67 | message QueryGameSessionsResponse { 68 | repeated GameSession game_sessions = 1; 69 | string next_page_token = 2; 70 | } 71 | 72 | message JoinGameSessionRequest { 73 | string name = 1; 74 | string password = 2; 75 | repeated UserDefinition user_definitions = 3; 76 | repeated string user_delegation_tokens = 4; 77 | repeated string include_id_token_users = 5; 78 | } 79 | 80 | message JoinGameSessionResponse { 81 | repeated MatchedUserSession matched_user_sessions = 1; 82 | GameSession game_session = 2; 83 | } 84 | 85 | message SyncGameSessionRequest { 86 | GameSession game_session = 1; 87 | bool keep_alive_only = 2; 88 | } 89 | 90 | message SyncGameSessionResponse { 91 | repeated UserSession user_sessions = 1; 92 | } 93 | 94 | message ListUserSessionsRequest { 95 | string parent = 1; 96 | int32 page_size = 2; 97 | string page_token = 3; 98 | } 99 | 100 | message ListUserSessionsResponse { 101 | repeated UserSession user_sessions = 1; 102 | string next_page_token = 2; 103 | } 104 | 105 | message GetUserSessionRequest { 106 | string name = 1; 107 | } 108 | 109 | message IssueMatchmakingIdTokenRequest { 110 | string game_session = 1; 111 | repeated string users = 2; 112 | repeated string user_delegation_tokens = 3; 113 | repeated string include_id_token_users = 4; 114 | } 115 | 116 | message IssueMatchmakingIdTokenResponse { 117 | repeated MatchedUserSession matched_user_sessions = 1; 118 | GameSession game_session = 2; 119 | } 120 | 121 | message IssuePublicKeyRequest { 122 | string parent = 1; 123 | } 124 | 125 | message IssuePublicKeyResponse { 126 | string key = 1; 127 | } 128 | 129 | message IssueUserDelegationTokenRequest { 130 | string parent = 1; 131 | string delegator_user = 2; 132 | string mandatary_user = 3; 133 | nn.npln.common.MapValue attributes = 4; 134 | repeated DelegationAction delegation_actions = 5; 135 | } 136 | 137 | message IssueUserDelegationTokenResponse { 138 | UserDelegationDetail user_delegation_detail = 1; 139 | } 140 | 141 | message CreateGameSessionShortAliasRequest { 142 | string parent = 1; 143 | GameSessionShortAlias game_session_short_alias = 2; 144 | } 145 | 146 | message GetGameSessionShortAliasRequest { 147 | string name = 1; 148 | } 149 | 150 | message AllocateIceServerSetRequest { 151 | string tenant = 1; 152 | string user = 2; 153 | } 154 | 155 | message ListLatencyMeasurementServersRequest { 156 | string parent = 1; 157 | int32 page_size = 2; 158 | string page_token = 3; 159 | } 160 | 161 | message ListLatencyMeasurementServersResponse { 162 | repeated LatencyMeasurementServer latency_measurement_servers = 1; 163 | string next_page_token = 2; 164 | } 165 | 166 | service GameSessionService { 167 | rpc CreateGameSessionCreationTicket(CreateGameSessionCreationTicketRequest) returns (GameSessionCreationTicket); 168 | rpc TrackGameSessionCreationTicket(TrackGameSessionCreationTicketRequest) returns (stream GameSessionCreationTicket); 169 | rpc CancelGameSessionCreationTicket(CancelGameSessionCreationTicketRequest) returns (google.protobuf.Empty); 170 | rpc GetGameSession(GetGameSessionRequest) returns (GameSession); 171 | rpc BatchGetGameSessions(BatchGetGameSessionsRequest) returns (BatchGetGameSessionsResponse); 172 | rpc QueryGameSessions(QueryGameSessionsRequest) returns (QueryGameSessionsResponse); 173 | rpc JoinGameSession(JoinGameSessionRequest) returns (JoinGameSessionResponse); 174 | rpc SyncGameSession(SyncGameSessionRequest) returns (SyncGameSessionResponse); 175 | rpc ListUserSessions(ListUserSessionsRequest) returns (ListUserSessionsResponse); 176 | rpc GetUserSession(GetUserSessionRequest) returns (UserSession); 177 | rpc IssueMatchmakingIdToken(IssueMatchmakingIdTokenRequest) returns (IssueMatchmakingIdTokenResponse); 178 | rpc IssueUserDelegationToken(IssueUserDelegationTokenRequest) returns (IssueUserDelegationTokenResponse); 179 | rpc IssuePublicKey(IssuePublicKeyRequest) returns (IssuePublicKeyResponse); 180 | rpc CreateGameSessionShortAlias(CreateGameSessionShortAliasRequest) returns (GameSessionShortAlias); 181 | rpc GetGameSessionShortAlias(GetGameSessionShortAliasRequest) returns (GameSessionShortAlias); 182 | rpc AllocateIceServerSet(AllocateIceServerSetRequest) returns (IceServerSet); 183 | rpc ListLatencyMeasurementServers(ListLatencyMeasurementServersRequest) returns (ListLatencyMeasurementServersResponse); 184 | } 185 | -------------------------------------------------------------------------------- /latest/proto/matchmaking/v1/game_session_service.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.matchmaking.v1; 5 | 6 | import "google/api/annotations.proto"; 7 | import "google/api/field_behavior.proto"; 8 | import "google/api/resource.proto"; 9 | import "google/protobuf/empty.proto"; 10 | import "proto/common/resources.proto"; 11 | import "proto/common/value.proto"; 12 | import "proto/matchmaking/v1/resources.proto"; 13 | 14 | option go_package = "npln.nintendo.net/npln-practice/proto/matchmaking/v1;matchmaking"; 15 | option cc_enable_arenas = true; 16 | 17 | enum GameSessionView { 18 | GAME_SESSION_VIEW_UNSPECIFIED = 0; 19 | BASIC = 1; 20 | FULL = 2; 21 | USER_SESSION_BASIC = 3; 22 | } 23 | 24 | message CreateGameSessionCreationTicketRequest { 25 | string parent = 1; 26 | GameSessionCreationTicket game_session_creation_ticket = 2; 27 | repeated string user_delegation_tokens = 3; 28 | } 29 | 30 | message TrackGameSessionCreationTicketRequest { 31 | string name = 1; 32 | repeated string user_delegation_tokens = 2; 33 | repeated string include_id_token_users = 3; 34 | } 35 | 36 | message CancelGameSessionCreationTicketRequest { 37 | string name = 1; 38 | } 39 | 40 | message GetGameSessionRequest { 41 | string name = 1; 42 | GameSessionView view = 2; 43 | } 44 | 45 | message BatchGetGameSessionsRequest { 46 | string parent = 1; 47 | repeated string names = 2; 48 | GameSessionView view = 3; 49 | } 50 | 51 | message BatchGetGameSessionsResponse { 52 | repeated GameSession game_sessions = 1; 53 | } 54 | 55 | message QueryGameSessionsRequest { 56 | string tenant = 1; 57 | GameSessionView view = 2; 58 | string game_session_search_config = 3; 59 | int32 min_vacancy_count = 4; 60 | int32 min_participant_count = 5 [deprecated=true]; 61 | nn.npln.common.MapValue properties = 6; 62 | repeated string users = 7; 63 | int32 page_size = 8; 64 | string page_token = 9; 65 | } 66 | 67 | message QueryGameSessionsResponse { 68 | repeated GameSession game_sessions = 1; 69 | string next_page_token = 2; 70 | } 71 | 72 | message JoinGameSessionRequest { 73 | string name = 1; 74 | string password = 2; 75 | repeated UserDefinition user_definitions = 3; 76 | repeated string user_delegation_tokens = 4; 77 | repeated string include_id_token_users = 5; 78 | } 79 | 80 | message JoinGameSessionResponse { 81 | repeated MatchedUserSession matched_user_sessions = 1; 82 | GameSession game_session = 2; 83 | } 84 | 85 | message SyncGameSessionRequest { 86 | GameSession game_session = 1; 87 | bool keep_alive_only = 2; 88 | } 89 | 90 | message SyncGameSessionResponse { 91 | repeated UserSession user_sessions = 1; 92 | } 93 | 94 | message ListUserSessionsRequest { 95 | string parent = 1; 96 | int32 page_size = 2; 97 | string page_token = 3; 98 | } 99 | 100 | message ListUserSessionsResponse { 101 | repeated UserSession user_sessions = 1; 102 | string next_page_token = 2; 103 | } 104 | 105 | message GetUserSessionRequest { 106 | string name = 1; 107 | } 108 | 109 | message IssueMatchmakingIdTokenRequest { 110 | string game_session = 1; 111 | repeated string users = 2; 112 | repeated string user_delegation_tokens = 3; 113 | repeated string include_id_token_users = 4; 114 | } 115 | 116 | message IssueMatchmakingIdTokenResponse { 117 | repeated MatchedUserSession matched_user_sessions = 1; 118 | GameSession game_session = 2; 119 | } 120 | 121 | message IssuePublicKeyRequest { 122 | string parent = 1; 123 | } 124 | 125 | message IssuePublicKeyResponse { 126 | string key = 1; 127 | } 128 | 129 | message IssueUserDelegationTokenRequest { 130 | string parent = 1; 131 | string delegator_user = 2; 132 | string mandatary_user = 3; 133 | nn.npln.common.MapValue attributes = 4; 134 | repeated DelegationAction delegation_actions = 5; 135 | } 136 | 137 | message IssueUserDelegationTokenResponse { 138 | UserDelegationDetail user_delegation_detail = 1; 139 | } 140 | 141 | message CreateGameSessionShortAliasRequest { 142 | string parent = 1; 143 | GameSessionShortAlias game_session_short_alias = 2; 144 | } 145 | 146 | message GetGameSessionShortAliasRequest { 147 | string name = 1; 148 | } 149 | 150 | message AllocateIceServerSetRequest { 151 | string tenant = 1; 152 | string user = 2; 153 | } 154 | 155 | message ListLatencyMeasurementServersRequest { 156 | string parent = 1; 157 | int32 page_size = 2; 158 | string page_token = 3; 159 | } 160 | 161 | message ListLatencyMeasurementServersResponse { 162 | repeated LatencyMeasurementServer latency_measurement_servers = 1; 163 | string next_page_token = 2; 164 | } 165 | 166 | service GameSessionService { 167 | rpc CreateGameSessionCreationTicket(CreateGameSessionCreationTicketRequest) returns (GameSessionCreationTicket); 168 | rpc TrackGameSessionCreationTicket(TrackGameSessionCreationTicketRequest) returns (stream GameSessionCreationTicket); 169 | rpc CancelGameSessionCreationTicket(CancelGameSessionCreationTicketRequest) returns (google.protobuf.Empty); 170 | rpc GetGameSession(GetGameSessionRequest) returns (GameSession); 171 | rpc BatchGetGameSessions(BatchGetGameSessionsRequest) returns (BatchGetGameSessionsResponse); 172 | rpc QueryGameSessions(QueryGameSessionsRequest) returns (QueryGameSessionsResponse); 173 | rpc JoinGameSession(JoinGameSessionRequest) returns (JoinGameSessionResponse); 174 | rpc SyncGameSession(SyncGameSessionRequest) returns (SyncGameSessionResponse); 175 | rpc ListUserSessions(ListUserSessionsRequest) returns (ListUserSessionsResponse); 176 | rpc GetUserSession(GetUserSessionRequest) returns (UserSession); 177 | rpc IssueMatchmakingIdToken(IssueMatchmakingIdTokenRequest) returns (IssueMatchmakingIdTokenResponse); 178 | rpc IssueUserDelegationToken(IssueUserDelegationTokenRequest) returns (IssueUserDelegationTokenResponse); 179 | rpc IssuePublicKey(IssuePublicKeyRequest) returns (IssuePublicKeyResponse); 180 | rpc CreateGameSessionShortAlias(CreateGameSessionShortAliasRequest) returns (GameSessionShortAlias); 181 | rpc GetGameSessionShortAlias(GetGameSessionShortAliasRequest) returns (GameSessionShortAlias); 182 | rpc AllocateIceServerSet(AllocateIceServerSetRequest) returns (IceServerSet); 183 | rpc ListLatencyMeasurementServers(ListLatencyMeasurementServersRequest) returns (ListLatencyMeasurementServersResponse); 184 | } 185 | -------------------------------------------------------------------------------- /latest/proto/timber/v1/resources.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.timber.v1; 5 | 6 | import "google/protobuf/timestamp.proto"; 7 | import "proto/common/value.proto"; 8 | 9 | enum CompetitionType { 10 | COMPETITION_TYPE_UNSPECIFIED = 0; 11 | OFFICIAL = 1; 12 | FRIENDLY = 2; 13 | RANKED_SINGLES = 3; 14 | RANKED_DOUBLES = 4; 15 | CASUAL = 5; 16 | } 17 | 18 | enum CompetitionUserCategory { 19 | COMPETITION_USER_CATEGORY_UNSPECIFIED = 0; 20 | JUNIOR = 1; 21 | SENIOR = 2; 22 | MASTER = 3; 23 | } 24 | 25 | enum CompetitionView { 26 | COMPETITION_VIEW_UNSPECIFIED = 0; 27 | BASIC = 1; 28 | FULL = 2; 29 | SMALL = 3; 30 | } 31 | 32 | message BattleDataLog { 33 | message BattleReport { 34 | string reporter = 1; 35 | repeated PersonalBattleResult personal_battle_results = 2; 36 | bytes log = 3; 37 | } 38 | 39 | string name = 1; 40 | string competition = 2; 41 | CompetitionType competition_type = 3; 42 | repeated PersonalBattleResult normalized_battle_results = 4; 43 | google.protobuf.Timestamp create_time = 5; 44 | repeated BattleReport battle_reports = 6; 45 | string matching_key = 7; 46 | } 47 | 48 | message Competition { 49 | enum MatchingKeyCreator { 50 | MATCHING_KEY_CREATOR_UNSPECIFIED = 0; 51 | SERVER = 1; 52 | OPERATOR = 2; 53 | } 54 | 55 | enum Permission { 56 | PERMISSION_UNSPECIFIED = 0; 57 | OWNER = 1; 58 | INVITEES = 2; 59 | ANYBODY = 3; 60 | } 61 | 62 | string name = 1; 63 | string competition_alias = 2; 64 | CompetitionType competition_type = 33; 65 | int32 season = 5; 66 | map main_titles = 6; 67 | map sub_titles = 7; 68 | Permission read_permission = 8; 69 | Permission write_permission = 9; 70 | bool searchable = 10; 71 | repeated int32 participant_areas = 11 [packed=true]; 72 | repeated CompetitionUserCategory participant_categories = 34 [packed=true]; 73 | string max_participant_birthmonth = 12; 74 | string min_participant_birthmonth = 13; 75 | int32 participant_count = 14; 76 | int32 max_participant_count = 15; 77 | int32 min_participant_count = 16; 78 | string matchmaking_config = 17; 79 | MatchingKeyCreator matching_key_creator = 18; 80 | repeated int32 matching_hours = 19 [packed=true]; 81 | int32 max_match_count = 20; 82 | int32 max_daily_match_count = 21; 83 | int32 required_match_count = 35; 84 | int32 maintenance = 22; 85 | bool explicit_finalization = 23; 86 | nn.npln.common.MapValue application_data = 24; 87 | google.protobuf.Timestamp create_time = 25; 88 | google.protobuf.Timestamp update_time = 36; 89 | google.protobuf.Timestamp start_participate_time = 26; 90 | google.protobuf.Timestamp end_participate_time = 27; 91 | google.protobuf.Timestamp start_battle_time = 28; 92 | google.protobuf.Timestamp end_battle_time = 29; 93 | google.protobuf.Timestamp aggregate_time = 30; 94 | google.protobuf.Timestamp finalize_time = 31; 95 | string owner_participant = 32; 96 | } 97 | 98 | message CompetitionAlias { 99 | string name = 1; 100 | string competition = 2; 101 | } 102 | 103 | message CompetitionAlternativeResult { 104 | string name = 1; 105 | int32 rank = 2; 106 | string etag = 99; 107 | } 108 | 109 | message CompetitionInvitation { 110 | enum InviteeType { 111 | INVITEE_TYPE_UNSPECIFIED = 0; 112 | PLAYER = 1; 113 | SPECTATOR = 2; 114 | } 115 | 116 | string name = 1; 117 | InviteeType invitee_type = 2; 118 | google.protobuf.Timestamp create_time = 3; 119 | } 120 | 121 | message CompetitionNotification { 122 | message CompetitionInvalidNotification {} 123 | message CompetitionEliminationNotification {} 124 | message CompetitionScheduleNotification { 125 | google.protobuf.Timestamp start_battle_time = 1; 126 | } 127 | 128 | string name = 1; 129 | google.protobuf.Timestamp update_time = 2; 130 | string etag = 99; 131 | oneof notification { 132 | CompetitionInvalidNotification invalid = 3; 133 | string matching_key = 4; 134 | CompetitionScheduleNotification schedule = 5; 135 | CompetitionEliminationNotification elimination = 6; 136 | } 137 | } 138 | 139 | message CompetitionParticipant { 140 | enum State { 141 | STATE_UNSPECIFIED = 0; 142 | ACCEPTED = 1; 143 | ACTIVE = 2; 144 | INACTIVE = 3; 145 | CANCELLED = 4; 146 | DELETED = 5; 147 | } 148 | 149 | string name = 1; 150 | int32 slot = 2; 151 | string device_id = 3; 152 | string utc_offset = 4; 153 | bytes participant_binary = 5; 154 | State state = 6; 155 | google.protobuf.Timestamp create_time = 7; 156 | google.protobuf.Timestamp activate_time = 8; 157 | google.protobuf.Timestamp deactivate_time = 9; 158 | google.protobuf.Timestamp cancel_time = 10; 159 | google.protobuf.Timestamp delete_time = 11; 160 | bool finalized = 12; 161 | int32 rating = 13; 162 | int32 rank = 14; 163 | int32 match_count = 15; 164 | int32 win_count = 16; 165 | int32 lose_count = 17; 166 | int32 draw_count = 18; 167 | int32 disconnect_count = 19; 168 | int32 no_contest_count = 20; 169 | int32 win_streak_count = 21; 170 | int32 lose_streak_count = 22; 171 | int32 point = 23; 172 | int32 max_point = 24; 173 | CompetitionUserCategory category = 25; 174 | int32 area = 26; 175 | } 176 | 177 | message CompetitionUser { 178 | message BattleStats { 179 | int32 battle_count = 1; 180 | int32 disconnect_count = 2; 181 | } 182 | 183 | string name = 1; 184 | CompetitionUserCategory category = 14; 185 | string birthmonth = 2; 186 | int32 area = 3; 187 | string language_code = 4; 188 | string current_official_competition = 5; 189 | string last_official_competition = 6; 190 | string current_friendly_competition = 7; 191 | string last_friendly_competition = 8; 192 | string current_ranked_singles_competition = 15; 193 | string last_ranked_singles_competition = 16; 194 | string current_ranked_doubles_competition = 17; 195 | string last_ranked_doubles_competition = 18; 196 | BattleStats battle_stats = 13; 197 | google.protobuf.Timestamp create_time = 19; 198 | } 199 | 200 | message CompetitionUserBattleRecord { 201 | string name = 1; 202 | bool disconnect = 2; 203 | } 204 | 205 | message PersonalBattleResult { 206 | enum Result { 207 | BATTLE_LOSE = 0; 208 | BATTLE_WIN = 1; 209 | BATTLE_DRAW = 2; 210 | BATTLE_NO_CONTEST = 3; 211 | } 212 | 213 | enum Behavior { 214 | BEHAVIOR_SUCCESSFUL = 0; 215 | BEHAVIOR_DISCONNECTED = 1; 216 | BEHAVIOR_CHEATED = 2; 217 | BEHAVIOR_DISCONNECTED_AND_CHEATED = 3; 218 | BEHAVIOR_NO_CONTEST = 4; 219 | } 220 | 221 | string user = 1; 222 | Result result = 2; 223 | Behavior behavior = 3; 224 | } 225 | 226 | message TradeBox { 227 | enum State { 228 | STATE_UNSPECIFIED = 0; 229 | TRADING = 1; 230 | TRADED = 2; 231 | } 232 | 233 | string name = 1; 234 | State state = 2; 235 | google.protobuf.Timestamp timestamp = 3; 236 | bytes payload = 4; 237 | bytes signature = 5; 238 | } 239 | -------------------------------------------------------------------------------- /latest/proto/leaderboard/v1/leaderboard.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto3"; 3 | 4 | package nn.npln.leaderboard.v1; 5 | 6 | import "google/protobuf/empty.proto"; 7 | import "google/protobuf/field_mask.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | import "proto/leaderboard/v1/resources.proto"; 10 | 11 | message Leaderboard { 12 | enum UpdateType { 13 | UPDATE_TYPE_UNSPECIFIED = 0; 14 | EXCEED = 1; 15 | ALWAYS = 2; 16 | } 17 | 18 | string season = 1; 19 | repeated Score scores = 2; 20 | string prev_page_token = 3; 21 | string next_page_token = 4; 22 | google.protobuf.Timestamp rank_update_time = 5; 23 | int32 total_count = 6; 24 | google.protobuf.Timestamp season_start_time = 7; 25 | google.protobuf.Timestamp season_end_time = 8; 26 | bool score_order_asc = 9; 27 | bool update_time_order_asc = 10; 28 | UpdateType update_type = 11; 29 | ShrinkState shrink_state = 12; 30 | } 31 | 32 | message NearLeaderboardFilter { 33 | string target_holder = 1; 34 | int32 page_size = 2; 35 | string page_token = 3; 36 | } 37 | 38 | message RangeLeaderboardFilter { 39 | int32 offset = 1; 40 | int32 page_size = 2; 41 | string page_token = 3; 42 | string move_top_holder = 4; 43 | } 44 | 45 | message UserLeaderboardFilter { 46 | repeated string holders = 1; 47 | string order_by = 2; 48 | } 49 | 50 | message FindRankScore { 51 | string request_score = 1; 52 | bool found = 2; 53 | Score rank_score = 3; 54 | } 55 | 56 | message PercentileScore { 57 | double request_percentile = 1; 58 | Score score = 2; 59 | } 60 | 61 | message QuantileScore { 62 | string season = 1; 63 | double quantile = 2; 64 | int64 score = 3; 65 | google.protobuf.Timestamp rank_update_time = 4; 66 | } 67 | 68 | message CreateHolderRequest { 69 | string parent = 1; 70 | Holder holder = 2; 71 | } 72 | 73 | message UpdateHolderRequest { 74 | Holder holder = 1; 75 | google.protobuf.FieldMask update_mask = 2; 76 | } 77 | 78 | message GetHolderRequest { 79 | string name = 1; 80 | } 81 | 82 | message SearchHoldersRequest { 83 | string parent = 1; 84 | repeated string owners = 2; 85 | string filter = 3; 86 | int32 page_size = 4; 87 | string page_token = 5; 88 | } 89 | 90 | message SearchHoldersResponse { 91 | repeated Holder holders = 1; 92 | string next_page_token = 2; 93 | } 94 | 95 | message DeleteHolderRequest { 96 | string name = 1; 97 | } 98 | 99 | message RegisterScoreRequest { 100 | Score score = 1; 101 | bool force = 2; 102 | } 103 | 104 | message GetScoreRequest { 105 | string name = 1; 106 | } 107 | 108 | message DeleteScoreRequest { 109 | string name = 1; 110 | } 111 | 112 | message BrowseLeaderboardRequest { 113 | string season = 1; 114 | oneof filter { 115 | UserLeaderboardFilter user_leaderboard = 3; 116 | NearLeaderboardFilter near_leaderboard = 4; 117 | RangeLeaderboardFilter range_leaderboard = 5; 118 | } 119 | } 120 | 121 | message BrowseLeaderboardResponse { 122 | Leaderboard leaderboard = 1; 123 | } 124 | 125 | message BrowseIndexesLeaderboardRequest { 126 | string season = 1; 127 | repeated int32 indexes = 2 [packed=true]; 128 | } 129 | 130 | message BrowseIndexesLeaderboardResponse { 131 | Leaderboard leaderboard = 1; 132 | } 133 | 134 | message PurgeScoreHoldersRequest { 135 | string season = 1; 136 | string filter = 2; 137 | string holder = 3; 138 | bool force = 4; 139 | } 140 | 141 | message PurgeScoreHoldersResponse { 142 | int32 purge_count = 1; 143 | repeated string purge_sample = 2; 144 | } 145 | 146 | message PurgeUserScoresRequest { 147 | string user = 1; 148 | bool force = 2; 149 | } 150 | 151 | message PurgeUserScoresResponse { 152 | int32 purge_count = 1; 153 | repeated string purge_sample = 2; 154 | } 155 | 156 | message GetCategoryRequest { 157 | string name = 1; 158 | } 159 | 160 | message GetChartRequest { 161 | string name = 1; 162 | } 163 | 164 | message BatchGetChartsRequest { 165 | string parent = 1; 166 | repeated string names = 2; 167 | } 168 | 169 | message BatchGetChartsResponse { 170 | repeated Chart charts = 1; 171 | } 172 | 173 | message FetchRankScoreRequest { 174 | string score = 1; 175 | } 176 | 177 | message FetchRankScoreResponse { 178 | Score rank_score = 1; 179 | } 180 | 181 | message FindRankScoresRequest { 182 | string season = 1; 183 | repeated string names = 2; 184 | } 185 | 186 | message FindRankScoresResponse { 187 | repeated FindRankScore find_rank_scores = 1; 188 | } 189 | 190 | message RetrieveScoresByPercentilesRequest { 191 | string season = 1; 192 | double percentile = 2; 193 | } 194 | 195 | message RetrieveScoresByPercentilesResponse { 196 | repeated PercentileScore percentile_score = 1; 197 | google.protobuf.Timestamp rank_update_time = 3; 198 | } 199 | 200 | message RetrieveQuantileScoresRequest { 201 | string season = 1; 202 | repeated QuantileScore quantile_scores = 2; 203 | } 204 | 205 | message RetrieveQuantileScoresResponse { 206 | repeated QuantileScore quantile_scores = 1; 207 | } 208 | 209 | message GetSeasonRequest { 210 | string name = 1; 211 | } 212 | 213 | message EstimateScoreRankRequest { 214 | string season = 1; 215 | int64 score = 2; 216 | } 217 | 218 | message EstimateScoreRankResponse { 219 | EstimatedScoreRank estimated_score_rank = 1; 220 | } 221 | 222 | message EstimatedScoreRank { 223 | int64 score = 1; 224 | int64 estimated_rank = 2; 225 | } 226 | 227 | service LeaderboardService { 228 | rpc CreateHolder(CreateHolderRequest) returns (Holder); 229 | rpc UpdateHolder(UpdateHolderRequest) returns (Holder); 230 | rpc GetHolder(GetHolderRequest) returns (Holder); 231 | rpc SearchHolders(SearchHoldersRequest) returns (SearchHoldersResponse); 232 | rpc DeleteHolder(DeleteHolderRequest) returns (google.protobuf.Empty); 233 | rpc RegisterScore(RegisterScoreRequest) returns (Score); 234 | rpc GetScore(GetScoreRequest) returns (Score); 235 | rpc DeleteScore(DeleteScoreRequest) returns (google.protobuf.Empty); 236 | rpc BrowseLeaderboard(BrowseLeaderboardRequest) returns (BrowseLeaderboardResponse); 237 | rpc BrowseIndexesLeaderboard(BrowseIndexesLeaderboardRequest) returns (BrowseIndexesLeaderboardResponse); 238 | rpc PurgeScoreHolders(PurgeScoreHoldersRequest) returns (PurgeScoreHoldersResponse); 239 | rpc PurgeUserScores(PurgeUserScoresRequest) returns (PurgeUserScoresResponse); 240 | rpc GetCategory(GetCategoryRequest) returns (Category); 241 | rpc GetChart(GetChartRequest) returns (Chart); 242 | rpc BatchGetCharts(BatchGetChartsRequest) returns (BatchGetChartsResponse); 243 | rpc FetchRankScore(FetchRankScoreRequest) returns (FetchRankScoreResponse); 244 | rpc FindRankScores(FindRankScoresRequest) returns (FindRankScoresResponse); 245 | rpc RetrieveScoresByPercentiles(RetrieveScoresByPercentilesRequest) returns (RetrieveScoresByPercentilesResponse); // Removed in 1.45.0 246 | rpc RetrieveQuantileScores(RetrieveQuantileScoresRequest) returns (RetrieveQuantileScoresResponse); 247 | rpc GetSeason(GetSeasonRequest) returns (Season); 248 | rpc EstimateScoreRank(EstimateScoreRankRequest) returns (EstimateScoreRankResponse); 249 | } 250 | -------------------------------------------------------------------------------- /0.20.x/validate/validate.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto2"; 3 | 4 | package validate; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | import "google/protobuf/duration.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | 10 | option java_package = "com.lyft.pgv.validate"; 11 | option go_package = "github.com/lyft/protoc-gen-validate/validate"; 12 | option cc_enable_arenas = true; 13 | 14 | extend google.protobuf.MessageOptions { 15 | optional bool disabled = 919191; 16 | } 17 | 18 | extend google.protobuf.OneofOptions { 19 | optional bool required = 919191; 20 | } 21 | 22 | extend google.protobuf.FieldOptions { 23 | optional validate.FieldRules rules = 919191; 24 | } 25 | 26 | message FieldRules { 27 | oneof type { 28 | FloatRules float = 1; 29 | DoubleRules double = 2; 30 | Int32Rules int32 = 3; 31 | Int64Rules int64 = 4; 32 | UInt32Rules uint32 = 5; 33 | UInt64Rules uint64 = 6; 34 | SInt32Rules sint32 = 7; 35 | SInt64Rules sint64 = 8; 36 | Fixed32Rules fixed32 = 9; 37 | Fixed64Rules fixed64 = 10; 38 | SFixed32Rules sfixed32 = 11; 39 | SFixed64Rules sfixed64 = 12; 40 | BoolRules bool = 13; 41 | StringRules string = 14; 42 | BytesRules bytes = 15; 43 | EnumRules enum = 16; 44 | MessageRules message = 17; 45 | RepeatedRules repeated = 18; 46 | MapRules map = 19; 47 | AnyRules any = 20; 48 | DurationRules duration = 21; 49 | TimestampRules timestamp = 22; 50 | } 51 | } 52 | 53 | message FloatRules { 54 | optional float const = 1; 55 | optional float lt = 2; 56 | optional float lte = 3; 57 | optional float gt = 4; 58 | optional float gte = 5; 59 | repeated float in = 6; 60 | repeated float not_in = 7; 61 | } 62 | 63 | message DoubleRules { 64 | optional double const = 1; 65 | optional double lt = 2; 66 | optional double lte = 3; 67 | optional double gt = 4; 68 | optional double gte = 5; 69 | repeated double in = 6; 70 | repeated double not_in = 7; 71 | } 72 | 73 | message Int32Rules { 74 | optional int32 const = 1; 75 | optional int32 lt = 2; 76 | optional int32 lte = 3; 77 | optional int32 gt = 4; 78 | optional int32 gte = 5; 79 | repeated int32 in = 6; 80 | repeated int32 not_in = 7; 81 | } 82 | 83 | message Int64Rules { 84 | optional int64 const = 1; 85 | optional int64 lt = 2; 86 | optional int64 lte = 3; 87 | optional int64 gt = 4; 88 | optional int64 gte = 5; 89 | repeated int64 in = 6; 90 | repeated int64 not_in = 7; 91 | } 92 | 93 | message UInt32Rules { 94 | optional uint32 const = 1; 95 | optional uint32 lt = 2; 96 | optional uint32 lte = 3; 97 | optional uint32 gt = 4; 98 | optional uint32 gte = 5; 99 | repeated uint32 in = 6; 100 | repeated uint32 not_in = 7; 101 | } 102 | 103 | message UInt64Rules { 104 | optional uint64 const = 1; 105 | optional uint64 lt = 2; 106 | optional uint64 lte = 3; 107 | optional uint64 gt = 4; 108 | optional uint64 gte = 5; 109 | repeated uint64 in = 6; 110 | repeated uint64 not_in = 7; 111 | } 112 | 113 | message SInt32Rules { 114 | optional sint32 const = 1; 115 | optional sint32 lt = 2; 116 | optional sint32 lte = 3; 117 | optional sint32 gt = 4; 118 | optional sint32 gte = 5; 119 | repeated sint32 in = 6; 120 | repeated sint32 not_in = 7; 121 | } 122 | 123 | message SInt64Rules { 124 | optional sint64 const = 1; 125 | optional sint64 lt = 2; 126 | optional sint64 lte = 3; 127 | optional sint64 gt = 4; 128 | optional sint64 gte = 5; 129 | repeated sint64 in = 6; 130 | repeated sint64 not_in = 7; 131 | } 132 | 133 | message Fixed32Rules { 134 | optional fixed32 const = 1; 135 | optional fixed32 lt = 2; 136 | optional fixed32 lte = 3; 137 | optional fixed32 gt = 4; 138 | optional fixed32 gte = 5; 139 | repeated fixed32 in = 6; 140 | repeated fixed32 not_in = 7; 141 | } 142 | 143 | message Fixed64Rules { 144 | optional fixed64 const = 1; 145 | optional fixed64 lt = 2; 146 | optional fixed64 lte = 3; 147 | optional fixed64 gt = 4; 148 | optional fixed64 gte = 5; 149 | repeated fixed64 in = 6; 150 | repeated fixed64 not_in = 7; 151 | } 152 | 153 | message SFixed32Rules { 154 | optional sfixed32 const = 1; 155 | optional sfixed32 lt = 2; 156 | optional sfixed32 lte = 3; 157 | optional sfixed32 gt = 4; 158 | optional sfixed32 gte = 5; 159 | repeated sfixed32 in = 6; 160 | repeated sfixed32 not_in = 7; 161 | } 162 | 163 | message SFixed64Rules { 164 | optional sfixed64 const = 1; 165 | optional sfixed64 lt = 2; 166 | optional sfixed64 lte = 3; 167 | optional sfixed64 gt = 4; 168 | optional sfixed64 gte = 5; 169 | repeated sfixed64 in = 6; 170 | repeated sfixed64 not_in = 7; 171 | } 172 | 173 | message BoolRules { 174 | optional bool const = 1; 175 | } 176 | 177 | message StringRules { 178 | optional string const = 1; 179 | optional uint64 len = 19; 180 | optional uint64 min_len = 2; 181 | optional uint64 max_len = 3; 182 | optional uint64 len_bytes = 20; 183 | optional uint64 min_bytes = 4; 184 | optional uint64 max_bytes = 5; 185 | optional string pattern = 6; 186 | optional string prefix = 7; 187 | optional string suffix = 8; 188 | optional string contains = 9; 189 | repeated string in = 10; 190 | repeated string not_in = 11; 191 | oneof well_known { 192 | bool email = 12; 193 | bool hostname = 13; 194 | bool ip = 14; 195 | bool ipv4 = 15; 196 | bool ipv6 = 16; 197 | bool uri = 17; 198 | bool uri_ref = 18; 199 | } 200 | } 201 | 202 | message BytesRules { 203 | optional bytes const = 1; 204 | optional uint64 len = 13; 205 | optional uint64 min_len = 2; 206 | optional uint64 max_len = 3; 207 | optional string pattern = 4; 208 | optional bytes prefix = 5; 209 | optional bytes suffix = 6; 210 | optional bytes contains = 7; 211 | repeated bytes in = 8; 212 | repeated bytes not_in = 9; 213 | oneof well_known { 214 | bool ip = 10; 215 | bool ipv4 = 11; 216 | bool ipv6 = 12; 217 | } 218 | } 219 | 220 | message EnumRules { 221 | optional int32 const = 1; 222 | optional bool defined_only = 2; 223 | repeated int32 in = 3; 224 | repeated int32 not_in = 4; 225 | } 226 | 227 | message MessageRules { 228 | optional bool skip = 1; 229 | optional bool required = 2; 230 | } 231 | 232 | message RepeatedRules { 233 | optional uint64 min_items = 1; 234 | optional uint64 max_items = 2; 235 | optional bool unique = 3; 236 | optional FieldRules items = 4; 237 | } 238 | 239 | message MapRules { 240 | optional uint64 min_pairs = 1; 241 | optional uint64 max_pairs = 2; 242 | optional bool no_sparse = 3; 243 | optional FieldRules keys = 4; 244 | optional FieldRules values = 5; 245 | } 246 | 247 | message AnyRules { 248 | optional bool required = 1; 249 | repeated string in = 2; 250 | repeated string not_in = 3; 251 | } 252 | 253 | message DurationRules { 254 | optional bool required = 1; 255 | optional google.protobuf.Duration const = 2; 256 | optional google.protobuf.Duration lt = 3; 257 | optional google.protobuf.Duration lte = 4; 258 | optional google.protobuf.Duration gt = 5; 259 | optional google.protobuf.Duration gte = 6; 260 | repeated google.protobuf.Duration in = 7; 261 | repeated google.protobuf.Duration not_in = 8; 262 | } 263 | 264 | message TimestampRules { 265 | optional bool required = 1; 266 | optional google.protobuf.Timestamp const = 2; 267 | optional google.protobuf.Timestamp lt = 3; 268 | optional google.protobuf.Timestamp lte = 4; 269 | optional google.protobuf.Timestamp gt = 5; 270 | optional google.protobuf.Timestamp gte = 6; 271 | optional bool lt_now = 7; 272 | optional bool gt_now = 8; 273 | optional google.protobuf.Duration within = 9; 274 | } 275 | -------------------------------------------------------------------------------- /0.21.x/validate/validate.proto: -------------------------------------------------------------------------------- 1 | 2 | syntax = "proto2"; 3 | 4 | package validate; 5 | 6 | import "google/protobuf/descriptor.proto"; 7 | import "google/protobuf/duration.proto"; 8 | import "google/protobuf/timestamp.proto"; 9 | 10 | option java_package = "com.lyft.pgv.validate"; 11 | option go_package = "github.com/lyft/protoc-gen-validate/validate"; 12 | option cc_enable_arenas = true; 13 | 14 | extend google.protobuf.MessageOptions { 15 | optional bool disabled = 919191; 16 | } 17 | 18 | extend google.protobuf.OneofOptions { 19 | optional bool required = 919191; 20 | } 21 | 22 | extend google.protobuf.FieldOptions { 23 | optional validate.FieldRules rules = 919191; 24 | } 25 | 26 | message FieldRules { 27 | oneof type { 28 | FloatRules float = 1; 29 | DoubleRules double = 2; 30 | Int32Rules int32 = 3; 31 | Int64Rules int64 = 4; 32 | UInt32Rules uint32 = 5; 33 | UInt64Rules uint64 = 6; 34 | SInt32Rules sint32 = 7; 35 | SInt64Rules sint64 = 8; 36 | Fixed32Rules fixed32 = 9; 37 | Fixed64Rules fixed64 = 10; 38 | SFixed32Rules sfixed32 = 11; 39 | SFixed64Rules sfixed64 = 12; 40 | BoolRules bool = 13; 41 | StringRules string = 14; 42 | BytesRules bytes = 15; 43 | EnumRules enum = 16; 44 | MessageRules message = 17; 45 | RepeatedRules repeated = 18; 46 | MapRules map = 19; 47 | AnyRules any = 20; 48 | DurationRules duration = 21; 49 | TimestampRules timestamp = 22; 50 | } 51 | } 52 | 53 | message FloatRules { 54 | optional float const = 1; 55 | optional float lt = 2; 56 | optional float lte = 3; 57 | optional float gt = 4; 58 | optional float gte = 5; 59 | repeated float in = 6; 60 | repeated float not_in = 7; 61 | } 62 | 63 | message DoubleRules { 64 | optional double const = 1; 65 | optional double lt = 2; 66 | optional double lte = 3; 67 | optional double gt = 4; 68 | optional double gte = 5; 69 | repeated double in = 6; 70 | repeated double not_in = 7; 71 | } 72 | 73 | message Int32Rules { 74 | optional int32 const = 1; 75 | optional int32 lt = 2; 76 | optional int32 lte = 3; 77 | optional int32 gt = 4; 78 | optional int32 gte = 5; 79 | repeated int32 in = 6; 80 | repeated int32 not_in = 7; 81 | } 82 | 83 | message Int64Rules { 84 | optional int64 const = 1; 85 | optional int64 lt = 2; 86 | optional int64 lte = 3; 87 | optional int64 gt = 4; 88 | optional int64 gte = 5; 89 | repeated int64 in = 6; 90 | repeated int64 not_in = 7; 91 | } 92 | 93 | message UInt32Rules { 94 | optional uint32 const = 1; 95 | optional uint32 lt = 2; 96 | optional uint32 lte = 3; 97 | optional uint32 gt = 4; 98 | optional uint32 gte = 5; 99 | repeated uint32 in = 6; 100 | repeated uint32 not_in = 7; 101 | } 102 | 103 | message UInt64Rules { 104 | optional uint64 const = 1; 105 | optional uint64 lt = 2; 106 | optional uint64 lte = 3; 107 | optional uint64 gt = 4; 108 | optional uint64 gte = 5; 109 | repeated uint64 in = 6; 110 | repeated uint64 not_in = 7; 111 | } 112 | 113 | message SInt32Rules { 114 | optional sint32 const = 1; 115 | optional sint32 lt = 2; 116 | optional sint32 lte = 3; 117 | optional sint32 gt = 4; 118 | optional sint32 gte = 5; 119 | repeated sint32 in = 6; 120 | repeated sint32 not_in = 7; 121 | } 122 | 123 | message SInt64Rules { 124 | optional sint64 const = 1; 125 | optional sint64 lt = 2; 126 | optional sint64 lte = 3; 127 | optional sint64 gt = 4; 128 | optional sint64 gte = 5; 129 | repeated sint64 in = 6; 130 | repeated sint64 not_in = 7; 131 | } 132 | 133 | message Fixed32Rules { 134 | optional fixed32 const = 1; 135 | optional fixed32 lt = 2; 136 | optional fixed32 lte = 3; 137 | optional fixed32 gt = 4; 138 | optional fixed32 gte = 5; 139 | repeated fixed32 in = 6; 140 | repeated fixed32 not_in = 7; 141 | } 142 | 143 | message Fixed64Rules { 144 | optional fixed64 const = 1; 145 | optional fixed64 lt = 2; 146 | optional fixed64 lte = 3; 147 | optional fixed64 gt = 4; 148 | optional fixed64 gte = 5; 149 | repeated fixed64 in = 6; 150 | repeated fixed64 not_in = 7; 151 | } 152 | 153 | message SFixed32Rules { 154 | optional sfixed32 const = 1; 155 | optional sfixed32 lt = 2; 156 | optional sfixed32 lte = 3; 157 | optional sfixed32 gt = 4; 158 | optional sfixed32 gte = 5; 159 | repeated sfixed32 in = 6; 160 | repeated sfixed32 not_in = 7; 161 | } 162 | 163 | message SFixed64Rules { 164 | optional sfixed64 const = 1; 165 | optional sfixed64 lt = 2; 166 | optional sfixed64 lte = 3; 167 | optional sfixed64 gt = 4; 168 | optional sfixed64 gte = 5; 169 | repeated sfixed64 in = 6; 170 | repeated sfixed64 not_in = 7; 171 | } 172 | 173 | message BoolRules { 174 | optional bool const = 1; 175 | } 176 | 177 | message StringRules { 178 | optional string const = 1; 179 | optional uint64 len = 19; 180 | optional uint64 min_len = 2; 181 | optional uint64 max_len = 3; 182 | optional uint64 len_bytes = 20; 183 | optional uint64 min_bytes = 4; 184 | optional uint64 max_bytes = 5; 185 | optional string pattern = 6; 186 | optional string prefix = 7; 187 | optional string suffix = 8; 188 | optional string contains = 9; 189 | repeated string in = 10; 190 | repeated string not_in = 11; 191 | oneof well_known { 192 | bool email = 12; 193 | bool hostname = 13; 194 | bool ip = 14; 195 | bool ipv4 = 15; 196 | bool ipv6 = 16; 197 | bool uri = 17; 198 | bool uri_ref = 18; 199 | } 200 | } 201 | 202 | message BytesRules { 203 | optional bytes const = 1; 204 | optional uint64 len = 13; 205 | optional uint64 min_len = 2; 206 | optional uint64 max_len = 3; 207 | optional string pattern = 4; 208 | optional bytes prefix = 5; 209 | optional bytes suffix = 6; 210 | optional bytes contains = 7; 211 | repeated bytes in = 8; 212 | repeated bytes not_in = 9; 213 | oneof well_known { 214 | bool ip = 10; 215 | bool ipv4 = 11; 216 | bool ipv6 = 12; 217 | } 218 | } 219 | 220 | message EnumRules { 221 | optional int32 const = 1; 222 | optional bool defined_only = 2; 223 | repeated int32 in = 3; 224 | repeated int32 not_in = 4; 225 | } 226 | 227 | message MessageRules { 228 | optional bool skip = 1; 229 | optional bool required = 2; 230 | } 231 | 232 | message RepeatedRules { 233 | optional uint64 min_items = 1; 234 | optional uint64 max_items = 2; 235 | optional bool unique = 3; 236 | optional FieldRules items = 4; 237 | } 238 | 239 | message MapRules { 240 | optional uint64 min_pairs = 1; 241 | optional uint64 max_pairs = 2; 242 | optional bool no_sparse = 3; 243 | optional FieldRules keys = 4; 244 | optional FieldRules values = 5; 245 | } 246 | 247 | message AnyRules { 248 | optional bool required = 1; 249 | repeated string in = 2; 250 | repeated string not_in = 3; 251 | } 252 | 253 | message DurationRules { 254 | optional bool required = 1; 255 | optional google.protobuf.Duration const = 2; 256 | optional google.protobuf.Duration lt = 3; 257 | optional google.protobuf.Duration lte = 4; 258 | optional google.protobuf.Duration gt = 5; 259 | optional google.protobuf.Duration gte = 6; 260 | repeated google.protobuf.Duration in = 7; 261 | repeated google.protobuf.Duration not_in = 8; 262 | } 263 | 264 | message TimestampRules { 265 | optional bool required = 1; 266 | optional google.protobuf.Timestamp const = 2; 267 | optional google.protobuf.Timestamp lt = 3; 268 | optional google.protobuf.Timestamp lte = 4; 269 | optional google.protobuf.Timestamp gt = 5; 270 | optional google.protobuf.Timestamp gte = 6; 271 | optional bool lt_now = 7; 272 | optional bool gt_now = 8; 273 | optional google.protobuf.Duration within = 9; 274 | } 275 | --------------------------------------------------------------------------------