config_change.proto 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // Copyright 2019 Google LLC.
  2. //
  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 at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // 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 and
  13. // limitations under the License.
  14. //
  15. syntax = "proto3";
  16. package google.api;
  17. option go_package = "google.golang.org/genproto/googleapis/api/configchange;configchange";
  18. option java_multiple_files = true;
  19. option java_outer_classname = "ConfigChangeProto";
  20. option java_package = "com.google.api";
  21. option objc_class_prefix = "GAPI";
  22. // Output generated from semantically comparing two versions of a service
  23. // configuration.
  24. //
  25. // Includes detailed information about a field that have changed with
  26. // applicable advice about potential consequences for the change, such as
  27. // backwards-incompatibility.
  28. message ConfigChange {
  29. // Object hierarchy path to the change, with levels separated by a '.'
  30. // character. For repeated fields, an applicable unique identifier field is
  31. // used for the index (usually selector, name, or id). For maps, the term
  32. // 'key' is used. If the field has no unique identifier, the numeric index
  33. // is used.
  34. // Examples:
  35. // - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction
  36. // - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value
  37. // - logging.producer_destinations[0]
  38. string element = 1;
  39. // Value of the changed object in the old Service configuration,
  40. // in JSON format. This field will not be populated if ChangeType == ADDED.
  41. string old_value = 2;
  42. // Value of the changed object in the new Service configuration,
  43. // in JSON format. This field will not be populated if ChangeType == REMOVED.
  44. string new_value = 3;
  45. // The type for this change, either ADDED, REMOVED, or MODIFIED.
  46. ChangeType change_type = 4;
  47. // Collection of advice provided for this change, useful for determining the
  48. // possible impact of this change.
  49. repeated Advice advices = 5;
  50. }
  51. // Generated advice about this change, used for providing more
  52. // information about how a change will affect the existing service.
  53. message Advice {
  54. // Useful description for why this advice was applied and what actions should
  55. // be taken to mitigate any implied risks.
  56. string description = 2;
  57. }
  58. // Classifies set of possible modifications to an object in the service
  59. // configuration.
  60. enum ChangeType {
  61. // No value was provided.
  62. CHANGE_TYPE_UNSPECIFIED = 0;
  63. // The changed object exists in the 'new' service configuration, but not
  64. // in the 'old' service configuration.
  65. ADDED = 1;
  66. // The changed object exists in the 'old' service configuration, but not
  67. // in the 'new' service configuration.
  68. REMOVED = 2;
  69. // The changed object exists in both service configurations, but its value
  70. // is different.
  71. MODIFIED = 3;
  72. }