codekingpro/portable-devtools
114k
1// Copyright 2026 Google LLC2//3// Licensed under the Apache License, Version 2.0 (the "License");4// you may not use this file except in compliance with the License.5// You may obtain a copy of the License at6//7// http://www.apache.org/licenses/LICENSE-2.08//9// Unless required by applicable law or agreed to in writing, software10// distributed under the License is distributed on an "AS IS" BASIS,11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12// See the License for the specific language governing permissions and13// limitations under the License.14 15syntax = "proto3";16 17package google.api;18 19option go_package = "google.golang.org/genproto/googleapis/api/configchange;configchange";20option java_multiple_files = true;21option java_outer_classname = "ConfigChangeProto";22option java_package = "com.google.api";23option objc_class_prefix = "GAPI";24 25// Output generated from semantically comparing two versions of a service26// configuration.27//28// Includes detailed information about a field that have changed with29// applicable advice about potential consequences for the change, such as30// backwards-incompatibility.31message ConfigChange {32 // Object hierarchy path to the change, with levels separated by a '.'33 // character. For repeated fields, an applicable unique identifier field is34 // used for the index (usually selector, name, or id). For maps, the term35 // 'key' is used. If the field has no unique identifier, the numeric index36 // is used.37 // Examples:38 // - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction39 // - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value40 // - logging.producer_destinations[0]41 string element = 1;42 43 // Value of the changed object in the old Service configuration,44 // in JSON format. This field will not be populated if ChangeType == ADDED.45 string old_value = 2;46 47 // Value of the changed object in the new Service configuration,48 // in JSON format. This field will not be populated if ChangeType == REMOVED.49 string new_value = 3;50 51 // The type for this change, either ADDED, REMOVED, or MODIFIED.52 ChangeType change_type = 4;53 54 // Collection of advice provided for this change, useful for determining the55 // possible impact of this change.56 repeated Advice advices = 5;57}58 59// Generated advice about this change, used for providing more60// information about how a change will affect the existing service.61message Advice {62 // Useful description for why this advice was applied and what actions should63 // be taken to mitigate any implied risks.64 string description = 2;65}66 67// Classifies set of possible modifications to an object in the service68// configuration.69enum ChangeType {70 // No value was provided.71 CHANGE_TYPE_UNSPECIFIED = 0;72 73 // The changed object exists in the 'new' service configuration, but not74 // in the 'old' service configuration.75 ADDED = 1;76 77 // The changed object exists in the 'old' service configuration, but not78 // in the 'new' service configuration.79 REMOVED = 2;80 81 // The changed object exists in both service configurations, but its value82 // is different.83 MODIFIED = 3;84}85 