1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 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/configchange;configchange"; 20*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 21*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ConfigChangeProto"; 22*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.api"; 23*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GAPI"; 24*d5c09012SAndroid Build Coastguard Worker 25*d5c09012SAndroid Build Coastguard Worker// Output generated from semantically comparing two versions of a service 26*d5c09012SAndroid Build Coastguard Worker// configuration. 27*d5c09012SAndroid Build Coastguard Worker// 28*d5c09012SAndroid Build Coastguard Worker// Includes detailed information about a field that have changed with 29*d5c09012SAndroid Build Coastguard Worker// applicable advice about potential consequences for the change, such as 30*d5c09012SAndroid Build Coastguard Worker// backwards-incompatibility. 31*d5c09012SAndroid Build Coastguard Workermessage ConfigChange { 32*d5c09012SAndroid Build Coastguard Worker // Object hierarchy path to the change, with levels separated by a '.' 33*d5c09012SAndroid Build Coastguard Worker // character. For repeated fields, an applicable unique identifier field is 34*d5c09012SAndroid Build Coastguard Worker // used for the index (usually selector, name, or id). For maps, the term 35*d5c09012SAndroid Build Coastguard Worker // 'key' is used. If the field has no unique identifier, the numeric index 36*d5c09012SAndroid Build Coastguard Worker // is used. 37*d5c09012SAndroid Build Coastguard Worker // Examples: 38*d5c09012SAndroid Build Coastguard Worker // - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction 39*d5c09012SAndroid Build Coastguard Worker // - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value 40*d5c09012SAndroid Build Coastguard Worker // - logging.producer_destinations[0] 41*d5c09012SAndroid Build Coastguard Worker string element = 1; 42*d5c09012SAndroid Build Coastguard Worker 43*d5c09012SAndroid Build Coastguard Worker // Value of the changed object in the old Service configuration, 44*d5c09012SAndroid Build Coastguard Worker // in JSON format. This field will not be populated if ChangeType == ADDED. 45*d5c09012SAndroid Build Coastguard Worker string old_value = 2; 46*d5c09012SAndroid Build Coastguard Worker 47*d5c09012SAndroid Build Coastguard Worker // Value of the changed object in the new Service configuration, 48*d5c09012SAndroid Build Coastguard Worker // in JSON format. This field will not be populated if ChangeType == REMOVED. 49*d5c09012SAndroid Build Coastguard Worker string new_value = 3; 50*d5c09012SAndroid Build Coastguard Worker 51*d5c09012SAndroid Build Coastguard Worker // The type for this change, either ADDED, REMOVED, or MODIFIED. 52*d5c09012SAndroid Build Coastguard Worker ChangeType change_type = 4; 53*d5c09012SAndroid Build Coastguard Worker 54*d5c09012SAndroid Build Coastguard Worker // Collection of advice provided for this change, useful for determining the 55*d5c09012SAndroid Build Coastguard Worker // possible impact of this change. 56*d5c09012SAndroid Build Coastguard Worker repeated Advice advices = 5; 57*d5c09012SAndroid Build Coastguard Worker} 58*d5c09012SAndroid Build Coastguard Worker 59*d5c09012SAndroid Build Coastguard Worker// Generated advice about this change, used for providing more 60*d5c09012SAndroid Build Coastguard Worker// information about how a change will affect the existing service. 61*d5c09012SAndroid Build Coastguard Workermessage Advice { 62*d5c09012SAndroid Build Coastguard Worker // Useful description for why this advice was applied and what actions should 63*d5c09012SAndroid Build Coastguard Worker // be taken to mitigate any implied risks. 64*d5c09012SAndroid Build Coastguard Worker string description = 2; 65*d5c09012SAndroid Build Coastguard Worker} 66*d5c09012SAndroid Build Coastguard Worker 67*d5c09012SAndroid Build Coastguard Worker// Classifies set of possible modifications to an object in the service 68*d5c09012SAndroid Build Coastguard Worker// configuration. 69*d5c09012SAndroid Build Coastguard Workerenum ChangeType { 70*d5c09012SAndroid Build Coastguard Worker // No value was provided. 71*d5c09012SAndroid Build Coastguard Worker CHANGE_TYPE_UNSPECIFIED = 0; 72*d5c09012SAndroid Build Coastguard Worker 73*d5c09012SAndroid Build Coastguard Worker // The changed object exists in the 'new' service configuration, but not 74*d5c09012SAndroid Build Coastguard Worker // in the 'old' service configuration. 75*d5c09012SAndroid Build Coastguard Worker ADDED = 1; 76*d5c09012SAndroid Build Coastguard Worker 77*d5c09012SAndroid Build Coastguard Worker // The changed object exists in the 'old' service configuration, but not 78*d5c09012SAndroid Build Coastguard Worker // in the 'new' service configuration. 79*d5c09012SAndroid Build Coastguard Worker REMOVED = 2; 80*d5c09012SAndroid Build Coastguard Worker 81*d5c09012SAndroid Build Coastguard Worker // The changed object exists in both service configurations, but its value 82*d5c09012SAndroid Build Coastguard Worker // is different. 83*d5c09012SAndroid Build Coastguard Worker MODIFIED = 3; 84*d5c09012SAndroid Build Coastguard Worker} 85