diff --git a/src/__generated__/changes-AutoTaggingService_connectquery.ts b/src/__generated__/changes-AutoTaggingService_connectquery.ts new file mode 100644 index 0000000..68f4de7 --- /dev/null +++ b/src/__generated__/changes-AutoTaggingService_connectquery.ts @@ -0,0 +1,53 @@ +// @generated by protoc-gen-connect-query v2.0.1 with parameter "target=ts" +// @generated from file changes.proto (package changes, syntax proto3) +/* eslint-disable */ + +import { AutoTaggingService } from "./changes_pb"; + +/** + * Used on the auto-tagging page to list all rules for an account + * Returns a list of rules + * + * @generated from rpc changes.AutoTaggingService.ListRules + */ +export const listRules = AutoTaggingService.method.listRules; + +/** + * Creates a new rule, with the provided properties. This will return a + * CodeAlreadyExists error if the `tagKey` is not unique + * + * @generated from rpc changes.AutoTaggingService.CreateRule + */ +export const createRule = AutoTaggingService.method.createRule; + +/** + * Get the details of a rule + * + * @generated from rpc changes.AutoTaggingService.GetRule + */ +export const getRule = AutoTaggingService.method.getRule; + +/** + * Given a rule UUID, updates the rule properties. Note the key can be + * updated, but it only applies to new changes. This will return a + * CodeAlreadyExists error if the new `tagKey` is not unique + * + * @generated from rpc changes.AutoTaggingService.UpdateRule + */ +export const updateRule = AutoTaggingService.method.updateRule; + +/** + * Given a rule UUID permanently delete that rule, existing changes will not + * be affected + * + * @generated from rpc changes.AutoTaggingService.DeleteRule + */ +export const deleteRule = AutoTaggingService.method.deleteRule; + +/** + * Convert a rule's properties to a string that can be used in the rules + * config file + * + * @generated from rpc changes.AutoTaggingService.ExportRule + */ +export const exportRule = AutoTaggingService.method.exportRule; diff --git a/src/__generated__/changes_pb.ts b/src/__generated__/changes_pb.ts index d6106b9..d7c3a15 100644 --- a/src/__generated__/changes_pb.ts +++ b/src/__generated__/changes_pb.ts @@ -22,7 +22,386 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file changes.proto. */ export const file_changes: GenFile = /*@__PURE__*/ - fileDesc("Cg1jaGFuZ2VzLnByb3RvEgdjaGFuZ2VzIi4KGEdldENoYW5nZVRpbWVsaW5lUmVxdWVzdBISCgpjaGFuZ2VVVUlEGAEgASgMIkoKGUdldENoYW5nZVRpbWVsaW5lUmVzcG9uc2USLQoHZW50cmllcxgBIAMoCzIcLmNoYW5nZXMuQ2hhbmdlVGltZWxpbmVFbnRyeSKWAQoTQ2hhbmdlVGltZWxpbmVFbnRyeRIlCgZzdGF0dXMYASABKA4yFS5jaGFuZ2VzLkNoYW5nZVN0YXR1cxIVCg1zdGF0dXNNZXNzYWdlGAIgASgJEi4KCmhhcHBlbmVkQXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhEKCWFjdG9yTmFtZRgEIAEoCSIkCg5HZXREaWZmUmVxdWVzdBISCgpjaGFuZ2VVVUlEGAEgASgMIqYBCg9HZXREaWZmUmVzcG9uc2USKAoNZXhwZWN0ZWRJdGVtcxgBIAMoCzIRLmNoYW5nZXMuSXRlbURpZmYSKgoPdW5leHBlY3RlZEl0ZW1zGAMgAygLMhEuY2hhbmdlcy5JdGVtRGlmZhIUCgVlZGdlcxgCIAMoCzIFLkVkZ2USJwoMbWlzc2luZ0l0ZW1zGAQgAygLMhEuY2hhbmdlcy5JdGVtRGlmZiI1Ch9MaXN0Q2hhbmdpbmdJdGVtc1N1bW1hcnlSZXF1ZXN0EhIKCmNoYW5nZVVVSUQYASABKAwiSwogTGlzdENoYW5naW5nSXRlbXNTdW1tYXJ5UmVzcG9uc2USJwoFaXRlbXMYASADKAsyGC5jaGFuZ2VzLkl0ZW1EaWZmU3VtbWFyeSIsChZHZXRBZmZlY3RlZEFwcHNSZXF1ZXN0EhIKCmNoYW5nZVVVSUQYASABKAwiPAoXR2V0QWZmZWN0ZWRBcHBzUmVzcG9uc2USIQoEYXBwcxgBIAMoCzITLmNoYW5nZXMuQXBwU3VtbWFyeSJTChpVcGRhdGVDaGFuZ2luZ0l0ZW1zUmVxdWVzdBISCgpjaGFuZ2VVVUlEGAEgASgMEiEKDWNoYW5naW5nSXRlbXMYAiADKAsyCi5SZWZlcmVuY2UiZQoOTWFwcGVkSXRlbURpZmYSHwoEaXRlbRgBIAEoCzIRLmNoYW5nZXMuSXRlbURpZmYSIQoMbWFwcGluZ1F1ZXJ5GAIgASgLMgYuUXVlcnlIAIgBAUIPCg1fbWFwcGluZ1F1ZXJ5IsIBChtVcGRhdGVQbGFubmVkQ2hhbmdlc1JlcXVlc3QSEgoKY2hhbmdlVVVJRBgBIAEoDBIuCg1jaGFuZ2luZ0l0ZW1zGAIgAygLMhcuY2hhbmdlcy5NYXBwZWRJdGVtRGlmZhJBChlibGFzdFJhZGl1c0NvbmZpZ092ZXJyaWRlGAMgASgLMhkuY29uZmlnLkJsYXN0UmFkaXVzQ29uZmlnSACIAQFCHAoaX2JsYXN0UmFkaXVzQ29uZmlnT3ZlcnJpZGUiLwocTGlzdEFwcENoYW5nZXNTdW1tYXJ5UmVxdWVzdBIPCgdhcHBVVUlEGAEgASgMIkgKHUxpc3RBcHBDaGFuZ2VzU3VtbWFyeVJlc3BvbnNlEicKB2NoYW5nZXMYASADKAsyFi5jaGFuZ2VzLkNoYW5nZVN1bW1hcnkiJAoUR2V0QXBwU3VtbWFyeVJlcXVlc3QSDAoEVVVJRBgBIAEoDCI5ChVHZXRBcHBTdW1tYXJ5UmVzcG9uc2USIAoDYXBwGAEgASgLMhMuY2hhbmdlcy5BcHBTdW1tYXJ5IicKFkdldEFwcFN1bW1hcmllc1JlcXVlc3QSDQoFVVVJRHMYASADKAwiPAoXR2V0QXBwU3VtbWFyaWVzUmVzcG9uc2USIQoEYXBwcxgBIAMoCzITLmNoYW5nZXMuQXBwU3VtbWFyeSKBAQoWTGlzdEhvbWVDaGFuZ2VzUmVxdWVzdBImCgpwYWdpbmF0aW9uGAEgASgLMhIuUGFnaW5hdGlvblJlcXVlc3QSMwoHZmlsdGVycxgCIAEoCzIdLmNoYW5nZXMuQ2hhbmdlRmlsdGVyc1JlcXVlc3RIAIgBAUIKCghfZmlsdGVycyKcAgoUQ2hhbmdlRmlsdGVyc1JlcXVlc3QSDQoFcmVwb3MYASADKAkSNQoEdGFncxgCIAMoCzInLmNoYW5nZXMuQ2hhbmdlRmlsdGVyc1JlcXVlc3QuVGFnc0VudHJ5EiUKBXJpc2tzGAMgAygOMhYuY2hhbmdlcy5SaXNrLlNldmVyaXR5Eg8KB2F1dGhvcnMYBCADKAkSJwoIc3RhdHVzZXMYBSADKA4yFS5jaGFuZ2VzLkNoYW5nZVN0YXR1cxIiCglzb3J0T3JkZXIYBiABKA4yCi5Tb3J0T3JkZXJIAIgBARorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIMCgpfc29ydE9yZGVyImsKF0xpc3RIb21lQ2hhbmdlc1Jlc3BvbnNlEicKB2NoYW5nZXMYASADKAsyFi5jaGFuZ2VzLkNoYW5nZVN1bW1hcnkSJwoKcGFnaW5hdGlvbhgCIAEoCzITLlBhZ2luYXRpb25SZXNwb25zZSIeChxQb3B1bGF0ZUNoYW5nZUZpbHRlcnNSZXF1ZXN0Ij8KHVBvcHVsYXRlQ2hhbmdlRmlsdGVyc1Jlc3BvbnNlEg0KBXJlcG9zGAEgAygJEg8KB2F1dGhvcnMYAiADKAkiFQoTTGlzdEhvbWVBcHBzUmVxdWVzdCI5ChRMaXN0SG9tZUFwcHNSZXNwb25zZRIhCgRhcHBzGAEgAygLMhMuY2hhbmdlcy5BcHBTdW1tYXJ5InIKD0l0ZW1EaWZmU3VtbWFyeRIYCgRpdGVtGAEgASgLMgouUmVmZXJlbmNlEicKBnN0YXR1cxgEIAEoDjIXLmNoYW5nZXMuSXRlbURpZmZTdGF0dXMSHAoLaGVhbHRoQWZ0ZXIYBSABKA4yBy5IZWFsdGgiegoISXRlbURpZmYSGAoEaXRlbRgBIAEoCzIKLlJlZmVyZW5jZRInCgZzdGF0dXMYAiABKA4yFy5jaGFuZ2VzLkl0ZW1EaWZmU3RhdHVzEhUKBmJlZm9yZRgDIAEoCzIFLkl0ZW0SFAoFYWZ0ZXIYBCABKAsyBS5JdGVtItMBCgpBcHBTdW1tYXJ5EgwKBFVVSUQYASABKAwSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIbChNudW1DaGFuZ2VzQWZmZWN0aW5nGAQgASgFEhAKCG51bUl0ZW1zGAUgASgFEi0KCWNyZWF0ZWRBdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLY3JlYXRvck5hbWUYByABKAkSCwoDdXJsGAkgASgJEhQKDGJvb2ttYXJrVVVJRBgKIAEoDCJZCgNBcHASJgoIbWV0YWRhdGEYASABKAsyFC5jaGFuZ2VzLkFwcE1ldGFkYXRhEioKCnByb3BlcnRpZXMYAiABKAsyFi5jaGFuZ2VzLkFwcFByb3BlcnRpZXMimwIKC0FwcE1ldGFkYXRhEgwKBFVVSUQYASABKAwSLQoJY3JlYXRlZEF0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCgl1cGRhdGVkQXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKBWl0ZW1zGAQgAygLMgouUmVmZXJlbmNlEjQKEGl0ZW1zTGFzdFVwZGF0ZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE251bUNoYW5nZXNBZmZlY3RpbmcYBiABKAUSEAoIbnVtSXRlbXMYCCABKAUSEwoLY3JlYXRvck5hbWUYByABKAkSCwoDdXJsGAkgASgJIkgKDUFwcFByb3BlcnRpZXMSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIUCgxib29rbWFya1VVSUQYAyABKAwiEQoPTGlzdEFwcHNSZXF1ZXN0Ii4KEExpc3RBcHBzUmVzcG9uc2USGgoEYXBwcxgBIAMoCzIMLmNoYW5nZXMuQXBwIj4KEENyZWF0ZUFwcFJlcXVlc3QSKgoKcHJvcGVydGllcxgBIAEoCzIWLmNoYW5nZXMuQXBwUHJvcGVydGllcyIuChFDcmVhdGVBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5jaGFuZ2VzLkFwcCJIChZDcmVhdGVTaW1wbGVBcHBSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSCwoDdXJsGAMgASgJIjQKF0NyZWF0ZVNpbXBsZUFwcFJlc3BvbnNlEhkKA2FwcBgBIAEoCzIMLmNoYW5nZXMuQXBwIh0KDUdldEFwcFJlcXVlc3QSDAoEVVVJRBgBIAEoDCIrCg5HZXRBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5jaGFuZ2VzLkFwcCJMChBVcGRhdGVBcHBSZXF1ZXN0EgwKBFVVSUQYASABKAwSKgoKcHJvcGVydGllcxgCIAEoCzIWLmNoYW5nZXMuQXBwUHJvcGVydGllcyIuChFVcGRhdGVBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5jaGFuZ2VzLkFwcCIgChBEZWxldGVBcHBSZXF1ZXN0EgwKBFVVSUQYASABKAwiEwoRRGVsZXRlQXBwUmVzcG9uc2UiJQoVTGlzdEFwcENoYW5nZXNSZXF1ZXN0EgwKBFVVSUQYASABKAwiOgoWTGlzdEFwcENoYW5nZXNSZXNwb25zZRIgCgdjaGFuZ2VzGAEgAygLMg8uY2hhbmdlcy5DaGFuZ2UizgMKDUNoYW5nZVN1bW1hcnkSDAoEVVVJRBgBIAEoDBINCgV0aXRsZRgCIAEoCRIlCgZzdGF0dXMYAyABKA4yFS5jaGFuZ2VzLkNoYW5nZVN0YXR1cxISCgp0aWNrZXRMaW5rGAQgASgJEi0KCWNyZWF0ZWRBdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLY3JlYXRvck5hbWUYBiABKAkSFAoMY3JlYXRvckVtYWlsGA8gASgJEhcKD251bUFmZmVjdGVkQXBwcxgIIAEoBRIYChBudW1BZmZlY3RlZEl0ZW1zGAkgASgFEhgKEG51bUFmZmVjdGVkRWRnZXMYCiABKAUSEgoKbnVtTG93UmlzaxgLIAEoBRIVCg1udW1NZWRpdW1SaXNrGAwgASgFEhMKC251bUhpZ2hSaXNrGA0gASgFEhMKC2Rlc2NyaXB0aW9uGA4gASgJEgwKBHJlcG8YECABKAkSLgoEdGFncxgRIAMoCzIgLmNoYW5nZXMuQ2hhbmdlU3VtbWFyeS5UYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiYgoGQ2hhbmdlEikKCG1ldGFkYXRhGAEgASgLMhcuY2hhbmdlcy5DaGFuZ2VNZXRhZGF0YRItCgpwcm9wZXJ0aWVzGAIgASgLMhkuY2hhbmdlcy5DaGFuZ2VQcm9wZXJ0aWVzIqcGCg5DaGFuZ2VNZXRhZGF0YRIMCgRVVUlEGAEgASgMEi0KCWNyZWF0ZWRBdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJdXBkYXRlZEF0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIlCgZzdGF0dXMYBCABKA4yFS5jaGFuZ2VzLkNoYW5nZVN0YXR1cxITCgtjcmVhdG9yTmFtZRgFIAEoCRIUCgxjcmVhdG9yRW1haWwYEyABKAkSFwoPbnVtQWZmZWN0ZWRBcHBzGAYgASgFEhgKEG51bUFmZmVjdGVkSXRlbXMYByABKAUSGAoQbnVtQWZmZWN0ZWRFZGdlcxgRIAEoBRIZChFudW1VbmNoYW5nZWRJdGVtcxgIIAEoBRIXCg9udW1DcmVhdGVkSXRlbXMYCSABKAUSFwoPbnVtVXBkYXRlZEl0ZW1zGAogASgFEhgKEG51bVJlcGxhY2VkSXRlbXMYEiABKAUSFwoPbnVtRGVsZXRlZEl0ZW1zGAsgASgFEkEKE1Vua25vd25IZWFsdGhDaGFuZ2UYDCABKAsyJC5jaGFuZ2VzLkNoYW5nZU1ldGFkYXRhLkhlYWx0aENoYW5nZRI8Cg5Pa0hlYWx0aENoYW5nZRgNIAEoCzIkLmNoYW5nZXMuQ2hhbmdlTWV0YWRhdGEuSGVhbHRoQ2hhbmdlEkEKE1dhcm5pbmdIZWFsdGhDaGFuZ2UYDiABKAsyJC5jaGFuZ2VzLkNoYW5nZU1ldGFkYXRhLkhlYWx0aENoYW5nZRI/ChFFcnJvckhlYWx0aENoYW5nZRgPIAEoCzIkLmNoYW5nZXMuQ2hhbmdlTWV0YWRhdGEuSGVhbHRoQ2hhbmdlEkEKE1BlbmRpbmdIZWFsdGhDaGFuZ2UYECABKAsyJC5jaGFuZ2VzLkNoYW5nZU1ldGFkYXRhLkhlYWx0aENoYW5nZRpCCgxIZWFsdGhDaGFuZ2USDQoFYWRkZWQYASABKAUSDwoHcmVtb3ZlZBgCIAEoBRISCgpmaW5hbFRvdGFsGAMgASgFItEDChBDaGFuZ2VQcm9wZXJ0aWVzEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhIKCnRpY2tldExpbmsYBCABKAkSDQoFb3duZXIYBSABKAkSEAoIY2NFbWFpbHMYBiABKAkSIQoZY2hhbmdpbmdJdGVtc0Jvb2ttYXJrVVVJRBgHIAEoDBIfChdibGFzdFJhZGl1c1NuYXBzaG90VVVJRBgLIAEoDBIgChhzeXN0ZW1CZWZvcmVTbmFwc2hvdFVVSUQYCCABKAwSHwoXc3lzdGVtQWZ0ZXJTbmFwc2hvdFVVSUQYCSABKAwSGAoQYWZmZWN0ZWRBcHBzVVVJRBgKIAMoDBIpCg5wbGFubmVkQ2hhbmdlcxgMIAMoCzIRLmNoYW5nZXMuSXRlbURpZmYSDwoHcmF3UGxhbhgNIAEoCRITCgtjb2RlQ2hhbmdlcxgOIAEoCRIMCgRyZXBvGA8gASgJEjEKBHRhZ3MYECADKAsyIy5jaGFuZ2VzLkNoYW5nZVByb3BlcnRpZXMuVGFnc0VudHJ5GisKCVRhZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIARACIhQKEkxpc3RDaGFuZ2VzUmVxdWVzdCI3ChNMaXN0Q2hhbmdlc1Jlc3BvbnNlEiAKB2NoYW5nZXMYASADKAsyDy5jaGFuZ2VzLkNoYW5nZSJDChpMaXN0Q2hhbmdlc0J5U3RhdHVzUmVxdWVzdBIlCgZzdGF0dXMYASABKA4yFS5jaGFuZ2VzLkNoYW5nZVN0YXR1cyI/ChtMaXN0Q2hhbmdlc0J5U3RhdHVzUmVzcG9uc2USIAoHY2hhbmdlcxgBIAMoCzIPLmNoYW5nZXMuQ2hhbmdlIkQKE0NyZWF0ZUNoYW5nZVJlcXVlc3QSLQoKcHJvcGVydGllcxgBIAEoCzIZLmNoYW5nZXMuQ2hhbmdlUHJvcGVydGllcyI3ChRDcmVhdGVDaGFuZ2VSZXNwb25zZRIfCgZjaGFuZ2UYASABKAsyDy5jaGFuZ2VzLkNoYW5nZSIuChBHZXRDaGFuZ2VSZXF1ZXN0EgwKBFVVSUQYASABKAwSDAoEc2xpbRgCIAEoCCI0ChFHZXRDaGFuZ2VSZXNwb25zZRIfCgZjaGFuZ2UYASABKAsyDy5jaGFuZ2VzLkNoYW5nZSIlChVHZXRDaGFuZ2VSaXNrc1JlcXVlc3QSDAoEVVVJRBgBIAEoDCKxAQoSQ2hhbmdlUmlza01ldGFkYXRhEj0KFXJpc2tDYWxjdWxhdGlvblN0YXR1cxgBIAEoCzIeLmNoYW5nZXMuUmlza0NhbGN1bGF0aW9uU3RhdHVzEhwKBXJpc2tzGAUgAygLMg0uY2hhbmdlcy5SaXNrEhIKCm51bUxvd1Jpc2sYBiABKAUSFQoNbnVtTWVkaXVtUmlzaxgHIAEoBRITCgtudW1IaWdoUmlzaxgIIAEoBSJRChZHZXRDaGFuZ2VSaXNrc1Jlc3BvbnNlEjcKEmNoYW5nZVJpc2tNZXRhZGF0YRgBIAEoCzIbLmNoYW5nZXMuQ2hhbmdlUmlza01ldGFkYXRhIlIKE1VwZGF0ZUNoYW5nZVJlcXVlc3QSDAoEVVVJRBgBIAEoDBItCgpwcm9wZXJ0aWVzGAIgASgLMhkuY2hhbmdlcy5DaGFuZ2VQcm9wZXJ0aWVzIjcKFFVwZGF0ZUNoYW5nZVJlc3BvbnNlEh8KBmNoYW5nZRgBIAEoCzIPLmNoYW5nZXMuQ2hhbmdlIiMKE0RlbGV0ZUNoYW5nZVJlcXVlc3QSDAoEVVVJRBgBIAEoDCIwCiBMaXN0Q2hhbmdlc0J5U25hcHNob3RVVUlEUmVxdWVzdBIMCgRVVUlEGAEgASgMIkUKIUxpc3RDaGFuZ2VzQnlTbmFwc2hvdFVVSURSZXNwb25zZRIgCgdjaGFuZ2VzGAEgAygLMg8uY2hhbmdlcy5DaGFuZ2UiFgoURGVsZXRlQ2hhbmdlUmVzcG9uc2UiFQoTUmVmcmVzaFN0YXRlUmVxdWVzdCIWChRSZWZyZXNoU3RhdGVSZXNwb25zZSJAChtDYWxjdWxhdGVCbGFzdFJhZGl1c1JlcXVlc3QSEgoKY2hhbmdlVVVJRBgBIAEoDBINCgVmb3JjZRgCIAEoCCL/AQocQ2FsY3VsYXRlQmxhc3RSYWRpdXNSZXNwb25zZRI6CgVzdGF0ZRgBIAEoDjIrLmNoYW5nZXMuQ2FsY3VsYXRlQmxhc3RSYWRpdXNSZXNwb25zZS5TdGF0ZRIQCghudW1JdGVtcxgCIAEoDRIQCghudW1FZGdlcxgDIAEoDRIOCgZlcnJvcnMYBCADKAkibwoFU3RhdGUSFQoRU1RBVEVfVU5TUEVDSUZJRUQQABIVChFTVEFURV9ESVNDT1ZFUklORxABEhAKDFNUQVRFX1NBVklORxACEhYKElNUQVRFX0ZJTkRJTkdfQVBQUxADEg4KClNUQVRFX0RPTkUQBCIoChJTdGFydENoYW5nZVJlcXVlc3QSEgoKY2hhbmdlVVVJRBgBIAEoDCLSAQoTU3RhcnRDaGFuZ2VSZXNwb25zZRIxCgVzdGF0ZRgBIAEoDjIiLmNoYW5nZXMuU3RhcnRDaGFuZ2VSZXNwb25zZS5TdGF0ZRIQCghudW1JdGVtcxgCIAEoDRIQCghOdW1FZGdlcxgDIAEoDSJkCgVTdGF0ZRIVChFTVEFURV9VTlNQRUNJRklFRBAAEhkKFVNUQVRFX1RBS0lOR19TTkFQU0hPVBABEhkKFVNUQVRFX1NBVklOR19TTkFQU0hPVBACEg4KClNUQVRFX0RPTkUQAyImChBFbmRDaGFuZ2VSZXF1ZXN0EhIKCmNoYW5nZVVVSUQYASABKAwizgEKEUVuZENoYW5nZVJlc3BvbnNlEi8KBXN0YXRlGAEgASgOMiAuY2hhbmdlcy5FbmRDaGFuZ2VSZXNwb25zZS5TdGF0ZRIQCghudW1JdGVtcxgCIAEoDRIQCghOdW1FZGdlcxgDIAEoDSJkCgVTdGF0ZRIVChFTVEFURV9VTlNQRUNJRklFRBAAEhkKFVNUQVRFX1RBS0lOR19TTkFQU0hPVBABEhkKFVNUQVRFX1NBVklOR19TTkFQU0hPVBACEg4KClNUQVRFX0RPTkUQAyJuCgpPbmJvYXJkaW5nEi0KCG1ldGFkYXRhGAEgASgLMhsuY2hhbmdlcy5PbmJvYXJkaW5nTWV0YWRhdGESMQoKcHJvcGVydGllcxgCIAEoCzIdLmNoYW5nZXMuT25ib2FyZGluZ1Byb3BlcnRpZXMiVwoST25ib2FyZGluZ01ldGFkYXRhEisKB2NyZWF0ZWQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhQKDGhhc0F3c1NvdXJjZRgDIAEoCCKDAQoUT25ib2FyZGluZ1Byb3BlcnRpZXMSKQoGc3RhdHVzGAEgASgOMhkuY2hhbmdlcy5PbmJvYXJkaW5nU3RhdHVzEhUKDWF3c1NvdXJjZVVVSUQYAiABKAwSDwoHYXBwVVVJRBgDIAEoDBISCgpjaGFuZ2VVVUlEGAQgASgMSgQIBRAGIhYKFEdldE9uYm9hcmRpbmdSZXF1ZXN0IkAKFUdldE9uYm9hcmRpbmdSZXNwb25zZRInCgpvbmJvYXJkaW5nGAEgASgLMhMuY2hhbmdlcy5PbmJvYXJkaW5nIkwKF1VwZGF0ZU9uYm9hcmRpbmdSZXF1ZXN0EjEKCnByb3BlcnRpZXMYAiABKAsyHS5jaGFuZ2VzLk9uYm9hcmRpbmdQcm9wZXJ0aWVzIkMKGFVwZGF0ZU9uYm9hcmRpbmdSZXNwb25zZRInCgpvbmJvYXJkaW5nGAEgASgLMhMuY2hhbmdlcy5PbmJvYXJkaW5nIisKFVNpbXVsYXRlQ2hhbmdlUmVxdWVzdBISCgpjaGFuZ2VVVUlEGAEgASgMIj8KFlNpbXVsYXRlQ2hhbmdlUmVzcG9uc2USDAoEZG9uZRgBIAEoCBIXCg9wZXJjZW50Q29tcGxldGUYAiABKA0i5AEKBFJpc2sSDAoEVVVJRBgFIAEoDBINCgV0aXRsZRgBIAEoCRIoCghzZXZlcml0eRgCIAEoDjIWLmNoYW5nZXMuUmlzay5TZXZlcml0eRITCgtkZXNjcmlwdGlvbhgDIAEoCRIgCgxyZWxhdGVkSXRlbXMYBCADKAsyCi5SZWZlcmVuY2UiXgoIU2V2ZXJpdHkSGAoUU0VWRVJJVFlfVU5TUEVDSUZJRUQQABIQCgxTRVZFUklUWV9MT1cQARITCg9TRVZFUklUWV9NRURJVU0QAhIRCg1TRVZFUklUWV9ISUdIEAMi7AMKFVJpc2tDYWxjdWxhdGlvblN0YXR1cxI1CgZzdGF0dXMYASABKA4yJS5jaGFuZ2VzLlJpc2tDYWxjdWxhdGlvblN0YXR1cy5TdGF0dXMSTAoScHJvZ3Jlc3NNaWxlc3RvbmVzGAUgAygLMjAuY2hhbmdlcy5SaXNrQ2FsY3VsYXRpb25TdGF0dXMuUHJvZ3Jlc3NNaWxlc3RvbmUa3QEKEVByb2dyZXNzTWlsZXN0b25lEhMKC2Rlc2NyaXB0aW9uGAEgASgJEkcKBnN0YXR1cxgCIAEoDjI3LmNoYW5nZXMuUmlza0NhbGN1bGF0aW9uU3RhdHVzLlByb2dyZXNzTWlsZXN0b25lLlN0YXR1cyJqCgZTdGF0dXMSEgoOU1RBVFVTX1BFTkRJTkcQABIVChFTVEFUVVNfSU5QUk9HUkVTUxABEg8KC1NUQVRVU19ET05FEAISEAoMU1RBVFVTX0VSUk9SEAMSEgoOU1RBVFVTX1NLSVBQRUQQBCJuCgZTdGF0dXMSFgoSU1RBVFVTX1VOU1BFQ0lGSUVEEAASFQoRU1RBVFVTX0lOUFJPR1JFU1MQARISCg5TVEFUVVNfU0tJUFBFRBACEg8KC1NUQVRVU19ET05FEAMSEAoMU1RBVFVTX0VSUk9SEAQi/wMKDUNoYW5nZUFyY2hpdmUSHwoGQ2hhbmdlGAEgASgLMg8uY2hhbmdlcy5DaGFuZ2USNwoVY2hhbmdpbmdJdGVtc0Jvb2ttYXJrGAIgASgLMhMuYm9va21hcmtzLkJvb2ttYXJrSACIAQESNQoTYmxhc3RSYWRpdXNTbmFwc2hvdBgDIAEoCzITLnNuYXBzaG90cy5TbmFwc2hvdEgBiAEBEjYKFHN5c3RlbUJlZm9yZVNuYXBzaG90GAQgASgLMhMuc25hcHNob3RzLlNuYXBzaG90SAKIAQESNQoTc3lzdGVtQWZ0ZXJTbmFwc2hvdBgFIAEoCzITLnNuYXBzaG90cy5TbmFwc2hvdEgDiAEBEiIKDGFmZmVjdGVkQXBwcxgGIAMoCzIMLmNoYW5nZXMuQXBwEi4KCHRpbWVsaW5lGAcgAygLMhwuY2hhbmdlcy5DaGFuZ2VUaW1lbGluZUVudHJ5EjcKEmNoYW5nZVJpc2tNZXRhZGF0YRgIIAEoCzIbLmNoYW5nZXMuQ2hhbmdlUmlza01ldGFkYXRhQhgKFl9jaGFuZ2luZ0l0ZW1zQm9va21hcmtCFgoUX2JsYXN0UmFkaXVzU25hcHNob3RCFwoVX3N5c3RlbUJlZm9yZVNuYXBzaG90QhYKFF9zeXN0ZW1BZnRlclNuYXBzaG90IicKF0dldENoYW5nZUFyY2hpdmVSZXF1ZXN0EgwKBFVVSUQYASABKAwiSQoYR2V0Q2hhbmdlQXJjaGl2ZVJlc3BvbnNlEi0KDWNoYW5nZUFyY2hpdmUYASABKAsyFi5jaGFuZ2VzLkNoYW5nZUFyY2hpdmUqywEKDkl0ZW1EaWZmU3RhdHVzEiAKHElURU1fRElGRl9TVEFUVVNfVU5TUEVDSUZJRUQQABIeChpJVEVNX0RJRkZfU1RBVFVTX1VOQ0hBTkdFRBABEhwKGElURU1fRElGRl9TVEFUVVNfQ1JFQVRFRBACEhwKGElURU1fRElGRl9TVEFUVVNfVVBEQVRFRBADEhwKGElURU1fRElGRl9TVEFUVVNfREVMRVRFRBAEEh0KGUlURU1fRElGRl9TVEFUVVNfUkVQTEFDRUQQBSqcAQoMQ2hhbmdlU3RhdHVzEh0KGUNIQU5HRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZDSEFOR0VfU1RBVFVTX0RFRklOSU5HEAESGwoXQ0hBTkdFX1NUQVRVU19IQVBQRU5JTkcQAhIcChhDSEFOR0VfU1RBVFVTX1BST0NFU1NJTkcQAxIWChJDSEFOR0VfU1RBVFVTX0RPTkUQBCrjAQoQT25ib2FyZGluZ1N0YXR1cxIhCh1PTkJPQVJESU5HX1NUQVRVU19VTlNQRUNJRklFRBAAEiUKIU9OQk9BUkRJTkdfU1RBVFVTX0FERF9BV1NfQUNDT1VOVBABEh0KGU9OQk9BUkRJTkdfU1RBVFVTX0FERF9BUFAQAhIjCh9PTkJPQVJESU5HX1NUQVRVU19DUkVBVEVfQ0hBTkdFEAMSJQohT05CT0FSRElOR19TVEFUVVNfU0lNVUxBVEVfQ0hBTkdFEAQSGgoWT05CT0FSRElOR19TVEFUVVNfRE9ORRAFMoIXCg5DaGFuZ2VzU2VydmljZRI/CghMaXN0QXBwcxIYLmNoYW5nZXMuTGlzdEFwcHNSZXF1ZXN0GhkuY2hhbmdlcy5MaXN0QXBwc1Jlc3BvbnNlEkIKCUNyZWF0ZUFwcBIZLmNoYW5nZXMuQ3JlYXRlQXBwUmVxdWVzdBoaLmNoYW5nZXMuQ3JlYXRlQXBwUmVzcG9uc2USVAoPQ3JlYXRlU2ltcGxlQXBwEh8uY2hhbmdlcy5DcmVhdGVTaW1wbGVBcHBSZXF1ZXN0GiAuY2hhbmdlcy5DcmVhdGVTaW1wbGVBcHBSZXNwb25zZRI5CgZHZXRBcHASFi5jaGFuZ2VzLkdldEFwcFJlcXVlc3QaFy5jaGFuZ2VzLkdldEFwcFJlc3BvbnNlEkIKCVVwZGF0ZUFwcBIZLmNoYW5nZXMuVXBkYXRlQXBwUmVxdWVzdBoaLmNoYW5nZXMuVXBkYXRlQXBwUmVzcG9uc2USQgoJRGVsZXRlQXBwEhkuY2hhbmdlcy5EZWxldGVBcHBSZXF1ZXN0GhouY2hhbmdlcy5EZWxldGVBcHBSZXNwb25zZRJICgtMaXN0Q2hhbmdlcxIbLmNoYW5nZXMuTGlzdENoYW5nZXNSZXF1ZXN0GhwuY2hhbmdlcy5MaXN0Q2hhbmdlc1Jlc3BvbnNlEmAKE0xpc3RDaGFuZ2VzQnlTdGF0dXMSIy5jaGFuZ2VzLkxpc3RDaGFuZ2VzQnlTdGF0dXNSZXF1ZXN0GiQuY2hhbmdlcy5MaXN0Q2hhbmdlc0J5U3RhdHVzUmVzcG9uc2USSwoMQ3JlYXRlQ2hhbmdlEhwuY2hhbmdlcy5DcmVhdGVDaGFuZ2VSZXF1ZXN0Gh0uY2hhbmdlcy5DcmVhdGVDaGFuZ2VSZXNwb25zZRJCCglHZXRDaGFuZ2USGS5jaGFuZ2VzLkdldENoYW5nZVJlcXVlc3QaGi5jaGFuZ2VzLkdldENoYW5nZVJlc3BvbnNlElEKDkdldENoYW5nZVJpc2tzEh4uY2hhbmdlcy5HZXRDaGFuZ2VSaXNrc1JlcXVlc3QaHy5jaGFuZ2VzLkdldENoYW5nZVJpc2tzUmVzcG9uc2USVwoQR2V0Q2hhbmdlQXJjaGl2ZRIgLmNoYW5nZXMuR2V0Q2hhbmdlQXJjaGl2ZVJlcXVlc3QaIS5jaGFuZ2VzLkdldENoYW5nZUFyY2hpdmVSZXNwb25zZRJLCgxVcGRhdGVDaGFuZ2USHC5jaGFuZ2VzLlVwZGF0ZUNoYW5nZVJlcXVlc3QaHS5jaGFuZ2VzLlVwZGF0ZUNoYW5nZVJlc3BvbnNlEksKDERlbGV0ZUNoYW5nZRIcLmNoYW5nZXMuRGVsZXRlQ2hhbmdlUmVxdWVzdBodLmNoYW5nZXMuRGVsZXRlQ2hhbmdlUmVzcG9uc2UScgoZTGlzdENoYW5nZXNCeVNuYXBzaG90VVVJRBIpLmNoYW5nZXMuTGlzdENoYW5nZXNCeVNuYXBzaG90VVVJRFJlcXVlc3QaKi5jaGFuZ2VzLkxpc3RDaGFuZ2VzQnlTbmFwc2hvdFVVSURSZXNwb25zZRJaChFHZXRDaGFuZ2VUaW1lbGluZRIhLmNoYW5nZXMuR2V0Q2hhbmdlVGltZWxpbmVSZXF1ZXN0GiIuY2hhbmdlcy5HZXRDaGFuZ2VUaW1lbGluZVJlc3BvbnNlEksKDFJlZnJlc2hTdGF0ZRIcLmNoYW5nZXMuUmVmcmVzaFN0YXRlUmVxdWVzdBodLmNoYW5nZXMuUmVmcmVzaFN0YXRlUmVzcG9uc2USZQoUQ2FsY3VsYXRlQmxhc3RSYWRpdXMSJC5jaGFuZ2VzLkNhbGN1bGF0ZUJsYXN0UmFkaXVzUmVxdWVzdBolLmNoYW5nZXMuQ2FsY3VsYXRlQmxhc3RSYWRpdXNSZXNwb25zZTABEkoKC1N0YXJ0Q2hhbmdlEhsuY2hhbmdlcy5TdGFydENoYW5nZVJlcXVlc3QaHC5jaGFuZ2VzLlN0YXJ0Q2hhbmdlUmVzcG9uc2UwARJECglFbmRDaGFuZ2USGS5jaGFuZ2VzLkVuZENoYW5nZVJlcXVlc3QaGi5jaGFuZ2VzLkVuZENoYW5nZVJlc3BvbnNlMAESUwoOU2ltdWxhdGVDaGFuZ2USHi5jaGFuZ2VzLlNpbXVsYXRlQ2hhbmdlUmVxdWVzdBofLmNoYW5nZXMuU2ltdWxhdGVDaGFuZ2VSZXNwb25zZTABEk4KDUdldE9uYm9hcmRpbmcSHS5jaGFuZ2VzLkdldE9uYm9hcmRpbmdSZXF1ZXN0Gh4uY2hhbmdlcy5HZXRPbmJvYXJkaW5nUmVzcG9uc2USVwoQVXBkYXRlT25ib2FyZGluZxIgLmNoYW5nZXMuVXBkYXRlT25ib2FyZGluZ1JlcXVlc3QaIS5jaGFuZ2VzLlVwZGF0ZU9uYm9hcmRpbmdSZXNwb25zZRJLCgxMaXN0SG9tZUFwcHMSHC5jaGFuZ2VzLkxpc3RIb21lQXBwc1JlcXVlc3QaHS5jaGFuZ2VzLkxpc3RIb21lQXBwc1Jlc3BvbnNlElQKD0xpc3RIb21lQ2hhbmdlcxIfLmNoYW5nZXMuTGlzdEhvbWVDaGFuZ2VzUmVxdWVzdBogLmNoYW5nZXMuTGlzdEhvbWVDaGFuZ2VzUmVzcG9uc2USTgoNR2V0QXBwU3VtbWFyeRIdLmNoYW5nZXMuR2V0QXBwU3VtbWFyeVJlcXVlc3QaHi5jaGFuZ2VzLkdldEFwcFN1bW1hcnlSZXNwb25zZRJUCg9HZXRBcHBTdW1tYXJpZXMSHy5jaGFuZ2VzLkdldEFwcFN1bW1hcmllc1JlcXVlc3QaIC5jaGFuZ2VzLkdldEFwcFN1bW1hcmllc1Jlc3BvbnNlElEKDkxpc3RBcHBDaGFuZ2VzEh4uY2hhbmdlcy5MaXN0QXBwQ2hhbmdlc1JlcXVlc3QaHy5jaGFuZ2VzLkxpc3RBcHBDaGFuZ2VzUmVzcG9uc2USZgoVTGlzdEFwcENoYW5nZXNTdW1tYXJ5EiUuY2hhbmdlcy5MaXN0QXBwQ2hhbmdlc1N1bW1hcnlSZXF1ZXN0GiYuY2hhbmdlcy5MaXN0QXBwQ2hhbmdlc1N1bW1hcnlSZXNwb25zZRJjChNVcGRhdGVDaGFuZ2luZ0l0ZW1zEiMuY2hhbmdlcy5VcGRhdGVDaGFuZ2luZ0l0ZW1zUmVxdWVzdBolLmNoYW5nZXMuQ2FsY3VsYXRlQmxhc3RSYWRpdXNSZXNwb25zZTABEmUKFFVwZGF0ZVBsYW5uZWRDaGFuZ2VzEiQuY2hhbmdlcy5VcGRhdGVQbGFubmVkQ2hhbmdlc1JlcXVlc3QaJS5jaGFuZ2VzLkNhbGN1bGF0ZUJsYXN0UmFkaXVzUmVzcG9uc2UwARJUCg9HZXRBZmZlY3RlZEFwcHMSHy5jaGFuZ2VzLkdldEFmZmVjdGVkQXBwc1JlcXVlc3QaIC5jaGFuZ2VzLkdldEFmZmVjdGVkQXBwc1Jlc3BvbnNlEm8KGExpc3RDaGFuZ2luZ0l0ZW1zU3VtbWFyeRIoLmNoYW5nZXMuTGlzdENoYW5naW5nSXRlbXNTdW1tYXJ5UmVxdWVzdBopLmNoYW5nZXMuTGlzdENoYW5naW5nSXRlbXNTdW1tYXJ5UmVzcG9uc2USPAoHR2V0RGlmZhIXLmNoYW5nZXMuR2V0RGlmZlJlcXVlc3QaGC5jaGFuZ2VzLkdldERpZmZSZXNwb25zZRJmChVQb3B1bGF0ZUNoYW5nZUZpbHRlcnMSJS5jaGFuZ2VzLlBvcHVsYXRlQ2hhbmdlRmlsdGVyc1JlcXVlc3QaJi5jaGFuZ2VzLlBvcHVsYXRlQ2hhbmdlRmlsdGVyc1Jlc3BvbnNlQiRaImdpdGh1Yi5jb20vb3Zlcm1pbmR0ZWNoL3NkcC1nbztzZHBiBnByb3RvMw", [file_google_protobuf_timestamp, file_bookmarks, file_items, file_snapshots, file_config, file_util]); + fileDesc("Cg1jaGFuZ2VzLnByb3RvEgdjaGFuZ2VzIq0BCgxSdWxlTWV0YWRhdGESDAoEVVVJRBgBIAEoDBItCgljcmVhdGVkQXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWxhc3RSdW5BdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNbGFzdEFjdGl2YXRlZBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiagoOUnVsZVByb3BlcnRpZXMSDAoEbmFtZRgBIAEoCRIOCgZ0YWdLZXkYAiABKAkSDwoHZW5hYmxlZBgDIAEoCBIUCgxpbnN0cnVjdGlvbnMYBCABKAkSEwoLdmFsaWRWYWx1ZXMYBSADKAkiXAoEUnVsZRInCghtZXRhZGF0YRgBIAEoCzIVLmNoYW5nZXMuUnVsZU1ldGFkYXRhEisKCnByb3BlcnRpZXMYAiABKAsyFy5jaGFuZ2VzLlJ1bGVQcm9wZXJ0aWVzIhIKEExpc3RSdWxlc1JlcXVlc3QiMQoRTGlzdFJ1bGVzUmVzcG9uc2USHAoFcnVsZXMYASADKAsyDS5jaGFuZ2VzLlJ1bGUiQAoRQ3JlYXRlUnVsZVJlcXVlc3QSKwoKcHJvcGVydGllcxgBIAEoCzIXLmNoYW5nZXMuUnVsZVByb3BlcnRpZXMiMQoSQ3JlYXRlUnVsZVJlc3BvbnNlEhsKBHJ1bGUYASABKAsyDS5jaGFuZ2VzLlJ1bGUiHgoOR2V0UnVsZVJlcXVlc3QSDAoEVVVJRBgBIAEoDCIuCg9HZXRSdWxlUmVzcG9uc2USGwoEcnVsZRgBIAEoCzINLmNoYW5nZXMuUnVsZSJOChFVcGRhdGVSdWxlUmVxdWVzdBIMCgRVVUlEGAEgASgMEisKCnByb3BlcnRpZXMYAiABKAsyFy5jaGFuZ2VzLlJ1bGVQcm9wZXJ0aWVzIjEKElVwZGF0ZVJ1bGVSZXNwb25zZRIbCgRydWxlGAEgASgLMg0uY2hhbmdlcy5SdWxlIiEKEURlbGV0ZVJ1bGVSZXF1ZXN0EgwKBFVVSUQYASABKAwiFAoSRGVsZXRlUnVsZVJlc3BvbnNlIiEKEUV4cG9ydFJ1bGVSZXF1ZXN0EgwKBFVVSUQYASABKAwiIgoSRXhwb3J0UnVsZVJlc3BvbnNlEgwKBHJ1bGUYASABKAkiUgoPVGVzdFJ1bGVSZXF1ZXN0EisKCnByb3BlcnRpZXMYASABKAsyFy5jaGFuZ2VzLlJ1bGVQcm9wZXJ0aWVzEhIKCmNoYW5nZVVVSUQYAiADKAwiXQoQVGVzdFJ1bGVSZXNwb25zZRISCgpjaGFuZ2VVVUlEGAEgASgMEg8KB2FwcGxpZWQYAiABKAgSJAoFdmFsdWUYAyABKAsyFS5jaGFuZ2VzLkF1dG9UYWdWYWx1ZSIuChhHZXRDaGFuZ2VUaW1lbGluZVJlcXVlc3QSEgoKY2hhbmdlVVVJRBgBIAEoDCJKChlHZXRDaGFuZ2VUaW1lbGluZVJlc3BvbnNlEi0KB2VudHJpZXMYASADKAsyHC5jaGFuZ2VzLkNoYW5nZVRpbWVsaW5lRW50cnkilgEKE0NoYW5nZVRpbWVsaW5lRW50cnkSJQoGc3RhdHVzGAEgASgOMhUuY2hhbmdlcy5DaGFuZ2VTdGF0dXMSFQoNc3RhdHVzTWVzc2FnZRgCIAEoCRIuCgpoYXBwZW5lZEF0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglhY3Rvck5hbWUYBCABKAkiJAoOR2V0RGlmZlJlcXVlc3QSEgoKY2hhbmdlVVVJRBgBIAEoDCKmAQoPR2V0RGlmZlJlc3BvbnNlEigKDWV4cGVjdGVkSXRlbXMYASADKAsyES5jaGFuZ2VzLkl0ZW1EaWZmEioKD3VuZXhwZWN0ZWRJdGVtcxgDIAMoCzIRLmNoYW5nZXMuSXRlbURpZmYSFAoFZWRnZXMYAiADKAsyBS5FZGdlEicKDG1pc3NpbmdJdGVtcxgEIAMoCzIRLmNoYW5nZXMuSXRlbURpZmYiNQofTGlzdENoYW5naW5nSXRlbXNTdW1tYXJ5UmVxdWVzdBISCgpjaGFuZ2VVVUlEGAEgASgMIksKIExpc3RDaGFuZ2luZ0l0ZW1zU3VtbWFyeVJlc3BvbnNlEicKBWl0ZW1zGAEgAygLMhguY2hhbmdlcy5JdGVtRGlmZlN1bW1hcnkiLAoWR2V0QWZmZWN0ZWRBcHBzUmVxdWVzdBISCgpjaGFuZ2VVVUlEGAEgASgMIjwKF0dldEFmZmVjdGVkQXBwc1Jlc3BvbnNlEiEKBGFwcHMYASADKAsyEy5jaGFuZ2VzLkFwcFN1bW1hcnkiUwoaVXBkYXRlQ2hhbmdpbmdJdGVtc1JlcXVlc3QSEgoKY2hhbmdlVVVJRBgBIAEoDBIhCg1jaGFuZ2luZ0l0ZW1zGAIgAygLMgouUmVmZXJlbmNlImUKDk1hcHBlZEl0ZW1EaWZmEh8KBGl0ZW0YASABKAsyES5jaGFuZ2VzLkl0ZW1EaWZmEiEKDG1hcHBpbmdRdWVyeRgCIAEoCzIGLlF1ZXJ5SACIAQFCDwoNX21hcHBpbmdRdWVyeSL9AQobVXBkYXRlUGxhbm5lZENoYW5nZXNSZXF1ZXN0EhIKCmNoYW5nZVVVSUQYASABKAwSLgoNY2hhbmdpbmdJdGVtcxgCIAMoCzIXLmNoYW5nZXMuTWFwcGVkSXRlbURpZmYSQQoZYmxhc3RSYWRpdXNDb25maWdPdmVycmlkZRgDIAEoCzIZLmNvbmZpZy5CbGFzdFJhZGl1c0NvbmZpZ0gAiAEBEjkKGGF1dG9UYWdnaW5nUnVsZXNPdmVycmlkZRgEIAMoCzIXLmNoYW5nZXMuUnVsZVByb3BlcnRpZXNCHAoaX2JsYXN0UmFkaXVzQ29uZmlnT3ZlcnJpZGUiLwocTGlzdEFwcENoYW5nZXNTdW1tYXJ5UmVxdWVzdBIPCgdhcHBVVUlEGAEgASgMIkgKHUxpc3RBcHBDaGFuZ2VzU3VtbWFyeVJlc3BvbnNlEicKB2NoYW5nZXMYASADKAsyFi5jaGFuZ2VzLkNoYW5nZVN1bW1hcnkiJAoUR2V0QXBwU3VtbWFyeVJlcXVlc3QSDAoEVVVJRBgBIAEoDCI5ChVHZXRBcHBTdW1tYXJ5UmVzcG9uc2USIAoDYXBwGAEgASgLMhMuY2hhbmdlcy5BcHBTdW1tYXJ5IicKFkdldEFwcFN1bW1hcmllc1JlcXVlc3QSDQoFVVVJRHMYASADKAwiPAoXR2V0QXBwU3VtbWFyaWVzUmVzcG9uc2USIQoEYXBwcxgBIAMoCzITLmNoYW5nZXMuQXBwU3VtbWFyeSKBAQoWTGlzdEhvbWVDaGFuZ2VzUmVxdWVzdBImCgpwYWdpbmF0aW9uGAEgASgLMhIuUGFnaW5hdGlvblJlcXVlc3QSMwoHZmlsdGVycxgCIAEoCzIdLmNoYW5nZXMuQ2hhbmdlRmlsdGVyc1JlcXVlc3RIAIgBAUIKCghfZmlsdGVycyKcAgoUQ2hhbmdlRmlsdGVyc1JlcXVlc3QSDQoFcmVwb3MYASADKAkSNQoEdGFncxgCIAMoCzInLmNoYW5nZXMuQ2hhbmdlRmlsdGVyc1JlcXVlc3QuVGFnc0VudHJ5EiUKBXJpc2tzGAMgAygOMhYuY2hhbmdlcy5SaXNrLlNldmVyaXR5Eg8KB2F1dGhvcnMYBCADKAkSJwoIc3RhdHVzZXMYBSADKA4yFS5jaGFuZ2VzLkNoYW5nZVN0YXR1cxIiCglzb3J0T3JkZXIYBiABKA4yCi5Tb3J0T3JkZXJIAIgBARorCglUYWdzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIMCgpfc29ydE9yZGVyImsKF0xpc3RIb21lQ2hhbmdlc1Jlc3BvbnNlEicKB2NoYW5nZXMYASADKAsyFi5jaGFuZ2VzLkNoYW5nZVN1bW1hcnkSJwoKcGFnaW5hdGlvbhgCIAEoCzITLlBhZ2luYXRpb25SZXNwb25zZSIeChxQb3B1bGF0ZUNoYW5nZUZpbHRlcnNSZXF1ZXN0Ij8KHVBvcHVsYXRlQ2hhbmdlRmlsdGVyc1Jlc3BvbnNlEg0KBXJlcG9zGAEgAygJEg8KB2F1dGhvcnMYAiADKAkiFQoTTGlzdEhvbWVBcHBzUmVxdWVzdCI5ChRMaXN0SG9tZUFwcHNSZXNwb25zZRIhCgRhcHBzGAEgAygLMhMuY2hhbmdlcy5BcHBTdW1tYXJ5InIKD0l0ZW1EaWZmU3VtbWFyeRIYCgRpdGVtGAEgASgLMgouUmVmZXJlbmNlEicKBnN0YXR1cxgEIAEoDjIXLmNoYW5nZXMuSXRlbURpZmZTdGF0dXMSHAoLaGVhbHRoQWZ0ZXIYBSABKA4yBy5IZWFsdGgiegoISXRlbURpZmYSGAoEaXRlbRgBIAEoCzIKLlJlZmVyZW5jZRInCgZzdGF0dXMYAiABKA4yFy5jaGFuZ2VzLkl0ZW1EaWZmU3RhdHVzEhUKBmJlZm9yZRgDIAEoCzIFLkl0ZW0SFAoFYWZ0ZXIYBCABKAsyBS5JdGVtItMBCgpBcHBTdW1tYXJ5EgwKBFVVSUQYASABKAwSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIbChNudW1DaGFuZ2VzQWZmZWN0aW5nGAQgASgFEhAKCG51bUl0ZW1zGAUgASgFEi0KCWNyZWF0ZWRBdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLY3JlYXRvck5hbWUYByABKAkSCwoDdXJsGAkgASgJEhQKDGJvb2ttYXJrVVVJRBgKIAEoDCJZCgNBcHASJgoIbWV0YWRhdGEYASABKAsyFC5jaGFuZ2VzLkFwcE1ldGFkYXRhEioKCnByb3BlcnRpZXMYAiABKAsyFi5jaGFuZ2VzLkFwcFByb3BlcnRpZXMimwIKC0FwcE1ldGFkYXRhEgwKBFVVSUQYASABKAwSLQoJY3JlYXRlZEF0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCgl1cGRhdGVkQXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKBWl0ZW1zGAQgAygLMgouUmVmZXJlbmNlEjQKEGl0ZW1zTGFzdFVwZGF0ZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE251bUNoYW5nZXNBZmZlY3RpbmcYBiABKAUSEAoIbnVtSXRlbXMYCCABKAUSEwoLY3JlYXRvck5hbWUYByABKAkSCwoDdXJsGAkgASgJIkgKDUFwcFByb3BlcnRpZXMSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIUCgxib29rbWFya1VVSUQYAyABKAwiEQoPTGlzdEFwcHNSZXF1ZXN0Ii4KEExpc3RBcHBzUmVzcG9uc2USGgoEYXBwcxgBIAMoCzIMLmNoYW5nZXMuQXBwIj4KEENyZWF0ZUFwcFJlcXVlc3QSKgoKcHJvcGVydGllcxgBIAEoCzIWLmNoYW5nZXMuQXBwUHJvcGVydGllcyIuChFDcmVhdGVBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5jaGFuZ2VzLkFwcCJIChZDcmVhdGVTaW1wbGVBcHBSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSCwoDdXJsGAMgASgJIjQKF0NyZWF0ZVNpbXBsZUFwcFJlc3BvbnNlEhkKA2FwcBgBIAEoCzIMLmNoYW5nZXMuQXBwIh0KDUdldEFwcFJlcXVlc3QSDAoEVVVJRBgBIAEoDCIrCg5HZXRBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5jaGFuZ2VzLkFwcCJMChBVcGRhdGVBcHBSZXF1ZXN0EgwKBFVVSUQYASABKAwSKgoKcHJvcGVydGllcxgCIAEoCzIWLmNoYW5nZXMuQXBwUHJvcGVydGllcyIuChFVcGRhdGVBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5jaGFuZ2VzLkFwcCIgChBEZWxldGVBcHBSZXF1ZXN0EgwKBFVVSUQYASABKAwiEwoRRGVsZXRlQXBwUmVzcG9uc2UiJQoVTGlzdEFwcENoYW5nZXNSZXF1ZXN0EgwKBFVVSUQYASABKAwiOgoWTGlzdEFwcENoYW5nZXNSZXNwb25zZRIgCgdjaGFuZ2VzGAEgAygLMg8uY2hhbmdlcy5DaGFuZ2UicQoIVGFnVmFsdWUSLQoMdXNlclRhZ1ZhbHVlGAEgASgLMhUuY2hhbmdlcy5Vc2VyVGFnVmFsdWVIABItCgxhdXRvVGFnVmFsdWUYAiABKAsyFS5jaGFuZ2VzLkF1dG9UYWdWYWx1ZUgAQgcKBXZhbHVlIh0KDFVzZXJUYWdWYWx1ZRINCgV2YWx1ZRgBIAEoCSIwCgxBdXRvVGFnVmFsdWUSDQoFdmFsdWUYASABKAkSEQoJcmVhc29uaW5nGAIgASgJItoECg1DaGFuZ2VTdW1tYXJ5EgwKBFVVSUQYASABKAwSDQoFdGl0bGUYAiABKAkSJQoGc3RhdHVzGAMgASgOMhUuY2hhbmdlcy5DaGFuZ2VTdGF0dXMSEgoKdGlja2V0TGluaxgEIAEoCRItCgljcmVhdGVkQXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2NyZWF0b3JOYW1lGAYgASgJEhQKDGNyZWF0b3JFbWFpbBgPIAEoCRIXCg9udW1BZmZlY3RlZEFwcHMYCCABKAUSGAoQbnVtQWZmZWN0ZWRJdGVtcxgJIAEoBRIYChBudW1BZmZlY3RlZEVkZ2VzGAogASgFEhIKCm51bUxvd1Jpc2sYCyABKAUSFQoNbnVtTWVkaXVtUmlzaxgMIAEoBRITCgtudW1IaWdoUmlzaxgNIAEoBRITCgtkZXNjcmlwdGlvbhgOIAEoCRIMCgRyZXBvGBAgASgJEjIKBHRhZ3MYESADKAsyIC5jaGFuZ2VzLkNoYW5nZVN1bW1hcnkuVGFnc0VudHJ5QgIYARI+CgxlbnJpY2hlZFRhZ3MYEiADKAsyKC5jaGFuZ2VzLkNoYW5nZVN1bW1hcnkuRW5yaWNoZWRUYWdzRW50cnkaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaRgoRRW5yaWNoZWRUYWdzRW50cnkSCwoDa2V5GAEgASgJEiAKBXZhbHVlGAIgASgLMhEuY2hhbmdlcy5UYWdWYWx1ZToCOAEiYgoGQ2hhbmdlEikKCG1ldGFkYXRhGAEgASgLMhcuY2hhbmdlcy5DaGFuZ2VNZXRhZGF0YRItCgpwcm9wZXJ0aWVzGAIgASgLMhkuY2hhbmdlcy5DaGFuZ2VQcm9wZXJ0aWVzIqcGCg5DaGFuZ2VNZXRhZGF0YRIMCgRVVUlEGAEgASgMEi0KCWNyZWF0ZWRBdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJdXBkYXRlZEF0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIlCgZzdGF0dXMYBCABKA4yFS5jaGFuZ2VzLkNoYW5nZVN0YXR1cxITCgtjcmVhdG9yTmFtZRgFIAEoCRIUCgxjcmVhdG9yRW1haWwYEyABKAkSFwoPbnVtQWZmZWN0ZWRBcHBzGAYgASgFEhgKEG51bUFmZmVjdGVkSXRlbXMYByABKAUSGAoQbnVtQWZmZWN0ZWRFZGdlcxgRIAEoBRIZChFudW1VbmNoYW5nZWRJdGVtcxgIIAEoBRIXCg9udW1DcmVhdGVkSXRlbXMYCSABKAUSFwoPbnVtVXBkYXRlZEl0ZW1zGAogASgFEhgKEG51bVJlcGxhY2VkSXRlbXMYEiABKAUSFwoPbnVtRGVsZXRlZEl0ZW1zGAsgASgFEkEKE1Vua25vd25IZWFsdGhDaGFuZ2UYDCABKAsyJC5jaGFuZ2VzLkNoYW5nZU1ldGFkYXRhLkhlYWx0aENoYW5nZRI8Cg5Pa0hlYWx0aENoYW5nZRgNIAEoCzIkLmNoYW5nZXMuQ2hhbmdlTWV0YWRhdGEuSGVhbHRoQ2hhbmdlEkEKE1dhcm5pbmdIZWFsdGhDaGFuZ2UYDiABKAsyJC5jaGFuZ2VzLkNoYW5nZU1ldGFkYXRhLkhlYWx0aENoYW5nZRI/ChFFcnJvckhlYWx0aENoYW5nZRgPIAEoCzIkLmNoYW5nZXMuQ2hhbmdlTWV0YWRhdGEuSGVhbHRoQ2hhbmdlEkEKE1BlbmRpbmdIZWFsdGhDaGFuZ2UYECABKAsyJC5jaGFuZ2VzLkNoYW5nZU1ldGFkYXRhLkhlYWx0aENoYW5nZRpCCgxIZWFsdGhDaGFuZ2USDQoFYWRkZWQYASABKAUSDwoHcmVtb3ZlZBgCIAEoBRISCgpmaW5hbFRvdGFsGAMgASgFItAHChBDaGFuZ2VQcm9wZXJ0aWVzEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhIKCnRpY2tldExpbmsYBCABKAkSDQoFb3duZXIYBSABKAkSEAoIY2NFbWFpbHMYBiABKAkSIQoZY2hhbmdpbmdJdGVtc0Jvb2ttYXJrVVVJRBgHIAEoDBIfChdibGFzdFJhZGl1c1NuYXBzaG90VVVJRBgLIAEoDBIgChhzeXN0ZW1CZWZvcmVTbmFwc2hvdFVVSUQYCCABKAwSHwoXc3lzdGVtQWZ0ZXJTbmFwc2hvdFVVSUQYCSABKAwSGAoQYWZmZWN0ZWRBcHBzVVVJRBgKIAMoDBIpCg5wbGFubmVkQ2hhbmdlcxgMIAMoCzIRLmNoYW5nZXMuSXRlbURpZmYSDwoHcmF3UGxhbhgNIAEoCRITCgtjb2RlQ2hhbmdlcxgOIAEoCRIMCgRyZXBvGA8gASgJEjUKBHRhZ3MYECADKAsyIy5jaGFuZ2VzLkNoYW5nZVByb3BlcnRpZXMuVGFnc0VudHJ5QgIYARJBCgxlbnJpY2hlZFRhZ3MYEiADKAsyKy5jaGFuZ2VzLkNoYW5nZVByb3BlcnRpZXMuRW5yaWNoZWRUYWdzRW50cnkSRwoPc2tpcHBlZEF1dG9UYWdzGBMgAygLMi4uY2hhbmdlcy5DaGFuZ2VQcm9wZXJ0aWVzLlNraXBwZWRBdXRvVGFnc0VudHJ5Ek4KFWF1dG9UYWdnaW5nUnVsZVNvdXJjZRgUIAEoDjIvLmNoYW5nZXMuQ2hhbmdlUHJvcGVydGllcy5BdXRvVGFnZ2luZ1J1bGVTb3VyY2UaKwoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaRgoRRW5yaWNoZWRUYWdzRW50cnkSCwoDa2V5GAEgASgJEiAKBXZhbHVlGAIgASgLMhEuY2hhbmdlcy5UYWdWYWx1ZToCOAEaTQoUU2tpcHBlZEF1dG9UYWdzRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUuY2hhbmdlcy5BdXRvVGFnVmFsdWU6AjgBIoUBChVBdXRvVGFnZ2luZ1J1bGVTb3VyY2USKAokQVVUT19UQUdHSU5HX1JVTEVfU09VUkNFX1VOU1BFQ0lGSUVEEAASIQodQVVUT19UQUdHSU5HX1JVTEVfU09VUkNFX0ZJTEUQARIfChtBVVRPX1RBR0dJTkdfUlVMRV9TT1VSQ0VfVUkQAkoECAEQAiIUChJMaXN0Q2hhbmdlc1JlcXVlc3QiNwoTTGlzdENoYW5nZXNSZXNwb25zZRIgCgdjaGFuZ2VzGAEgAygLMg8uY2hhbmdlcy5DaGFuZ2UiQwoaTGlzdENoYW5nZXNCeVN0YXR1c1JlcXVlc3QSJQoGc3RhdHVzGAEgASgOMhUuY2hhbmdlcy5DaGFuZ2VTdGF0dXMiPwobTGlzdENoYW5nZXNCeVN0YXR1c1Jlc3BvbnNlEiAKB2NoYW5nZXMYASADKAsyDy5jaGFuZ2VzLkNoYW5nZSJEChNDcmVhdGVDaGFuZ2VSZXF1ZXN0Ei0KCnByb3BlcnRpZXMYASABKAsyGS5jaGFuZ2VzLkNoYW5nZVByb3BlcnRpZXMiNwoUQ3JlYXRlQ2hhbmdlUmVzcG9uc2USHwoGY2hhbmdlGAEgASgLMg8uY2hhbmdlcy5DaGFuZ2UiLgoQR2V0Q2hhbmdlUmVxdWVzdBIMCgRVVUlEGAEgASgMEgwKBHNsaW0YAiABKAgiNAoRR2V0Q2hhbmdlUmVzcG9uc2USHwoGY2hhbmdlGAEgASgLMg8uY2hhbmdlcy5DaGFuZ2UiJQoVR2V0Q2hhbmdlUmlza3NSZXF1ZXN0EgwKBFVVSUQYASABKAwirwEKEkNoYW5nZVJpc2tNZXRhZGF0YRI7ChRjaGFuZ2VBbmFseXNpc1N0YXR1cxgBIAEoCzIdLmNoYW5nZXMuQ2hhbmdlQW5hbHlzaXNTdGF0dXMSHAoFcmlza3MYBSADKAsyDS5jaGFuZ2VzLlJpc2sSEgoKbnVtTG93UmlzaxgGIAEoBRIVCg1udW1NZWRpdW1SaXNrGAcgASgFEhMKC251bUhpZ2hSaXNrGAggASgFIlEKFkdldENoYW5nZVJpc2tzUmVzcG9uc2USNwoSY2hhbmdlUmlza01ldGFkYXRhGAEgASgLMhsuY2hhbmdlcy5DaGFuZ2VSaXNrTWV0YWRhdGEiUgoTVXBkYXRlQ2hhbmdlUmVxdWVzdBIMCgRVVUlEGAEgASgMEi0KCnByb3BlcnRpZXMYAiABKAsyGS5jaGFuZ2VzLkNoYW5nZVByb3BlcnRpZXMiNwoUVXBkYXRlQ2hhbmdlUmVzcG9uc2USHwoGY2hhbmdlGAEgASgLMg8uY2hhbmdlcy5DaGFuZ2UiIwoTRGVsZXRlQ2hhbmdlUmVxdWVzdBIMCgRVVUlEGAEgASgMIjAKIExpc3RDaGFuZ2VzQnlTbmFwc2hvdFVVSURSZXF1ZXN0EgwKBFVVSUQYASABKAwiRQohTGlzdENoYW5nZXNCeVNuYXBzaG90VVVJRFJlc3BvbnNlEiAKB2NoYW5nZXMYASADKAsyDy5jaGFuZ2VzLkNoYW5nZSIWChREZWxldGVDaGFuZ2VSZXNwb25zZSIVChNSZWZyZXNoU3RhdGVSZXF1ZXN0IhYKFFJlZnJlc2hTdGF0ZVJlc3BvbnNlIkAKG0NhbGN1bGF0ZUJsYXN0UmFkaXVzUmVxdWVzdBISCgpjaGFuZ2VVVUlEGAEgASgMEg0KBWZvcmNlGAIgASgIIv8BChxDYWxjdWxhdGVCbGFzdFJhZGl1c1Jlc3BvbnNlEjoKBXN0YXRlGAEgASgOMisuY2hhbmdlcy5DYWxjdWxhdGVCbGFzdFJhZGl1c1Jlc3BvbnNlLlN0YXRlEhAKCG51bUl0ZW1zGAIgASgNEhAKCG51bUVkZ2VzGAMgASgNEg4KBmVycm9ycxgEIAMoCSJvCgVTdGF0ZRIVChFTVEFURV9VTlNQRUNJRklFRBAAEhUKEVNUQVRFX0RJU0NPVkVSSU5HEAESEAoMU1RBVEVfU0FWSU5HEAISFgoSU1RBVEVfRklORElOR19BUFBTEAMSDgoKU1RBVEVfRE9ORRAEIigKElN0YXJ0Q2hhbmdlUmVxdWVzdBISCgpjaGFuZ2VVVUlEGAEgASgMItIBChNTdGFydENoYW5nZVJlc3BvbnNlEjEKBXN0YXRlGAEgASgOMiIuY2hhbmdlcy5TdGFydENoYW5nZVJlc3BvbnNlLlN0YXRlEhAKCG51bUl0ZW1zGAIgASgNEhAKCE51bUVkZ2VzGAMgASgNImQKBVN0YXRlEhUKEVNUQVRFX1VOU1BFQ0lGSUVEEAASGQoVU1RBVEVfVEFLSU5HX1NOQVBTSE9UEAESGQoVU1RBVEVfU0FWSU5HX1NOQVBTSE9UEAISDgoKU1RBVEVfRE9ORRADIiYKEEVuZENoYW5nZVJlcXVlc3QSEgoKY2hhbmdlVVVJRBgBIAEoDCLOAQoRRW5kQ2hhbmdlUmVzcG9uc2USLwoFc3RhdGUYASABKA4yIC5jaGFuZ2VzLkVuZENoYW5nZVJlc3BvbnNlLlN0YXRlEhAKCG51bUl0ZW1zGAIgASgNEhAKCE51bUVkZ2VzGAMgASgNImQKBVN0YXRlEhUKEVNUQVRFX1VOU1BFQ0lGSUVEEAASGQoVU1RBVEVfVEFLSU5HX1NOQVBTSE9UEAESGQoVU1RBVEVfU0FWSU5HX1NOQVBTSE9UEAISDgoKU1RBVEVfRE9ORRADIm4KCk9uYm9hcmRpbmcSLQoIbWV0YWRhdGEYASABKAsyGy5jaGFuZ2VzLk9uYm9hcmRpbmdNZXRhZGF0YRIxCgpwcm9wZXJ0aWVzGAIgASgLMh0uY2hhbmdlcy5PbmJvYXJkaW5nUHJvcGVydGllcyJXChJPbmJvYXJkaW5nTWV0YWRhdGESKwoHY3JlYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoMaGFzQXdzU291cmNlGAMgASgIIoMBChRPbmJvYXJkaW5nUHJvcGVydGllcxIpCgZzdGF0dXMYASABKA4yGS5jaGFuZ2VzLk9uYm9hcmRpbmdTdGF0dXMSFQoNYXdzU291cmNlVVVJRBgCIAEoDBIPCgdhcHBVVUlEGAMgASgMEhIKCmNoYW5nZVVVSUQYBCABKAxKBAgFEAYiFgoUR2V0T25ib2FyZGluZ1JlcXVlc3QiQAoVR2V0T25ib2FyZGluZ1Jlc3BvbnNlEicKCm9uYm9hcmRpbmcYASABKAsyEy5jaGFuZ2VzLk9uYm9hcmRpbmciTAoXVXBkYXRlT25ib2FyZGluZ1JlcXVlc3QSMQoKcHJvcGVydGllcxgCIAEoCzIdLmNoYW5nZXMuT25ib2FyZGluZ1Byb3BlcnRpZXMiQwoYVXBkYXRlT25ib2FyZGluZ1Jlc3BvbnNlEicKCm9uYm9hcmRpbmcYASABKAsyEy5jaGFuZ2VzLk9uYm9hcmRpbmciKwoVU2ltdWxhdGVDaGFuZ2VSZXF1ZXN0EhIKCmNoYW5nZVVVSUQYASABKAwiPwoWU2ltdWxhdGVDaGFuZ2VSZXNwb25zZRIMCgRkb25lGAEgASgIEhcKD3BlcmNlbnRDb21wbGV0ZRgCIAEoDSLkAQoEUmlzaxIMCgRVVUlEGAUgASgMEg0KBXRpdGxlGAEgASgJEigKCHNldmVyaXR5GAIgASgOMhYuY2hhbmdlcy5SaXNrLlNldmVyaXR5EhMKC2Rlc2NyaXB0aW9uGAMgASgJEiAKDHJlbGF0ZWRJdGVtcxgEIAMoCzIKLlJlZmVyZW5jZSJeCghTZXZlcml0eRIYChRTRVZFUklUWV9VTlNQRUNJRklFRBAAEhAKDFNFVkVSSVRZX0xPVxABEhMKD1NFVkVSSVRZX01FRElVTRACEhEKDVNFVkVSSVRZX0hJR0gQAyLoAwoUQ2hhbmdlQW5hbHlzaXNTdGF0dXMSNAoGc3RhdHVzGAEgASgOMiQuY2hhbmdlcy5DaGFuZ2VBbmFseXNpc1N0YXR1cy5TdGF0dXMSSwoScHJvZ3Jlc3NNaWxlc3RvbmVzGAUgAygLMi8uY2hhbmdlcy5DaGFuZ2VBbmFseXNpc1N0YXR1cy5Qcm9ncmVzc01pbGVzdG9uZRrcAQoRUHJvZ3Jlc3NNaWxlc3RvbmUSEwoLZGVzY3JpcHRpb24YASABKAkSRgoGc3RhdHVzGAIgASgOMjYuY2hhbmdlcy5DaGFuZ2VBbmFseXNpc1N0YXR1cy5Qcm9ncmVzc01pbGVzdG9uZS5TdGF0dXMiagoGU3RhdHVzEhIKDlNUQVRVU19QRU5ESU5HEAASFQoRU1RBVFVTX0lOUFJPR1JFU1MQARIPCgtTVEFUVVNfRE9ORRACEhAKDFNUQVRVU19FUlJPUhADEhIKDlNUQVRVU19TS0lQUEVEEAQibgoGU3RhdHVzEhYKElNUQVRVU19VTlNQRUNJRklFRBAAEhUKEVNUQVRVU19JTlBST0dSRVNTEAESEgoOU1RBVFVTX1NLSVBQRUQQAhIPCgtTVEFUVVNfRE9ORRADEhAKDFNUQVRVU19FUlJPUhAEIv8DCg1DaGFuZ2VBcmNoaXZlEh8KBkNoYW5nZRgBIAEoCzIPLmNoYW5nZXMuQ2hhbmdlEjcKFWNoYW5naW5nSXRlbXNCb29rbWFyaxgCIAEoCzITLmJvb2ttYXJrcy5Cb29rbWFya0gAiAEBEjUKE2JsYXN0UmFkaXVzU25hcHNob3QYAyABKAsyEy5zbmFwc2hvdHMuU25hcHNob3RIAYgBARI2ChRzeXN0ZW1CZWZvcmVTbmFwc2hvdBgEIAEoCzITLnNuYXBzaG90cy5TbmFwc2hvdEgCiAEBEjUKE3N5c3RlbUFmdGVyU25hcHNob3QYBSABKAsyEy5zbmFwc2hvdHMuU25hcHNob3RIA4gBARIiCgxhZmZlY3RlZEFwcHMYBiADKAsyDC5jaGFuZ2VzLkFwcBIuCgh0aW1lbGluZRgHIAMoCzIcLmNoYW5nZXMuQ2hhbmdlVGltZWxpbmVFbnRyeRI3ChJjaGFuZ2VSaXNrTWV0YWRhdGEYCCABKAsyGy5jaGFuZ2VzLkNoYW5nZVJpc2tNZXRhZGF0YUIYChZfY2hhbmdpbmdJdGVtc0Jvb2ttYXJrQhYKFF9ibGFzdFJhZGl1c1NuYXBzaG90QhcKFV9zeXN0ZW1CZWZvcmVTbmFwc2hvdEIWChRfc3lzdGVtQWZ0ZXJTbmFwc2hvdCInChdHZXRDaGFuZ2VBcmNoaXZlUmVxdWVzdBIMCgRVVUlEGAEgASgMIkkKGEdldENoYW5nZUFyY2hpdmVSZXNwb25zZRItCg1jaGFuZ2VBcmNoaXZlGAEgASgLMhYuY2hhbmdlcy5DaGFuZ2VBcmNoaXZlKssBCg5JdGVtRGlmZlN0YXR1cxIgChxJVEVNX0RJRkZfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHgoaSVRFTV9ESUZGX1NUQVRVU19VTkNIQU5HRUQQARIcChhJVEVNX0RJRkZfU1RBVFVTX0NSRUFURUQQAhIcChhJVEVNX0RJRkZfU1RBVFVTX1VQREFURUQQAxIcChhJVEVNX0RJRkZfU1RBVFVTX0RFTEVURUQQBBIdChlJVEVNX0RJRkZfU1RBVFVTX1JFUExBQ0VEEAUqnAEKDENoYW5nZVN0YXR1cxIdChlDSEFOR0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWQ0hBTkdFX1NUQVRVU19ERUZJTklORxABEhsKF0NIQU5HRV9TVEFUVVNfSEFQUEVOSU5HEAISHAoYQ0hBTkdFX1NUQVRVU19QUk9DRVNTSU5HEAMSFgoSQ0hBTkdFX1NUQVRVU19ET05FEAQq4wEKEE9uYm9hcmRpbmdTdGF0dXMSIQodT05CT0FSRElOR19TVEFUVVNfVU5TUEVDSUZJRUQQABIlCiFPTkJPQVJESU5HX1NUQVRVU19BRERfQVdTX0FDQ09VTlQQARIdChlPTkJPQVJESU5HX1NUQVRVU19BRERfQVBQEAISIwofT05CT0FSRElOR19TVEFUVVNfQ1JFQVRFX0NIQU5HRRADEiUKIU9OQk9BUkRJTkdfU1RBVFVTX1NJTVVMQVRFX0NIQU5HRRAEEhoKFk9OQk9BUkRJTkdfU1RBVFVTX0RPTkUQBTKCFwoOQ2hhbmdlc1NlcnZpY2USPwoITGlzdEFwcHMSGC5jaGFuZ2VzLkxpc3RBcHBzUmVxdWVzdBoZLmNoYW5nZXMuTGlzdEFwcHNSZXNwb25zZRJCCglDcmVhdGVBcHASGS5jaGFuZ2VzLkNyZWF0ZUFwcFJlcXVlc3QaGi5jaGFuZ2VzLkNyZWF0ZUFwcFJlc3BvbnNlElQKD0NyZWF0ZVNpbXBsZUFwcBIfLmNoYW5nZXMuQ3JlYXRlU2ltcGxlQXBwUmVxdWVzdBogLmNoYW5nZXMuQ3JlYXRlU2ltcGxlQXBwUmVzcG9uc2USOQoGR2V0QXBwEhYuY2hhbmdlcy5HZXRBcHBSZXF1ZXN0GhcuY2hhbmdlcy5HZXRBcHBSZXNwb25zZRJCCglVcGRhdGVBcHASGS5jaGFuZ2VzLlVwZGF0ZUFwcFJlcXVlc3QaGi5jaGFuZ2VzLlVwZGF0ZUFwcFJlc3BvbnNlEkIKCURlbGV0ZUFwcBIZLmNoYW5nZXMuRGVsZXRlQXBwUmVxdWVzdBoaLmNoYW5nZXMuRGVsZXRlQXBwUmVzcG9uc2USSAoLTGlzdENoYW5nZXMSGy5jaGFuZ2VzLkxpc3RDaGFuZ2VzUmVxdWVzdBocLmNoYW5nZXMuTGlzdENoYW5nZXNSZXNwb25zZRJgChNMaXN0Q2hhbmdlc0J5U3RhdHVzEiMuY2hhbmdlcy5MaXN0Q2hhbmdlc0J5U3RhdHVzUmVxdWVzdBokLmNoYW5nZXMuTGlzdENoYW5nZXNCeVN0YXR1c1Jlc3BvbnNlEksKDENyZWF0ZUNoYW5nZRIcLmNoYW5nZXMuQ3JlYXRlQ2hhbmdlUmVxdWVzdBodLmNoYW5nZXMuQ3JlYXRlQ2hhbmdlUmVzcG9uc2USQgoJR2V0Q2hhbmdlEhkuY2hhbmdlcy5HZXRDaGFuZ2VSZXF1ZXN0GhouY2hhbmdlcy5HZXRDaGFuZ2VSZXNwb25zZRJRCg5HZXRDaGFuZ2VSaXNrcxIeLmNoYW5nZXMuR2V0Q2hhbmdlUmlza3NSZXF1ZXN0Gh8uY2hhbmdlcy5HZXRDaGFuZ2VSaXNrc1Jlc3BvbnNlElcKEEdldENoYW5nZUFyY2hpdmUSIC5jaGFuZ2VzLkdldENoYW5nZUFyY2hpdmVSZXF1ZXN0GiEuY2hhbmdlcy5HZXRDaGFuZ2VBcmNoaXZlUmVzcG9uc2USSwoMVXBkYXRlQ2hhbmdlEhwuY2hhbmdlcy5VcGRhdGVDaGFuZ2VSZXF1ZXN0Gh0uY2hhbmdlcy5VcGRhdGVDaGFuZ2VSZXNwb25zZRJLCgxEZWxldGVDaGFuZ2USHC5jaGFuZ2VzLkRlbGV0ZUNoYW5nZVJlcXVlc3QaHS5jaGFuZ2VzLkRlbGV0ZUNoYW5nZVJlc3BvbnNlEnIKGUxpc3RDaGFuZ2VzQnlTbmFwc2hvdFVVSUQSKS5jaGFuZ2VzLkxpc3RDaGFuZ2VzQnlTbmFwc2hvdFVVSURSZXF1ZXN0GiouY2hhbmdlcy5MaXN0Q2hhbmdlc0J5U25hcHNob3RVVUlEUmVzcG9uc2USWgoRR2V0Q2hhbmdlVGltZWxpbmUSIS5jaGFuZ2VzLkdldENoYW5nZVRpbWVsaW5lUmVxdWVzdBoiLmNoYW5nZXMuR2V0Q2hhbmdlVGltZWxpbmVSZXNwb25zZRJLCgxSZWZyZXNoU3RhdGUSHC5jaGFuZ2VzLlJlZnJlc2hTdGF0ZVJlcXVlc3QaHS5jaGFuZ2VzLlJlZnJlc2hTdGF0ZVJlc3BvbnNlEmUKFENhbGN1bGF0ZUJsYXN0UmFkaXVzEiQuY2hhbmdlcy5DYWxjdWxhdGVCbGFzdFJhZGl1c1JlcXVlc3QaJS5jaGFuZ2VzLkNhbGN1bGF0ZUJsYXN0UmFkaXVzUmVzcG9uc2UwARJKCgtTdGFydENoYW5nZRIbLmNoYW5nZXMuU3RhcnRDaGFuZ2VSZXF1ZXN0GhwuY2hhbmdlcy5TdGFydENoYW5nZVJlc3BvbnNlMAESRAoJRW5kQ2hhbmdlEhkuY2hhbmdlcy5FbmRDaGFuZ2VSZXF1ZXN0GhouY2hhbmdlcy5FbmRDaGFuZ2VSZXNwb25zZTABElMKDlNpbXVsYXRlQ2hhbmdlEh4uY2hhbmdlcy5TaW11bGF0ZUNoYW5nZVJlcXVlc3QaHy5jaGFuZ2VzLlNpbXVsYXRlQ2hhbmdlUmVzcG9uc2UwARJOCg1HZXRPbmJvYXJkaW5nEh0uY2hhbmdlcy5HZXRPbmJvYXJkaW5nUmVxdWVzdBoeLmNoYW5nZXMuR2V0T25ib2FyZGluZ1Jlc3BvbnNlElcKEFVwZGF0ZU9uYm9hcmRpbmcSIC5jaGFuZ2VzLlVwZGF0ZU9uYm9hcmRpbmdSZXF1ZXN0GiEuY2hhbmdlcy5VcGRhdGVPbmJvYXJkaW5nUmVzcG9uc2USSwoMTGlzdEhvbWVBcHBzEhwuY2hhbmdlcy5MaXN0SG9tZUFwcHNSZXF1ZXN0Gh0uY2hhbmdlcy5MaXN0SG9tZUFwcHNSZXNwb25zZRJUCg9MaXN0SG9tZUNoYW5nZXMSHy5jaGFuZ2VzLkxpc3RIb21lQ2hhbmdlc1JlcXVlc3QaIC5jaGFuZ2VzLkxpc3RIb21lQ2hhbmdlc1Jlc3BvbnNlEk4KDUdldEFwcFN1bW1hcnkSHS5jaGFuZ2VzLkdldEFwcFN1bW1hcnlSZXF1ZXN0Gh4uY2hhbmdlcy5HZXRBcHBTdW1tYXJ5UmVzcG9uc2USVAoPR2V0QXBwU3VtbWFyaWVzEh8uY2hhbmdlcy5HZXRBcHBTdW1tYXJpZXNSZXF1ZXN0GiAuY2hhbmdlcy5HZXRBcHBTdW1tYXJpZXNSZXNwb25zZRJRCg5MaXN0QXBwQ2hhbmdlcxIeLmNoYW5nZXMuTGlzdEFwcENoYW5nZXNSZXF1ZXN0Gh8uY2hhbmdlcy5MaXN0QXBwQ2hhbmdlc1Jlc3BvbnNlEmYKFUxpc3RBcHBDaGFuZ2VzU3VtbWFyeRIlLmNoYW5nZXMuTGlzdEFwcENoYW5nZXNTdW1tYXJ5UmVxdWVzdBomLmNoYW5nZXMuTGlzdEFwcENoYW5nZXNTdW1tYXJ5UmVzcG9uc2USYwoTVXBkYXRlQ2hhbmdpbmdJdGVtcxIjLmNoYW5nZXMuVXBkYXRlQ2hhbmdpbmdJdGVtc1JlcXVlc3QaJS5jaGFuZ2VzLkNhbGN1bGF0ZUJsYXN0UmFkaXVzUmVzcG9uc2UwARJlChRVcGRhdGVQbGFubmVkQ2hhbmdlcxIkLmNoYW5nZXMuVXBkYXRlUGxhbm5lZENoYW5nZXNSZXF1ZXN0GiUuY2hhbmdlcy5DYWxjdWxhdGVCbGFzdFJhZGl1c1Jlc3BvbnNlMAESVAoPR2V0QWZmZWN0ZWRBcHBzEh8uY2hhbmdlcy5HZXRBZmZlY3RlZEFwcHNSZXF1ZXN0GiAuY2hhbmdlcy5HZXRBZmZlY3RlZEFwcHNSZXNwb25zZRJvChhMaXN0Q2hhbmdpbmdJdGVtc1N1bW1hcnkSKC5jaGFuZ2VzLkxpc3RDaGFuZ2luZ0l0ZW1zU3VtbWFyeVJlcXVlc3QaKS5jaGFuZ2VzLkxpc3RDaGFuZ2luZ0l0ZW1zU3VtbWFyeVJlc3BvbnNlEjwKB0dldERpZmYSFy5jaGFuZ2VzLkdldERpZmZSZXF1ZXN0GhguY2hhbmdlcy5HZXREaWZmUmVzcG9uc2USZgoVUG9wdWxhdGVDaGFuZ2VGaWx0ZXJzEiUuY2hhbmdlcy5Qb3B1bGF0ZUNoYW5nZUZpbHRlcnNSZXF1ZXN0GiYuY2hhbmdlcy5Qb3B1bGF0ZUNoYW5nZUZpbHRlcnNSZXNwb25zZTL1AwoSQXV0b1RhZ2dpbmdTZXJ2aWNlEkIKCUxpc3RSdWxlcxIZLmNoYW5nZXMuTGlzdFJ1bGVzUmVxdWVzdBoaLmNoYW5nZXMuTGlzdFJ1bGVzUmVzcG9uc2USRQoKQ3JlYXRlUnVsZRIaLmNoYW5nZXMuQ3JlYXRlUnVsZVJlcXVlc3QaGy5jaGFuZ2VzLkNyZWF0ZVJ1bGVSZXNwb25zZRI8CgdHZXRSdWxlEhcuY2hhbmdlcy5HZXRSdWxlUmVxdWVzdBoYLmNoYW5nZXMuR2V0UnVsZVJlc3BvbnNlEkUKClVwZGF0ZVJ1bGUSGi5jaGFuZ2VzLlVwZGF0ZVJ1bGVSZXF1ZXN0GhsuY2hhbmdlcy5VcGRhdGVSdWxlUmVzcG9uc2USRQoKRGVsZXRlUnVsZRIaLmNoYW5nZXMuRGVsZXRlUnVsZVJlcXVlc3QaGy5jaGFuZ2VzLkRlbGV0ZVJ1bGVSZXNwb25zZRJFCgpFeHBvcnRSdWxlEhouY2hhbmdlcy5FeHBvcnRSdWxlUmVxdWVzdBobLmNoYW5nZXMuRXhwb3J0UnVsZVJlc3BvbnNlEkEKCFRlc3RSdWxlEhguY2hhbmdlcy5UZXN0UnVsZVJlcXVlc3QaGS5jaGFuZ2VzLlRlc3RSdWxlUmVzcG9uc2UwAUIkWiJnaXRodWIuY29tL292ZXJtaW5kdGVjaC9zZHAtZ287c2RwYgZwcm90bzM", [file_google_protobuf_timestamp, file_bookmarks, file_items, file_snapshots, file_config, file_util]); + +/** + * @generated from message changes.RuleMetadata + */ +export type RuleMetadata = Message<"changes.RuleMetadata"> & { + /** + * The unique identifier for this rule + * + * @generated from field: bytes UUID = 1; + */ + UUID: Uint8Array; + + /** + * The time that this rule was created + * + * @generated from field: google.protobuf.Timestamp createdAt = 2; + */ + createdAt?: Timestamp; + + /** + * The time that this rule was last run + * + * @generated from field: google.protobuf.Timestamp lastRunAt = 3; + */ + lastRunAt?: Timestamp; + + /** + * The time that this rule added a tag to a change + * + * @generated from field: google.protobuf.Timestamp lastActivated = 4; + */ + lastActivated?: Timestamp; +}; + +/** + * Describes the message changes.RuleMetadata. + * Use `create(RuleMetadataSchema)` to create a new message. + */ +export const RuleMetadataSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 0); + +/** + * @generated from message changes.RuleProperties + */ +export type RuleProperties = Message<"changes.RuleProperties"> & { + /** + * The name of the rule, friendly for users + * + * @generated from field: string name = 1; + */ + name: string; + + /** + * The key that will be set in a change's tags if this rule is applied + * + * @generated from field: string tagKey = 2; + */ + tagKey: string; + + /** + * Whether the rule is enabled or not + * + * @generated from field: bool enabled = 3; + */ + enabled: boolean; + + /** + * The instructions that will be run by the llm to determine if the tag should + * be applied and what its value should be + * + * @generated from field: string instructions = 4; + */ + instructions: string; + + /** + * A list of valid tag values. If the instructions produce a value that is not + * in this list, the rule will be retried, however if we cannot converge on a + * valid value after some number of tries, the rule will not be applied + * + * @generated from field: repeated string validValues = 5; + */ + validValues: string[]; +}; + +/** + * Describes the message changes.RuleProperties. + * Use `create(RulePropertiesSchema)` to create a new message. + */ +export const RulePropertiesSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 1); + +/** + * @generated from message changes.Rule + */ +export type Rule = Message<"changes.Rule"> & { + /** + * The auto-generated metadata for this rule + * + * @generated from field: changes.RuleMetadata metadata = 1; + */ + metadata?: RuleMetadata; + + /** + * The user provided properties for this rule + * + * @generated from field: changes.RuleProperties properties = 2; + */ + properties?: RuleProperties; +}; + +/** + * Describes the message changes.Rule. + * Use `create(RuleSchema)` to create a new message. + */ +export const RuleSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 2); + +/** + * @generated from message changes.ListRulesRequest + */ +export type ListRulesRequest = Message<"changes.ListRulesRequest"> & { +}; + +/** + * Describes the message changes.ListRulesRequest. + * Use `create(ListRulesRequestSchema)` to create a new message. + */ +export const ListRulesRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 3); + +/** + * @generated from message changes.ListRulesResponse + */ +export type ListRulesResponse = Message<"changes.ListRulesResponse"> & { + /** + * @generated from field: repeated changes.Rule rules = 1; + */ + rules: Rule[]; +}; + +/** + * Describes the message changes.ListRulesResponse. + * Use `create(ListRulesResponseSchema)` to create a new message. + */ +export const ListRulesResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 4); + +/** + * @generated from message changes.CreateRuleRequest + */ +export type CreateRuleRequest = Message<"changes.CreateRuleRequest"> & { + /** + * @generated from field: changes.RuleProperties properties = 1; + */ + properties?: RuleProperties; +}; + +/** + * Describes the message changes.CreateRuleRequest. + * Use `create(CreateRuleRequestSchema)` to create a new message. + */ +export const CreateRuleRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 5); + +/** + * @generated from message changes.CreateRuleResponse + */ +export type CreateRuleResponse = Message<"changes.CreateRuleResponse"> & { + /** + * @generated from field: changes.Rule rule = 1; + */ + rule?: Rule; +}; + +/** + * Describes the message changes.CreateRuleResponse. + * Use `create(CreateRuleResponseSchema)` to create a new message. + */ +export const CreateRuleResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 6); + +/** + * @generated from message changes.GetRuleRequest + */ +export type GetRuleRequest = Message<"changes.GetRuleRequest"> & { + /** + * @generated from field: bytes UUID = 1; + */ + UUID: Uint8Array; +}; + +/** + * Describes the message changes.GetRuleRequest. + * Use `create(GetRuleRequestSchema)` to create a new message. + */ +export const GetRuleRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 7); + +/** + * @generated from message changes.GetRuleResponse + */ +export type GetRuleResponse = Message<"changes.GetRuleResponse"> & { + /** + * @generated from field: changes.Rule rule = 1; + */ + rule?: Rule; +}; + +/** + * Describes the message changes.GetRuleResponse. + * Use `create(GetRuleResponseSchema)` to create a new message. + */ +export const GetRuleResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 8); + +/** + * @generated from message changes.UpdateRuleRequest + */ +export type UpdateRuleRequest = Message<"changes.UpdateRuleRequest"> & { + /** + * @generated from field: bytes UUID = 1; + */ + UUID: Uint8Array; + + /** + * @generated from field: changes.RuleProperties properties = 2; + */ + properties?: RuleProperties; +}; + +/** + * Describes the message changes.UpdateRuleRequest. + * Use `create(UpdateRuleRequestSchema)` to create a new message. + */ +export const UpdateRuleRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 9); + +/** + * @generated from message changes.UpdateRuleResponse + */ +export type UpdateRuleResponse = Message<"changes.UpdateRuleResponse"> & { + /** + * @generated from field: changes.Rule rule = 1; + */ + rule?: Rule; +}; + +/** + * Describes the message changes.UpdateRuleResponse. + * Use `create(UpdateRuleResponseSchema)` to create a new message. + */ +export const UpdateRuleResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 10); + +/** + * @generated from message changes.DeleteRuleRequest + */ +export type DeleteRuleRequest = Message<"changes.DeleteRuleRequest"> & { + /** + * @generated from field: bytes UUID = 1; + */ + UUID: Uint8Array; +}; + +/** + * Describes the message changes.DeleteRuleRequest. + * Use `create(DeleteRuleRequestSchema)` to create a new message. + */ +export const DeleteRuleRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 11); + +/** + * @generated from message changes.DeleteRuleResponse + */ +export type DeleteRuleResponse = Message<"changes.DeleteRuleResponse"> & { +}; + +/** + * Describes the message changes.DeleteRuleResponse. + * Use `create(DeleteRuleResponseSchema)` to create a new message. + */ +export const DeleteRuleResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 12); + +/** + * @generated from message changes.ExportRuleRequest + */ +export type ExportRuleRequest = Message<"changes.ExportRuleRequest"> & { + /** + * @generated from field: bytes UUID = 1; + */ + UUID: Uint8Array; +}; + +/** + * Describes the message changes.ExportRuleRequest. + * Use `create(ExportRuleRequestSchema)` to create a new message. + */ +export const ExportRuleRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 13); + +/** + * @generated from message changes.ExportRuleResponse + */ +export type ExportRuleResponse = Message<"changes.ExportRuleResponse"> & { + /** + * Content that should be added to auto-tagging config file to represent this + * rule it is in the format that the cli expects + * + * @generated from field: string rule = 1; + */ + rule: string; +}; + +/** + * Describes the message changes.ExportRuleResponse. + * Use `create(ExportRuleResponseSchema)` to create a new message. + */ +export const ExportRuleResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 14); + +/** + * @generated from message changes.TestRuleRequest + */ +export type TestRuleRequest = Message<"changes.TestRuleRequest"> & { + /** + * The entire rule to test, so they don't have to save it first + * + * @generated from field: changes.RuleProperties properties = 1; + */ + properties?: RuleProperties; + + /** + * List of changes to test the rule on + * + * @generated from field: repeated bytes changeUUID = 2; + */ + changeUUID: Uint8Array[]; +}; + +/** + * Describes the message changes.TestRuleRequest. + * Use `create(TestRuleRequestSchema)` to create a new message. + */ +export const TestRuleRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 15); + +/** + * @generated from message changes.TestRuleResponse + */ +export type TestRuleResponse = Message<"changes.TestRuleResponse"> & { + /** + * The change UUID that the rule was tested against + * + * @generated from field: bytes changeUUID = 1; + */ + changeUUID: Uint8Array; + + /** + * Whether or not the tag was applied to this change + * + * @generated from field: bool applied = 2; + */ + applied: boolean; + + /** + * The value of the tag and the reasoning for it + * + * @generated from field: changes.AutoTagValue value = 3; + */ + value?: AutoTagValue; +}; + +/** + * Describes the message changes.TestRuleResponse. + * Use `create(TestRuleResponseSchema)` to create a new message. + */ +export const TestRuleResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 16); /** * @generated from message changes.GetChangeTimelineRequest @@ -39,7 +418,7 @@ export type GetChangeTimelineRequest = Message<"changes.GetChangeTimelineRequest * Use `create(GetChangeTimelineRequestSchema)` to create a new message. */ export const GetChangeTimelineRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 0); + messageDesc(file_changes, 17); /** * @generated from message changes.GetChangeTimelineResponse @@ -56,7 +435,7 @@ export type GetChangeTimelineResponse = Message<"changes.GetChangeTimelineRespon * Use `create(GetChangeTimelineResponseSchema)` to create a new message. */ export const GetChangeTimelineResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 1); + messageDesc(file_changes, 18); /** * @generated from message changes.ChangeTimelineEntry @@ -97,7 +476,7 @@ export type ChangeTimelineEntry = Message<"changes.ChangeTimelineEntry"> & { * Use `create(ChangeTimelineEntrySchema)` to create a new message. */ export const ChangeTimelineEntrySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 2); + messageDesc(file_changes, 19); /** * @generated from message changes.GetDiffRequest @@ -114,7 +493,7 @@ export type GetDiffRequest = Message<"changes.GetDiffRequest"> & { * Use `create(GetDiffRequestSchema)` to create a new message. */ export const GetDiffRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 3); + messageDesc(file_changes, 20); /** * @generated from message changes.GetDiffResponse @@ -152,7 +531,7 @@ export type GetDiffResponse = Message<"changes.GetDiffResponse"> & { * Use `create(GetDiffResponseSchema)` to create a new message. */ export const GetDiffResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 4); + messageDesc(file_changes, 21); /** * @generated from message changes.ListChangingItemsSummaryRequest @@ -169,7 +548,7 @@ export type ListChangingItemsSummaryRequest = Message<"changes.ListChangingItems * Use `create(ListChangingItemsSummaryRequestSchema)` to create a new message. */ export const ListChangingItemsSummaryRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 5); + messageDesc(file_changes, 22); /** * @generated from message changes.ListChangingItemsSummaryResponse @@ -186,7 +565,7 @@ export type ListChangingItemsSummaryResponse = Message<"changes.ListChangingItem * Use `create(ListChangingItemsSummaryResponseSchema)` to create a new message. */ export const ListChangingItemsSummaryResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 6); + messageDesc(file_changes, 23); /** * @generated from message changes.GetAffectedAppsRequest @@ -203,7 +582,7 @@ export type GetAffectedAppsRequest = Message<"changes.GetAffectedAppsRequest"> & * Use `create(GetAffectedAppsRequestSchema)` to create a new message. */ export const GetAffectedAppsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 7); + messageDesc(file_changes, 24); /** * @generated from message changes.GetAffectedAppsResponse @@ -220,7 +599,7 @@ export type GetAffectedAppsResponse = Message<"changes.GetAffectedAppsResponse"> * Use `create(GetAffectedAppsResponseSchema)` to create a new message. */ export const GetAffectedAppsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 8); + messageDesc(file_changes, 25); /** * @generated from message changes.UpdateChangingItemsRequest @@ -246,7 +625,7 @@ export type UpdateChangingItemsRequest = Message<"changes.UpdateChangingItemsReq * Use `create(UpdateChangingItemsRequestSchema)` to create a new message. */ export const UpdateChangingItemsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 9); + messageDesc(file_changes, 26); /** * @generated from message changes.MappedItemDiff @@ -273,7 +652,7 @@ export type MappedItemDiff = Message<"changes.MappedItemDiff"> & { * Use `create(MappedItemDiffSchema)` to create a new message. */ export const MappedItemDiffSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 10); + messageDesc(file_changes, 27); /** * @generated from message changes.UpdatePlannedChangesRequest @@ -287,7 +666,7 @@ export type UpdatePlannedChangesRequest = Message<"changes.UpdatePlannedChangesR changeUUID: Uint8Array; /** - * the changing items + * The changing items * * @generated from field: repeated changes.MappedItemDiff changingItems = 2; */ @@ -299,6 +678,15 @@ export type UpdatePlannedChangesRequest = Message<"changes.UpdatePlannedChangesR * @generated from field: optional config.BlastRadiusConfig blastRadiusConfigOverride = 3; */ blastRadiusConfigOverride?: BlastRadiusConfig; + + /** + * Overrides the auto-tagging rules with rules that have been read from the + * local config file. If this is empty the rules that have been configured in + * the UI will be used + * + * @generated from field: repeated changes.RuleProperties autoTaggingRulesOverride = 4; + */ + autoTaggingRulesOverride: RuleProperties[]; }; /** @@ -306,7 +694,7 @@ export type UpdatePlannedChangesRequest = Message<"changes.UpdatePlannedChangesR * Use `create(UpdatePlannedChangesRequestSchema)` to create a new message. */ export const UpdatePlannedChangesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 11); + messageDesc(file_changes, 28); /** * @generated from message changes.ListAppChangesSummaryRequest @@ -323,7 +711,7 @@ export type ListAppChangesSummaryRequest = Message<"changes.ListAppChangesSummar * Use `create(ListAppChangesSummaryRequestSchema)` to create a new message. */ export const ListAppChangesSummaryRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 12); + messageDesc(file_changes, 29); /** * @generated from message changes.ListAppChangesSummaryResponse @@ -340,7 +728,7 @@ export type ListAppChangesSummaryResponse = Message<"changes.ListAppChangesSumma * Use `create(ListAppChangesSummaryResponseSchema)` to create a new message. */ export const ListAppChangesSummaryResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 13); + messageDesc(file_changes, 30); /** * @generated from message changes.GetAppSummaryRequest @@ -357,7 +745,7 @@ export type GetAppSummaryRequest = Message<"changes.GetAppSummaryRequest"> & { * Use `create(GetAppSummaryRequestSchema)` to create a new message. */ export const GetAppSummaryRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 14); + messageDesc(file_changes, 31); /** * @generated from message changes.GetAppSummaryResponse @@ -374,7 +762,7 @@ export type GetAppSummaryResponse = Message<"changes.GetAppSummaryResponse"> & { * Use `create(GetAppSummaryResponseSchema)` to create a new message. */ export const GetAppSummaryResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 15); + messageDesc(file_changes, 32); /** * @generated from message changes.GetAppSummariesRequest @@ -391,7 +779,7 @@ export type GetAppSummariesRequest = Message<"changes.GetAppSummariesRequest"> & * Use `create(GetAppSummariesRequestSchema)` to create a new message. */ export const GetAppSummariesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 16); + messageDesc(file_changes, 33); /** * @generated from message changes.GetAppSummariesResponse @@ -408,7 +796,7 @@ export type GetAppSummariesResponse = Message<"changes.GetAppSummariesResponse"> * Use `create(GetAppSummariesResponseSchema)` to create a new message. */ export const GetAppSummariesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 17); + messageDesc(file_changes, 34); /** * @generated from message changes.ListHomeChangesRequest @@ -430,7 +818,7 @@ export type ListHomeChangesRequest = Message<"changes.ListHomeChangesRequest"> & * Use `create(ListHomeChangesRequestSchema)` to create a new message. */ export const ListHomeChangesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 18); + messageDesc(file_changes, 35); /** * ChangeFiltersRequest is used for filtering on the changes page. @@ -478,7 +866,7 @@ export type ChangeFiltersRequest = Message<"changes.ChangeFiltersRequest"> & { * Use `create(ChangeFiltersRequestSchema)` to create a new message. */ export const ChangeFiltersRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 19); + messageDesc(file_changes, 36); /** * @generated from message changes.ListHomeChangesResponse @@ -500,7 +888,7 @@ export type ListHomeChangesResponse = Message<"changes.ListHomeChangesResponse"> * Use `create(ListHomeChangesResponseSchema)` to create a new message. */ export const ListHomeChangesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 20); + messageDesc(file_changes, 37); /** * @generated from message changes.PopulateChangeFiltersRequest @@ -513,7 +901,7 @@ export type PopulateChangeFiltersRequest = Message<"changes.PopulateChangeFilter * Use `create(PopulateChangeFiltersRequestSchema)` to create a new message. */ export const PopulateChangeFiltersRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 21); + messageDesc(file_changes, 38); /** * @generated from message changes.PopulateChangeFiltersResponse @@ -535,7 +923,7 @@ export type PopulateChangeFiltersResponse = Message<"changes.PopulateChangeFilte * Use `create(PopulateChangeFiltersResponseSchema)` to create a new message. */ export const PopulateChangeFiltersResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 22); + messageDesc(file_changes, 39); /** * @generated from message changes.ListHomeAppsRequest @@ -548,7 +936,7 @@ export type ListHomeAppsRequest = Message<"changes.ListHomeAppsRequest"> & { * Use `create(ListHomeAppsRequestSchema)` to create a new message. */ export const ListHomeAppsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 23); + messageDesc(file_changes, 40); /** * @generated from message changes.ListHomeAppsResponse @@ -565,7 +953,7 @@ export type ListHomeAppsResponse = Message<"changes.ListHomeAppsResponse"> & { * Use `create(ListHomeAppsResponseSchema)` to create a new message. */ export const ListHomeAppsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 24); + messageDesc(file_changes, 41); /** * Editor's node: I'm using references here rather than just directly @@ -605,7 +993,7 @@ export type ItemDiffSummary = Message<"changes.ItemDiffSummary"> & { * Use `create(ItemDiffSummarySchema)` to create a new message. */ export const ItemDiffSummarySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 25); + messageDesc(file_changes, 42); /** * @generated from message changes.ItemDiff @@ -641,7 +1029,7 @@ export type ItemDiff = Message<"changes.ItemDiff"> & { * Use `create(ItemDiffSchema)` to create a new message. */ export const ItemDiffSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 26); + messageDesc(file_changes, 43); /** * @generated from message changes.AppSummary @@ -720,7 +1108,7 @@ export type AppSummary = Message<"changes.AppSummary"> & { * Use `create(AppSummarySchema)` to create a new message. */ export const AppSummarySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 27); + messageDesc(file_changes, 44); /** * a complete App with machine-supplied and user-supplied values @@ -748,7 +1136,7 @@ export type App = Message<"changes.App"> & { * Use `create(AppSchema)` to create a new message. */ export const AppSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 28); + messageDesc(file_changes, 45); /** * machine-generated metadata of this app @@ -826,7 +1214,7 @@ export type AppMetadata = Message<"changes.AppMetadata"> & { * Use `create(AppMetadataSchema)` to create a new message. */ export const AppMetadataSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 29); + messageDesc(file_changes, 46); /** * user-supplied properties of this app @@ -864,7 +1252,7 @@ export type AppProperties = Message<"changes.AppProperties"> & { * Use `create(AppPropertiesSchema)` to create a new message. */ export const AppPropertiesSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 30); + messageDesc(file_changes, 47); /** * list all apps @@ -879,7 +1267,7 @@ export type ListAppsRequest = Message<"changes.ListAppsRequest"> & { * Use `create(ListAppsRequestSchema)` to create a new message. */ export const ListAppsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 31); + messageDesc(file_changes, 48); /** * @generated from message changes.ListAppsResponse @@ -896,7 +1284,7 @@ export type ListAppsResponse = Message<"changes.ListAppsResponse"> & { * Use `create(ListAppsResponseSchema)` to create a new message. */ export const ListAppsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 32); + messageDesc(file_changes, 49); /** * create a new app @@ -915,7 +1303,7 @@ export type CreateAppRequest = Message<"changes.CreateAppRequest"> & { * Use `create(CreateAppRequestSchema)` to create a new message. */ export const CreateAppRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 33); + messageDesc(file_changes, 50); /** * @generated from message changes.CreateAppResponse @@ -932,7 +1320,7 @@ export type CreateAppResponse = Message<"changes.CreateAppResponse"> & { * Use `create(CreateAppResponseSchema)` to create a new message. */ export const CreateAppResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 34); + messageDesc(file_changes, 51); /** * @generated from message changes.CreateSimpleAppRequest @@ -965,7 +1353,7 @@ export type CreateSimpleAppRequest = Message<"changes.CreateSimpleAppRequest"> & * Use `create(CreateSimpleAppRequestSchema)` to create a new message. */ export const CreateSimpleAppRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 35); + messageDesc(file_changes, 52); /** * @generated from message changes.CreateSimpleAppResponse @@ -982,7 +1370,7 @@ export type CreateSimpleAppResponse = Message<"changes.CreateSimpleAppResponse"> * Use `create(CreateSimpleAppResponseSchema)` to create a new message. */ export const CreateSimpleAppResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 36); + messageDesc(file_changes, 53); /** * get the details of an existing app @@ -1001,7 +1389,7 @@ export type GetAppRequest = Message<"changes.GetAppRequest"> & { * Use `create(GetAppRequestSchema)` to create a new message. */ export const GetAppRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 37); + messageDesc(file_changes, 54); /** * @generated from message changes.GetAppResponse @@ -1018,7 +1406,7 @@ export type GetAppResponse = Message<"changes.GetAppResponse"> & { * Use `create(GetAppResponseSchema)` to create a new message. */ export const GetAppResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 38); + messageDesc(file_changes, 55); /** * update an expsting app @@ -1042,7 +1430,7 @@ export type UpdateAppRequest = Message<"changes.UpdateAppRequest"> & { * Use `create(UpdateAppRequestSchema)` to create a new message. */ export const UpdateAppRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 39); + messageDesc(file_changes, 56); /** * @generated from message changes.UpdateAppResponse @@ -1059,7 +1447,7 @@ export type UpdateAppResponse = Message<"changes.UpdateAppResponse"> & { * Use `create(UpdateAppResponseSchema)` to create a new message. */ export const UpdateAppResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 40); + messageDesc(file_changes, 57); /** * delete an app @@ -1078,7 +1466,7 @@ export type DeleteAppRequest = Message<"changes.DeleteAppRequest"> & { * Use `create(DeleteAppRequestSchema)` to create a new message. */ export const DeleteAppRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 41); + messageDesc(file_changes, 58); /** * @generated from message changes.DeleteAppResponse @@ -1091,7 +1479,7 @@ export type DeleteAppResponse = Message<"changes.DeleteAppResponse"> & { * Use `create(DeleteAppResponseSchema)` to create a new message. */ export const DeleteAppResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 42); + messageDesc(file_changes, 59); /** * list all changes for an app @@ -1112,7 +1500,7 @@ export type ListAppChangesRequest = Message<"changes.ListAppChangesRequest"> & { * Use `create(ListAppChangesRequestSchema)` to create a new message. */ export const ListAppChangesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 43); + messageDesc(file_changes, 60); /** * @generated from message changes.ListAppChangesResponse @@ -1131,7 +1519,83 @@ export type ListAppChangesResponse = Message<"changes.ListAppChangesResponse"> & * Use `create(ListAppChangesResponseSchema)` to create a new message. */ export const ListAppChangesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 44); + messageDesc(file_changes, 61); + +/** + * @generated from message changes.TagValue + */ +export type TagValue = Message<"changes.TagValue"> & { + /** + * The value of the tag, this can be user-defined or auto-generated + * + * @generated from oneof changes.TagValue.value + */ + value: { + /** + * @generated from field: changes.UserTagValue userTagValue = 1; + */ + value: UserTagValue; + case: "userTagValue"; + } | { + /** + * @generated from field: changes.AutoTagValue autoTagValue = 2; + */ + value: AutoTagValue; + case: "autoTagValue"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message changes.TagValue. + * Use `create(TagValueSchema)` to create a new message. + */ +export const TagValueSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 62); + +/** + * @generated from message changes.UserTagValue + */ +export type UserTagValue = Message<"changes.UserTagValue"> & { + /** + * The value of the tag that was set by the user + * + * @generated from field: string value = 1; + */ + value: string; +}; + +/** + * Describes the message changes.UserTagValue. + * Use `create(UserTagValueSchema)` to create a new message. + */ +export const UserTagValueSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 63); + +/** + * @generated from message changes.AutoTagValue + */ +export type AutoTagValue = Message<"changes.AutoTagValue"> & { + /** + * The value of the tag + * + * @generated from field: string value = 1; + */ + value: string; + + /** + * Reasoning for this decision + * + * @generated from field: string reasoning = 2; + */ + reasoning: string; +}; + +/** + * Describes the message changes.AutoTagValue. + * Use `create(AutoTagValueSchema)` to create a new message. + */ +export const AutoTagValueSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 64); /** * A smaller summary of a change @@ -1242,18 +1706,30 @@ export type ChangeSummary = Message<"changes.ChangeSummary"> & { description: string; /** - * Repo information; can be an empty string. CLI attempts auto-population, but users can override. Not necessarily a URL. The UI will be responsible for any formatting/shortnening/sprucing up should it be required. + * Repo information; can be an empty string. CLI attempts auto-population, but + * users can override. Not necessarily a URL. The UI will be responsible for + * any formatting/shortening/sprucing up should it be required. * * @generated from field: string repo = 16; */ repo: string; /** - * User-defined tags associated with this change, will be populated via the CLI and not the UI. + * Tags that were set bu the user when the tag was created * - * @generated from field: map tags = 17; + * Deprecated: Use enrichedTags instead + * + * @generated from field: map tags = 17 [deprecated = true]; + * @deprecated */ tags: { [key: string]: string }; + + /** + * Tags associated with this change + * + * @generated from field: map enrichedTags = 18; + */ + enrichedTags: { [key: string]: TagValue }; }; /** @@ -1261,7 +1737,7 @@ export type ChangeSummary = Message<"changes.ChangeSummary"> & { * Use `create(ChangeSummarySchema)` to create a new message. */ export const ChangeSummarySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 45); + messageDesc(file_changes, 65); /** * a complete Change with machine-supplied and user-supplied values @@ -1289,7 +1765,7 @@ export type Change = Message<"changes.Change"> & { * Use `create(ChangeSchema)` to create a new message. */ export const ChangeSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 46); + messageDesc(file_changes, 66); /** * machine-generated metadata of this change @@ -1428,7 +1904,7 @@ export type ChangeMetadata = Message<"changes.ChangeMetadata"> & { * Use `create(ChangeMetadataSchema)` to create a new message. */ export const ChangeMetadataSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 47); + messageDesc(file_changes, 67); /** * Represents the current state of a given health state, and the amount that @@ -1468,7 +1944,7 @@ export type ChangeMetadata_HealthChange = Message<"changes.ChangeMetadata.Health * Use `create(ChangeMetadata_HealthChangeSchema)` to create a new message. */ export const ChangeMetadata_HealthChangeSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 47, 0); + messageDesc(file_changes, 67, 0); /** * user-supplied properties of this change @@ -1584,11 +2060,33 @@ export type ChangeProperties = Message<"changes.ChangeProperties"> & { repo: string; /** - * User-defined tags associated with this change, will be populated via the CLI and not the UI. + * Tags that were set bu the user when the tag was created + * + * Deprecated: Use enrichedTags instead * - * @generated from field: map tags = 16; + * @generated from field: map tags = 16 [deprecated = true]; + * @deprecated */ tags: { [key: string]: string }; + + /** + * Tags associated with this change + * + * @generated from field: map enrichedTags = 18; + */ + enrichedTags: { [key: string]: TagValue }; + + /** + * Tags that were skipped by auto-tagging rules + * + * @generated from field: map skippedAutoTags = 19; + */ + skippedAutoTags: { [key: string]: AutoTagValue }; + + /** + * @generated from field: changes.ChangeProperties.AutoTaggingRuleSource autoTaggingRuleSource = 20; + */ + autoTaggingRuleSource: ChangeProperties_AutoTaggingRuleSource; }; /** @@ -1596,7 +2094,36 @@ export type ChangeProperties = Message<"changes.ChangeProperties"> & { * Use `create(ChangePropertiesSchema)` to create a new message. */ export const ChangePropertiesSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 48); + messageDesc(file_changes, 68); + +/** + * origin of auto-tagging rules + * this is an enum of file or ui provided rules + * + * @generated from enum changes.ChangeProperties.AutoTaggingRuleSource + */ +export enum ChangeProperties_AutoTaggingRuleSource { + /** + * @generated from enum value: AUTO_TAGGING_RULE_SOURCE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: AUTO_TAGGING_RULE_SOURCE_FILE = 1; + */ + FILE = 1, + + /** + * @generated from enum value: AUTO_TAGGING_RULE_SOURCE_UI = 2; + */ + UI = 2, +} + +/** + * Describes the enum changes.ChangeProperties.AutoTaggingRuleSource. + */ +export const ChangeProperties_AutoTaggingRuleSourceSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_changes, 68, 0); /** * list all changes @@ -1611,7 +2138,7 @@ export type ListChangesRequest = Message<"changes.ListChangesRequest"> & { * Use `create(ListChangesRequestSchema)` to create a new message. */ export const ListChangesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 49); + messageDesc(file_changes, 69); /** * @generated from message changes.ListChangesResponse @@ -1628,7 +2155,7 @@ export type ListChangesResponse = Message<"changes.ListChangesResponse"> & { * Use `create(ListChangesResponseSchema)` to create a new message. */ export const ListChangesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 50); + messageDesc(file_changes, 70); /** * list all changes in a specific status @@ -1647,7 +2174,7 @@ export type ListChangesByStatusRequest = Message<"changes.ListChangesByStatusReq * Use `create(ListChangesByStatusRequestSchema)` to create a new message. */ export const ListChangesByStatusRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 51); + messageDesc(file_changes, 71); /** * @generated from message changes.ListChangesByStatusResponse @@ -1664,7 +2191,7 @@ export type ListChangesByStatusResponse = Message<"changes.ListChangesByStatusRe * Use `create(ListChangesByStatusResponseSchema)` to create a new message. */ export const ListChangesByStatusResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 52); + messageDesc(file_changes, 72); /** * create a new change @@ -1683,7 +2210,7 @@ export type CreateChangeRequest = Message<"changes.CreateChangeRequest"> & { * Use `create(CreateChangeRequestSchema)` to create a new message. */ export const CreateChangeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 53); + messageDesc(file_changes, 73); /** * @generated from message changes.CreateChangeResponse @@ -1700,7 +2227,7 @@ export type CreateChangeResponse = Message<"changes.CreateChangeResponse"> & { * Use `create(CreateChangeResponseSchema)` to create a new message. */ export const CreateChangeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 54); + messageDesc(file_changes, 74); /** * get the details of a specific change @@ -1729,7 +2256,7 @@ export type GetChangeRequest = Message<"changes.GetChangeRequest"> & { * Use `create(GetChangeRequestSchema)` to create a new message. */ export const GetChangeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 55); + messageDesc(file_changes, 75); /** * @generated from message changes.GetChangeResponse @@ -1746,7 +2273,7 @@ export type GetChangeResponse = Message<"changes.GetChangeResponse"> & { * Use `create(GetChangeResponseSchema)` to create a new message. */ export const GetChangeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 56); + messageDesc(file_changes, 76); /** * get the details of a specific change @@ -1765,7 +2292,7 @@ export type GetChangeRisksRequest = Message<"changes.GetChangeRisksRequest"> & { * Use `create(GetChangeRisksRequestSchema)` to create a new message. */ export const GetChangeRisksRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 57); + messageDesc(file_changes, 77); /** * @generated from message changes.ChangeRiskMetadata @@ -1774,9 +2301,9 @@ export type ChangeRiskMetadata = Message<"changes.ChangeRiskMetadata"> & { /** * The status of the risk calculation * - * @generated from field: changes.RiskCalculationStatus riskCalculationStatus = 1; + * @generated from field: changes.ChangeAnalysisStatus changeAnalysisStatus = 1; */ - riskCalculationStatus?: RiskCalculationStatus; + changeAnalysisStatus?: ChangeAnalysisStatus; /** * The risks that are related to this change @@ -1812,7 +2339,7 @@ export type ChangeRiskMetadata = Message<"changes.ChangeRiskMetadata"> & { * Use `create(ChangeRiskMetadataSchema)` to create a new message. */ export const ChangeRiskMetadataSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 58); + messageDesc(file_changes, 78); /** * @generated from message changes.GetChangeRisksResponse @@ -1829,7 +2356,7 @@ export type GetChangeRisksResponse = Message<"changes.GetChangeRisksResponse"> & * Use `create(GetChangeRisksResponseSchema)` to create a new message. */ export const GetChangeRisksResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 59); + messageDesc(file_changes, 79); /** * update an existing change @@ -1853,7 +2380,7 @@ export type UpdateChangeRequest = Message<"changes.UpdateChangeRequest"> & { * Use `create(UpdateChangeRequestSchema)` to create a new message. */ export const UpdateChangeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 60); + messageDesc(file_changes, 80); /** * @generated from message changes.UpdateChangeResponse @@ -1870,7 +2397,7 @@ export type UpdateChangeResponse = Message<"changes.UpdateChangeResponse"> & { * Use `create(UpdateChangeResponseSchema)` to create a new message. */ export const UpdateChangeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 61); + messageDesc(file_changes, 81); /** * delete a change @@ -1889,7 +2416,7 @@ export type DeleteChangeRequest = Message<"changes.DeleteChangeRequest"> & { * Use `create(DeleteChangeRequestSchema)` to create a new message. */ export const DeleteChangeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 62); + messageDesc(file_changes, 82); /** * list changes for a snapshot UUID @@ -1908,7 +2435,7 @@ export type ListChangesBySnapshotUUIDRequest = Message<"changes.ListChangesBySna * Use `create(ListChangesBySnapshotUUIDRequestSchema)` to create a new message. */ export const ListChangesBySnapshotUUIDRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 63); + messageDesc(file_changes, 83); /** * @generated from message changes.ListChangesBySnapshotUUIDResponse @@ -1925,7 +2452,7 @@ export type ListChangesBySnapshotUUIDResponse = Message<"changes.ListChangesBySn * Use `create(ListChangesBySnapshotUUIDResponseSchema)` to create a new message. */ export const ListChangesBySnapshotUUIDResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 64); + messageDesc(file_changes, 84); /** * @generated from message changes.DeleteChangeResponse @@ -1938,7 +2465,7 @@ export type DeleteChangeResponse = Message<"changes.DeleteChangeResponse"> & { * Use `create(DeleteChangeResponseSchema)` to create a new message. */ export const DeleteChangeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 65); + messageDesc(file_changes, 85); /** * @generated from message changes.RefreshStateRequest @@ -1951,7 +2478,7 @@ export type RefreshStateRequest = Message<"changes.RefreshStateRequest"> & { * Use `create(RefreshStateRequestSchema)` to create a new message. */ export const RefreshStateRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 66); + messageDesc(file_changes, 86); /** * @generated from message changes.RefreshStateResponse @@ -1964,7 +2491,7 @@ export type RefreshStateResponse = Message<"changes.RefreshStateResponse"> & { * Use `create(RefreshStateResponseSchema)` to create a new message. */ export const RefreshStateResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 67); + messageDesc(file_changes, 87); /** * @generated from message changes.CalculateBlastRadiusRequest @@ -1993,7 +2520,7 @@ export type CalculateBlastRadiusRequest = Message<"changes.CalculateBlastRadiusR * Use `create(CalculateBlastRadiusRequestSchema)` to create a new message. */ export const CalculateBlastRadiusRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 68); + messageDesc(file_changes, 88); /** * @generated from message changes.CalculateBlastRadiusResponse @@ -2029,7 +2556,7 @@ export type CalculateBlastRadiusResponse = Message<"changes.CalculateBlastRadius * Use `create(CalculateBlastRadiusResponseSchema)` to create a new message. */ export const CalculateBlastRadiusResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 69); + messageDesc(file_changes, 89); /** * @generated from enum changes.CalculateBlastRadiusResponse.State @@ -2075,7 +2602,7 @@ export enum CalculateBlastRadiusResponse_State { * Describes the enum changes.CalculateBlastRadiusResponse.State. */ export const CalculateBlastRadiusResponse_StateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_changes, 69, 0); + enumDesc(file_changes, 89, 0); /** * @generated from message changes.StartChangeRequest @@ -2092,7 +2619,7 @@ export type StartChangeRequest = Message<"changes.StartChangeRequest"> & { * Use `create(StartChangeRequestSchema)` to create a new message. */ export const StartChangeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 70); + messageDesc(file_changes, 90); /** * @generated from message changes.StartChangeResponse @@ -2119,7 +2646,7 @@ export type StartChangeResponse = Message<"changes.StartChangeResponse"> & { * Use `create(StartChangeResponseSchema)` to create a new message. */ export const StartChangeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 71); + messageDesc(file_changes, 91); /** * @generated from enum changes.StartChangeResponse.State @@ -2158,7 +2685,7 @@ export enum StartChangeResponse_State { * Describes the enum changes.StartChangeResponse.State. */ export const StartChangeResponse_StateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_changes, 71, 0); + enumDesc(file_changes, 91, 0); /** * @generated from message changes.EndChangeRequest @@ -2175,7 +2702,7 @@ export type EndChangeRequest = Message<"changes.EndChangeRequest"> & { * Use `create(EndChangeRequestSchema)` to create a new message. */ export const EndChangeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 72); + messageDesc(file_changes, 92); /** * @generated from message changes.EndChangeResponse @@ -2202,7 +2729,7 @@ export type EndChangeResponse = Message<"changes.EndChangeResponse"> & { * Use `create(EndChangeResponseSchema)` to create a new message. */ export const EndChangeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 73); + messageDesc(file_changes, 93); /** * @generated from enum changes.EndChangeResponse.State @@ -2241,7 +2768,7 @@ export enum EndChangeResponse_State { * Describes the enum changes.EndChangeResponse.State. */ export const EndChangeResponse_StateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_changes, 73, 0); + enumDesc(file_changes, 93, 0); /** * complete Onboarding information with machine-supplied and user-supplied values @@ -2269,7 +2796,7 @@ export type Onboarding = Message<"changes.Onboarding"> & { * Use `create(OnboardingSchema)` to create a new message. */ export const OnboardingSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 74); + messageDesc(file_changes, 94); /** * machine-generated metadata of this onboarding info @@ -2297,7 +2824,7 @@ export type OnboardingMetadata = Message<"changes.OnboardingMetadata"> & { * Use `create(OnboardingMetadataSchema)` to create a new message. */ export const OnboardingMetadataSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 75); + messageDesc(file_changes, 95); /** * user-supplied properties of this onboarding info @@ -2339,7 +2866,7 @@ export type OnboardingProperties = Message<"changes.OnboardingProperties"> & { * Use `create(OnboardingPropertiesSchema)` to create a new message. */ export const OnboardingPropertiesSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 76); + messageDesc(file_changes, 96); /** * get the onboarding status @@ -2354,7 +2881,7 @@ export type GetOnboardingRequest = Message<"changes.GetOnboardingRequest"> & { * Use `create(GetOnboardingRequestSchema)` to create a new message. */ export const GetOnboardingRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 77); + messageDesc(file_changes, 97); /** * @generated from message changes.GetOnboardingResponse @@ -2371,7 +2898,7 @@ export type GetOnboardingResponse = Message<"changes.GetOnboardingResponse"> & { * Use `create(GetOnboardingResponseSchema)` to create a new message. */ export const GetOnboardingResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 78); + messageDesc(file_changes, 98); /** * update onboarding status @@ -2390,7 +2917,7 @@ export type UpdateOnboardingRequest = Message<"changes.UpdateOnboardingRequest"> * Use `create(UpdateOnboardingRequestSchema)` to create a new message. */ export const UpdateOnboardingRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 79); + messageDesc(file_changes, 99); /** * @generated from message changes.UpdateOnboardingResponse @@ -2407,7 +2934,7 @@ export type UpdateOnboardingResponse = Message<"changes.UpdateOnboardingResponse * Use `create(UpdateOnboardingResponseSchema)` to create a new message. */ export const UpdateOnboardingResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 80); + messageDesc(file_changes, 100); /** * @generated from message changes.SimulateChangeRequest @@ -2426,7 +2953,7 @@ export type SimulateChangeRequest = Message<"changes.SimulateChangeRequest"> & { * Use `create(SimulateChangeRequestSchema)` to create a new message. */ export const SimulateChangeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 81); + messageDesc(file_changes, 101); /** * @generated from message changes.SimulateChangeResponse @@ -2454,7 +2981,7 @@ export type SimulateChangeResponse = Message<"changes.SimulateChangeResponse"> & * Use `create(SimulateChangeResponseSchema)` to create a new message. */ export const SimulateChangeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 82); + messageDesc(file_changes, 102); /** * @generated from message changes.Risk @@ -2491,7 +3018,7 @@ export type Risk = Message<"changes.Risk"> & { * Use `create(RiskSchema)` to create a new message. */ export const RiskSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 83); + messageDesc(file_changes, 103); /** * @generated from enum changes.Risk.Severity @@ -2522,38 +3049,38 @@ export enum Risk_Severity { * Describes the enum changes.Risk.Severity. */ export const Risk_SeveritySchema: GenEnum = /*@__PURE__*/ - enumDesc(file_changes, 83, 0); + enumDesc(file_changes, 103, 0); /** - * @generated from message changes.RiskCalculationStatus + * @generated from message changes.ChangeAnalysisStatus */ -export type RiskCalculationStatus = Message<"changes.RiskCalculationStatus"> & { +export type ChangeAnalysisStatus = Message<"changes.ChangeAnalysisStatus"> & { /** - * @generated from field: changes.RiskCalculationStatus.Status status = 1; + * @generated from field: changes.ChangeAnalysisStatus.Status status = 1; */ - status: RiskCalculationStatus_Status; + status: ChangeAnalysisStatus_Status; /** * Milestones within the risk calculation process. They will be populated when * the status is `STATUS_INPROGRESS` and show a more detailed breakdown of the * progress * - * @generated from field: repeated changes.RiskCalculationStatus.ProgressMilestone progressMilestones = 5; + * @generated from field: repeated changes.ChangeAnalysisStatus.ProgressMilestone progressMilestones = 5; */ - progressMilestones: RiskCalculationStatus_ProgressMilestone[]; + progressMilestones: ChangeAnalysisStatus_ProgressMilestone[]; }; /** - * Describes the message changes.RiskCalculationStatus. - * Use `create(RiskCalculationStatusSchema)` to create a new message. + * Describes the message changes.ChangeAnalysisStatus. + * Use `create(ChangeAnalysisStatusSchema)` to create a new message. */ -export const RiskCalculationStatusSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 84); +export const ChangeAnalysisStatusSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 104); /** - * @generated from message changes.RiskCalculationStatus.ProgressMilestone + * @generated from message changes.ChangeAnalysisStatus.ProgressMilestone */ -export type RiskCalculationStatus_ProgressMilestone = Message<"changes.RiskCalculationStatus.ProgressMilestone"> & { +export type ChangeAnalysisStatus_ProgressMilestone = Message<"changes.ChangeAnalysisStatus.ProgressMilestone"> & { /** * The description of this milestone * @@ -2564,22 +3091,22 @@ export type RiskCalculationStatus_ProgressMilestone = Message<"changes.RiskCalcu /** * The status of this milestone * - * @generated from field: changes.RiskCalculationStatus.ProgressMilestone.Status status = 2; + * @generated from field: changes.ChangeAnalysisStatus.ProgressMilestone.Status status = 2; */ - status: RiskCalculationStatus_ProgressMilestone_Status; + status: ChangeAnalysisStatus_ProgressMilestone_Status; }; /** - * Describes the message changes.RiskCalculationStatus.ProgressMilestone. - * Use `create(RiskCalculationStatus_ProgressMilestoneSchema)` to create a new message. + * Describes the message changes.ChangeAnalysisStatus.ProgressMilestone. + * Use `create(ChangeAnalysisStatus_ProgressMilestoneSchema)` to create a new message. */ -export const RiskCalculationStatus_ProgressMilestoneSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 84, 0); +export const ChangeAnalysisStatus_ProgressMilestoneSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_changes, 104, 0); /** - * @generated from enum changes.RiskCalculationStatus.ProgressMilestone.Status + * @generated from enum changes.ChangeAnalysisStatus.ProgressMilestone.Status */ -export enum RiskCalculationStatus_ProgressMilestone_Status { +export enum ChangeAnalysisStatus_ProgressMilestone_Status { /** * The milestone hasn't been reached yet * @@ -2619,15 +3146,15 @@ export enum RiskCalculationStatus_ProgressMilestone_Status { } /** - * Describes the enum changes.RiskCalculationStatus.ProgressMilestone.Status. + * Describes the enum changes.ChangeAnalysisStatus.ProgressMilestone.Status. */ -export const RiskCalculationStatus_ProgressMilestone_StatusSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_changes, 84, 0, 0); +export const ChangeAnalysisStatus_ProgressMilestone_StatusSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_changes, 104, 0, 0); /** - * @generated from enum changes.RiskCalculationStatus.Status + * @generated from enum changes.ChangeAnalysisStatus.Status */ -export enum RiskCalculationStatus_Status { +export enum ChangeAnalysisStatus_Status { /** * @generated from enum value: STATUS_UNSPECIFIED = 0; */ @@ -2655,10 +3182,10 @@ export enum RiskCalculationStatus_Status { } /** - * Describes the enum changes.RiskCalculationStatus.Status. + * Describes the enum changes.ChangeAnalysisStatus.Status. */ -export const RiskCalculationStatus_StatusSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_changes, 84, 0); +export const ChangeAnalysisStatus_StatusSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_changes, 104, 0); /** * @generated from message changes.ChangeArchive @@ -2710,7 +3237,7 @@ export type ChangeArchive = Message<"changes.ChangeArchive"> & { * Use `create(ChangeArchiveSchema)` to create a new message. */ export const ChangeArchiveSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 85); + messageDesc(file_changes, 105); /** * @generated from message changes.GetChangeArchiveRequest @@ -2727,7 +3254,7 @@ export type GetChangeArchiveRequest = Message<"changes.GetChangeArchiveRequest"> * Use `create(GetChangeArchiveRequestSchema)` to create a new message. */ export const GetChangeArchiveRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 86); + messageDesc(file_changes, 106); /** * @generated from message changes.GetChangeArchiveResponse @@ -2744,7 +3271,7 @@ export type GetChangeArchiveResponse = Message<"changes.GetChangeArchiveResponse * Use `create(GetChangeArchiveResponseSchema)` to create a new message. */ export const GetChangeArchiveResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_changes, 87); + messageDesc(file_changes, 107); /** * @generated from enum changes.ItemDiffStatus @@ -3261,3 +3788,87 @@ export const ChangesService: GenService<{ }> = /*@__PURE__*/ serviceDesc(file_changes, 0); +/** + * @generated from service changes.AutoTaggingService + */ +export const AutoTaggingService: GenService<{ + /** + * Used on the auto-tagging page to list all rules for an account + * Returns a list of rules + * + * @generated from rpc changes.AutoTaggingService.ListRules + */ + listRules: { + methodKind: "unary"; + input: typeof ListRulesRequestSchema; + output: typeof ListRulesResponseSchema; + }, + /** + * Creates a new rule, with the provided properties. This will return a + * CodeAlreadyExists error if the `tagKey` is not unique + * + * @generated from rpc changes.AutoTaggingService.CreateRule + */ + createRule: { + methodKind: "unary"; + input: typeof CreateRuleRequestSchema; + output: typeof CreateRuleResponseSchema; + }, + /** + * Get the details of a rule + * + * @generated from rpc changes.AutoTaggingService.GetRule + */ + getRule: { + methodKind: "unary"; + input: typeof GetRuleRequestSchema; + output: typeof GetRuleResponseSchema; + }, + /** + * Given a rule UUID, updates the rule properties. Note the key can be + * updated, but it only applies to new changes. This will return a + * CodeAlreadyExists error if the new `tagKey` is not unique + * + * @generated from rpc changes.AutoTaggingService.UpdateRule + */ + updateRule: { + methodKind: "unary"; + input: typeof UpdateRuleRequestSchema; + output: typeof UpdateRuleResponseSchema; + }, + /** + * Given a rule UUID permanently delete that rule, existing changes will not + * be affected + * + * @generated from rpc changes.AutoTaggingService.DeleteRule + */ + deleteRule: { + methodKind: "unary"; + input: typeof DeleteRuleRequestSchema; + output: typeof DeleteRuleResponseSchema; + }, + /** + * Convert a rule's properties to a string that can be used in the rules + * config file + * + * @generated from rpc changes.AutoTaggingService.ExportRule + */ + exportRule: { + methodKind: "unary"; + input: typeof ExportRuleRequestSchema; + output: typeof ExportRuleResponseSchema; + }, + /** + * Given a rule, and a list of changes uuids + * The response will contain the rule uuid and a list of changes and what tags they would have if the rule was applied + * + * @generated from rpc changes.AutoTaggingService.TestRule + */ + testRule: { + methodKind: "server_streaming"; + input: typeof TestRuleRequestSchema; + output: typeof TestRuleResponseSchema; + }, +}> = /*@__PURE__*/ + serviceDesc(file_changes, 1); +