xref: /aosp_15_r20/external/googleapis/google/api/consumer.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2016 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.api;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
20*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
21*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ConsumerProto";
22*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api";
23*d5c09012SAndroid Build Coastguard Worker
24*d5c09012SAndroid Build Coastguard Worker// A descriptor for defining project properties for a service. One service may
25*d5c09012SAndroid Build Coastguard Worker// have many consumer projects, and the service may want to behave differently
26*d5c09012SAndroid Build Coastguard Worker// depending on some properties on the project. For example, a project may be
27*d5c09012SAndroid Build Coastguard Worker// associated with a school, or a business, or a government agency, a business
28*d5c09012SAndroid Build Coastguard Worker// type property on the project may affect how a service responds to the client.
29*d5c09012SAndroid Build Coastguard Worker// This descriptor defines which properties are allowed to be set on a project.
30*d5c09012SAndroid Build Coastguard Worker//
31*d5c09012SAndroid Build Coastguard Worker// Example:
32*d5c09012SAndroid Build Coastguard Worker//
33*d5c09012SAndroid Build Coastguard Worker//    project_properties:
34*d5c09012SAndroid Build Coastguard Worker//      properties:
35*d5c09012SAndroid Build Coastguard Worker//      - name: NO_WATERMARK
36*d5c09012SAndroid Build Coastguard Worker//        type: BOOL
37*d5c09012SAndroid Build Coastguard Worker//        description: Allows usage of the API without watermarks.
38*d5c09012SAndroid Build Coastguard Worker//      - name: EXTENDED_TILE_CACHE_PERIOD
39*d5c09012SAndroid Build Coastguard Worker//        type: INT64
40*d5c09012SAndroid Build Coastguard Workermessage ProjectProperties {
41*d5c09012SAndroid Build Coastguard Worker  // List of per consumer project-specific properties.
42*d5c09012SAndroid Build Coastguard Worker  repeated Property properties = 1;
43*d5c09012SAndroid Build Coastguard Worker}
44*d5c09012SAndroid Build Coastguard Worker
45*d5c09012SAndroid Build Coastguard Worker// Defines project properties.
46*d5c09012SAndroid Build Coastguard Worker//
47*d5c09012SAndroid Build Coastguard Worker// API services can define properties that can be assigned to consumer projects
48*d5c09012SAndroid Build Coastguard Worker// so that backends can perform response customization without having to make
49*d5c09012SAndroid Build Coastguard Worker// additional calls or maintain additional storage. For example, Maps API
50*d5c09012SAndroid Build Coastguard Worker// defines properties that controls map tile cache period, or whether to embed a
51*d5c09012SAndroid Build Coastguard Worker// watermark in a result.
52*d5c09012SAndroid Build Coastguard Worker//
53*d5c09012SAndroid Build Coastguard Worker// These values can be set via API producer console. Only API providers can
54*d5c09012SAndroid Build Coastguard Worker// define and set these properties.
55*d5c09012SAndroid Build Coastguard Workermessage Property {
56*d5c09012SAndroid Build Coastguard Worker  // Supported data type of the property values
57*d5c09012SAndroid Build Coastguard Worker  enum PropertyType {
58*d5c09012SAndroid Build Coastguard Worker    // The type is unspecified, and will result in an error.
59*d5c09012SAndroid Build Coastguard Worker    UNSPECIFIED = 0;
60*d5c09012SAndroid Build Coastguard Worker
61*d5c09012SAndroid Build Coastguard Worker    // The type is `int64`.
62*d5c09012SAndroid Build Coastguard Worker    INT64 = 1;
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker    // The type is `bool`.
65*d5c09012SAndroid Build Coastguard Worker    BOOL = 2;
66*d5c09012SAndroid Build Coastguard Worker
67*d5c09012SAndroid Build Coastguard Worker    // The type is `string`.
68*d5c09012SAndroid Build Coastguard Worker    STRING = 3;
69*d5c09012SAndroid Build Coastguard Worker
70*d5c09012SAndroid Build Coastguard Worker    // The type is 'double'.
71*d5c09012SAndroid Build Coastguard Worker    DOUBLE = 4;
72*d5c09012SAndroid Build Coastguard Worker  }
73*d5c09012SAndroid Build Coastguard Worker
74*d5c09012SAndroid Build Coastguard Worker  // The name of the property (a.k.a key).
75*d5c09012SAndroid Build Coastguard Worker  string name = 1;
76*d5c09012SAndroid Build Coastguard Worker
77*d5c09012SAndroid Build Coastguard Worker  // The type of this property.
78*d5c09012SAndroid Build Coastguard Worker  PropertyType type = 2;
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker  // The description of the property
81*d5c09012SAndroid Build Coastguard Worker  string description = 3;
82*d5c09012SAndroid Build Coastguard Worker}
83