@valon-technologies/gestalt 0.0.1-alpha.10 → 0.0.1-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
12
12
  * Describes the file v1/workflow.proto.
13
13
  */
14
14
  export const file_v1_workflow: GenFile = /*@__PURE__*/
15
- fileDesc("ChF2MS93b3JrZmxvdy5wcm90bxITZ2VzdGFsdC5wcm92aWRlci52MSKLAQoTQm91bmRXb3JrZmxvd1RhcmdldBITCgtwbHVnaW5fbmFtZRgBIAEoCRIRCglvcGVyYXRpb24YAiABKAkSJgoFaW5wdXQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhIKCmNvbm5lY3Rpb24YBCABKAkSEAoIaW5zdGFuY2UYBSABKAkiZAoNV29ya2Zsb3dBY3RvchISCgpzdWJqZWN0X2lkGAEgASgJEhQKDHN1YmplY3Rfa2luZBgCIAEoCRIUCgxkaXNwbGF5X25hbWUYAyABKAkSEwoLYXV0aF9zb3VyY2UYBCABKAki3QIKDVdvcmtmbG93RXZlbnQSCgoCaWQYASABKAkSDgoGc291cmNlGAIgASgJEhQKDHNwZWNfdmVyc2lvbhgDIAEoCRIMCgR0eXBlGAQgASgJEg8KB3N1YmplY3QYBSABKAkSKAoEdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPZGF0YWNvbnRlbnR0eXBlGAcgASgJEiUKBGRhdGEYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EkYKCmV4dGVuc2lvbnMYCSADKAsyMi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQuRXh0ZW5zaW9uc0VudHJ5GkkKD0V4dGVuc2lvbnNFbnRyeRILCgNrZXkYASABKAkSJQoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWU6AjgBIkMKEldvcmtmbG93RXZlbnRNYXRjaBIMCgR0eXBlGAEgASgJEg4KBnNvdXJjZRgCIAEoCRIPCgdzdWJqZWN0GAMgASgJIhcKFVdvcmtmbG93TWFudWFsVHJpZ2dlciJhChdXb3JrZmxvd1NjaGVkdWxlVHJpZ2dlchITCgtzY2hlZHVsZV9pZBgBIAEoCRIxCg1zY2hlZHVsZWRfZm9yGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJnCh5Xb3JrZmxvd0V2ZW50VHJpZ2dlckludm9jYXRpb24SEgoKdHJpZ2dlcl9pZBgBIAEoCRIxCgVldmVudBgCIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudCLiAQoSV29ya2Zsb3dSdW5UcmlnZ2VyEjwKBm1hbnVhbBgBIAEoCzIqLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW51YWxUcmlnZ2VySAASQAoIc2NoZWR1bGUYAiABKAsyLC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2NoZWR1bGVUcmlnZ2VySAASRAoFZXZlbnQYAyABKAsyMy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRUcmlnZ2VySW52b2NhdGlvbkgAQgYKBGtpbmQi2AMKEEJvdW5kV29ya2Zsb3dSdW4SCgoCaWQYASABKAkSNgoGc3RhdHVzGAIgASgOMiYuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1blN0YXR1cxI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSOAoHdHJpZ2dlchgEIAEoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW5UcmlnZ2VyEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnN0YXJ0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNvbXBsZXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOc3RhdHVzX21lc3NhZ2UYCCABKAkSEwoLcmVzdWx0X2JvZHkYCSABKAkSNgoKY3JlYXRlZF9ieRgKIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAsgASgJIu0CChVCb3VuZFdvcmtmbG93U2NoZWR1bGUSCgoCaWQYASABKAkSDAoEY3JvbhgCIAEoCRIQCgh0aW1lem9uZRgDIAEoCRI4CgZ0YXJnZXQYBCABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAUgASgIEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC25leHRfcnVuX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2CgpjcmVhdGVkX2J5GAkgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yEhUKDWV4ZWN1dGlvbl9yZWYYCiABKAki2AIKGUJvdW5kV29ya2Zsb3dFdmVudFRyaWdnZXISCgoCaWQYASABKAkSNgoFbWF0Y2gYAiABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRNYXRjaBI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAQgASgIEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKCmNyZWF0ZWRfYnkYByABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgIIAEoCSLDAQofU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBI4CgZ0YXJnZXQYASABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJEjYKCmNyZWF0ZWRfYnkYBCABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgFIAEoCSIvCh1HZXRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIOCgZydW5faWQYAiABKAkiIQofTGlzdFdvcmtmbG93UHJvdmlkZXJSdW5zUmVxdWVzdCJXCiBMaXN0V29ya2Zsb3dQcm92aWRlclJ1bnNSZXNwb25zZRIzCgRydW5zGAEgAygLMiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuIkIKIENhbmNlbFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0Eg4KBnJ1bl9pZBgCIAEoCRIOCgZyZWFzb24YAyABKAki9wEKJVVwc2VydFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYASABKAkSDAoEY3JvbhgCIAEoCRIQCgh0aW1lem9uZRgDIAEoCRI4CgZ0YXJnZXQYBCABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAUgASgIEjgKDHJlcXVlc3RlZF9ieRgHIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAggASgJIjkKIkdldFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkiJgokTGlzdFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZXNSZXF1ZXN0ImYKJUxpc3RXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVzUmVzcG9uc2USPQoJc2NoZWR1bGVzGAEgAygLMiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUiPAolRGVsZXRlV29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCSI7CiRQYXVzZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkiPAolUmVzdW1lV29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCSKSAgopVXBzZXJ0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgBIAEoCRI2CgVtYXRjaBgCIAEoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudE1hdGNoEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIOCgZwYXVzZWQYBCABKAgSOAoMcmVxdWVzdGVkX2J5GAYgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yEhUKDWV4ZWN1dGlvbl9yZWYYByABKAkiPAomR2V0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCSIqCihMaXN0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlcnNSZXF1ZXN0Im0KKUxpc3RXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2Vyc1Jlc3BvbnNlEkAKCHRyaWdnZXJzGAEgAygLMi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyIj8KKURlbGV0ZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkiPgooUGF1c2VXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2VyUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAIgASgJIj8KKVJlc3VtZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkibQojUHVibGlzaFdvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QSEwoLcGx1Z2luX25hbWUYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQixgIKHkludm9rZVdvcmtmbG93T3BlcmF0aW9uUmVxdWVzdBI4CgZ0YXJnZXQYASABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcnVuX2lkGAIgASgJEjgKB3RyaWdnZXIYAyABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuVHJpZ2dlchImCgVpbnB1dBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjYKCmNyZWF0ZWRfYnkYByABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgIIAEoCSI/Ch9JbnZva2VXb3JrZmxvd09wZXJhdGlvblJlc3BvbnNlEg4KBnN0YXR1cxgBIAEoBRIMCgRib2R5GAIgASgJIm4KF01hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEhUKDXByb3ZpZGVyX25hbWUYASABKAkSPAoIc2NoZWR1bGUYAiABKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dTY2hlZHVsZSLXAQokV29ya2Zsb3dNYW5hZ2VyQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0EhUKDXByb3ZpZGVyX25hbWUYAiABKAkSDAoEY3JvbhgDIAEoCRIQCgh0aW1lem9uZRgEIAEoCRI4CgZ0YXJnZXQYBSABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAYgASgIEhgKEGludm9jYXRpb25fdG9rZW4YByABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlImgKIVdvcmtmbG93TWFuYWdlckdldFNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAMgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSLsAQokV29ya2Zsb3dNYW5hZ2VyVXBkYXRlU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJEhUKDXByb3ZpZGVyX25hbWUYAyABKAkSDAoEY3JvbhgEIAEoCRIQCgh0aW1lem9uZRgFIAEoCRI4CgZ0YXJnZXQYBiABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAcgASgIEhgKEGludm9jYXRpb25fdG9rZW4YCCABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlImsKJFdvcmtmbG93TWFuYWdlckRlbGV0ZVNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAMgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJqCiNXb3JrZmxvd01hbmFnZXJQYXVzZVNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAMgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJrCiRXb3JrZmxvd01hbmFnZXJSZXN1bWVTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUq3wEKEVdvcmtmbG93UnVuU3RhdHVzEiMKH1dPUktGTE9XX1JVTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtXT1JLRkxPV19SVU5fU1RBVFVTX1BFTkRJTkcQARIfChtXT1JLRkxPV19SVU5fU1RBVFVTX1JVTk5JTkcQAhIhCh1XT1JLRkxPV19SVU5fU1RBVFVTX1NVQ0NFRURFRBADEh4KGldPUktGTE9XX1JVTl9TVEFUVVNfRkFJTEVEEAQSIAocV09SS0ZMT1dfUlVOX1NUQVRVU19DQU5DRUxFRBAFMosQChBXb3JrZmxvd1Byb3ZpZGVyEmcKCFN0YXJ0UnVuEjQuZ2VzdGFsdC5wcm92aWRlci52MS5TdGFydFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0GiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuEmMKBkdldFJ1bhIyLmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaJS5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dSdW4SdwoITGlzdFJ1bnMSNC5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1JlcXVlc3QaNS5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1Jlc3BvbnNlEmkKCUNhbmNlbFJ1bhI1Lmdlc3RhbHQucHJvdmlkZXIudjEuQ2FuY2VsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaJS5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dSdW4SeAoOVXBzZXJ0U2NoZWR1bGUSOi5nZXN0YWx0LnByb3ZpZGVyLnYxLlVwc2VydFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QaKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dTY2hlZHVsZRJyCgtHZXRTY2hlZHVsZRI3Lmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBoqLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1NjaGVkdWxlEoYBCg1MaXN0U2NoZWR1bGVzEjkuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlclNjaGVkdWxlc1JlcXVlc3QaOi5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVzUmVzcG9uc2USZAoORGVsZXRlU2NoZWR1bGUSOi5nZXN0YWx0LnByb3ZpZGVyLnYxLkRlbGV0ZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSdgoNUGF1c2VTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuUGF1c2VXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0GiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUSeAoOUmVzdW1lU2NoZWR1bGUSOi5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlc3VtZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QaKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dTY2hlZHVsZRKEAQoSVXBzZXJ0RXZlbnRUcmlnZ2VyEj4uZ2VzdGFsdC5wcm92aWRlci52MS5VcHNlcnRXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2VyUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlchJ+Cg9HZXRFdmVudFRyaWdnZXISOy5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyEpIBChFMaXN0RXZlbnRUcmlnZ2VycxI9Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJzUmVxdWVzdBo+Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJzUmVzcG9uc2USbAoSRGVsZXRlRXZlbnRUcmlnZ2VyEj4uZ2VzdGFsdC5wcm92aWRlci52MS5EZWxldGVXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2VyUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRKCAQoRUGF1c2VFdmVudFRyaWdnZXISPS5nZXN0YWx0LnByb3ZpZGVyLnYxLlBhdXNlV29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dFdmVudFRyaWdnZXIShAEKElJlc3VtZUV2ZW50VHJpZ2dlchI+Lmdlc3RhbHQucHJvdmlkZXIudjEuUmVzdW1lV29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dFdmVudFRyaWdnZXISYAoMUHVibGlzaEV2ZW50EjguZ2VzdGFsdC5wcm92aWRlci52MS5QdWJsaXNoV29ya2Zsb3dQcm92aWRlckV2ZW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eTKMAQoMV29ya2Zsb3dIb3N0EnwKD0ludm9rZU9wZXJhdGlvbhIzLmdlc3RhbHQucHJvdmlkZXIudjEuSW52b2tlV29ya2Zsb3dPcGVyYXRpb25SZXF1ZXN0GjQuZ2VzdGFsdC5wcm92aWRlci52MS5JbnZva2VXb3JrZmxvd09wZXJhdGlvblJlc3BvbnNlMtkFChNXb3JrZmxvd01hbmFnZXJIb3N0EnkKDkNyZWF0ZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJDcmVhdGVTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEnMKC0dldFNjaGVkdWxlEjYuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJHZXRTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEnkKDlVwZGF0ZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJVcGRhdGVTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEmMKDkRlbGV0ZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJEZWxldGVTY2hlZHVsZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSdwoNUGF1c2VTY2hlZHVsZRI4Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyUGF1c2VTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEnkKDlJlc3VtZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJSZXN1bWVTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlQjtaOWdpdGh1Yi5jb20vdmFsb24tdGVjaG5vbG9naWVzL2dlc3RhbHQvc2RrL2dvL2dlbi92MTtwcm90b2IGcHJvdG8z", [file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp]);
15
+ fileDesc("ChF2MS93b3JrZmxvdy5wcm90bxITZ2VzdGFsdC5wcm92aWRlci52MSKLAQoTQm91bmRXb3JrZmxvd1RhcmdldBITCgtwbHVnaW5fbmFtZRgBIAEoCRIRCglvcGVyYXRpb24YAiABKAkSJgoFaW5wdXQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhIKCmNvbm5lY3Rpb24YBCABKAkSEAoIaW5zdGFuY2UYBSABKAkiZAoNV29ya2Zsb3dBY3RvchISCgpzdWJqZWN0X2lkGAEgASgJEhQKDHN1YmplY3Rfa2luZBgCIAEoCRIUCgxkaXNwbGF5X25hbWUYAyABKAkSEwoLYXV0aF9zb3VyY2UYBCABKAki3QIKDVdvcmtmbG93RXZlbnQSCgoCaWQYASABKAkSDgoGc291cmNlGAIgASgJEhQKDHNwZWNfdmVyc2lvbhgDIAEoCRIMCgR0eXBlGAQgASgJEg8KB3N1YmplY3QYBSABKAkSKAoEdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPZGF0YWNvbnRlbnR0eXBlGAcgASgJEiUKBGRhdGEYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EkYKCmV4dGVuc2lvbnMYCSADKAsyMi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQuRXh0ZW5zaW9uc0VudHJ5GkkKD0V4dGVuc2lvbnNFbnRyeRILCgNrZXkYASABKAkSJQoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWU6AjgBIkMKEldvcmtmbG93RXZlbnRNYXRjaBIMCgR0eXBlGAEgASgJEg4KBnNvdXJjZRgCIAEoCRIPCgdzdWJqZWN0GAMgASgJIhcKFVdvcmtmbG93TWFudWFsVHJpZ2dlciJhChdXb3JrZmxvd1NjaGVkdWxlVHJpZ2dlchITCgtzY2hlZHVsZV9pZBgBIAEoCRIxCg1zY2hlZHVsZWRfZm9yGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJnCh5Xb3JrZmxvd0V2ZW50VHJpZ2dlckludm9jYXRpb24SEgoKdHJpZ2dlcl9pZBgBIAEoCRIxCgVldmVudBgCIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudCLiAQoSV29ya2Zsb3dSdW5UcmlnZ2VyEjwKBm1hbnVhbBgBIAEoCzIqLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW51YWxUcmlnZ2VySAASQAoIc2NoZWR1bGUYAiABKAsyLC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2NoZWR1bGVUcmlnZ2VySAASRAoFZXZlbnQYAyABKAsyMy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRUcmlnZ2VySW52b2NhdGlvbkgAQgYKBGtpbmQi2AMKEEJvdW5kV29ya2Zsb3dSdW4SCgoCaWQYASABKAkSNgoGc3RhdHVzGAIgASgOMiYuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1blN0YXR1cxI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSOAoHdHJpZ2dlchgEIAEoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW5UcmlnZ2VyEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnN0YXJ0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNvbXBsZXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOc3RhdHVzX21lc3NhZ2UYCCABKAkSEwoLcmVzdWx0X2JvZHkYCSABKAkSNgoKY3JlYXRlZF9ieRgKIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAsgASgJIu0CChVCb3VuZFdvcmtmbG93U2NoZWR1bGUSCgoCaWQYASABKAkSDAoEY3JvbhgCIAEoCRIQCgh0aW1lem9uZRgDIAEoCRI4CgZ0YXJnZXQYBCABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAUgASgIEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC25leHRfcnVuX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2CgpjcmVhdGVkX2J5GAkgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yEhUKDWV4ZWN1dGlvbl9yZWYYCiABKAki2AIKGUJvdW5kV29ya2Zsb3dFdmVudFRyaWdnZXISCgoCaWQYASABKAkSNgoFbWF0Y2gYAiABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRNYXRjaBI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAQgASgIEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKCmNyZWF0ZWRfYnkYByABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgIIAEoCSLDAQofU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBI4CgZ0YXJnZXQYASABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJEjYKCmNyZWF0ZWRfYnkYBCABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgFIAEoCSIvCh1HZXRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIOCgZydW5faWQYAiABKAkiIQofTGlzdFdvcmtmbG93UHJvdmlkZXJSdW5zUmVxdWVzdCJXCiBMaXN0V29ya2Zsb3dQcm92aWRlclJ1bnNSZXNwb25zZRIzCgRydW5zGAEgAygLMiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuIkIKIENhbmNlbFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0Eg4KBnJ1bl9pZBgCIAEoCRIOCgZyZWFzb24YAyABKAki9wEKJVVwc2VydFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYASABKAkSDAoEY3JvbhgCIAEoCRIQCgh0aW1lem9uZRgDIAEoCRI4CgZ0YXJnZXQYBCABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAUgASgIEjgKDHJlcXVlc3RlZF9ieRgHIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAggASgJIjkKIkdldFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkiJgokTGlzdFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZXNSZXF1ZXN0ImYKJUxpc3RXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVzUmVzcG9uc2USPQoJc2NoZWR1bGVzGAEgAygLMiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUiPAolRGVsZXRlV29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCSI7CiRQYXVzZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkiPAolUmVzdW1lV29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCSKSAgopVXBzZXJ0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgBIAEoCRI2CgVtYXRjaBgCIAEoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudE1hdGNoEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIOCgZwYXVzZWQYBCABKAgSOAoMcmVxdWVzdGVkX2J5GAYgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yEhUKDWV4ZWN1dGlvbl9yZWYYByABKAkiPAomR2V0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCSIqCihMaXN0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlcnNSZXF1ZXN0Im0KKUxpc3RXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2Vyc1Jlc3BvbnNlEkAKCHRyaWdnZXJzGAEgAygLMi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyIj8KKURlbGV0ZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkiPgooUGF1c2VXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2VyUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAIgASgJIj8KKVJlc3VtZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkibQojUHVibGlzaFdvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QSEwoLcGx1Z2luX25hbWUYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQixgIKHkludm9rZVdvcmtmbG93T3BlcmF0aW9uUmVxdWVzdBI4CgZ0YXJnZXQYASABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcnVuX2lkGAIgASgJEjgKB3RyaWdnZXIYAyABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuVHJpZ2dlchImCgVpbnB1dBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjYKCmNyZWF0ZWRfYnkYByABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgIIAEoCSI/Ch9JbnZva2VXb3JrZmxvd09wZXJhdGlvblJlc3BvbnNlEg4KBnN0YXR1cxgBIAEoBRIMCgRib2R5GAIgASgJIm4KF01hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEhUKDXByb3ZpZGVyX25hbWUYASABKAkSPAoIc2NoZWR1bGUYAiABKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dTY2hlZHVsZSJ1ChtNYW5hZ2VkV29ya2Zsb3dFdmVudFRyaWdnZXISFQoNcHJvdmlkZXJfbmFtZRgBIAEoCRI/Cgd0cmlnZ2VyGAIgASgLMi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyItcBCiRXb3JrZmxvd01hbmFnZXJDcmVhdGVTY2hlZHVsZVJlcXVlc3QSFQoNcHJvdmlkZXJfbmFtZRgCIAEoCRIMCgRjcm9uGAMgASgJEhAKCHRpbWV6b25lGAQgASgJEjgKBnRhcmdldBgFIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIOCgZwYXVzZWQYBiABKAgSGAoQaW52b2NhdGlvbl90b2tlbhgHIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUiaAohV29ya2Zsb3dNYW5hZ2VyR2V0U2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlIuwBCiRXb3JrZmxvd01hbmFnZXJVcGRhdGVTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkSFQoNcHJvdmlkZXJfbmFtZRgDIAEoCRIMCgRjcm9uGAQgASgJEhAKCHRpbWV6b25lGAUgASgJEjgKBnRhcmdldBgGIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIOCgZwYXVzZWQYByABKAgSGAoQaW52b2NhdGlvbl90b2tlbhgIIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUiawokV29ya2Zsb3dNYW5hZ2VyRGVsZXRlU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlImoKI1dvcmtmbG93TWFuYWdlclBhdXNlU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlImsKJFdvcmtmbG93TWFuYWdlclJlc3VtZVNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAMgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSLzAQooV29ya2Zsb3dNYW5hZ2VyQ3JlYXRlRXZlbnRUcmlnZ2VyUmVxdWVzdBIVCg1wcm92aWRlcl9uYW1lGAIgASgJEjYKBW1hdGNoGAMgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50TWF0Y2gSOAoGdGFyZ2V0GAQgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnBhdXNlZBgFIAEoCBIYChBpbnZvY2F0aW9uX3Rva2VuGAYgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJrCiVXb3JrZmxvd01hbmFnZXJHZXRFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUihwIKKFdvcmtmbG93TWFuYWdlclVwZGF0ZUV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEjYKBW1hdGNoGAQgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50TWF0Y2gSOAoGdGFyZ2V0GAUgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnBhdXNlZBgGIAEoCBIYChBpbnZvY2F0aW9uX3Rva2VuGAcgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJuCihXb3JrZmxvd01hbmFnZXJEZWxldGVFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUibQonV29ya2Zsb3dNYW5hZ2VyUGF1c2VFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUibgooV29ya2Zsb3dNYW5hZ2VyUmVzdW1lRXZlbnRUcmlnZ2VyUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAIgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlIocBCiJXb3JrZmxvd01hbmFnZXJQdWJsaXNoRXZlbnRSZXF1ZXN0EjEKBWV2ZW50GAIgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlKt8BChFXb3JrZmxvd1J1blN0YXR1cxIjCh9XT1JLRkxPV19SVU5fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobV09SS0ZMT1dfUlVOX1NUQVRVU19QRU5ESU5HEAESHwobV09SS0ZMT1dfUlVOX1NUQVRVU19SVU5OSU5HEAISIQodV09SS0ZMT1dfUlVOX1NUQVRVU19TVUNDRUVERUQQAxIeChpXT1JLRkxPV19SVU5fU1RBVFVTX0ZBSUxFRBAEEiAKHFdPUktGTE9XX1JVTl9TVEFUVVNfQ0FOQ0VMRUQQBTKLEAoQV29ya2Zsb3dQcm92aWRlchJnCghTdGFydFJ1bhI0Lmdlc3RhbHQucHJvdmlkZXIudjEuU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBolLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1J1bhJjCgZHZXRSdW4SMi5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0GiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuEncKCExpc3RSdW5zEjQuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlclJ1bnNSZXF1ZXN0GjUuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlclJ1bnNSZXNwb25zZRJpCglDYW5jZWxSdW4SNS5nZXN0YWx0LnByb3ZpZGVyLnYxLkNhbmNlbFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0GiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuEngKDlVwc2VydFNjaGVkdWxlEjouZ2VzdGFsdC5wcm92aWRlci52MS5VcHNlcnRXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0GiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUScgoLR2V0U2NoZWR1bGUSNy5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QaKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dTY2hlZHVsZRKGAQoNTGlzdFNjaGVkdWxlcxI5Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZXNSZXF1ZXN0GjouZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlclNjaGVkdWxlc1Jlc3BvbnNlEmQKDkRlbGV0ZVNjaGVkdWxlEjouZ2VzdGFsdC5wcm92aWRlci52MS5EZWxldGVXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EnYKDVBhdXNlU2NoZWR1bGUSOS5nZXN0YWx0LnByb3ZpZGVyLnYxLlBhdXNlV29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBoqLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1NjaGVkdWxlEngKDlJlc3VtZVNjaGVkdWxlEjouZ2VzdGFsdC5wcm92aWRlci52MS5SZXN1bWVXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0GiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUShAEKElVwc2VydEV2ZW50VHJpZ2dlchI+Lmdlc3RhbHQucHJvdmlkZXIudjEuVXBzZXJ0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dFdmVudFRyaWdnZXISfgoPR2V0RXZlbnRUcmlnZ2VyEjsuZ2VzdGFsdC5wcm92aWRlci52MS5HZXRXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2VyUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlchKSAQoRTGlzdEV2ZW50VHJpZ2dlcnMSPS5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2Vyc1JlcXVlc3QaPi5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2Vyc1Jlc3BvbnNlEmwKEkRlbGV0ZUV2ZW50VHJpZ2dlchI+Lmdlc3RhbHQucHJvdmlkZXIudjEuRGVsZXRlV29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSggEKEVBhdXNlRXZlbnRUcmlnZ2VyEj0uZ2VzdGFsdC5wcm92aWRlci52MS5QYXVzZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyEoQBChJSZXN1bWVFdmVudFRyaWdnZXISPi5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlc3VtZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyEmAKDFB1Ymxpc2hFdmVudBI4Lmdlc3RhbHQucHJvdmlkZXIudjEuUHVibGlzaFdvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkyjAEKDFdvcmtmbG93SG9zdBJ8Cg9JbnZva2VPcGVyYXRpb24SMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkludm9rZVdvcmtmbG93T3BlcmF0aW9uUmVxdWVzdBo0Lmdlc3RhbHQucHJvdmlkZXIudjEuSW52b2tlV29ya2Zsb3dPcGVyYXRpb25SZXNwb25zZTLSDAoTV29ya2Zsb3dNYW5hZ2VySG9zdBJ5Cg5DcmVhdGVTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRJzCgtHZXRTY2hlZHVsZRI2Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyR2V0U2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRJ5Cg5VcGRhdGVTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyVXBkYXRlU2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRJjCg5EZWxldGVTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyRGVsZXRlU2NoZWR1bGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EncKDVBhdXNlU2NoZWR1bGUSOC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclBhdXNlU2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRJ5Cg5SZXN1bWVTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyUmVzdW1lU2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRKFAQoSQ3JlYXRlRXZlbnRUcmlnZ2VyEj0uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJDcmVhdGVFdmVudFRyaWdnZXJSZXF1ZXN0GjAuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dFdmVudFRyaWdnZXISfwoPR2V0RXZlbnRUcmlnZ2VyEjouZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJHZXRFdmVudFRyaWdnZXJSZXF1ZXN0GjAuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dFdmVudFRyaWdnZXIShQEKElVwZGF0ZUV2ZW50VHJpZ2dlchI9Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyVXBkYXRlRXZlbnRUcmlnZ2VyUmVxdWVzdBowLmdlc3RhbHQucHJvdmlkZXIudjEuTWFuYWdlZFdvcmtmbG93RXZlbnRUcmlnZ2VyEmsKEkRlbGV0ZUV2ZW50VHJpZ2dlchI9Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyRGVsZXRlRXZlbnRUcmlnZ2VyUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRKDAQoRUGF1c2VFdmVudFRyaWdnZXISPC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclBhdXNlRXZlbnRUcmlnZ2VyUmVxdWVzdBowLmdlc3RhbHQucHJvdmlkZXIudjEuTWFuYWdlZFdvcmtmbG93RXZlbnRUcmlnZ2VyEoUBChJSZXN1bWVFdmVudFRyaWdnZXISPS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclJlc3VtZUV2ZW50VHJpZ2dlclJlcXVlc3QaMC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd0V2ZW50VHJpZ2dlchJrCgxQdWJsaXNoRXZlbnQSNy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclB1Ymxpc2hFdmVudFJlcXVlc3QaIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRCO1o5Z2l0aHViLmNvbS92YWxvbi10ZWNobm9sb2dpZXMvZ2VzdGFsdC9zZGsvZ28vZ2VuL3YxO3Byb3RvYgZwcm90bzM", [file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp]);
16
16
 
17
17
  /**
18
18
  * @generated from message gestalt.provider.v1.BoundWorkflowTarget
@@ -939,6 +939,28 @@ export type ManagedWorkflowSchedule = Message<"gestalt.provider.v1.ManagedWorkfl
939
939
  export const ManagedWorkflowScheduleSchema: GenMessage<ManagedWorkflowSchedule> = /*@__PURE__*/
940
940
  messageDesc(file_v1_workflow, 33);
941
941
 
942
+ /**
943
+ * @generated from message gestalt.provider.v1.ManagedWorkflowEventTrigger
944
+ */
945
+ export type ManagedWorkflowEventTrigger = Message<"gestalt.provider.v1.ManagedWorkflowEventTrigger"> & {
946
+ /**
947
+ * @generated from field: string provider_name = 1;
948
+ */
949
+ providerName: string;
950
+
951
+ /**
952
+ * @generated from field: gestalt.provider.v1.BoundWorkflowEventTrigger trigger = 2;
953
+ */
954
+ trigger?: BoundWorkflowEventTrigger;
955
+ };
956
+
957
+ /**
958
+ * Describes the message gestalt.provider.v1.ManagedWorkflowEventTrigger.
959
+ * Use `create(ManagedWorkflowEventTriggerSchema)` to create a new message.
960
+ */
961
+ export const ManagedWorkflowEventTriggerSchema: GenMessage<ManagedWorkflowEventTrigger> = /*@__PURE__*/
962
+ messageDesc(file_v1_workflow, 34);
963
+
942
964
  /**
943
965
  * @generated from message gestalt.provider.v1.WorkflowManagerCreateScheduleRequest
944
966
  */
@@ -979,7 +1001,7 @@ export type WorkflowManagerCreateScheduleRequest = Message<"gestalt.provider.v1.
979
1001
  * Use `create(WorkflowManagerCreateScheduleRequestSchema)` to create a new message.
980
1002
  */
981
1003
  export const WorkflowManagerCreateScheduleRequestSchema: GenMessage<WorkflowManagerCreateScheduleRequest> = /*@__PURE__*/
982
- messageDesc(file_v1_workflow, 34);
1004
+ messageDesc(file_v1_workflow, 35);
983
1005
 
984
1006
  /**
985
1007
  * @generated from message gestalt.provider.v1.WorkflowManagerGetScheduleRequest
@@ -1001,7 +1023,7 @@ export type WorkflowManagerGetScheduleRequest = Message<"gestalt.provider.v1.Wor
1001
1023
  * Use `create(WorkflowManagerGetScheduleRequestSchema)` to create a new message.
1002
1024
  */
1003
1025
  export const WorkflowManagerGetScheduleRequestSchema: GenMessage<WorkflowManagerGetScheduleRequest> = /*@__PURE__*/
1004
- messageDesc(file_v1_workflow, 35);
1026
+ messageDesc(file_v1_workflow, 36);
1005
1027
 
1006
1028
  /**
1007
1029
  * @generated from message gestalt.provider.v1.WorkflowManagerUpdateScheduleRequest
@@ -1048,7 +1070,7 @@ export type WorkflowManagerUpdateScheduleRequest = Message<"gestalt.provider.v1.
1048
1070
  * Use `create(WorkflowManagerUpdateScheduleRequestSchema)` to create a new message.
1049
1071
  */
1050
1072
  export const WorkflowManagerUpdateScheduleRequestSchema: GenMessage<WorkflowManagerUpdateScheduleRequest> = /*@__PURE__*/
1051
- messageDesc(file_v1_workflow, 36);
1073
+ messageDesc(file_v1_workflow, 37);
1052
1074
 
1053
1075
  /**
1054
1076
  * @generated from message gestalt.provider.v1.WorkflowManagerDeleteScheduleRequest
@@ -1070,7 +1092,7 @@ export type WorkflowManagerDeleteScheduleRequest = Message<"gestalt.provider.v1.
1070
1092
  * Use `create(WorkflowManagerDeleteScheduleRequestSchema)` to create a new message.
1071
1093
  */
1072
1094
  export const WorkflowManagerDeleteScheduleRequestSchema: GenMessage<WorkflowManagerDeleteScheduleRequest> = /*@__PURE__*/
1073
- messageDesc(file_v1_workflow, 37);
1095
+ messageDesc(file_v1_workflow, 38);
1074
1096
 
1075
1097
  /**
1076
1098
  * @generated from message gestalt.provider.v1.WorkflowManagerPauseScheduleRequest
@@ -1092,7 +1114,7 @@ export type WorkflowManagerPauseScheduleRequest = Message<"gestalt.provider.v1.W
1092
1114
  * Use `create(WorkflowManagerPauseScheduleRequestSchema)` to create a new message.
1093
1115
  */
1094
1116
  export const WorkflowManagerPauseScheduleRequestSchema: GenMessage<WorkflowManagerPauseScheduleRequest> = /*@__PURE__*/
1095
- messageDesc(file_v1_workflow, 38);
1117
+ messageDesc(file_v1_workflow, 39);
1096
1118
 
1097
1119
  /**
1098
1120
  * @generated from message gestalt.provider.v1.WorkflowManagerResumeScheduleRequest
@@ -1114,7 +1136,196 @@ export type WorkflowManagerResumeScheduleRequest = Message<"gestalt.provider.v1.
1114
1136
  * Use `create(WorkflowManagerResumeScheduleRequestSchema)` to create a new message.
1115
1137
  */
1116
1138
  export const WorkflowManagerResumeScheduleRequestSchema: GenMessage<WorkflowManagerResumeScheduleRequest> = /*@__PURE__*/
1117
- messageDesc(file_v1_workflow, 39);
1139
+ messageDesc(file_v1_workflow, 40);
1140
+
1141
+ /**
1142
+ * @generated from message gestalt.provider.v1.WorkflowManagerCreateEventTriggerRequest
1143
+ */
1144
+ export type WorkflowManagerCreateEventTriggerRequest = Message<"gestalt.provider.v1.WorkflowManagerCreateEventTriggerRequest"> & {
1145
+ /**
1146
+ * @generated from field: string provider_name = 2;
1147
+ */
1148
+ providerName: string;
1149
+
1150
+ /**
1151
+ * @generated from field: gestalt.provider.v1.WorkflowEventMatch match = 3;
1152
+ */
1153
+ match?: WorkflowEventMatch;
1154
+
1155
+ /**
1156
+ * @generated from field: gestalt.provider.v1.BoundWorkflowTarget target = 4;
1157
+ */
1158
+ target?: BoundWorkflowTarget;
1159
+
1160
+ /**
1161
+ * @generated from field: bool paused = 5;
1162
+ */
1163
+ paused: boolean;
1164
+
1165
+ /**
1166
+ * @generated from field: string invocation_token = 6;
1167
+ */
1168
+ invocationToken: string;
1169
+ };
1170
+
1171
+ /**
1172
+ * Describes the message gestalt.provider.v1.WorkflowManagerCreateEventTriggerRequest.
1173
+ * Use `create(WorkflowManagerCreateEventTriggerRequestSchema)` to create a new message.
1174
+ */
1175
+ export const WorkflowManagerCreateEventTriggerRequestSchema: GenMessage<WorkflowManagerCreateEventTriggerRequest> = /*@__PURE__*/
1176
+ messageDesc(file_v1_workflow, 41);
1177
+
1178
+ /**
1179
+ * @generated from message gestalt.provider.v1.WorkflowManagerGetEventTriggerRequest
1180
+ */
1181
+ export type WorkflowManagerGetEventTriggerRequest = Message<"gestalt.provider.v1.WorkflowManagerGetEventTriggerRequest"> & {
1182
+ /**
1183
+ * @generated from field: string trigger_id = 2;
1184
+ */
1185
+ triggerId: string;
1186
+
1187
+ /**
1188
+ * @generated from field: string invocation_token = 3;
1189
+ */
1190
+ invocationToken: string;
1191
+ };
1192
+
1193
+ /**
1194
+ * Describes the message gestalt.provider.v1.WorkflowManagerGetEventTriggerRequest.
1195
+ * Use `create(WorkflowManagerGetEventTriggerRequestSchema)` to create a new message.
1196
+ */
1197
+ export const WorkflowManagerGetEventTriggerRequestSchema: GenMessage<WorkflowManagerGetEventTriggerRequest> = /*@__PURE__*/
1198
+ messageDesc(file_v1_workflow, 42);
1199
+
1200
+ /**
1201
+ * @generated from message gestalt.provider.v1.WorkflowManagerUpdateEventTriggerRequest
1202
+ */
1203
+ export type WorkflowManagerUpdateEventTriggerRequest = Message<"gestalt.provider.v1.WorkflowManagerUpdateEventTriggerRequest"> & {
1204
+ /**
1205
+ * @generated from field: string trigger_id = 2;
1206
+ */
1207
+ triggerId: string;
1208
+
1209
+ /**
1210
+ * @generated from field: string provider_name = 3;
1211
+ */
1212
+ providerName: string;
1213
+
1214
+ /**
1215
+ * @generated from field: gestalt.provider.v1.WorkflowEventMatch match = 4;
1216
+ */
1217
+ match?: WorkflowEventMatch;
1218
+
1219
+ /**
1220
+ * @generated from field: gestalt.provider.v1.BoundWorkflowTarget target = 5;
1221
+ */
1222
+ target?: BoundWorkflowTarget;
1223
+
1224
+ /**
1225
+ * @generated from field: bool paused = 6;
1226
+ */
1227
+ paused: boolean;
1228
+
1229
+ /**
1230
+ * @generated from field: string invocation_token = 7;
1231
+ */
1232
+ invocationToken: string;
1233
+ };
1234
+
1235
+ /**
1236
+ * Describes the message gestalt.provider.v1.WorkflowManagerUpdateEventTriggerRequest.
1237
+ * Use `create(WorkflowManagerUpdateEventTriggerRequestSchema)` to create a new message.
1238
+ */
1239
+ export const WorkflowManagerUpdateEventTriggerRequestSchema: GenMessage<WorkflowManagerUpdateEventTriggerRequest> = /*@__PURE__*/
1240
+ messageDesc(file_v1_workflow, 43);
1241
+
1242
+ /**
1243
+ * @generated from message gestalt.provider.v1.WorkflowManagerDeleteEventTriggerRequest
1244
+ */
1245
+ export type WorkflowManagerDeleteEventTriggerRequest = Message<"gestalt.provider.v1.WorkflowManagerDeleteEventTriggerRequest"> & {
1246
+ /**
1247
+ * @generated from field: string trigger_id = 2;
1248
+ */
1249
+ triggerId: string;
1250
+
1251
+ /**
1252
+ * @generated from field: string invocation_token = 3;
1253
+ */
1254
+ invocationToken: string;
1255
+ };
1256
+
1257
+ /**
1258
+ * Describes the message gestalt.provider.v1.WorkflowManagerDeleteEventTriggerRequest.
1259
+ * Use `create(WorkflowManagerDeleteEventTriggerRequestSchema)` to create a new message.
1260
+ */
1261
+ export const WorkflowManagerDeleteEventTriggerRequestSchema: GenMessage<WorkflowManagerDeleteEventTriggerRequest> = /*@__PURE__*/
1262
+ messageDesc(file_v1_workflow, 44);
1263
+
1264
+ /**
1265
+ * @generated from message gestalt.provider.v1.WorkflowManagerPauseEventTriggerRequest
1266
+ */
1267
+ export type WorkflowManagerPauseEventTriggerRequest = Message<"gestalt.provider.v1.WorkflowManagerPauseEventTriggerRequest"> & {
1268
+ /**
1269
+ * @generated from field: string trigger_id = 2;
1270
+ */
1271
+ triggerId: string;
1272
+
1273
+ /**
1274
+ * @generated from field: string invocation_token = 3;
1275
+ */
1276
+ invocationToken: string;
1277
+ };
1278
+
1279
+ /**
1280
+ * Describes the message gestalt.provider.v1.WorkflowManagerPauseEventTriggerRequest.
1281
+ * Use `create(WorkflowManagerPauseEventTriggerRequestSchema)` to create a new message.
1282
+ */
1283
+ export const WorkflowManagerPauseEventTriggerRequestSchema: GenMessage<WorkflowManagerPauseEventTriggerRequest> = /*@__PURE__*/
1284
+ messageDesc(file_v1_workflow, 45);
1285
+
1286
+ /**
1287
+ * @generated from message gestalt.provider.v1.WorkflowManagerResumeEventTriggerRequest
1288
+ */
1289
+ export type WorkflowManagerResumeEventTriggerRequest = Message<"gestalt.provider.v1.WorkflowManagerResumeEventTriggerRequest"> & {
1290
+ /**
1291
+ * @generated from field: string trigger_id = 2;
1292
+ */
1293
+ triggerId: string;
1294
+
1295
+ /**
1296
+ * @generated from field: string invocation_token = 3;
1297
+ */
1298
+ invocationToken: string;
1299
+ };
1300
+
1301
+ /**
1302
+ * Describes the message gestalt.provider.v1.WorkflowManagerResumeEventTriggerRequest.
1303
+ * Use `create(WorkflowManagerResumeEventTriggerRequestSchema)` to create a new message.
1304
+ */
1305
+ export const WorkflowManagerResumeEventTriggerRequestSchema: GenMessage<WorkflowManagerResumeEventTriggerRequest> = /*@__PURE__*/
1306
+ messageDesc(file_v1_workflow, 46);
1307
+
1308
+ /**
1309
+ * @generated from message gestalt.provider.v1.WorkflowManagerPublishEventRequest
1310
+ */
1311
+ export type WorkflowManagerPublishEventRequest = Message<"gestalt.provider.v1.WorkflowManagerPublishEventRequest"> & {
1312
+ /**
1313
+ * @generated from field: gestalt.provider.v1.WorkflowEvent event = 2;
1314
+ */
1315
+ event?: WorkflowEvent;
1316
+
1317
+ /**
1318
+ * @generated from field: string invocation_token = 3;
1319
+ */
1320
+ invocationToken: string;
1321
+ };
1322
+
1323
+ /**
1324
+ * Describes the message gestalt.provider.v1.WorkflowManagerPublishEventRequest.
1325
+ * Use `create(WorkflowManagerPublishEventRequestSchema)` to create a new message.
1326
+ */
1327
+ export const WorkflowManagerPublishEventRequestSchema: GenMessage<WorkflowManagerPublishEventRequest> = /*@__PURE__*/
1328
+ messageDesc(file_v1_workflow, 47);
1118
1329
 
1119
1330
  /**
1120
1331
  * @generated from enum gestalt.provider.v1.WorkflowRunStatus
@@ -1367,6 +1578,62 @@ export const WorkflowManagerHost: GenService<{
1367
1578
  input: typeof WorkflowManagerResumeScheduleRequestSchema;
1368
1579
  output: typeof ManagedWorkflowScheduleSchema;
1369
1580
  },
1581
+ /**
1582
+ * @generated from rpc gestalt.provider.v1.WorkflowManagerHost.CreateEventTrigger
1583
+ */
1584
+ createEventTrigger: {
1585
+ methodKind: "unary";
1586
+ input: typeof WorkflowManagerCreateEventTriggerRequestSchema;
1587
+ output: typeof ManagedWorkflowEventTriggerSchema;
1588
+ },
1589
+ /**
1590
+ * @generated from rpc gestalt.provider.v1.WorkflowManagerHost.GetEventTrigger
1591
+ */
1592
+ getEventTrigger: {
1593
+ methodKind: "unary";
1594
+ input: typeof WorkflowManagerGetEventTriggerRequestSchema;
1595
+ output: typeof ManagedWorkflowEventTriggerSchema;
1596
+ },
1597
+ /**
1598
+ * @generated from rpc gestalt.provider.v1.WorkflowManagerHost.UpdateEventTrigger
1599
+ */
1600
+ updateEventTrigger: {
1601
+ methodKind: "unary";
1602
+ input: typeof WorkflowManagerUpdateEventTriggerRequestSchema;
1603
+ output: typeof ManagedWorkflowEventTriggerSchema;
1604
+ },
1605
+ /**
1606
+ * @generated from rpc gestalt.provider.v1.WorkflowManagerHost.DeleteEventTrigger
1607
+ */
1608
+ deleteEventTrigger: {
1609
+ methodKind: "unary";
1610
+ input: typeof WorkflowManagerDeleteEventTriggerRequestSchema;
1611
+ output: typeof EmptySchema;
1612
+ },
1613
+ /**
1614
+ * @generated from rpc gestalt.provider.v1.WorkflowManagerHost.PauseEventTrigger
1615
+ */
1616
+ pauseEventTrigger: {
1617
+ methodKind: "unary";
1618
+ input: typeof WorkflowManagerPauseEventTriggerRequestSchema;
1619
+ output: typeof ManagedWorkflowEventTriggerSchema;
1620
+ },
1621
+ /**
1622
+ * @generated from rpc gestalt.provider.v1.WorkflowManagerHost.ResumeEventTrigger
1623
+ */
1624
+ resumeEventTrigger: {
1625
+ methodKind: "unary";
1626
+ input: typeof WorkflowManagerResumeEventTriggerRequestSchema;
1627
+ output: typeof ManagedWorkflowEventTriggerSchema;
1628
+ },
1629
+ /**
1630
+ * @generated from rpc gestalt.provider.v1.WorkflowManagerHost.PublishEvent
1631
+ */
1632
+ publishEvent: {
1633
+ methodKind: "unary";
1634
+ input: typeof WorkflowManagerPublishEventRequestSchema;
1635
+ output: typeof WorkflowEventSchema;
1636
+ },
1370
1637
  }> = /*@__PURE__*/
1371
1638
  serviceDesc(file_v1_workflow, 2);
1372
1639
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@valon-technologies/gestalt",
3
- "version": "0.0.1-alpha.10",
3
+ "version": "0.0.1-alpha.12",
4
4
  "description": "TypeScript SDK for Gestalt executable providers",
5
5
  "type": "module",
6
6
  "repository": {
@@ -0,0 +1,138 @@
1
+ import { connect } from "node:net";
2
+
3
+ import type { MessageInitShape } from "@bufbuild/protobuf";
4
+ import { createClient, type Client } from "@connectrpc/connect";
5
+ import { createGrpcTransport } from "@connectrpc/connect-node";
6
+
7
+ import {
8
+ type AccessDecision,
9
+ type ActionSearchResponse,
10
+ type AuthorizationMetadata,
11
+ AuthorizationProvider as AuthorizationProviderService,
12
+ type ReadRelationshipsResponse,
13
+ type ResourceSearchResponse,
14
+ type SubjectSearchResponse,
15
+ AccessEvaluationRequestSchema,
16
+ ActionSearchRequestSchema,
17
+ ReadRelationshipsRequestSchema,
18
+ ResourceSearchRequestSchema,
19
+ SubjectSearchRequestSchema,
20
+ } from "../gen/v1/authorization_pb.ts";
21
+
22
+ /**
23
+ * Environment variable containing the Unix socket path for the read-only host
24
+ * authorization client exposed to plugins.
25
+ */
26
+ export const ENV_AUTHORIZATION_SOCKET = "GESTALT_AUTHORIZATION_SOCKET";
27
+
28
+ export type AuthorizationEvaluateInput = MessageInitShape<
29
+ typeof AccessEvaluationRequestSchema
30
+ >;
31
+ export type AuthorizationSearchResourcesInput = MessageInitShape<
32
+ typeof ResourceSearchRequestSchema
33
+ >;
34
+ export type AuthorizationSearchSubjectsInput = MessageInitShape<
35
+ typeof SubjectSearchRequestSchema
36
+ >;
37
+ export type AuthorizationSearchActionsInput = MessageInitShape<
38
+ typeof ActionSearchRequestSchema
39
+ >;
40
+ export type AuthorizationReadRelationshipsInput = MessageInitShape<
41
+ typeof ReadRelationshipsRequestSchema
42
+ >;
43
+
44
+ export type AuthorizationDecisionMessage = AccessDecision;
45
+ export type AuthorizationMetadataMessage = AuthorizationMetadata;
46
+ export type AuthorizationResourceSearchMessage = ResourceSearchResponse;
47
+ export type AuthorizationSubjectSearchMessage = SubjectSearchResponse;
48
+ export type AuthorizationActionSearchMessage = ActionSearchResponse;
49
+ export type AuthorizationReadRelationshipsMessage = ReadRelationshipsResponse;
50
+
51
+ const sharedAuthorizationTransport: {
52
+ socketPath: string;
53
+ client: AuthorizationClient | undefined;
54
+ } = {
55
+ socketPath: "",
56
+ client: undefined,
57
+ };
58
+
59
+ /**
60
+ * Read-only client for the host-configured authorization provider.
61
+ */
62
+ export class AuthorizationClient {
63
+ private readonly client: Client<typeof AuthorizationProviderService>;
64
+
65
+ constructor(socketPath?: string) {
66
+ const resolvedSocketPath = resolveAuthorizationSocketPath(socketPath);
67
+ const transport = createGrpcTransport({
68
+ baseUrl: "http://localhost",
69
+ nodeOptions: {
70
+ createConnection: () => connect(resolvedSocketPath),
71
+ },
72
+ });
73
+ this.client = createClient(AuthorizationProviderService, transport);
74
+ }
75
+
76
+ async evaluate(
77
+ request: AuthorizationEvaluateInput,
78
+ ): Promise<AuthorizationDecisionMessage> {
79
+ return await this.client.evaluate(request);
80
+ }
81
+
82
+ async searchResources(
83
+ request: AuthorizationSearchResourcesInput,
84
+ ): Promise<AuthorizationResourceSearchMessage> {
85
+ return await this.client.searchResources(request);
86
+ }
87
+
88
+ async searchSubjects(
89
+ request: AuthorizationSearchSubjectsInput,
90
+ ): Promise<AuthorizationSubjectSearchMessage> {
91
+ return await this.client.searchSubjects(request);
92
+ }
93
+
94
+ async searchActions(
95
+ request: AuthorizationSearchActionsInput,
96
+ ): Promise<AuthorizationActionSearchMessage> {
97
+ return await this.client.searchActions(request);
98
+ }
99
+
100
+ async readRelationships(
101
+ request: AuthorizationReadRelationshipsInput,
102
+ ): Promise<AuthorizationReadRelationshipsMessage> {
103
+ return await this.client.readRelationships(request);
104
+ }
105
+
106
+ async getMetadata(): Promise<AuthorizationMetadataMessage> {
107
+ return await this.client.getMetadata({});
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Mirrors the Go SDK helper for obtaining the read-only host authorization
113
+ * client inside authored providers.
114
+ */
115
+ export function Authorization(): AuthorizationClient {
116
+ const socketPath = resolveAuthorizationSocketPath();
117
+ if (
118
+ sharedAuthorizationTransport.client &&
119
+ sharedAuthorizationTransport.socketPath === socketPath
120
+ ) {
121
+ return sharedAuthorizationTransport.client;
122
+ }
123
+
124
+ const client = new AuthorizationClient(socketPath);
125
+ sharedAuthorizationTransport.socketPath = socketPath;
126
+ sharedAuthorizationTransport.client = client;
127
+ return client;
128
+ }
129
+
130
+ function resolveAuthorizationSocketPath(socketPath = process.env[ENV_AUTHORIZATION_SOCKET]): string {
131
+ const trimmed = socketPath?.trim() ?? "";
132
+ if (!trimmed) {
133
+ throw new Error(
134
+ `authorization: ${ENV_AUTHORIZATION_SOCKET} is not set`,
135
+ );
136
+ }
137
+ return trimmed;
138
+ }
package/src/cache.ts CHANGED
@@ -1,13 +1,16 @@
1
1
  import { connect } from "node:net";
2
2
 
3
- import { createClient, type Client } from "@connectrpc/connect";
3
+ import { createClient, type Client, type Interceptor } from "@connectrpc/connect";
4
4
  import { createGrpcTransport } from "@connectrpc/connect-node";
5
5
 
6
6
  import { Cache as CacheService } from "../gen/v1/cache_pb.ts";
7
7
  import { RuntimeProvider, type RuntimeProviderOptions } from "./provider.ts";
8
8
  import type { MaybePromise } from "./api.ts";
9
9
 
10
- const ENV_CACHE_SOCKET = "GESTALT_CACHE_SOCKET";
10
+ export const ENV_CACHE_SOCKET = "GESTALT_CACHE_SOCKET";
11
+ const CACHE_SOCKET_TOKEN_SUFFIX = "_TOKEN";
12
+ const CACHE_RELAY_TOKEN_HEADER = "x-gestalt-host-service-relay-token";
13
+ export const ENV_CACHE_SOCKET_TOKEN = `${ENV_CACHE_SOCKET}${CACHE_SOCKET_TOKEN_SUFFIX}`;
11
14
 
12
15
  /**
13
16
  * Single cache entry used by batch cache APIs.
@@ -55,6 +58,49 @@ export function cacheSocketEnv(name?: string): string {
55
58
  return `${ENV_CACHE_SOCKET}_${trimmed.replace(/[^A-Za-z0-9]/gu, "_").toUpperCase()}`;
56
59
  }
57
60
 
61
+ /**
62
+ * Returns the environment variable name used to discover a cache relay token.
63
+ */
64
+ export function cacheSocketTokenEnv(name?: string): string {
65
+ return `${cacheSocketEnv(name)}${CACHE_SOCKET_TOKEN_SUFFIX}`;
66
+ }
67
+
68
+ function cacheTransportOptions(rawTarget: string): {
69
+ baseUrl: string;
70
+ nodeOptions?: { path: string };
71
+ } {
72
+ const target = rawTarget.trim();
73
+ if (!target) {
74
+ throw new Error("cache transport target is required");
75
+ }
76
+ if (target.startsWith("tcp://")) {
77
+ const address = target.slice("tcp://".length).trim();
78
+ if (!address) {
79
+ throw new Error(`cache tcp target ${JSON.stringify(rawTarget)} is missing host:port`);
80
+ }
81
+ return { baseUrl: `http://${address}` };
82
+ }
83
+ if (target.startsWith("tls://")) {
84
+ const address = target.slice("tls://".length).trim();
85
+ if (!address) {
86
+ throw new Error(`cache tls target ${JSON.stringify(rawTarget)} is missing host:port`);
87
+ }
88
+ return { baseUrl: `https://${address}` };
89
+ }
90
+ if (target.startsWith("unix://")) {
91
+ const socketPath = target.slice("unix://".length).trim();
92
+ if (!socketPath) {
93
+ throw new Error(`cache unix target ${JSON.stringify(rawTarget)} is missing a socket path`);
94
+ }
95
+ return { baseUrl: "http://localhost", nodeOptions: { path: socketPath } };
96
+ }
97
+ if (target.includes("://")) {
98
+ const parsed = new URL(target);
99
+ throw new Error(`Unsupported cache target scheme ${JSON.stringify(parsed.protocol.replace(/:$/, ""))}`);
100
+ }
101
+ return { baseUrl: "http://localhost", nodeOptions: { path: target } };
102
+ }
103
+
58
104
  /**
59
105
  * Client for invoking a host-provided cache over the Gestalt transport.
60
106
  *
@@ -71,16 +117,30 @@ export class Cache {
71
117
 
72
118
  constructor(name?: string) {
73
119
  const envName = cacheSocketEnv(name);
74
- const socketPath = process.env[envName];
75
- if (!socketPath) {
120
+ const target = process.env[envName];
121
+ if (!target) {
76
122
  throw new Error(`cache: ${envName} is not set`);
77
123
  }
78
-
124
+ const token = process.env[cacheSocketTokenEnv(name)]?.trim() ?? "";
125
+ const transportOptions = cacheTransportOptions(target);
126
+ const interceptors: Interceptor[] = token
127
+ ? [
128
+ (next) => async (req) => {
129
+ req.header.set(CACHE_RELAY_TOKEN_HEADER, token);
130
+ return await next(req);
131
+ },
132
+ ]
133
+ : [];
79
134
  const transport = createGrpcTransport({
80
- baseUrl: "http://localhost",
81
- nodeOptions: {
82
- createConnection: () => connect(socketPath),
83
- },
135
+ ...transportOptions,
136
+ ...(transportOptions.nodeOptions
137
+ ? {
138
+ nodeOptions: {
139
+ createConnection: () => connect(transportOptions.nodeOptions!.path),
140
+ },
141
+ }
142
+ : {}),
143
+ interceptors,
84
144
  });
85
145
  this.client = createClient(CacheService, transport);
86
146
  }