123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- // Copyright 2020 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.maps.playablelocations.v3;
- import "google/api/annotations.proto";
- import "google/api/field_behavior.proto";
- import "google/maps/playablelocations/v3/resources.proto";
- import "google/maps/playablelocations/v3/sample/resources.proto";
- import "google/maps/unity/clientinfo.proto";
- import "google/protobuf/duration.proto";
- import "google/api/client.proto";
- option csharp_namespace = "Google.Maps.PlayableLocations.V3";
- option go_package = "google.golang.org/genproto/googleapis/maps/playablelocations/v3;playablelocations";
- option java_multiple_files = true;
- option java_outer_classname = "PlayableLocationsProto";
- option java_package = "com.google.maps.playablelocations.v3";
- option php_namespace = "Google\\Maps\\PlayableLocations\\V3";
- option objc_class_prefix = "GMPL";
- // The Playable Locations API for v3.
- service PlayableLocations {
- option (google.api.default_host) = "playablelocations.googleapis.com";
- // Returns a set of playable locations that lie within a specified area,
- // that satisfy optional filter criteria.
- //
- // Note: Identical `SamplePlayableLocations` requests can return different
- // results as the state of the world changes over time.
- rpc SamplePlayableLocations(SamplePlayableLocationsRequest)
- returns (SamplePlayableLocationsResponse) {
- option (google.api.http) = {
- post: "/v3:samplePlayableLocations"
- body: "*"
- };
- }
- // Logs bad playable location reports submitted by players.
- //
- // Reports are not partially saved; either all reports are saved and this
- // request succeeds, or no reports are saved, and this request fails.
- rpc LogPlayerReports(LogPlayerReportsRequest)
- returns (LogPlayerReportsResponse) {
- option (google.api.http) = {
- post: "/v3:logPlayerReports"
- body: "*"
- };
- }
- // Logs new events when playable locations are displayed, and when they are
- // interacted with.
- //
- // Impressions are not partially saved; either all impressions are saved and
- // this request succeeds, or no impressions are saved, and this request fails.
- rpc LogImpressions(LogImpressionsRequest) returns (LogImpressionsResponse) {
- option (google.api.http) = {
- post: "/v3:logImpressions"
- body: "*"
- };
- }
- }
- //
- // Life of a query:
- //
- // - When a game starts in a new location, your game server issues a
- // [SamplePlayableLocations][google.maps.playablelocations.v3.PlayableLocations.SamplePlayableLocations]
- // request. The request specifies the S2 cell, and contains one or more
- // "criteria" for filtering:
- //
- // - Criterion 0: i locations for long-lived bases, or level 0 monsters, or...
- // - Criterion 1: j locations for short-lived bases, or level 1 monsters, ...
- // - Criterion 2: k locations for random objects.
- // - etc (up to 5 criterion may be specified).
- //
- // `PlayableLocationList` will then contain mutually
- // exclusive lists of `PlayableLocation` objects that satisfy each of
- // the criteria. Think of it as a collection of real-world locations that you
- // can then associate with your game state.
- //
- // Note: These points are impermanent in nature. E.g, parks can close, and
- // places can be removed.
- //
- // The response specifies how long you can expect the playable locations to
- // last. Once they expire, you should query the `samplePlayableLocations` API
- // again to get a fresh view of the real world.
- message SamplePlayableLocationsRequest {
- // Required. Specifies the area to search within for playable locations.
- google.maps.playablelocations.v3.sample.AreaFilter area_filter = 1
- [(google.api.field_behavior) = REQUIRED];
- // Required. Specifies one or more (up to 5) criteria for filtering the
- // returned playable locations.
- repeated google.maps.playablelocations.v3.sample.Criterion criteria = 2
- [(google.api.field_behavior) = REQUIRED];
- }
- //
- // Response for the
- // [SamplePlayableLocations][google.maps.playablelocations.v3.PlayableLocations.SamplePlayableLocations]
- // method.
- message SamplePlayableLocationsResponse {
- // Each PlayableLocation object corresponds to a game_object_type specified
- // in the request.
- map<int32, google.maps.playablelocations.v3.sample.PlayableLocationList>
- locations_per_game_object_type = 1;
- // Required. Specifies the "time-to-live" for the set of playable locations.
- // You can use this value to determine how long to cache the set of playable
- // locations. After this length of time, your back-end game server should
- // issue a new
- // [SamplePlayableLocations][google.maps.playablelocations.v3.PlayableLocations.SamplePlayableLocations]
- // request to get a fresh set of playable locations (because for example, they
- // might have been removed, a park might have closed for the day, a
- // business might have closed permanently).
- google.protobuf.Duration ttl = 9;
- }
- // A request for logging your player's bad location reports.
- message LogPlayerReportsRequest {
- // Required. Player reports. The maximum number of player reports that you can
- // log at once is 50.
- repeated PlayerReport player_reports = 1
- [(google.api.field_behavior) = REQUIRED];
- // Required. A string that uniquely identifies the log player reports request.
- // This allows you to detect duplicate requests. We recommend that you use
- // UUIDs for this value. The value must not exceed 50 characters.
- //
- // You should reuse the `request_id` only when retrying a request in the case
- // of a failure. In that case, the request must be identical to the one that
- // failed.
- string request_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. Information about the client device (for example, device model
- // and operating system).
- google.maps.unity.ClientInfo client_info = 3
- [(google.api.field_behavior) = REQUIRED];
- }
- // A response for the
- // [LogPlayerReports][google.maps.playablelocations.v3.PlayableLocations.LogPlayerReports]
- // method.
- //
- // This method returns no data upon success.
- message LogPlayerReportsResponse {}
- // A request for logging impressions.
- message LogImpressionsRequest {
- // Required. Impression event details. The maximum number of impression
- // reports that you can log at once is 50.
- repeated Impression impressions = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. A string that uniquely identifies the log impressions request.
- // This allows you to detect duplicate requests. We recommend that you use
- // UUIDs for this value. The value must not exceed 50 characters.
- //
- // You should reuse the `request_id` only when retrying a request in case of
- // failure. In this case, the request must be identical to the one that
- // failed.
- string request_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. Information about the client device. For example, device model
- // and operating system.
- google.maps.unity.ClientInfo client_info = 3
- [(google.api.field_behavior) = REQUIRED];
- }
- // A response for the
- // [LogImpressions][google.maps.playablelocations.v3.PlayableLocations.LogImpressions]
- // method. This method returns no data upon success.
- message LogImpressionsResponse {}
|