@eide/foir-proto-ts 0.70.0 → 0.72.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-proto-ts",
3
- "version": "0.70.0",
3
+ "version": "0.72.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./analytics/v1/analytics_pb": "./src/analytics/v1/analytics_pb.js",
@@ -614,6 +614,18 @@ export declare type ConfirmUpdateAppRequest = Message<"apps.v1.ConfirmUpdateAppR
614
614
  * @generated from field: string new_manifest_hash = 4;
615
615
  */
616
616
  newManifestHash: string;
617
+
618
+ /**
619
+ * Admin override: apply even when the diff contains CLASS_REJECTED
620
+ * changes. Used when removing a placement (e.g. replaces_default=true)
621
+ * is intentional — the standard DeleteByConfigID + re-insert apply
622
+ * path still cleans up dependent rows; force just suppresses the
623
+ * safety prompt. Mapping-coverage and hash-staleness checks remain
624
+ * enforced.
625
+ *
626
+ * @generated from field: bool force = 5;
627
+ */
628
+ force: boolean;
617
629
  };
618
630
 
619
631
  /**
@@ -10,7 +10,7 @@ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bu
10
10
  * Describes the file apps/v1/apps_service.proto.
11
11
  */
12
12
  export const file_apps_v1_apps_service = /*@__PURE__*/
13
- fileDesc("ChphcHBzL3YxL2FwcHNfc2VydmljZS5wcm90bxIHYXBwcy52MSKRBAoDQXBwEgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEgwKBG5hbWUYBCABKAkSFAoMbWFuaWZlc3RfdXJsGAUgASgJEhUKDW1hbmlmZXN0X2hhc2gYBiABKAkSJAoIbWFuaWZlc3QYByABKAsyEi5hcHBzLnYxLkFwcENvbmZpZxIpCghzZXR0aW5ncxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWFwcGluZ3MYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYCiABKAgSMAoMaW5zdGFsbGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZCgxpbnN0YWxsZWRfYnkYDCABKAlIAIgBARIuCgp1cGRhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1ChRsYXN0X3B1c2hlZF9tYXBwaW5ncxgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNwoObGFzdF9wdXNoZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCDwoNX2luc3RhbGxlZF9ieUIRCg9fbGFzdF9wdXNoZWRfYXQimQEKDVNvdXJjZU1hcHBpbmcSEAoIdG9fbW9kZWwYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkSMgoGZmllbGRzGAMgAygLMiIuYXBwcy52MS5Tb3VyY2VNYXBwaW5nLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEilQEKC1NpbmtNYXBwaW5nEhAKCHRvX21vZGVsGAEgASgJEhMKC25hdHVyYWxfa2V5GAIgASgJEjAKBmZpZWxkcxgDIAMoCzIgLmFwcHMudjEuU2lua01hcHBpbmcuRmllbGRzRW50cnkaLQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChRQbGFjZW1lbnRGaWVsZENob2ljZRINCgVtb2RlbBgBIAEoCRINCgVmaWVsZBgCIAEoCSLdAgoRQXBwSW5zdGFsbFByZXZpZXcSJAoIbWFuaWZlc3QYASABKAsyEi5hcHBzLnYxLkFwcENvbmZpZxIVCg1tYW5pZmVzdF9oYXNoGAIgASgJEhwKFG9wZXJhdGlvbnNfdG9fY3JlYXRlGAMgAygJEhcKD2hvb2tzX3RvX2NyZWF0ZRgEIAMoCRIcChRwbGFjZW1lbnRzX3RvX2NyZWF0ZRgFIAMoCRI6ChNjcmVkZW50aWFsX3N0cmF0ZWd5GAYgASgOMh0uYXBwcy52MS5DcmVkZW50aWFscy5TdHJhdGVneRIbChNzb3VyY2VfdHlwZXNfdG9fbWFwGAcgAygJEh0KFXNpbmtfY29udHJhY3RzX3RvX21hcBgIIAMoCRIpCiFwbGFjZW1lbnRzX3JlcXVpcmluZ19maWVsZF9jaG9pY2UYCSADKAkSEwoLd2ViaG9va191cmwYCiABKAkiOAoPTGlzdEFwcHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJIi4KEExpc3RBcHBzUmVzcG9uc2USGgoEYXBwcxgBIAMoCzIMLmFwcHMudjEuQXBwIkQKDUdldEFwcFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDAoEbmFtZRgDIAEoCSIrCg5HZXRBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5hcHBzLnYxLkFwcCJQChFJbnN0YWxsQXBwUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIUCgxtYW5pZmVzdF91cmwYAyABKAkiiQEKEkluc3RhbGxBcHBSZXNwb25zZRIWCg5pbnN0YWxsX3RpY2tldBgBIAEoCRIrCgdwcmV2aWV3GAIgASgLMhouYXBwcy52MS5BcHBJbnN0YWxsUHJldmlldxIuCgpleHBpcmVzX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL/BAoYQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0EhYKDmluc3RhbGxfdGlja2V0GAEgASgJEk4KD3NvdXJjZV9tYXBwaW5ncxgCIAMoCzI1LmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0LlNvdXJjZU1hcHBpbmdzRW50cnkSSgoNc2lua19tYXBwaW5ncxgDIAMoCzIzLmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0LlNpbmtNYXBwaW5nc0VudHJ5Ei4KCHNldHRpbmdzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEl0KF3BsYWNlbWVudF9maWVsZF9jaG9pY2VzGAUgAygLMjwuYXBwcy52MS5Db25maXJtSW5zdGFsbEFwcFJlcXVlc3QuUGxhY2VtZW50RmllbGRDaG9pY2VzRW50cnkSHAoUdXBkYXRlX3B1c2hfc25hcHNob3QYBiABKAgaTQoTU291cmNlTWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSJQoFdmFsdWUYAiABKAsyFi5hcHBzLnYxLlNvdXJjZU1hcHBpbmc6AjgBGkkKEVNpbmtNYXBwaW5nc0VudHJ5EgsKA2tleRgBIAEoCRIjCgV2YWx1ZRgCIAEoCzIULmFwcHMudjEuU2lua01hcHBpbmc6AjgBGlsKGlBsYWNlbWVudEZpZWxkQ2hvaWNlc0VudHJ5EgsKA2tleRgBIAEoCRIsCgV2YWx1ZRgCIAEoCzIdLmFwcHMudjEuUGxhY2VtZW50RmllbGRDaG9pY2U6AjgBQgsKCV9zZXR0aW5ncyI2ChlDb25maXJtSW5zdGFsbEFwcFJlc3BvbnNlEhkKA2FwcBgBIAEoCzIMLmFwcHMudjEuQXBwIkcKEFVwZGF0ZUFwcFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDAoEbmFtZRgDIAEoCSKWAQoRVXBkYXRlQXBwUmVzcG9uc2USGQoRbmV3X21hbmlmZXN0X2hhc2gYASABKAkSKAoMbmV3X21hbmlmZXN0GAIgASgLMhIuYXBwcy52MS5BcHBDb25maWcSKAoHY2hhbmdlcxgDIAMoCzIXLmFwcHMudjEuTWFuaWZlc3RDaGFuZ2USEgoKbm9fY2hhbmdlcxgEIAEoCCLLAQoOTWFuaWZlc3RDaGFuZ2USLAoFY2xhc3MYASABKA4yHS5hcHBzLnYxLk1hbmlmZXN0Q2hhbmdlLkNsYXNzEgwKBHBhdGgYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiaAoFQ2xhc3MSFQoRQ0xBU1NfVU5TUEVDSUZJRUQQABITCg9DTEFTU19TQUZFX0FVVE8QARIfChtDTEFTU19SRVFVSVJFU19DT05GSVJNQVRJT04QAhISCg5DTEFTU19SRUpFQ1RFRBADImkKF0NvbmZpcm1VcGRhdGVBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSGQoRbmV3X21hbmlmZXN0X2hhc2gYBCABKAkiNQoYQ29uZmlybVVwZGF0ZUFwcFJlc3BvbnNlEhkKA2FwcBgBIAEoCzIMLmFwcHMudjEuQXBwIlkKE1VuaW5zdGFsbEFwcFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRINCgVmb3JjZRgEIAEoCCI3ChRVbmluc3RhbGxBcHBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg4KBmZvcmNlZBgCIAEoCCLmBAoUU2V0QXBwTWFwcGluZ1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRJKCg9zb3VyY2VfbWFwcGluZ3MYBCADKAsyMS5hcHBzLnYxLlNldEFwcE1hcHBpbmdSZXF1ZXN0LlNvdXJjZU1hcHBpbmdzRW50cnkSRgoNc2lua19tYXBwaW5ncxgFIAMoCzIvLmFwcHMudjEuU2V0QXBwTWFwcGluZ1JlcXVlc3QuU2lua01hcHBpbmdzRW50cnkSWQoXcGxhY2VtZW50X2ZpZWxkX2Nob2ljZXMYBiADKAsyOC5hcHBzLnYxLlNldEFwcE1hcHBpbmdSZXF1ZXN0LlBsYWNlbWVudEZpZWxkQ2hvaWNlc0VudHJ5EhwKFHVwZGF0ZV9wdXNoX3NuYXBzaG90GAcgASgIEhUKDXNuYXBzaG90X29ubHkYCCABKAgaTQoTU291cmNlTWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSJQoFdmFsdWUYAiABKAsyFi5hcHBzLnYxLlNvdXJjZU1hcHBpbmc6AjgBGkkKEVNpbmtNYXBwaW5nc0VudHJ5EgsKA2tleRgBIAEoCRIjCgV2YWx1ZRgCIAEoCzIULmFwcHMudjEuU2lua01hcHBpbmc6AjgBGlsKGlBsYWNlbWVudEZpZWxkQ2hvaWNlc0VudHJ5EgsKA2tleRgBIAEoCRIsCgV2YWx1ZRgCIAEoCzIdLmFwcHMudjEuUGxhY2VtZW50RmllbGRDaG9pY2U6AjgBIjIKFVNldEFwcE1hcHBpbmdSZXNwb25zZRIZCgNhcHAYASABKAsyDC5hcHBzLnYxLkFwcCJUChdWYWxpZGF0ZU1hbmlmZXN0UmVxdWVzdBIWCgxtYW5pZmVzdF91cmwYASABKAlIABIXCg1tYW5pZmVzdF9qc29uGAIgASgJSABCCAoGc291cmNlIrUBCg9WYWxpZGF0aW9uSXNzdWUSMwoIc2V2ZXJpdHkYASABKA4yIS5hcHBzLnYxLlZhbGlkYXRpb25Jc3N1ZS5TZXZlcml0eRIMCgRwYXRoGAIgASgJEg8KB21lc3NhZ2UYAyABKAkiTgoIU2V2ZXJpdHkSGAoUU0VWRVJJVFlfVU5TUEVDSUZJRUQQABISCg5TRVZFUklUWV9FUlJPUhABEhQKEFNFVkVSSVRZX1dBUk5JTkcQAiJQChhWYWxpZGF0ZU1hbmlmZXN0UmVzcG9uc2USKAoGaXNzdWVzGAEgAygLMhguYXBwcy52MS5WYWxpZGF0aW9uSXNzdWUSCgoCb2sYAiABKAgijgEKF1RyaWdnZXJPcGVyYXRpb25SZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhUKDW9wZXJhdGlvbl9rZXkYAyABKAkSKwoFaW5wdXQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCAoGX2lucHV0IjAKGFRyaWdnZXJPcGVyYXRpb25SZXNwb25zZRIUCgxleGVjdXRpb25faWQYASABKAkifQoZQ29tcGxldGVBcHBJbnN0YWxsUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCRInCgZ2YWx1ZXMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ii0KGkNvbXBsZXRlQXBwSW5zdGFsbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgifAoaUm90YXRlQXBwQ3JlZGVudGlhbFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkSEgoKZmllbGRfbmFtZRgEIAEoCRIRCglwbGFpbnRleHQYBSABKAwiLgobUm90YXRlQXBwQ3JlZGVudGlhbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiWAodR2V0QXBwQ3JlZGVudGlhbFN0cnVjdFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkiXAoeR2V0QXBwQ3JlZGVudGlhbFN0cnVjdFJlc3BvbnNlEicKBnZhbHVlcxgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEQoJcG9wdWxhdGVkGAIgASgIImQKKUFwcEluc3RhbGxhdGlvblNlcnZpY2VVbmluc3RhbGxBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJIj0KKkFwcEluc3RhbGxhdGlvblNlcnZpY2VVbmluc3RhbGxBcHBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIlUKGklzc3VlRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJIl0KG0lzc3VlRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRIOCgZ0aWNrZXQYASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLQobUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0Eg4KBnRpY2tldBgBIAEoCSJkChxSZWRlZW1FeGNoYW5nZVRpY2tldFJlc3BvbnNlEhQKDHNjb3BlZF90b2tlbhgBIAEoCRIuCgpleHBpcmVzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIyChlSZWZyZXNoU2NvcGVkVG9rZW5SZXF1ZXN0EhUKDWN1cnJlbnRfdG9rZW4YASABKAkiYgoaUmVmcmVzaFNjb3BlZFRva2VuUmVzcG9uc2USFAoMc2NvcGVkX3Rva2VuGAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIvsECglBcHBTdGF0dXMSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkSNQoMbGFzdF9zeW5jX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEiIKFWxhc3Rfc3luY19kdXJhdGlvbl9tcxgFIAEoA0gBiAEBEiMKFmxhc3Rfc3luY19yZWNvcmRfY291bnQYBiABKANIAogBARIXCgpsYXN0X2Vycm9yGAcgASgJSAOIAQESNgoNbGFzdF9lcnJvcl9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIbChNzdWJzY3JpcHRpb25faGVhbHRoGAkgASgJEhMKC2F1dGhfc3RhdHVzGAogASgJEh4KEWRlbGV0aW9uX3N0cmF0ZWd5GAsgASgJSAWIAQESKwoFZXh0cmEYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAaIAQESLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOdXBkYXRlZF9ieV9qdGkYDiABKAlIB4gBAUIPCg1fbGFzdF9zeW5jX2F0QhgKFl9sYXN0X3N5bmNfZHVyYXRpb25fbXNCGQoXX2xhc3Rfc3luY19yZWNvcmRfY291bnRCDQoLX2xhc3RfZXJyb3JCEAoOX2xhc3RfZXJyb3JfYXRCFAoSX2RlbGV0aW9uX3N0cmF0ZWd5QggKBl9leHRyYUIRCg9fdXBkYXRlZF9ieV9qdGkiTgoTR2V0QXBwU3RhdHVzUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCSI6ChRHZXRBcHBTdGF0dXNSZXNwb25zZRIiCgZzdGF0dXMYASABKAsyEi5hcHBzLnYxLkFwcFN0YXR1cyI8ChZVcHNlcnRBcHBTdGF0dXNSZXF1ZXN0EiIKBnN0YXR1cxgBIAEoCzISLmFwcHMudjEuQXBwU3RhdHVzIioKF1Vwc2VydEFwcFN0YXR1c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi5gEKCEFwcEV2ZW50EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEhAKCGFwcF9uYW1lGAQgASgJEg0KBWV2ZW50GAUgASgJEhIKBWFjdG9yGAYgASgJSACIAQESLAoGZGV0YWlsGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEi8KC29jY3VycmVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIICgZfYWN0b3JCCQoHX2RldGFpbCJeChRMaXN0QXBwRXZlbnRzUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCRINCgVsaW1pdBgEIAEoBSI6ChVMaXN0QXBwRXZlbnRzUmVzcG9uc2USIQoGZXZlbnRzGAEgAygLMhEuYXBwcy52MS5BcHBFdmVudDKYBgoLQXBwc1NlcnZpY2USPwoITGlzdEFwcHMSGC5hcHBzLnYxLkxpc3RBcHBzUmVxdWVzdBoZLmFwcHMudjEuTGlzdEFwcHNSZXNwb25zZRI5CgZHZXRBcHASFi5hcHBzLnYxLkdldEFwcFJlcXVlc3QaFy5hcHBzLnYxLkdldEFwcFJlc3BvbnNlEkUKCkluc3RhbGxBcHASGi5hcHBzLnYxLkluc3RhbGxBcHBSZXF1ZXN0GhsuYXBwcy52MS5JbnN0YWxsQXBwUmVzcG9uc2USWgoRQ29uZmlybUluc3RhbGxBcHASIS5hcHBzLnYxLkNvbmZpcm1JbnN0YWxsQXBwUmVxdWVzdBoiLmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXNwb25zZRJCCglVcGRhdGVBcHASGS5hcHBzLnYxLlVwZGF0ZUFwcFJlcXVlc3QaGi5hcHBzLnYxLlVwZGF0ZUFwcFJlc3BvbnNlElcKEENvbmZpcm1VcGRhdGVBcHASIC5hcHBzLnYxLkNvbmZpcm1VcGRhdGVBcHBSZXF1ZXN0GiEuYXBwcy52MS5Db25maXJtVXBkYXRlQXBwUmVzcG9uc2USSwoMVW5pbnN0YWxsQXBwEhwuYXBwcy52MS5Vbmluc3RhbGxBcHBSZXF1ZXN0Gh0uYXBwcy52MS5Vbmluc3RhbGxBcHBSZXNwb25zZRJOCg1TZXRBcHBNYXBwaW5nEh0uYXBwcy52MS5TZXRBcHBNYXBwaW5nUmVxdWVzdBoeLmFwcHMudjEuU2V0QXBwTWFwcGluZ1Jlc3BvbnNlElcKEFZhbGlkYXRlTWFuaWZlc3QSIC5hcHBzLnYxLlZhbGlkYXRlTWFuaWZlc3RSZXF1ZXN0GiEuYXBwcy52MS5WYWxpZGF0ZU1hbmlmZXN0UmVzcG9uc2USVwoQVHJpZ2dlck9wZXJhdGlvbhIgLmFwcHMudjEuVHJpZ2dlck9wZXJhdGlvblJlcXVlc3QaIS5hcHBzLnYxLlRyaWdnZXJPcGVyYXRpb25SZXNwb25zZTK9AwoWQXBwSW5zdGFsbGF0aW9uU2VydmljZRJdChJDb21wbGV0ZUFwcEluc3RhbGwSIi5hcHBzLnYxLkNvbXBsZXRlQXBwSW5zdGFsbFJlcXVlc3QaIy5hcHBzLnYxLkNvbXBsZXRlQXBwSW5zdGFsbFJlc3BvbnNlEmAKE1JvdGF0ZUFwcENyZWRlbnRpYWwSIy5hcHBzLnYxLlJvdGF0ZUFwcENyZWRlbnRpYWxSZXF1ZXN0GiQuYXBwcy52MS5Sb3RhdGVBcHBDcmVkZW50aWFsUmVzcG9uc2USaQoWR2V0QXBwQ3JlZGVudGlhbFN0cnVjdBImLmFwcHMudjEuR2V0QXBwQ3JlZGVudGlhbFN0cnVjdFJlcXVlc3QaJy5hcHBzLnYxLkdldEFwcENyZWRlbnRpYWxTdHJ1Y3RSZXNwb25zZRJ3CgxVbmluc3RhbGxBcHASMi5hcHBzLnYxLkFwcEluc3RhbGxhdGlvblNlcnZpY2VVbmluc3RhbGxBcHBSZXF1ZXN0GjMuYXBwcy52MS5BcHBJbnN0YWxsYXRpb25TZXJ2aWNlVW5pbnN0YWxsQXBwUmVzcG9uc2UytgIKDkFwcEF1dGhTZXJ2aWNlEmAKE0lzc3VlRXhjaGFuZ2VUaWNrZXQSIy5hcHBzLnYxLklzc3VlRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0GiQuYXBwcy52MS5Jc3N1ZUV4Y2hhbmdlVGlja2V0UmVzcG9uc2USYwoUUmVkZWVtRXhjaGFuZ2VUaWNrZXQSJC5hcHBzLnYxLlJlZGVlbUV4Y2hhbmdlVGlja2V0UmVxdWVzdBolLmFwcHMudjEuUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRJdChJSZWZyZXNoU2NvcGVkVG9rZW4SIi5hcHBzLnYxLlJlZnJlc2hTY29wZWRUb2tlblJlcXVlc3QaIy5hcHBzLnYxLlJlZnJlc2hTY29wZWRUb2tlblJlc3BvbnNlMoUCChBBcHBTdGF0dXNTZXJ2aWNlEksKDEdldEFwcFN0YXR1cxIcLmFwcHMudjEuR2V0QXBwU3RhdHVzUmVxdWVzdBodLmFwcHMudjEuR2V0QXBwU3RhdHVzUmVzcG9uc2USVAoPVXBzZXJ0QXBwU3RhdHVzEh8uYXBwcy52MS5VcHNlcnRBcHBTdGF0dXNSZXF1ZXN0GiAuYXBwcy52MS5VcHNlcnRBcHBTdGF0dXNSZXNwb25zZRJOCg1MaXN0QXBwRXZlbnRzEh0uYXBwcy52MS5MaXN0QXBwRXZlbnRzUmVxdWVzdBoeLmFwcHMudjEuTGlzdEFwcEV2ZW50c1Jlc3BvbnNlQjVaM2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9hcHBzL3YxO2FwcHN2MWIGcHJvdG8z", [file_apps_v1_apps, file_google_protobuf_struct, file_google_protobuf_timestamp]);
13
+ fileDesc("ChphcHBzL3YxL2FwcHNfc2VydmljZS5wcm90bxIHYXBwcy52MSKRBAoDQXBwEgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEgwKBG5hbWUYBCABKAkSFAoMbWFuaWZlc3RfdXJsGAUgASgJEhUKDW1hbmlmZXN0X2hhc2gYBiABKAkSJAoIbWFuaWZlc3QYByABKAsyEi5hcHBzLnYxLkFwcENvbmZpZxIpCghzZXR0aW5ncxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWFwcGluZ3MYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYCiABKAgSMAoMaW5zdGFsbGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZCgxpbnN0YWxsZWRfYnkYDCABKAlIAIgBARIuCgp1cGRhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1ChRsYXN0X3B1c2hlZF9tYXBwaW5ncxgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNwoObGFzdF9wdXNoZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCDwoNX2luc3RhbGxlZF9ieUIRCg9fbGFzdF9wdXNoZWRfYXQimQEKDVNvdXJjZU1hcHBpbmcSEAoIdG9fbW9kZWwYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkSMgoGZmllbGRzGAMgAygLMiIuYXBwcy52MS5Tb3VyY2VNYXBwaW5nLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEilQEKC1NpbmtNYXBwaW5nEhAKCHRvX21vZGVsGAEgASgJEhMKC25hdHVyYWxfa2V5GAIgASgJEjAKBmZpZWxkcxgDIAMoCzIgLmFwcHMudjEuU2lua01hcHBpbmcuRmllbGRzRW50cnkaLQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChRQbGFjZW1lbnRGaWVsZENob2ljZRINCgVtb2RlbBgBIAEoCRINCgVmaWVsZBgCIAEoCSLdAgoRQXBwSW5zdGFsbFByZXZpZXcSJAoIbWFuaWZlc3QYASABKAsyEi5hcHBzLnYxLkFwcENvbmZpZxIVCg1tYW5pZmVzdF9oYXNoGAIgASgJEhwKFG9wZXJhdGlvbnNfdG9fY3JlYXRlGAMgAygJEhcKD2hvb2tzX3RvX2NyZWF0ZRgEIAMoCRIcChRwbGFjZW1lbnRzX3RvX2NyZWF0ZRgFIAMoCRI6ChNjcmVkZW50aWFsX3N0cmF0ZWd5GAYgASgOMh0uYXBwcy52MS5DcmVkZW50aWFscy5TdHJhdGVneRIbChNzb3VyY2VfdHlwZXNfdG9fbWFwGAcgAygJEh0KFXNpbmtfY29udHJhY3RzX3RvX21hcBgIIAMoCRIpCiFwbGFjZW1lbnRzX3JlcXVpcmluZ19maWVsZF9jaG9pY2UYCSADKAkSEwoLd2ViaG9va191cmwYCiABKAkiOAoPTGlzdEFwcHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJIi4KEExpc3RBcHBzUmVzcG9uc2USGgoEYXBwcxgBIAMoCzIMLmFwcHMudjEuQXBwIkQKDUdldEFwcFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDAoEbmFtZRgDIAEoCSIrCg5HZXRBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5hcHBzLnYxLkFwcCJQChFJbnN0YWxsQXBwUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIUCgxtYW5pZmVzdF91cmwYAyABKAkiiQEKEkluc3RhbGxBcHBSZXNwb25zZRIWCg5pbnN0YWxsX3RpY2tldBgBIAEoCRIrCgdwcmV2aWV3GAIgASgLMhouYXBwcy52MS5BcHBJbnN0YWxsUHJldmlldxIuCgpleHBpcmVzX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL/BAoYQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0EhYKDmluc3RhbGxfdGlja2V0GAEgASgJEk4KD3NvdXJjZV9tYXBwaW5ncxgCIAMoCzI1LmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0LlNvdXJjZU1hcHBpbmdzRW50cnkSSgoNc2lua19tYXBwaW5ncxgDIAMoCzIzLmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0LlNpbmtNYXBwaW5nc0VudHJ5Ei4KCHNldHRpbmdzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEl0KF3BsYWNlbWVudF9maWVsZF9jaG9pY2VzGAUgAygLMjwuYXBwcy52MS5Db25maXJtSW5zdGFsbEFwcFJlcXVlc3QuUGxhY2VtZW50RmllbGRDaG9pY2VzRW50cnkSHAoUdXBkYXRlX3B1c2hfc25hcHNob3QYBiABKAgaTQoTU291cmNlTWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSJQoFdmFsdWUYAiABKAsyFi5hcHBzLnYxLlNvdXJjZU1hcHBpbmc6AjgBGkkKEVNpbmtNYXBwaW5nc0VudHJ5EgsKA2tleRgBIAEoCRIjCgV2YWx1ZRgCIAEoCzIULmFwcHMudjEuU2lua01hcHBpbmc6AjgBGlsKGlBsYWNlbWVudEZpZWxkQ2hvaWNlc0VudHJ5EgsKA2tleRgBIAEoCRIsCgV2YWx1ZRgCIAEoCzIdLmFwcHMudjEuUGxhY2VtZW50RmllbGRDaG9pY2U6AjgBQgsKCV9zZXR0aW5ncyI2ChlDb25maXJtSW5zdGFsbEFwcFJlc3BvbnNlEhkKA2FwcBgBIAEoCzIMLmFwcHMudjEuQXBwIkcKEFVwZGF0ZUFwcFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDAoEbmFtZRgDIAEoCSKWAQoRVXBkYXRlQXBwUmVzcG9uc2USGQoRbmV3X21hbmlmZXN0X2hhc2gYASABKAkSKAoMbmV3X21hbmlmZXN0GAIgASgLMhIuYXBwcy52MS5BcHBDb25maWcSKAoHY2hhbmdlcxgDIAMoCzIXLmFwcHMudjEuTWFuaWZlc3RDaGFuZ2USEgoKbm9fY2hhbmdlcxgEIAEoCCLLAQoOTWFuaWZlc3RDaGFuZ2USLAoFY2xhc3MYASABKA4yHS5hcHBzLnYxLk1hbmlmZXN0Q2hhbmdlLkNsYXNzEgwKBHBhdGgYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiaAoFQ2xhc3MSFQoRQ0xBU1NfVU5TUEVDSUZJRUQQABITCg9DTEFTU19TQUZFX0FVVE8QARIfChtDTEFTU19SRVFVSVJFU19DT05GSVJNQVRJT04QAhISCg5DTEFTU19SRUpFQ1RFRBADIngKF0NvbmZpcm1VcGRhdGVBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSGQoRbmV3X21hbmlmZXN0X2hhc2gYBCABKAkSDQoFZm9yY2UYBSABKAgiNQoYQ29uZmlybVVwZGF0ZUFwcFJlc3BvbnNlEhkKA2FwcBgBIAEoCzIMLmFwcHMudjEuQXBwIlkKE1VuaW5zdGFsbEFwcFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRINCgVmb3JjZRgEIAEoCCI3ChRVbmluc3RhbGxBcHBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg4KBmZvcmNlZBgCIAEoCCLmBAoUU2V0QXBwTWFwcGluZ1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRJKCg9zb3VyY2VfbWFwcGluZ3MYBCADKAsyMS5hcHBzLnYxLlNldEFwcE1hcHBpbmdSZXF1ZXN0LlNvdXJjZU1hcHBpbmdzRW50cnkSRgoNc2lua19tYXBwaW5ncxgFIAMoCzIvLmFwcHMudjEuU2V0QXBwTWFwcGluZ1JlcXVlc3QuU2lua01hcHBpbmdzRW50cnkSWQoXcGxhY2VtZW50X2ZpZWxkX2Nob2ljZXMYBiADKAsyOC5hcHBzLnYxLlNldEFwcE1hcHBpbmdSZXF1ZXN0LlBsYWNlbWVudEZpZWxkQ2hvaWNlc0VudHJ5EhwKFHVwZGF0ZV9wdXNoX3NuYXBzaG90GAcgASgIEhUKDXNuYXBzaG90X29ubHkYCCABKAgaTQoTU291cmNlTWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSJQoFdmFsdWUYAiABKAsyFi5hcHBzLnYxLlNvdXJjZU1hcHBpbmc6AjgBGkkKEVNpbmtNYXBwaW5nc0VudHJ5EgsKA2tleRgBIAEoCRIjCgV2YWx1ZRgCIAEoCzIULmFwcHMudjEuU2lua01hcHBpbmc6AjgBGlsKGlBsYWNlbWVudEZpZWxkQ2hvaWNlc0VudHJ5EgsKA2tleRgBIAEoCRIsCgV2YWx1ZRgCIAEoCzIdLmFwcHMudjEuUGxhY2VtZW50RmllbGRDaG9pY2U6AjgBIjIKFVNldEFwcE1hcHBpbmdSZXNwb25zZRIZCgNhcHAYASABKAsyDC5hcHBzLnYxLkFwcCJUChdWYWxpZGF0ZU1hbmlmZXN0UmVxdWVzdBIWCgxtYW5pZmVzdF91cmwYASABKAlIABIXCg1tYW5pZmVzdF9qc29uGAIgASgJSABCCAoGc291cmNlIrUBCg9WYWxpZGF0aW9uSXNzdWUSMwoIc2V2ZXJpdHkYASABKA4yIS5hcHBzLnYxLlZhbGlkYXRpb25Jc3N1ZS5TZXZlcml0eRIMCgRwYXRoGAIgASgJEg8KB21lc3NhZ2UYAyABKAkiTgoIU2V2ZXJpdHkSGAoUU0VWRVJJVFlfVU5TUEVDSUZJRUQQABISCg5TRVZFUklUWV9FUlJPUhABEhQKEFNFVkVSSVRZX1dBUk5JTkcQAiJQChhWYWxpZGF0ZU1hbmlmZXN0UmVzcG9uc2USKAoGaXNzdWVzGAEgAygLMhguYXBwcy52MS5WYWxpZGF0aW9uSXNzdWUSCgoCb2sYAiABKAgijgEKF1RyaWdnZXJPcGVyYXRpb25SZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhUKDW9wZXJhdGlvbl9rZXkYAyABKAkSKwoFaW5wdXQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCAoGX2lucHV0IjAKGFRyaWdnZXJPcGVyYXRpb25SZXNwb25zZRIUCgxleGVjdXRpb25faWQYASABKAkifQoZQ29tcGxldGVBcHBJbnN0YWxsUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCRInCgZ2YWx1ZXMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ii0KGkNvbXBsZXRlQXBwSW5zdGFsbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgifAoaUm90YXRlQXBwQ3JlZGVudGlhbFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkSEgoKZmllbGRfbmFtZRgEIAEoCRIRCglwbGFpbnRleHQYBSABKAwiLgobUm90YXRlQXBwQ3JlZGVudGlhbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiWAodR2V0QXBwQ3JlZGVudGlhbFN0cnVjdFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkiXAoeR2V0QXBwQ3JlZGVudGlhbFN0cnVjdFJlc3BvbnNlEicKBnZhbHVlcxgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEQoJcG9wdWxhdGVkGAIgASgIImQKKUFwcEluc3RhbGxhdGlvblNlcnZpY2VVbmluc3RhbGxBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJIj0KKkFwcEluc3RhbGxhdGlvblNlcnZpY2VVbmluc3RhbGxBcHBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIlUKGklzc3VlRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJIl0KG0lzc3VlRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRIOCgZ0aWNrZXQYASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLQobUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0Eg4KBnRpY2tldBgBIAEoCSJkChxSZWRlZW1FeGNoYW5nZVRpY2tldFJlc3BvbnNlEhQKDHNjb3BlZF90b2tlbhgBIAEoCRIuCgpleHBpcmVzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIyChlSZWZyZXNoU2NvcGVkVG9rZW5SZXF1ZXN0EhUKDWN1cnJlbnRfdG9rZW4YASABKAkiYgoaUmVmcmVzaFNjb3BlZFRva2VuUmVzcG9uc2USFAoMc2NvcGVkX3Rva2VuGAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIvsECglBcHBTdGF0dXMSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkSNQoMbGFzdF9zeW5jX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEiIKFWxhc3Rfc3luY19kdXJhdGlvbl9tcxgFIAEoA0gBiAEBEiMKFmxhc3Rfc3luY19yZWNvcmRfY291bnQYBiABKANIAogBARIXCgpsYXN0X2Vycm9yGAcgASgJSAOIAQESNgoNbGFzdF9lcnJvcl9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIbChNzdWJzY3JpcHRpb25faGVhbHRoGAkgASgJEhMKC2F1dGhfc3RhdHVzGAogASgJEh4KEWRlbGV0aW9uX3N0cmF0ZWd5GAsgASgJSAWIAQESKwoFZXh0cmEYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAaIAQESLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOdXBkYXRlZF9ieV9qdGkYDiABKAlIB4gBAUIPCg1fbGFzdF9zeW5jX2F0QhgKFl9sYXN0X3N5bmNfZHVyYXRpb25fbXNCGQoXX2xhc3Rfc3luY19yZWNvcmRfY291bnRCDQoLX2xhc3RfZXJyb3JCEAoOX2xhc3RfZXJyb3JfYXRCFAoSX2RlbGV0aW9uX3N0cmF0ZWd5QggKBl9leHRyYUIRCg9fdXBkYXRlZF9ieV9qdGkiTgoTR2V0QXBwU3RhdHVzUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCSI6ChRHZXRBcHBTdGF0dXNSZXNwb25zZRIiCgZzdGF0dXMYASABKAsyEi5hcHBzLnYxLkFwcFN0YXR1cyI8ChZVcHNlcnRBcHBTdGF0dXNSZXF1ZXN0EiIKBnN0YXR1cxgBIAEoCzISLmFwcHMudjEuQXBwU3RhdHVzIioKF1Vwc2VydEFwcFN0YXR1c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi5gEKCEFwcEV2ZW50EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEhAKCGFwcF9uYW1lGAQgASgJEg0KBWV2ZW50GAUgASgJEhIKBWFjdG9yGAYgASgJSACIAQESLAoGZGV0YWlsGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEi8KC29jY3VycmVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIICgZfYWN0b3JCCQoHX2RldGFpbCJeChRMaXN0QXBwRXZlbnRzUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCRINCgVsaW1pdBgEIAEoBSI6ChVMaXN0QXBwRXZlbnRzUmVzcG9uc2USIQoGZXZlbnRzGAEgAygLMhEuYXBwcy52MS5BcHBFdmVudDKYBgoLQXBwc1NlcnZpY2USPwoITGlzdEFwcHMSGC5hcHBzLnYxLkxpc3RBcHBzUmVxdWVzdBoZLmFwcHMudjEuTGlzdEFwcHNSZXNwb25zZRI5CgZHZXRBcHASFi5hcHBzLnYxLkdldEFwcFJlcXVlc3QaFy5hcHBzLnYxLkdldEFwcFJlc3BvbnNlEkUKCkluc3RhbGxBcHASGi5hcHBzLnYxLkluc3RhbGxBcHBSZXF1ZXN0GhsuYXBwcy52MS5JbnN0YWxsQXBwUmVzcG9uc2USWgoRQ29uZmlybUluc3RhbGxBcHASIS5hcHBzLnYxLkNvbmZpcm1JbnN0YWxsQXBwUmVxdWVzdBoiLmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXNwb25zZRJCCglVcGRhdGVBcHASGS5hcHBzLnYxLlVwZGF0ZUFwcFJlcXVlc3QaGi5hcHBzLnYxLlVwZGF0ZUFwcFJlc3BvbnNlElcKEENvbmZpcm1VcGRhdGVBcHASIC5hcHBzLnYxLkNvbmZpcm1VcGRhdGVBcHBSZXF1ZXN0GiEuYXBwcy52MS5Db25maXJtVXBkYXRlQXBwUmVzcG9uc2USSwoMVW5pbnN0YWxsQXBwEhwuYXBwcy52MS5Vbmluc3RhbGxBcHBSZXF1ZXN0Gh0uYXBwcy52MS5Vbmluc3RhbGxBcHBSZXNwb25zZRJOCg1TZXRBcHBNYXBwaW5nEh0uYXBwcy52MS5TZXRBcHBNYXBwaW5nUmVxdWVzdBoeLmFwcHMudjEuU2V0QXBwTWFwcGluZ1Jlc3BvbnNlElcKEFZhbGlkYXRlTWFuaWZlc3QSIC5hcHBzLnYxLlZhbGlkYXRlTWFuaWZlc3RSZXF1ZXN0GiEuYXBwcy52MS5WYWxpZGF0ZU1hbmlmZXN0UmVzcG9uc2USVwoQVHJpZ2dlck9wZXJhdGlvbhIgLmFwcHMudjEuVHJpZ2dlck9wZXJhdGlvblJlcXVlc3QaIS5hcHBzLnYxLlRyaWdnZXJPcGVyYXRpb25SZXNwb25zZTK9AwoWQXBwSW5zdGFsbGF0aW9uU2VydmljZRJdChJDb21wbGV0ZUFwcEluc3RhbGwSIi5hcHBzLnYxLkNvbXBsZXRlQXBwSW5zdGFsbFJlcXVlc3QaIy5hcHBzLnYxLkNvbXBsZXRlQXBwSW5zdGFsbFJlc3BvbnNlEmAKE1JvdGF0ZUFwcENyZWRlbnRpYWwSIy5hcHBzLnYxLlJvdGF0ZUFwcENyZWRlbnRpYWxSZXF1ZXN0GiQuYXBwcy52MS5Sb3RhdGVBcHBDcmVkZW50aWFsUmVzcG9uc2USaQoWR2V0QXBwQ3JlZGVudGlhbFN0cnVjdBImLmFwcHMudjEuR2V0QXBwQ3JlZGVudGlhbFN0cnVjdFJlcXVlc3QaJy5hcHBzLnYxLkdldEFwcENyZWRlbnRpYWxTdHJ1Y3RSZXNwb25zZRJ3CgxVbmluc3RhbGxBcHASMi5hcHBzLnYxLkFwcEluc3RhbGxhdGlvblNlcnZpY2VVbmluc3RhbGxBcHBSZXF1ZXN0GjMuYXBwcy52MS5BcHBJbnN0YWxsYXRpb25TZXJ2aWNlVW5pbnN0YWxsQXBwUmVzcG9uc2UytgIKDkFwcEF1dGhTZXJ2aWNlEmAKE0lzc3VlRXhjaGFuZ2VUaWNrZXQSIy5hcHBzLnYxLklzc3VlRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0GiQuYXBwcy52MS5Jc3N1ZUV4Y2hhbmdlVGlja2V0UmVzcG9uc2USYwoUUmVkZWVtRXhjaGFuZ2VUaWNrZXQSJC5hcHBzLnYxLlJlZGVlbUV4Y2hhbmdlVGlja2V0UmVxdWVzdBolLmFwcHMudjEuUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRJdChJSZWZyZXNoU2NvcGVkVG9rZW4SIi5hcHBzLnYxLlJlZnJlc2hTY29wZWRUb2tlblJlcXVlc3QaIy5hcHBzLnYxLlJlZnJlc2hTY29wZWRUb2tlblJlc3BvbnNlMoUCChBBcHBTdGF0dXNTZXJ2aWNlEksKDEdldEFwcFN0YXR1cxIcLmFwcHMudjEuR2V0QXBwU3RhdHVzUmVxdWVzdBodLmFwcHMudjEuR2V0QXBwU3RhdHVzUmVzcG9uc2USVAoPVXBzZXJ0QXBwU3RhdHVzEh8uYXBwcy52MS5VcHNlcnRBcHBTdGF0dXNSZXF1ZXN0GiAuYXBwcy52MS5VcHNlcnRBcHBTdGF0dXNSZXNwb25zZRJOCg1MaXN0QXBwRXZlbnRzEh0uYXBwcy52MS5MaXN0QXBwRXZlbnRzUmVxdWVzdBoeLmFwcHMudjEuTGlzdEFwcEV2ZW50c1Jlc3BvbnNlQjVaM2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9hcHBzL3YxO2FwcHN2MWIGcHJvdG8z", [file_apps_v1_apps, file_google_protobuf_struct, file_google_protobuf_timestamp]);
14
14
 
15
15
  /**
16
16
  * Describes the message apps.v1.App.
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { AcceptCustomerInvitationRequest, AcceptCustomerInvitationResponse, AcceptInvitationRequest, AcceptInvitationResponse, ActivateTenantRequest, ActivateTenantResponse, CancelScheduledAuthProviderPublishRequest, CancelScheduledAuthProviderPublishResponse, CancelTenantRequest, CancelTenantResponse, CheckEmailAvailabilityRequest, CheckEmailAvailabilityResponse, ChurnTenantRequest, ChurnTenantResponse, ClearSessionContextRequest, ClearSessionContextResponse, CompleteAccountSetupRequest, CompleteAccountSetupResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateApiKeyRequest, CreateApiKeyResponse, CreateAuthProviderRequest, CreateAuthProviderResponse, CreateCustomerInvitationRequest, CreateCustomerInvitationResponse, CreateCustomerRequest, CreateCustomerResponse, CreateInvitationRequest, CreateInvitationResponse, CreateProjectRequest, CreateProjectResponse, CreateSignupSessionRequest, CreateSignupSessionResponse, CreateTenantRequest, CreateTenantResponse, CustomerLoginRequest, CustomerLoginResponse, CustomerRefreshTokenRequest, CustomerRefreshTokenResponse, CustomerRegisterRequest, CustomerRegisterResponse, CustomerRequestOTPRequest, CustomerRequestOTPResponse, CustomerRequestPasswordResetRequest, CustomerRequestPasswordResetResponse, CustomerResetPasswordRequest, CustomerResetPasswordResponse, CustomerVerifyOTPRequest, CustomerVerifyOTPResponse, DeleteAuthProviderRequest, DeleteAuthProviderResponse, DeleteCustomerRequest, DeleteCustomerResponse, DeleteProjectRequest, DeleteProjectResponse, DeleteProviderTokensRequest, DeleteProviderTokensResponse, DeleteTenantRequest, DeleteTenantResponse, EnabledOAuthProvidersRequest, EnabledOAuthProvidersResponse, GetAdminUserRequest, GetAdminUserResponse, GetApiKeyRequest, GetApiKeyResponse, GetAuthProviderPublishStatusRequest, GetAuthProviderPublishStatusResponse, GetAuthProviderRequest, GetAuthProviderResponse, GetCustomerAuthConfigRequest, GetCustomerAuthConfigResponse, GetCustomerInvitationRequest, GetCustomerInvitationResponse, GetCustomerManagementStatusRequest, GetCustomerManagementStatusResponse, GetCustomerRequest, GetCustomerResponse, GetDefaultProjectRequest, GetDefaultProjectResponse, GetInvitationRequest, GetInvitationResponse, GetMeRequest, GetMeResponse, GetProjectRequest, GetProjectResponse, GetProviderTokenRequest, GetProviderTokenResponse, GetSessionContextRequest, GetSessionContextResponse, GetTenantRequest, GetTenantResponse, GrantAccessRequest, GrantAccessResponse, ListAdminUsersRequest, ListAdminUsersResponse, ListApiKeysRequest, ListApiKeysResponse, ListAuthProvidersRequest, ListAuthProvidersResponse, ListCustomerInvitationsRequest, ListCustomerInvitationsResponse, ListCustomersRequest, ListCustomersResponse, ListInvitationsRequest, ListInvitationsResponse, ListMyOAuthConnectionsRequest, ListMyOAuthConnectionsResponse, ListProjectsRequest, ListProjectsResponse, ListTenantsRequest, ListTenantsResponse, LoginRequest, LoginResponse, LoginWithOTPRequest, LoginWithOTPResponse, LogoutRequest, LogoutResponse, MarkTenantPastDueRequest, MarkTenantPastDueResponse, MintServiceTokenRequest, MintServiceTokenResponse, PublishAuthProviderRequest, PublishAuthProviderResponse, ReactivateTenantRequest, ReactivateTenantResponse, RefreshTokenRequest, RefreshTokenResponse, RegisterRequest, RegisterResponse, RequestOTPRequest, RequestOTPResponse, RequestPasswordResetRequest, RequestPasswordResetResponse, ResendCustomerInvitationRequest, ResendCustomerInvitationResponse, ResendInvitationRequest, ResendInvitationResponse, ResendVerificationEmailRequest, ResendVerificationEmailResponse, ResetPasswordRequest, ResetPasswordResponse, RevokeAccessRequest, RevokeAccessResponse, RevokeApiKeyRequest, RevokeApiKeyResponse, RevokeCustomerInvitationRequest, RevokeCustomerInvitationResponse, RevokeInvitationRequest, RevokeInvitationResponse, RotateApiKeyRequest, RotateApiKeyResponse, ScheduleAuthProviderPublishRequest, ScheduleAuthProviderPublishResponse, SendEmailVerificationCodeRequest, SendEmailVerificationCodeResponse, SetCustomerPasswordRequest, SetCustomerPasswordResponse, SetDefaultProjectRequest, SetDefaultProjectResponse, StoreProviderTokenRequest, StoreProviderTokenResponse, SuspendCustomerRequest, SuspendCustomerResponse, SuspendTenantAccountRequest, SuspendTenantAccountResponse, SwitchProjectRequest, SwitchProjectResponse, SwitchTenantRequest, SwitchTenantResponse, UnlinkOAuthProviderRequest, UnlinkOAuthProviderResponse, UnpublishAuthProviderRequest, UnpublishAuthProviderResponse, UpdateAdminUserRequest, UpdateAdminUserResponse, UpdateApiKeyRequest, UpdateApiKeyResponse, UpdateAuthProviderRequest, UpdateAuthProviderResponse, UpdateCustomerRequest, UpdateCustomerResponse, UpdateMyProfileRequest, UpdateMyProfileResponse, UpdatePasswordRequest, UpdatePasswordResponse, UpdateProjectRequest, UpdateProjectResponse, UpdateTenantRequest, UpdateTenantResponse, ValidateApiKeyRequest, ValidateApiKeyResponse, ValidateCustomerInvitationRequest, ValidateCustomerInvitationResponse, ValidateInvitationRequest, ValidateInvitationResponse, VerifyCustomerTokenRequest, VerifyCustomerTokenResponse, VerifyEmailCodeRequest, VerifyEmailCodeResponse, VerifyEmailRequest, VerifyEmailResponse } from "./identity_pbjs";
6
+ import { AcceptCustomerInvitationRequest, AcceptCustomerInvitationResponse, AcceptInvitationRequest, AcceptInvitationResponse, ActivateTenantRequest, ActivateTenantResponse, CancelScheduledAuthProviderPublishRequest, CancelScheduledAuthProviderPublishResponse, CancelTenantRequest, CancelTenantResponse, CheckEmailAvailabilityRequest, CheckEmailAvailabilityResponse, ChurnTenantRequest, ChurnTenantResponse, ClearSessionContextRequest, ClearSessionContextResponse, CompleteAccountSetupRequest, CompleteAccountSetupResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateApiKeyRequest, CreateApiKeyResponse, CreateAuthProviderRequest, CreateAuthProviderResponse, CreateCustomerInvitationRequest, CreateCustomerInvitationResponse, CreateCustomerRequest, CreateCustomerResponse, CreateInvitationRequest, CreateInvitationResponse, CreateProjectRequest, CreateProjectResponse, CreateSignupSessionRequest, CreateSignupSessionResponse, CreateTenantRequest, CreateTenantResponse, CustomerLoginRequest, CustomerLoginResponse, CustomerRefreshTokenRequest, CustomerRefreshTokenResponse, CustomerRegisterRequest, CustomerRegisterResponse, CustomerRequestOTPRequest, CustomerRequestOTPResponse, CustomerRequestPasswordResetRequest, CustomerRequestPasswordResetResponse, CustomerResetPasswordRequest, CustomerResetPasswordResponse, CustomerVerifyOTPRequest, CustomerVerifyOTPResponse, DeleteAuthProviderRequest, DeleteAuthProviderResponse, DeleteCustomerRequest, DeleteCustomerResponse, DeleteProjectRequest, DeleteProjectResponse, DeleteProviderTokensRequest, DeleteProviderTokensResponse, DeleteTenantRequest, DeleteTenantResponse, EnabledOAuthProvidersRequest, EnabledOAuthProvidersResponse, FinishProviderLoginRequest, FinishProviderLoginResponse, GetAdminUserRequest, GetAdminUserResponse, GetApiKeyRequest, GetApiKeyResponse, GetAuthProviderPublishStatusRequest, GetAuthProviderPublishStatusResponse, GetAuthProviderRequest, GetAuthProviderResponse, GetCustomerAuthConfigRequest, GetCustomerAuthConfigResponse, GetCustomerInvitationRequest, GetCustomerInvitationResponse, GetCustomerManagementStatusRequest, GetCustomerManagementStatusResponse, GetCustomerRequest, GetCustomerResponse, GetDefaultProjectRequest, GetDefaultProjectResponse, GetInvitationRequest, GetInvitationResponse, GetMeRequest, GetMeResponse, GetProjectRequest, GetProjectResponse, GetProviderTokenRequest, GetProviderTokenResponse, GetSessionContextRequest, GetSessionContextResponse, GetTenantRequest, GetTenantResponse, GrantAccessRequest, GrantAccessResponse, ListAdminUsersRequest, ListAdminUsersResponse, ListApiKeysRequest, ListApiKeysResponse, ListAuthProvidersRequest, ListAuthProvidersResponse, ListCustomerInvitationsRequest, ListCustomerInvitationsResponse, ListCustomersRequest, ListCustomersResponse, ListInvitationsRequest, ListInvitationsResponse, ListMyOAuthConnectionsRequest, ListMyOAuthConnectionsResponse, ListProjectsRequest, ListProjectsResponse, ListTenantsRequest, ListTenantsResponse, LoginRequest, LoginResponse, LoginWithOTPRequest, LoginWithOTPResponse, LogoutRequest, LogoutResponse, MarkTenantPastDueRequest, MarkTenantPastDueResponse, MintServiceTokenRequest, MintServiceTokenResponse, PublishAuthProviderRequest, PublishAuthProviderResponse, ReactivateTenantRequest, ReactivateTenantResponse, RefreshTokenRequest, RefreshTokenResponse, RegisterRequest, RegisterResponse, RequestOTPRequest, RequestOTPResponse, RequestPasswordResetRequest, RequestPasswordResetResponse, ResendCustomerInvitationRequest, ResendCustomerInvitationResponse, ResendInvitationRequest, ResendInvitationResponse, ResendVerificationEmailRequest, ResendVerificationEmailResponse, ResetPasswordRequest, ResetPasswordResponse, RevokeAccessRequest, RevokeAccessResponse, RevokeApiKeyRequest, RevokeApiKeyResponse, RevokeCustomerInvitationRequest, RevokeCustomerInvitationResponse, RevokeInvitationRequest, RevokeInvitationResponse, RotateApiKeyRequest, RotateApiKeyResponse, ScheduleAuthProviderPublishRequest, ScheduleAuthProviderPublishResponse, SendEmailVerificationCodeRequest, SendEmailVerificationCodeResponse, SetCustomerPasswordRequest, SetCustomerPasswordResponse, SetDefaultProjectRequest, SetDefaultProjectResponse, StartProviderLoginRequest, StartProviderLoginResponse, StoreProviderTokenRequest, StoreProviderTokenResponse, SuspendCustomerRequest, SuspendCustomerResponse, SuspendTenantAccountRequest, SuspendTenantAccountResponse, SwitchProjectRequest, SwitchProjectResponse, SwitchTenantRequest, SwitchTenantResponse, UnlinkOAuthProviderRequest, UnlinkOAuthProviderResponse, UnpublishAuthProviderRequest, UnpublishAuthProviderResponse, UpdateAdminUserRequest, UpdateAdminUserResponse, UpdateApiKeyRequest, UpdateApiKeyResponse, UpdateAuthProviderRequest, UpdateAuthProviderResponse, UpdateCustomerRequest, UpdateCustomerResponse, UpdateMyProfileRequest, UpdateMyProfileResponse, UpdatePasswordRequest, UpdatePasswordResponse, UpdateProjectRequest, UpdateProjectResponse, UpdateTenantRequest, UpdateTenantResponse, ValidateApiKeyRequest, ValidateApiKeyResponse, ValidateCustomerInvitationRequest, ValidateCustomerInvitationResponse, ValidateInvitationRequest, ValidateInvitationResponse, VerifyCustomerTokenRequest, VerifyCustomerTokenResponse, VerifyEmailCodeRequest, VerifyEmailCodeResponse, VerifyEmailRequest, VerifyEmailResponse } from "./identity_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -957,6 +957,28 @@ export declare const IdentityService: {
957
957
  readonly O: typeof DeleteProviderTokensResponse,
958
958
  readonly kind: MethodKind.Unary,
959
959
  },
960
+ /**
961
+ * Customer OIDC sign-in. api-public mutations forward verbatim; all
962
+ * OIDC client work (discovery, PKCE, token exchange, userinfo / ID
963
+ * token verification) and the register-or-login decision live here.
964
+ *
965
+ * @generated from rpc identity.v1.IdentityService.StartProviderLogin
966
+ */
967
+ readonly startProviderLogin: {
968
+ readonly name: "StartProviderLogin",
969
+ readonly I: typeof StartProviderLoginRequest,
970
+ readonly O: typeof StartProviderLoginResponse,
971
+ readonly kind: MethodKind.Unary,
972
+ },
973
+ /**
974
+ * @generated from rpc identity.v1.IdentityService.FinishProviderLogin
975
+ */
976
+ readonly finishProviderLogin: {
977
+ readonly name: "FinishProviderLogin",
978
+ readonly I: typeof FinishProviderLoginRequest,
979
+ readonly O: typeof FinishProviderLoginResponse,
980
+ readonly kind: MethodKind.Unary,
981
+ },
960
982
  }
961
983
  };
962
984
 
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { AcceptCustomerInvitationRequest, AcceptCustomerInvitationResponse, AcceptInvitationRequest, AcceptInvitationResponse, ActivateTenantRequest, ActivateTenantResponse, CancelScheduledAuthProviderPublishRequest, CancelScheduledAuthProviderPublishResponse, CancelTenantRequest, CancelTenantResponse, CheckEmailAvailabilityRequest, CheckEmailAvailabilityResponse, ChurnTenantRequest, ChurnTenantResponse, ClearSessionContextRequest, ClearSessionContextResponse, CompleteAccountSetupRequest, CompleteAccountSetupResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateApiKeyRequest, CreateApiKeyResponse, CreateAuthProviderRequest, CreateAuthProviderResponse, CreateCustomerInvitationRequest, CreateCustomerInvitationResponse, CreateCustomerRequest, CreateCustomerResponse, CreateInvitationRequest, CreateInvitationResponse, CreateProjectRequest, CreateProjectResponse, CreateSignupSessionRequest, CreateSignupSessionResponse, CreateTenantRequest, CreateTenantResponse, CustomerLoginRequest, CustomerLoginResponse, CustomerRefreshTokenRequest, CustomerRefreshTokenResponse, CustomerRegisterRequest, CustomerRegisterResponse, CustomerRequestOTPRequest, CustomerRequestOTPResponse, CustomerRequestPasswordResetRequest, CustomerRequestPasswordResetResponse, CustomerResetPasswordRequest, CustomerResetPasswordResponse, CustomerVerifyOTPRequest, CustomerVerifyOTPResponse, DeleteAuthProviderRequest, DeleteAuthProviderResponse, DeleteCustomerRequest, DeleteCustomerResponse, DeleteProjectRequest, DeleteProjectResponse, DeleteProviderTokensRequest, DeleteProviderTokensResponse, DeleteTenantRequest, DeleteTenantResponse, EnabledOAuthProvidersRequest, EnabledOAuthProvidersResponse, GetAdminUserRequest, GetAdminUserResponse, GetApiKeyRequest, GetApiKeyResponse, GetAuthProviderPublishStatusRequest, GetAuthProviderPublishStatusResponse, GetAuthProviderRequest, GetAuthProviderResponse, GetCustomerAuthConfigRequest, GetCustomerAuthConfigResponse, GetCustomerInvitationRequest, GetCustomerInvitationResponse, GetCustomerManagementStatusRequest, GetCustomerManagementStatusResponse, GetCustomerRequest, GetCustomerResponse, GetDefaultProjectRequest, GetDefaultProjectResponse, GetInvitationRequest, GetInvitationResponse, GetMeRequest, GetMeResponse, GetProjectRequest, GetProjectResponse, GetProviderTokenRequest, GetProviderTokenResponse, GetSessionContextRequest, GetSessionContextResponse, GetTenantRequest, GetTenantResponse, GrantAccessRequest, GrantAccessResponse, ListAdminUsersRequest, ListAdminUsersResponse, ListApiKeysRequest, ListApiKeysResponse, ListAuthProvidersRequest, ListAuthProvidersResponse, ListCustomerInvitationsRequest, ListCustomerInvitationsResponse, ListCustomersRequest, ListCustomersResponse, ListInvitationsRequest, ListInvitationsResponse, ListMyOAuthConnectionsRequest, ListMyOAuthConnectionsResponse, ListProjectsRequest, ListProjectsResponse, ListTenantsRequest, ListTenantsResponse, LoginRequest, LoginResponse, LoginWithOTPRequest, LoginWithOTPResponse, LogoutRequest, LogoutResponse, MarkTenantPastDueRequest, MarkTenantPastDueResponse, MintServiceTokenRequest, MintServiceTokenResponse, PublishAuthProviderRequest, PublishAuthProviderResponse, ReactivateTenantRequest, ReactivateTenantResponse, RefreshTokenRequest, RefreshTokenResponse, RegisterRequest, RegisterResponse, RequestOTPRequest, RequestOTPResponse, RequestPasswordResetRequest, RequestPasswordResetResponse, ResendCustomerInvitationRequest, ResendCustomerInvitationResponse, ResendInvitationRequest, ResendInvitationResponse, ResendVerificationEmailRequest, ResendVerificationEmailResponse, ResetPasswordRequest, ResetPasswordResponse, RevokeAccessRequest, RevokeAccessResponse, RevokeApiKeyRequest, RevokeApiKeyResponse, RevokeCustomerInvitationRequest, RevokeCustomerInvitationResponse, RevokeInvitationRequest, RevokeInvitationResponse, RotateApiKeyRequest, RotateApiKeyResponse, ScheduleAuthProviderPublishRequest, ScheduleAuthProviderPublishResponse, SendEmailVerificationCodeRequest, SendEmailVerificationCodeResponse, SetCustomerPasswordRequest, SetCustomerPasswordResponse, SetDefaultProjectRequest, SetDefaultProjectResponse, StoreProviderTokenRequest, StoreProviderTokenResponse, SuspendCustomerRequest, SuspendCustomerResponse, SuspendTenantAccountRequest, SuspendTenantAccountResponse, SwitchProjectRequest, SwitchProjectResponse, SwitchTenantRequest, SwitchTenantResponse, UnlinkOAuthProviderRequest, UnlinkOAuthProviderResponse, UnpublishAuthProviderRequest, UnpublishAuthProviderResponse, UpdateAdminUserRequest, UpdateAdminUserResponse, UpdateApiKeyRequest, UpdateApiKeyResponse, UpdateAuthProviderRequest, UpdateAuthProviderResponse, UpdateCustomerRequest, UpdateCustomerResponse, UpdateMyProfileRequest, UpdateMyProfileResponse, UpdatePasswordRequest, UpdatePasswordResponse, UpdateProjectRequest, UpdateProjectResponse, UpdateTenantRequest, UpdateTenantResponse, ValidateApiKeyRequest, ValidateApiKeyResponse, ValidateCustomerInvitationRequest, ValidateCustomerInvitationResponse, ValidateInvitationRequest, ValidateInvitationResponse, VerifyCustomerTokenRequest, VerifyCustomerTokenResponse, VerifyEmailCodeRequest, VerifyEmailCodeResponse, VerifyEmailRequest, VerifyEmailResponse } from "./identity_pbjs";
6
+ import { AcceptCustomerInvitationRequest, AcceptCustomerInvitationResponse, AcceptInvitationRequest, AcceptInvitationResponse, ActivateTenantRequest, ActivateTenantResponse, CancelScheduledAuthProviderPublishRequest, CancelScheduledAuthProviderPublishResponse, CancelTenantRequest, CancelTenantResponse, CheckEmailAvailabilityRequest, CheckEmailAvailabilityResponse, ChurnTenantRequest, ChurnTenantResponse, ClearSessionContextRequest, ClearSessionContextResponse, CompleteAccountSetupRequest, CompleteAccountSetupResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateApiKeyRequest, CreateApiKeyResponse, CreateAuthProviderRequest, CreateAuthProviderResponse, CreateCustomerInvitationRequest, CreateCustomerInvitationResponse, CreateCustomerRequest, CreateCustomerResponse, CreateInvitationRequest, CreateInvitationResponse, CreateProjectRequest, CreateProjectResponse, CreateSignupSessionRequest, CreateSignupSessionResponse, CreateTenantRequest, CreateTenantResponse, CustomerLoginRequest, CustomerLoginResponse, CustomerRefreshTokenRequest, CustomerRefreshTokenResponse, CustomerRegisterRequest, CustomerRegisterResponse, CustomerRequestOTPRequest, CustomerRequestOTPResponse, CustomerRequestPasswordResetRequest, CustomerRequestPasswordResetResponse, CustomerResetPasswordRequest, CustomerResetPasswordResponse, CustomerVerifyOTPRequest, CustomerVerifyOTPResponse, DeleteAuthProviderRequest, DeleteAuthProviderResponse, DeleteCustomerRequest, DeleteCustomerResponse, DeleteProjectRequest, DeleteProjectResponse, DeleteProviderTokensRequest, DeleteProviderTokensResponse, DeleteTenantRequest, DeleteTenantResponse, EnabledOAuthProvidersRequest, EnabledOAuthProvidersResponse, FinishProviderLoginRequest, FinishProviderLoginResponse, GetAdminUserRequest, GetAdminUserResponse, GetApiKeyRequest, GetApiKeyResponse, GetAuthProviderPublishStatusRequest, GetAuthProviderPublishStatusResponse, GetAuthProviderRequest, GetAuthProviderResponse, GetCustomerAuthConfigRequest, GetCustomerAuthConfigResponse, GetCustomerInvitationRequest, GetCustomerInvitationResponse, GetCustomerManagementStatusRequest, GetCustomerManagementStatusResponse, GetCustomerRequest, GetCustomerResponse, GetDefaultProjectRequest, GetDefaultProjectResponse, GetInvitationRequest, GetInvitationResponse, GetMeRequest, GetMeResponse, GetProjectRequest, GetProjectResponse, GetProviderTokenRequest, GetProviderTokenResponse, GetSessionContextRequest, GetSessionContextResponse, GetTenantRequest, GetTenantResponse, GrantAccessRequest, GrantAccessResponse, ListAdminUsersRequest, ListAdminUsersResponse, ListApiKeysRequest, ListApiKeysResponse, ListAuthProvidersRequest, ListAuthProvidersResponse, ListCustomerInvitationsRequest, ListCustomerInvitationsResponse, ListCustomersRequest, ListCustomersResponse, ListInvitationsRequest, ListInvitationsResponse, ListMyOAuthConnectionsRequest, ListMyOAuthConnectionsResponse, ListProjectsRequest, ListProjectsResponse, ListTenantsRequest, ListTenantsResponse, LoginRequest, LoginResponse, LoginWithOTPRequest, LoginWithOTPResponse, LogoutRequest, LogoutResponse, MarkTenantPastDueRequest, MarkTenantPastDueResponse, MintServiceTokenRequest, MintServiceTokenResponse, PublishAuthProviderRequest, PublishAuthProviderResponse, ReactivateTenantRequest, ReactivateTenantResponse, RefreshTokenRequest, RefreshTokenResponse, RegisterRequest, RegisterResponse, RequestOTPRequest, RequestOTPResponse, RequestPasswordResetRequest, RequestPasswordResetResponse, ResendCustomerInvitationRequest, ResendCustomerInvitationResponse, ResendInvitationRequest, ResendInvitationResponse, ResendVerificationEmailRequest, ResendVerificationEmailResponse, ResetPasswordRequest, ResetPasswordResponse, RevokeAccessRequest, RevokeAccessResponse, RevokeApiKeyRequest, RevokeApiKeyResponse, RevokeCustomerInvitationRequest, RevokeCustomerInvitationResponse, RevokeInvitationRequest, RevokeInvitationResponse, RotateApiKeyRequest, RotateApiKeyResponse, ScheduleAuthProviderPublishRequest, ScheduleAuthProviderPublishResponse, SendEmailVerificationCodeRequest, SendEmailVerificationCodeResponse, SetCustomerPasswordRequest, SetCustomerPasswordResponse, SetDefaultProjectRequest, SetDefaultProjectResponse, StartProviderLoginRequest, StartProviderLoginResponse, StoreProviderTokenRequest, StoreProviderTokenResponse, SuspendCustomerRequest, SuspendCustomerResponse, SuspendTenantAccountRequest, SuspendTenantAccountResponse, SwitchProjectRequest, SwitchProjectResponse, SwitchTenantRequest, SwitchTenantResponse, UnlinkOAuthProviderRequest, UnlinkOAuthProviderResponse, UnpublishAuthProviderRequest, UnpublishAuthProviderResponse, UpdateAdminUserRequest, UpdateAdminUserResponse, UpdateApiKeyRequest, UpdateApiKeyResponse, UpdateAuthProviderRequest, UpdateAuthProviderResponse, UpdateCustomerRequest, UpdateCustomerResponse, UpdateMyProfileRequest, UpdateMyProfileResponse, UpdatePasswordRequest, UpdatePasswordResponse, UpdateProjectRequest, UpdateProjectResponse, UpdateTenantRequest, UpdateTenantResponse, ValidateApiKeyRequest, ValidateApiKeyResponse, ValidateCustomerInvitationRequest, ValidateCustomerInvitationResponse, ValidateInvitationRequest, ValidateInvitationResponse, VerifyCustomerTokenRequest, VerifyCustomerTokenResponse, VerifyEmailCodeRequest, VerifyEmailCodeResponse, VerifyEmailRequest, VerifyEmailResponse } from "./identity_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -957,6 +957,28 @@ export const IdentityService = {
957
957
  O: DeleteProviderTokensResponse,
958
958
  kind: MethodKind.Unary,
959
959
  },
960
+ /**
961
+ * Customer OIDC sign-in. api-public mutations forward verbatim; all
962
+ * OIDC client work (discovery, PKCE, token exchange, userinfo / ID
963
+ * token verification) and the register-or-login decision live here.
964
+ *
965
+ * @generated from rpc identity.v1.IdentityService.StartProviderLogin
966
+ */
967
+ startProviderLogin: {
968
+ name: "StartProviderLogin",
969
+ I: StartProviderLoginRequest,
970
+ O: StartProviderLoginResponse,
971
+ kind: MethodKind.Unary,
972
+ },
973
+ /**
974
+ * @generated from rpc identity.v1.IdentityService.FinishProviderLogin
975
+ */
976
+ finishProviderLogin: {
977
+ name: "FinishProviderLogin",
978
+ I: FinishProviderLoginRequest,
979
+ O: FinishProviderLoginResponse,
980
+ kind: MethodKind.Unary,
981
+ },
960
982
  }
961
983
  };
962
984
 
@@ -4989,6 +4989,129 @@ export declare type StoreProviderTokenResponse = Message<"identity.v1.StoreProvi
4989
4989
  */
4990
4990
  export declare const StoreProviderTokenResponseSchema: GenMessage<StoreProviderTokenResponse>;
4991
4991
 
4992
+ /**
4993
+ * StartProviderLogin begins an OIDC sign-in for a customer. The platform
4994
+ * loads the named provider, runs OIDC discovery, generates a PKCE pair,
4995
+ * persists state under Redis, and returns the IdP authorization URL the
4996
+ * caller should redirect the browser to. Owning the OIDC client surface
4997
+ * here keeps outbound TLS / Redis writes out of the BFF tier.
4998
+ *
4999
+ * redirect_uri may override the provider's configured default; the
5000
+ * override must be on the provider's allowlist (additional_redirect_uris)
5001
+ * and validate as an https URL — both checks are enforced server-side
5002
+ * before the IdP ever sees the request.
5003
+ *
5004
+ * @generated from message identity.v1.StartProviderLoginRequest
5005
+ */
5006
+ export declare type StartProviderLoginRequest = Message<"identity.v1.StartProviderLoginRequest"> & {
5007
+ /**
5008
+ * @generated from field: string provider_key = 1;
5009
+ */
5010
+ providerKey: string;
5011
+
5012
+ /**
5013
+ * @generated from field: optional string return_to = 2;
5014
+ */
5015
+ returnTo?: string | undefined;
5016
+
5017
+ /**
5018
+ * @generated from field: optional string redirect_uri = 3;
5019
+ */
5020
+ redirectUri?: string | undefined;
5021
+ };
5022
+
5023
+ /**
5024
+ * Describes the message identity.v1.StartProviderLoginRequest.
5025
+ * Use `create(StartProviderLoginRequestSchema)` to create a new message.
5026
+ */
5027
+ export declare const StartProviderLoginRequestSchema: GenMessage<StartProviderLoginRequest>;
5028
+
5029
+ /**
5030
+ * @generated from message identity.v1.StartProviderLoginResponse
5031
+ */
5032
+ export declare type StartProviderLoginResponse = Message<"identity.v1.StartProviderLoginResponse"> & {
5033
+ /**
5034
+ * @generated from field: string redirect_url = 1;
5035
+ */
5036
+ redirectUrl: string;
5037
+ };
5038
+
5039
+ /**
5040
+ * Describes the message identity.v1.StartProviderLoginResponse.
5041
+ * Use `create(StartProviderLoginResponseSchema)` to create a new message.
5042
+ */
5043
+ export declare const StartProviderLoginResponseSchema: GenMessage<StartProviderLoginResponse>;
5044
+
5045
+ /**
5046
+ * FinishProviderLogin completes the OIDC sign-in for the code + state
5047
+ * returned by the IdP callback. The platform:
5048
+ * 1. Loads + clears the PKCE state for `state`.
5049
+ * 2. Cross-checks state.provider_key == request.provider_key.
5050
+ * 3. Exchanges the code for tokens, fetches userinfo (or verifies the
5051
+ * ID token for providers that omit userinfo, e.g. Shopify CAAPI).
5052
+ * 4. Registers-or-logs-in the customer by email.
5053
+ * 5. Persists the upstream provider tokens for refresh.
5054
+ * 6. Returns the Foir access / refresh tokens to the caller.
5055
+ *
5056
+ * All identity-decision logic stays on platform; api-public's mutation
5057
+ * resolver becomes a thin wire forwarder.
5058
+ *
5059
+ * @generated from message identity.v1.FinishProviderLoginRequest
5060
+ */
5061
+ export declare type FinishProviderLoginRequest = Message<"identity.v1.FinishProviderLoginRequest"> & {
5062
+ /**
5063
+ * @generated from field: string provider_key = 1;
5064
+ */
5065
+ providerKey: string;
5066
+
5067
+ /**
5068
+ * @generated from field: string code = 2;
5069
+ */
5070
+ code: string;
5071
+
5072
+ /**
5073
+ * @generated from field: string state = 3;
5074
+ */
5075
+ state: string;
5076
+ };
5077
+
5078
+ /**
5079
+ * Describes the message identity.v1.FinishProviderLoginRequest.
5080
+ * Use `create(FinishProviderLoginRequestSchema)` to create a new message.
5081
+ */
5082
+ export declare const FinishProviderLoginRequestSchema: GenMessage<FinishProviderLoginRequest>;
5083
+
5084
+ /**
5085
+ * @generated from message identity.v1.FinishProviderLoginResponse
5086
+ */
5087
+ export declare type FinishProviderLoginResponse = Message<"identity.v1.FinishProviderLoginResponse"> & {
5088
+ /**
5089
+ * @generated from field: string customer_id = 1;
5090
+ */
5091
+ customerId: string;
5092
+
5093
+ /**
5094
+ * @generated from field: string email = 2;
5095
+ */
5096
+ email: string;
5097
+
5098
+ /**
5099
+ * @generated from field: string access_token = 3;
5100
+ */
5101
+ accessToken: string;
5102
+
5103
+ /**
5104
+ * @generated from field: string refresh_token = 4;
5105
+ */
5106
+ refreshToken: string;
5107
+ };
5108
+
5109
+ /**
5110
+ * Describes the message identity.v1.FinishProviderLoginResponse.
5111
+ * Use `create(FinishProviderLoginResponseSchema)` to create a new message.
5112
+ */
5113
+ export declare const FinishProviderLoginResponseSchema: GenMessage<FinishProviderLoginResponse>;
5114
+
4992
5115
  /**
4993
5116
  * @generated from message identity.v1.GetProviderTokenRequest
4994
5117
  */
@@ -6215,5 +6338,25 @@ export declare const IdentityService: GenService<{
6215
6338
  input: typeof DeleteProviderTokensRequestSchema;
6216
6339
  output: typeof DeleteProviderTokensResponseSchema;
6217
6340
  },
6341
+ /**
6342
+ * Customer OIDC sign-in. api-public mutations forward verbatim; all
6343
+ * OIDC client work (discovery, PKCE, token exchange, userinfo / ID
6344
+ * token verification) and the register-or-login decision live here.
6345
+ *
6346
+ * @generated from rpc identity.v1.IdentityService.StartProviderLogin
6347
+ */
6348
+ startProviderLogin: {
6349
+ methodKind: "unary";
6350
+ input: typeof StartProviderLoginRequestSchema;
6351
+ output: typeof StartProviderLoginResponseSchema;
6352
+ },
6353
+ /**
6354
+ * @generated from rpc identity.v1.IdentityService.FinishProviderLogin
6355
+ */
6356
+ finishProviderLogin: {
6357
+ methodKind: "unary";
6358
+ input: typeof FinishProviderLoginRequestSchema;
6359
+ output: typeof FinishProviderLoginResponseSchema;
6360
+ },
6218
6361
  }>;
6219
6362