mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2024-11-15 07:36:18 +00:00
84 lines
3.1 KiB
Protocol Buffer
84 lines
3.1 KiB
Protocol Buffer
// Copyright 2016 Google Inc.
|
|
//
|
|
// 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.appengine.v1;
|
|
|
|
import "google/api/annotations.proto";
|
|
|
|
option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "ServiceProto";
|
|
option java_package = "com.google.appengine.v1";
|
|
|
|
|
|
// A Service resource is a logical component of an application that can share
|
|
// state and communicate in a secure fashion with other services.
|
|
// For example, an application that handles customer requests might
|
|
// include separate services to handle tasks such as backend data
|
|
// analysis or API requests from mobile devices. Each service has a
|
|
// collection of versions that define a specific set of code used to
|
|
// implement the functionality of that service.
|
|
message Service {
|
|
// Full path to the Service resource in the API.
|
|
// Example: `apps/myapp/services/default`.
|
|
//
|
|
// @OutputOnly
|
|
string name = 1;
|
|
|
|
// Relative name of the service within the application.
|
|
// Example: `default`.
|
|
//
|
|
// @OutputOnly
|
|
string id = 2;
|
|
|
|
// Mapping that defines fractional HTTP traffic diversion to
|
|
// different versions within the service.
|
|
TrafficSplit split = 3;
|
|
}
|
|
|
|
// Traffic routing configuration for versions within a single service. Traffic
|
|
// splits define how traffic directed to the service is assigned to versions.
|
|
message TrafficSplit {
|
|
// Available sharding mechanisms.
|
|
enum ShardBy {
|
|
// Diversion method unspecified.
|
|
UNSPECIFIED = 0;
|
|
|
|
// Diversion based on a specially named cookie, "GOOGAPPUID." The cookie
|
|
// must be set by the application itself or no diversion will occur.
|
|
COOKIE = 1;
|
|
|
|
// Diversion based on applying the modulus operation to a fingerprint
|
|
// of the IP address.
|
|
IP = 2;
|
|
}
|
|
|
|
// Mechanism used to determine which version a request is sent to.
|
|
// The traffic selection algorithm will
|
|
// be stable for either type until allocations are changed.
|
|
ShardBy shard_by = 1;
|
|
|
|
// Mapping from version IDs within the service to fractional
|
|
// (0.000, 1] allocations of traffic for that version. Each version can
|
|
// be specified only once, but some versions in the service may not
|
|
// have any traffic allocation. Services that have traffic allocated
|
|
// cannot be deleted until either the service is deleted or
|
|
// their traffic allocation is removed. Allocations must sum to 1.
|
|
// Up to two decimal place precision is supported for IP-based splits and
|
|
// up to three decimal places is supported for cookie-based splits.
|
|
map<string, double> allocations = 2;
|
|
}
|