mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-01 23:40:45 +00:00
Add event prefix + arbitrary JSON options for IFTTT.
This commit is contained in:
parent
5146c87940
commit
513aa7804d
481
api/csharp/Chirpstack/api/Application.cs
vendored
481
api/csharp/Chirpstack/api/Application.cs
vendored
@ -163,204 +163,205 @@ namespace Chirpstack.Api {
|
|||||||
"bG90VGhpbmdzSW50ZWdyYXRpb24iVwojVXBkYXRlUGlsb3RUaGluZ3NJbnRl",
|
"bG90VGhpbmdzSW50ZWdyYXRpb24iVwojVXBkYXRlUGlsb3RUaGluZ3NJbnRl",
|
||||||
"Z3JhdGlvblJlcXVlc3QSMAoLaW50ZWdyYXRpb24YASABKAsyGy5hcGkuUGls",
|
"Z3JhdGlvblJlcXVlc3QSMAoLaW50ZWdyYXRpb24YASABKAsyGy5hcGkuUGls",
|
||||||
"b3RUaGluZ3NJbnRlZ3JhdGlvbiI9CiNEZWxldGVQaWxvdFRoaW5nc0ludGVn",
|
"b3RUaGluZ3NJbnRlZ3JhdGlvbiI9CiNEZWxldGVQaWxvdFRoaW5nc0ludGVn",
|
||||||
"cmF0aW9uUmVxdWVzdBIWCg5hcHBsaWNhdGlvbl9pZBgBIAEoCSJOChBJZnR0",
|
"cmF0aW9uUmVxdWVzdBIWCg5hcHBsaWNhdGlvbl9pZBgBIAEoCSJ8ChBJZnR0",
|
||||||
"dEludGVncmF0aW9uEhYKDmFwcGxpY2F0aW9uX2lkGAEgASgJEgsKA2tleRgC",
|
"dEludGVncmF0aW9uEhYKDmFwcGxpY2F0aW9uX2lkGAEgASgJEgsKA2tleRgC",
|
||||||
"IAEoCRIVCg11cGxpbmtfdmFsdWVzGAMgAygJIksKHUNyZWF0ZUlmdHR0SW50",
|
"IAEoCRIVCg11cGxpbmtfdmFsdWVzGAMgAygJEhYKDmFyYml0cmFyeV9qc29u",
|
||||||
"ZWdyYXRpb25SZXF1ZXN0EioKC2ludGVncmF0aW9uGAEgASgLMhUuYXBpLklm",
|
"GAQgASgIEhQKDGV2ZW50X3ByZWZpeBgFIAEoCSJLCh1DcmVhdGVJZnR0dElu",
|
||||||
"dHR0SW50ZWdyYXRpb24iNAoaR2V0SWZ0dHRJbnRlZ3JhdGlvblJlcXVlc3QS",
|
"dGVncmF0aW9uUmVxdWVzdBIqCgtpbnRlZ3JhdGlvbhgBIAEoCzIVLmFwaS5J",
|
||||||
"FgoOYXBwbGljYXRpb25faWQYASABKAkiSQobR2V0SWZ0dHRJbnRlZ3JhdGlv",
|
"ZnR0dEludGVncmF0aW9uIjQKGkdldElmdHR0SW50ZWdyYXRpb25SZXF1ZXN0",
|
||||||
"blJlc3BvbnNlEioKC2ludGVncmF0aW9uGAEgASgLMhUuYXBpLklmdHR0SW50",
|
"EhYKDmFwcGxpY2F0aW9uX2lkGAEgASgJIkkKG0dldElmdHR0SW50ZWdyYXRp",
|
||||||
"ZWdyYXRpb24iSwodVXBkYXRlSWZ0dHRJbnRlZ3JhdGlvblJlcXVlc3QSKgoL",
|
"b25SZXNwb25zZRIqCgtpbnRlZ3JhdGlvbhgBIAEoCzIVLmFwaS5JZnR0dElu",
|
||||||
"aW50ZWdyYXRpb24YASABKAsyFS5hcGkuSWZ0dHRJbnRlZ3JhdGlvbiI3Ch1E",
|
"dGVncmF0aW9uIksKHVVwZGF0ZUlmdHR0SW50ZWdyYXRpb25SZXF1ZXN0EioK",
|
||||||
"ZWxldGVJZnR0dEludGVncmF0aW9uUmVxdWVzdBIWCg5hcHBsaWNhdGlvbl9p",
|
"C2ludGVncmF0aW9uGAEgASgLMhUuYXBpLklmdHR0SW50ZWdyYXRpb24iNwod",
|
||||||
"ZBgBIAEoCSJJCi9HZW5lcmF0ZU1xdHRJbnRlZ3JhdGlvbkNsaWVudENlcnRp",
|
"RGVsZXRlSWZ0dHRJbnRlZ3JhdGlvblJlcXVlc3QSFgoOYXBwbGljYXRpb25f",
|
||||||
"ZmljYXRlUmVxdWVzdBIWCg5hcHBsaWNhdGlvbl9pZBgBIAEoCSKWAQowR2Vu",
|
"aWQYASABKAkiSQovR2VuZXJhdGVNcXR0SW50ZWdyYXRpb25DbGllbnRDZXJ0",
|
||||||
"ZXJhdGVNcXR0SW50ZWdyYXRpb25DbGllbnRDZXJ0aWZpY2F0ZVJlc3BvbnNl",
|
"aWZpY2F0ZVJlcXVlc3QSFgoOYXBwbGljYXRpb25faWQYASABKAkilgEKMEdl",
|
||||||
"EhAKCHRsc19jZXJ0GAEgASgJEg8KB3Rsc19rZXkYAiABKAkSDwoHY2FfY2Vy",
|
"bmVyYXRlTXF0dEludGVncmF0aW9uQ2xpZW50Q2VydGlmaWNhdGVSZXNwb25z",
|
||||||
"dBgDIAEoCRIuCgpleHBpcmVzX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVm",
|
"ZRIQCgh0bHNfY2VydBgBIAEoCRIPCgd0bHNfa2V5GAIgASgJEg8KB2NhX2Nl",
|
||||||
"LlRpbWVzdGFtcCoiCghFbmNvZGluZxIICgRKU09OEAASDAoIUFJPVE9CVUYQ",
|
"cnQYAyABKAkSLgoKZXhwaXJlc19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1",
|
||||||
"ASq/AQoPSW50ZWdyYXRpb25LaW5kEggKBEhUVFAQABINCglJTkZMVVhfREIQ",
|
"Zi5UaW1lc3RhbXAqIgoIRW5jb2RpbmcSCAoESlNPThAAEgwKCFBST1RPQlVG",
|
||||||
"ARIQCgxUSElOR1NfQk9BUkQQAhIOCgpNWV9ERVZJQ0VTEAMSDgoKTE9SQV9D",
|
"EAEqvwEKD0ludGVncmF0aW9uS2luZBIICgRIVFRQEAASDQoJSU5GTFVYX0RC",
|
||||||
"TE9VRBAEEg8KC0dDUF9QVUJfU1VCEAUSCwoHQVdTX1NOUxAGEhUKEUFaVVJF",
|
"EAESEAoMVEhJTkdTX0JPQVJEEAISDgoKTVlfREVWSUNFUxADEg4KCkxPUkFf",
|
||||||
"X1NFUlZJQ0VfQlVTEAcSEAoMUElMT1RfVEhJTkdTEAgSDwoLTVFUVF9HTE9C",
|
"Q0xPVUQQBBIPCgtHQ1BfUFVCX1NVQhAFEgsKB0FXU19TTlMQBhIVChFBWlVS",
|
||||||
"QUwQCRIJCgVJRlRUVBAKKj8KEUluZmx1eERiUHJlY2lzaW9uEgYKAk5TEAAS",
|
"RV9TRVJWSUNFX0JVUxAHEhAKDFBJTE9UX1RISU5HUxAIEg8KC01RVFRfR0xP",
|
||||||
"BQoBVRABEgYKAk1TEAISBQoBUxADEgUKAU0QBBIFCgFIEAUqMQoPSW5mbHV4",
|
"QkFMEAkSCQoFSUZUVFQQCio/ChFJbmZsdXhEYlByZWNpc2lvbhIGCgJOUxAA",
|
||||||
"RGJWZXJzaW9uEg4KCklORkxVWERCXzEQABIOCgpJTkZMVVhEQl8yEAEyuDwK",
|
"EgUKAVUQARIGCgJNUxACEgUKAVMQAxIFCgFNEAQSBQoBSBAFKjEKD0luZmx1",
|
||||||
"EkFwcGxpY2F0aW9uU2VydmljZRJlCgZDcmVhdGUSHS5hcGkuQ3JlYXRlQXBw",
|
"eERiVmVyc2lvbhIOCgpJTkZMVVhEQl8xEAASDgoKSU5GTFVYREJfMhABMrg8",
|
||||||
"bGljYXRpb25SZXF1ZXN0Gh4uYXBpLkNyZWF0ZUFwcGxpY2F0aW9uUmVzcG9u",
|
"ChJBcHBsaWNhdGlvblNlcnZpY2USZQoGQ3JlYXRlEh0uYXBpLkNyZWF0ZUFw",
|
||||||
"c2UiHILT5JMCFiIRL2FwaS9hcHBsaWNhdGlvbnM6ASoSXgoDR2V0EhouYXBp",
|
"cGxpY2F0aW9uUmVxdWVzdBoeLmFwaS5DcmVhdGVBcHBsaWNhdGlvblJlc3Bv",
|
||||||
"LkdldEFwcGxpY2F0aW9uUmVxdWVzdBobLmFwaS5HZXRBcHBsaWNhdGlvblJl",
|
"bnNlIhyC0+STAhYiES9hcGkvYXBwbGljYXRpb25zOgEqEl4KA0dldBIaLmFw",
|
||||||
"c3BvbnNlIh6C0+STAhgSFi9hcGkvYXBwbGljYXRpb25zL3tpZH0SbgoGVXBk",
|
"aS5HZXRBcHBsaWNhdGlvblJlcXVlc3QaGy5hcGkuR2V0QXBwbGljYXRpb25S",
|
||||||
"YXRlEh0uYXBpLlVwZGF0ZUFwcGxpY2F0aW9uUmVxdWVzdBoWLmdvb2dsZS5w",
|
"ZXNwb25zZSIegtPkkwIYEhYvYXBpL2FwcGxpY2F0aW9ucy97aWR9Em4KBlVw",
|
||||||
"cm90b2J1Zi5FbXB0eSItgtPkkwInGiIvYXBpL2FwcGxpY2F0aW9ucy97YXBw",
|
"ZGF0ZRIdLmFwaS5VcGRhdGVBcHBsaWNhdGlvblJlcXVlc3QaFi5nb29nbGUu",
|
||||||
"bGljYXRpb24uaWR9OgEqEl8KBkRlbGV0ZRIdLmFwaS5EZWxldGVBcHBsaWNh",
|
"cHJvdG9idWYuRW1wdHkiLYLT5JMCJxoiL2FwaS9hcHBsaWNhdGlvbnMve2Fw",
|
||||||
"dGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHoLT5JMCGCoW",
|
"cGxpY2F0aW9uLmlkfToBKhJfCgZEZWxldGUSHS5hcGkuRGVsZXRlQXBwbGlj",
|
||||||
"L2FwaS9hcHBsaWNhdGlvbnMve2lkfRJeCgRMaXN0EhwuYXBpLkxpc3RBcHBs",
|
"YXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih6C0+STAhgq",
|
||||||
"aWNhdGlvbnNSZXF1ZXN0Gh0uYXBpLkxpc3RBcHBsaWNhdGlvbnNSZXNwb25z",
|
"Fi9hcGkvYXBwbGljYXRpb25zL3tpZH0SXgoETGlzdBIcLmFwaS5MaXN0QXBw",
|
||||||
"ZSIZgtPkkwITEhEvYXBpL2FwcGxpY2F0aW9ucxKIAQoQTGlzdEludGVncmF0",
|
"bGljYXRpb25zUmVxdWVzdBodLmFwaS5MaXN0QXBwbGljYXRpb25zUmVzcG9u",
|
||||||
"aW9ucxIcLmFwaS5MaXN0SW50ZWdyYXRpb25zUmVxdWVzdBodLmFwaS5MaXN0",
|
"c2UiGYLT5JMCExIRL2FwaS9hcHBsaWNhdGlvbnMSiAEKEExpc3RJbnRlZ3Jh",
|
||||||
"SW50ZWdyYXRpb25zUmVzcG9uc2UiN4LT5JMCMRIvL2FwaS9hcHBsaWNhdGlv",
|
"dGlvbnMSHC5hcGkuTGlzdEludGVncmF0aW9uc1JlcXVlc3QaHS5hcGkuTGlz",
|
||||||
"bnMve2FwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMSnwEKFUNyZWF0ZUh0",
|
"dEludGVncmF0aW9uc1Jlc3BvbnNlIjeC0+STAjESLy9hcGkvYXBwbGljYXRp",
|
||||||
"dHBJbnRlZ3JhdGlvbhIhLmFwaS5DcmVhdGVIdHRwSW50ZWdyYXRpb25SZXF1",
|
"b25zL3thcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zEp8BChVDcmVhdGVI",
|
||||||
"ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IkuC0+STAkUiQC9hcGkvYXBw",
|
"dHRwSW50ZWdyYXRpb24SIS5hcGkuQ3JlYXRlSHR0cEludGVncmF0aW9uUmVx",
|
||||||
|
"dWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJLgtPkkwJFIkAvYXBpL2Fw",
|
||||||
|
"cGxpY2F0aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2ludGVn",
|
||||||
|
"cmF0aW9ucy9odHRwOgEqEpMBChJHZXRIdHRwSW50ZWdyYXRpb24SHi5hcGku",
|
||||||
|
"R2V0SHR0cEludGVncmF0aW9uUmVxdWVzdBofLmFwaS5HZXRIdHRwSW50ZWdy",
|
||||||
|
"YXRpb25SZXNwb25zZSI8gtPkkwI2EjQvYXBpL2FwcGxpY2F0aW9ucy97YXBw",
|
||||||
|
"bGljYXRpb25faWR9L2ludGVncmF0aW9ucy9odHRwEp8BChVVcGRhdGVIdHRw",
|
||||||
|
"SW50ZWdyYXRpb24SIS5hcGkuVXBkYXRlSHR0cEludGVncmF0aW9uUmVxdWVz",
|
||||||
|
"dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJLgtPkkwJFGkAvYXBpL2FwcGxp",
|
||||||
|
"Y2F0aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2ludGVncmF0",
|
||||||
|
"aW9ucy9odHRwOgEqEpABChVEZWxldGVIdHRwSW50ZWdyYXRpb24SIS5hcGku",
|
||||||
|
"RGVsZXRlSHR0cEludGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1",
|
||||||
|
"Zi5FbXB0eSI8gtPkkwI2KjQvYXBpL2FwcGxpY2F0aW9ucy97YXBwbGljYXRp",
|
||||||
|
"b25faWR9L2ludGVncmF0aW9ucy9odHRwEqsBChlDcmVhdGVJbmZsdXhEYklu",
|
||||||
|
"dGVncmF0aW9uEiUuYXBpLkNyZWF0ZUluZmx1eERiSW50ZWdyYXRpb25SZXF1",
|
||||||
|
"ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ik+C0+STAkkiRC9hcGkvYXBw",
|
||||||
"bGljYXRpb25zL3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50ZWdy",
|
"bGljYXRpb25zL3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50ZWdy",
|
||||||
"YXRpb25zL2h0dHA6ASoSkwEKEkdldEh0dHBJbnRlZ3JhdGlvbhIeLmFwaS5H",
|
"YXRpb25zL2luZmx1eGRiOgEqEqMBChZHZXRJbmZsdXhEYkludGVncmF0aW9u",
|
||||||
"ZXRIdHRwSW50ZWdyYXRpb25SZXF1ZXN0Gh8uYXBpLkdldEh0dHBJbnRlZ3Jh",
|
"EiIuYXBpLkdldEluZmx1eERiSW50ZWdyYXRpb25SZXF1ZXN0GiMuYXBpLkdl",
|
||||||
"dGlvblJlc3BvbnNlIjyC0+STAjYSNC9hcGkvYXBwbGljYXRpb25zL3thcHBs",
|
"dEluZmx1eERiSW50ZWdyYXRpb25SZXNwb25zZSJAgtPkkwI6EjgvYXBpL2Fw",
|
||||||
"aWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL2h0dHASnwEKFVVwZGF0ZUh0dHBJ",
|
"cGxpY2F0aW9ucy97YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9pbmZs",
|
||||||
"bnRlZ3JhdGlvbhIhLmFwaS5VcGRhdGVIdHRwSW50ZWdyYXRpb25SZXF1ZXN0",
|
"dXhkYhKrAQoZVXBkYXRlSW5mbHV4RGJJbnRlZ3JhdGlvbhIlLmFwaS5VcGRh",
|
||||||
"GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IkuC0+STAkUaQC9hcGkvYXBwbGlj",
|
"dGVJbmZsdXhEYkludGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1",
|
||||||
"YXRpb25zL3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRp",
|
"Zi5FbXB0eSJPgtPkkwJJGkQvYXBpL2FwcGxpY2F0aW9ucy97aW50ZWdyYXRp",
|
||||||
"b25zL2h0dHA6ASoSkAEKFURlbGV0ZUh0dHBJbnRlZ3JhdGlvbhIhLmFwaS5E",
|
"b24uYXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9pbmZsdXhkYjoBKhKc",
|
||||||
"ZWxldGVIdHRwSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVm",
|
"AQoZRGVsZXRlSW5mbHV4RGJJbnRlZ3JhdGlvbhIlLmFwaS5EZWxldGVJbmZs",
|
||||||
"LkVtcHR5IjyC0+STAjYqNC9hcGkvYXBwbGljYXRpb25zL3thcHBsaWNhdGlv",
|
"dXhEYkludGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0",
|
||||||
"bl9pZH0vaW50ZWdyYXRpb25zL2h0dHASqwEKGUNyZWF0ZUluZmx1eERiSW50",
|
"eSJAgtPkkwI6KjgvYXBpL2FwcGxpY2F0aW9ucy97YXBwbGljYXRpb25faWR9",
|
||||||
"ZWdyYXRpb24SJS5hcGkuQ3JlYXRlSW5mbHV4RGJJbnRlZ3JhdGlvblJlcXVl",
|
"L2ludGVncmF0aW9ucy9pbmZsdXhkYhK0AQocQ3JlYXRlVGhpbmdzQm9hcmRJ",
|
||||||
"c3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiT4LT5JMCSSJEL2FwaS9hcHBs",
|
"bnRlZ3JhdGlvbhIoLmFwaS5DcmVhdGVUaGluZ3NCb2FyZEludGVncmF0aW9u",
|
||||||
"aWNhdGlvbnMve2ludGVncmF0aW9uLmFwcGxpY2F0aW9uX2lkfS9pbnRlZ3Jh",
|
"UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJSgtPkkwJMIkcvYXBp",
|
||||||
"dGlvbnMvaW5mbHV4ZGI6ASoSowEKFkdldEluZmx1eERiSW50ZWdyYXRpb24S",
|
"L2FwcGxpY2F0aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2lu",
|
||||||
"Ii5hcGkuR2V0SW5mbHV4RGJJbnRlZ3JhdGlvblJlcXVlc3QaIy5hcGkuR2V0",
|
"dGVncmF0aW9ucy90aGluZ3Nib2FyZDoBKhKvAQoZR2V0VGhpbmdzQm9hcmRJ",
|
||||||
"SW5mbHV4RGJJbnRlZ3JhdGlvblJlc3BvbnNlIkCC0+STAjoSOC9hcGkvYXBw",
|
"bnRlZ3JhdGlvbhIlLmFwaS5HZXRUaGluZ3NCb2FyZEludGVncmF0aW9uUmVx",
|
||||||
"bGljYXRpb25zL3thcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL2luZmx1",
|
"dWVzdBomLmFwaS5HZXRUaGluZ3NCb2FyZEludGVncmF0aW9uUmVzcG9uc2Ui",
|
||||||
"eGRiEqsBChlVcGRhdGVJbmZsdXhEYkludGVncmF0aW9uEiUuYXBpLlVwZGF0",
|
"Q4LT5JMCPRI7L2FwaS9hcHBsaWNhdGlvbnMve2FwcGxpY2F0aW9uX2lkfS9p",
|
||||||
"ZUluZmx1eERiSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVm",
|
"bnRlZ3JhdGlvbnMvdGhpbmdzYm9hcmQStAEKHFVwZGF0ZVRoaW5nc0JvYXJk",
|
||||||
"LkVtcHR5Ik+C0+STAkkaRC9hcGkvYXBwbGljYXRpb25zL3tpbnRlZ3JhdGlv",
|
"SW50ZWdyYXRpb24SKC5hcGkuVXBkYXRlVGhpbmdzQm9hcmRJbnRlZ3JhdGlv",
|
||||||
"bi5hcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL2luZmx1eGRiOgEqEpwB",
|
"blJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiUoLT5JMCTBpHL2Fw",
|
||||||
"ChlEZWxldGVJbmZsdXhEYkludGVncmF0aW9uEiUuYXBpLkRlbGV0ZUluZmx1",
|
"aS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9uLmFwcGxpY2F0aW9uX2lkfS9p",
|
||||||
"eERiSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5",
|
"bnRlZ3JhdGlvbnMvdGhpbmdzYm9hcmQ6ASoSpQEKHERlbGV0ZVRoaW5nc0Jv",
|
||||||
"IkCC0+STAjoqOC9hcGkvYXBwbGljYXRpb25zL3thcHBsaWNhdGlvbl9pZH0v",
|
"YXJkSW50ZWdyYXRpb24SKC5hcGkuRGVsZXRlVGhpbmdzQm9hcmRJbnRlZ3Jh",
|
||||||
"aW50ZWdyYXRpb25zL2luZmx1eGRiErQBChxDcmVhdGVUaGluZ3NCb2FyZElu",
|
"dGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiQ4LT5JMCPSo7",
|
||||||
"dGVncmF0aW9uEiguYXBpLkNyZWF0ZVRoaW5nc0JvYXJkSW50ZWdyYXRpb25S",
|
"L2FwaS9hcHBsaWNhdGlvbnMve2FwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlv",
|
||||||
"ZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IlKC0+STAkwiRy9hcGkv",
|
"bnMvdGhpbmdzYm9hcmQSrgEKGkNyZWF0ZU15RGV2aWNlc0ludGVncmF0aW9u",
|
||||||
|
"EiYuYXBpLkNyZWF0ZU15RGV2aWNlc0ludGVncmF0aW9uUmVxdWVzdBoWLmdv",
|
||||||
|
"b2dsZS5wcm90b2J1Zi5FbXB0eSJQgtPkkwJKIkUvYXBpL2FwcGxpY2F0aW9u",
|
||||||
|
"cy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9t",
|
||||||
|
"eWRldmljZXM6ASoSpwEKF0dldE15RGV2aWNlc0ludGVncmF0aW9uEiMuYXBp",
|
||||||
|
"LkdldE15RGV2aWNlc0ludGVncmF0aW9uUmVxdWVzdBokLmFwaS5HZXRNeURl",
|
||||||
|
"dmljZXNJbnRlZ3JhdGlvblJlc3BvbnNlIkGC0+STAjsSOS9hcGkvYXBwbGlj",
|
||||||
|
"YXRpb25zL3thcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL215ZGV2aWNl",
|
||||||
|
"cxKuAQoaVXBkYXRlTXlEZXZpY2VzSW50ZWdyYXRpb24SJi5hcGkuVXBkYXRl",
|
||||||
|
"TXlEZXZpY2VzSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVm",
|
||||||
|
"LkVtcHR5IlCC0+STAkoaRS9hcGkvYXBwbGljYXRpb25zL3tpbnRlZ3JhdGlv",
|
||||||
|
"bi5hcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL215ZGV2aWNlczoBKhKf",
|
||||||
|
"AQoaRGVsZXRlTXlEZXZpY2VzSW50ZWdyYXRpb24SJi5hcGkuRGVsZXRlTXlE",
|
||||||
|
"ZXZpY2VzSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVt",
|
||||||
|
"cHR5IkGC0+STAjsqOS9hcGkvYXBwbGljYXRpb25zL3thcHBsaWNhdGlvbl9p",
|
||||||
|
"ZH0vaW50ZWdyYXRpb25zL215ZGV2aWNlcxKuAQoaQ3JlYXRlTG9yYUNsb3Vk",
|
||||||
|
"SW50ZWdyYXRpb24SJi5hcGkuQ3JlYXRlTG9yYUNsb3VkSW50ZWdyYXRpb25S",
|
||||||
|
"ZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IlCC0+STAkoiRS9hcGkv",
|
||||||
"YXBwbGljYXRpb25zL3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50",
|
"YXBwbGljYXRpb25zL3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50",
|
||||||
"ZWdyYXRpb25zL3RoaW5nc2JvYXJkOgEqEq8BChlHZXRUaGluZ3NCb2FyZElu",
|
"ZWdyYXRpb25zL2xvcmFjbG91ZDoBKhKnAQoXR2V0TG9yYUNsb3VkSW50ZWdy",
|
||||||
"dGVncmF0aW9uEiUuYXBpLkdldFRoaW5nc0JvYXJkSW50ZWdyYXRpb25SZXF1",
|
"YXRpb24SIy5hcGkuR2V0TG9yYUNsb3VkSW50ZWdyYXRpb25SZXF1ZXN0GiQu",
|
||||||
"ZXN0GiYuYXBpLkdldFRoaW5nc0JvYXJkSW50ZWdyYXRpb25SZXNwb25zZSJD",
|
"YXBpLkdldExvcmFDbG91ZEludGVncmF0aW9uUmVzcG9uc2UiQYLT5JMCOxI5",
|
||||||
"gtPkkwI9EjsvYXBpL2FwcGxpY2F0aW9ucy97YXBwbGljYXRpb25faWR9L2lu",
|
"L2FwaS9hcHBsaWNhdGlvbnMve2FwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlv",
|
||||||
"dGVncmF0aW9ucy90aGluZ3Nib2FyZBK0AQocVXBkYXRlVGhpbmdzQm9hcmRJ",
|
"bnMvbG9yYWNsb3VkEq4BChpVcGRhdGVMb3JhQ2xvdWRJbnRlZ3JhdGlvbhIm",
|
||||||
"bnRlZ3JhdGlvbhIoLmFwaS5VcGRhdGVUaGluZ3NCb2FyZEludGVncmF0aW9u",
|
"LmFwaS5VcGRhdGVMb3JhQ2xvdWRJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29n",
|
||||||
"UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJSgtPkkwJMGkcvYXBp",
|
"bGUucHJvdG9idWYuRW1wdHkiUILT5JMCShpFL2FwaS9hcHBsaWNhdGlvbnMv",
|
||||||
"L2FwcGxpY2F0aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2lu",
|
"e2ludGVncmF0aW9uLmFwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvbG9y",
|
||||||
"dGVncmF0aW9ucy90aGluZ3Nib2FyZDoBKhKlAQocRGVsZXRlVGhpbmdzQm9h",
|
"YWNsb3VkOgEqEp8BChpEZWxldGVMb3JhQ2xvdWRJbnRlZ3JhdGlvbhImLmFw",
|
||||||
"cmRJbnRlZ3JhdGlvbhIoLmFwaS5EZWxldGVUaGluZ3NCb2FyZEludGVncmF0",
|
"aS5EZWxldGVMb3JhQ2xvdWRJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUu",
|
||||||
"aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJDgtPkkwI9Kjsv",
|
"cHJvdG9idWYuRW1wdHkiQYLT5JMCOyo5L2FwaS9hcHBsaWNhdGlvbnMve2Fw",
|
||||||
|
"cGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvbG9yYWNsb3VkErABChpDcmVh",
|
||||||
|
"dGVHY3BQdWJTdWJJbnRlZ3JhdGlvbhImLmFwaS5DcmVhdGVHY3BQdWJTdWJJ",
|
||||||
|
"bnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiUoLT",
|
||||||
|
"5JMCTCJHL2FwaS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9uLmFwcGxpY2F0",
|
||||||
|
"aW9uX2lkfS9pbnRlZ3JhdGlvbnMvZ2NwLXB1Yi1zdWI6ASoSqQEKF0dldEdj",
|
||||||
|
"cFB1YlN1YkludGVncmF0aW9uEiMuYXBpLkdldEdjcFB1YlN1YkludGVncmF0",
|
||||||
|
"aW9uUmVxdWVzdBokLmFwaS5HZXRHY3BQdWJTdWJJbnRlZ3JhdGlvblJlc3Bv",
|
||||||
|
"bnNlIkOC0+STAj0SOy9hcGkvYXBwbGljYXRpb25zL3thcHBsaWNhdGlvbl9p",
|
||||||
|
"ZH0vaW50ZWdyYXRpb25zL2djcC1wdWItc3ViErABChpVcGRhdGVHY3BQdWJT",
|
||||||
|
"dWJJbnRlZ3JhdGlvbhImLmFwaS5VcGRhdGVHY3BQdWJTdWJJbnRlZ3JhdGlv",
|
||||||
|
"blJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiUoLT5JMCTBpHL2Fw",
|
||||||
|
"aS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9uLmFwcGxpY2F0aW9uX2lkfS9p",
|
||||||
|
"bnRlZ3JhdGlvbnMvZ2NwLXB1Yi1zdWI6ASoSoQEKGkRlbGV0ZUdjcFB1YlN1",
|
||||||
|
"YkludGVncmF0aW9uEiYuYXBpLkRlbGV0ZUdjcFB1YlN1YkludGVncmF0aW9u",
|
||||||
|
"UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJDgtPkkwI9KjsvYXBp",
|
||||||
|
"L2FwcGxpY2F0aW9ucy97YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9n",
|
||||||
|
"Y3AtcHViLXN1YhKmAQoXQ3JlYXRlQXdzU25zSW50ZWdyYXRpb24SIy5hcGku",
|
||||||
|
"Q3JlYXRlQXdzU25zSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3Rv",
|
||||||
|
"YnVmLkVtcHR5Ik6C0+STAkgiQy9hcGkvYXBwbGljYXRpb25zL3tpbnRlZ3Jh",
|
||||||
|
"dGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL2F3cy1zbnM6ASoS",
|
||||||
|
"nAEKFEdldEF3c1Nuc0ludGVncmF0aW9uEiAuYXBpLkdldEF3c1Nuc0ludGVn",
|
||||||
|
"cmF0aW9uUmVxdWVzdBohLmFwaS5HZXRBd3NTbnNJbnRlZ3JhdGlvblJlc3Bv",
|
||||||
|
"bnNlIj+C0+STAjkSNy9hcGkvYXBwbGljYXRpb25zL3thcHBsaWNhdGlvbl9p",
|
||||||
|
"ZH0vaW50ZWdyYXRpb25zL2F3cy1zbnMSpgEKF1VwZGF0ZUF3c1Nuc0ludGVn",
|
||||||
|
"cmF0aW9uEiMuYXBpLlVwZGF0ZUF3c1Nuc0ludGVncmF0aW9uUmVxdWVzdBoW",
|
||||||
|
"Lmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJOgtPkkwJIGkMvYXBpL2FwcGxpY2F0",
|
||||||
|
"aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2ludGVncmF0aW9u",
|
||||||
|
"cy9hd3Mtc25zOgEqEpcBChdEZWxldGVBd3NTbnNJbnRlZ3JhdGlvbhIjLmFw",
|
||||||
|
"aS5EZWxldGVBd3NTbnNJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJv",
|
||||||
|
"dG9idWYuRW1wdHkiP4LT5JMCOSo3L2FwaS9hcHBsaWNhdGlvbnMve2FwcGxp",
|
||||||
|
"Y2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvYXdzLXNucxLCAQogQ3JlYXRlQXp1",
|
||||||
|
"cmVTZXJ2aWNlQnVzSW50ZWdyYXRpb24SLC5hcGkuQ3JlYXRlQXp1cmVTZXJ2",
|
||||||
|
"aWNlQnVzSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVt",
|
||||||
|
"cHR5IliC0+STAlIiTS9hcGkvYXBwbGljYXRpb25zL3tpbnRlZ3JhdGlvbi5h",
|
||||||
|
"cHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL2F6dXJlLXNlcnZpY2UtYnVz",
|
||||||
|
"OgEqEsEBCh1HZXRBenVyZVNlcnZpY2VCdXNJbnRlZ3JhdGlvbhIpLmFwaS5H",
|
||||||
|
"ZXRBenVyZVNlcnZpY2VCdXNJbnRlZ3JhdGlvblJlcXVlc3QaKi5hcGkuR2V0",
|
||||||
|
"QXp1cmVTZXJ2aWNlQnVzSW50ZWdyYXRpb25SZXNwb25zZSJJgtPkkwJDEkEv",
|
||||||
"YXBpL2FwcGxpY2F0aW9ucy97YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9u",
|
"YXBpL2FwcGxpY2F0aW9ucy97YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9u",
|
||||||
"cy90aGluZ3Nib2FyZBKuAQoaQ3JlYXRlTXlEZXZpY2VzSW50ZWdyYXRpb24S",
|
"cy9henVyZS1zZXJ2aWNlLWJ1cxLCAQogVXBkYXRlQXp1cmVTZXJ2aWNlQnVz",
|
||||||
"Ji5hcGkuQ3JlYXRlTXlEZXZpY2VzSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29v",
|
"SW50ZWdyYXRpb24SLC5hcGkuVXBkYXRlQXp1cmVTZXJ2aWNlQnVzSW50ZWdy",
|
||||||
"Z2xlLnByb3RvYnVmLkVtcHR5IlCC0+STAkoiRS9hcGkvYXBwbGljYXRpb25z",
|
"YXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IliC0+STAlIa",
|
||||||
"L3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL215",
|
"TS9hcGkvYXBwbGljYXRpb25zL3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9p",
|
||||||
"ZGV2aWNlczoBKhKnAQoXR2V0TXlEZXZpY2VzSW50ZWdyYXRpb24SIy5hcGku",
|
"ZH0vaW50ZWdyYXRpb25zL2F6dXJlLXNlcnZpY2UtYnVzOgEqErMBCiBEZWxl",
|
||||||
"R2V0TXlEZXZpY2VzSW50ZWdyYXRpb25SZXF1ZXN0GiQuYXBpLkdldE15RGV2",
|
"dGVBenVyZVNlcnZpY2VCdXNJbnRlZ3JhdGlvbhIsLmFwaS5EZWxldGVBenVy",
|
||||||
"aWNlc0ludGVncmF0aW9uUmVzcG9uc2UiQYLT5JMCOxI5L2FwaS9hcHBsaWNh",
|
"ZVNlcnZpY2VCdXNJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9i",
|
||||||
"dGlvbnMve2FwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvbXlkZXZpY2Vz",
|
"dWYuRW1wdHkiSYLT5JMCQypBL2FwaS9hcHBsaWNhdGlvbnMve2FwcGxpY2F0",
|
||||||
"Eq4BChpVcGRhdGVNeURldmljZXNJbnRlZ3JhdGlvbhImLmFwaS5VcGRhdGVN",
|
"aW9uX2lkfS9pbnRlZ3JhdGlvbnMvYXp1cmUtc2VydmljZS1idXMStQEKHENy",
|
||||||
"eURldmljZXNJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYu",
|
"ZWF0ZVBpbG90VGhpbmdzSW50ZWdyYXRpb24SKC5hcGkuQ3JlYXRlUGlsb3RU",
|
||||||
"RW1wdHkiUILT5JMCShpFL2FwaS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9u",
|
"aGluZ3NJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1w",
|
||||||
"LmFwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvbXlkZXZpY2VzOgEqEp8B",
|
"dHkiU4LT5JMCTSJIL2FwaS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9uLmFw",
|
||||||
"ChpEZWxldGVNeURldmljZXNJbnRlZ3JhdGlvbhImLmFwaS5EZWxldGVNeURl",
|
"cGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvcGlsb3QtdGhpbmdzOgEqErAB",
|
||||||
"dmljZXNJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1w",
|
"ChlHZXRQaWxvdFRoaW5nc0ludGVncmF0aW9uEiUuYXBpLkdldFBpbG90VGhp",
|
||||||
"dHkiQYLT5JMCOyo5L2FwaS9hcHBsaWNhdGlvbnMve2FwcGxpY2F0aW9uX2lk",
|
"bmdzSW50ZWdyYXRpb25SZXF1ZXN0GiYuYXBpLkdldFBpbG90VGhpbmdzSW50",
|
||||||
"fS9pbnRlZ3JhdGlvbnMvbXlkZXZpY2VzEq4BChpDcmVhdGVMb3JhQ2xvdWRJ",
|
"ZWdyYXRpb25SZXNwb25zZSJEgtPkkwI+EjwvYXBpL2FwcGxpY2F0aW9ucy97",
|
||||||
"bnRlZ3JhdGlvbhImLmFwaS5DcmVhdGVMb3JhQ2xvdWRJbnRlZ3JhdGlvblJl",
|
"YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9waWxvdC10aGluZ3MStQEK",
|
||||||
"cXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiUILT5JMCSiJFL2FwaS9h",
|
"HFVwZGF0ZVBpbG90VGhpbmdzSW50ZWdyYXRpb24SKC5hcGkuVXBkYXRlUGls",
|
||||||
"cHBsaWNhdGlvbnMve2ludGVncmF0aW9uLmFwcGxpY2F0aW9uX2lkfS9pbnRl",
|
"b3RUaGluZ3NJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYu",
|
||||||
"Z3JhdGlvbnMvbG9yYWNsb3VkOgEqEqcBChdHZXRMb3JhQ2xvdWRJbnRlZ3Jh",
|
"RW1wdHkiU4LT5JMCTRpIL2FwaS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9u",
|
||||||
"dGlvbhIjLmFwaS5HZXRMb3JhQ2xvdWRJbnRlZ3JhdGlvblJlcXVlc3QaJC5h",
|
"LmFwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvcGlsb3QtdGhpbmdzOgEq",
|
||||||
"cGkuR2V0TG9yYUNsb3VkSW50ZWdyYXRpb25SZXNwb25zZSJBgtPkkwI7Ejkv",
|
"EqYBChxEZWxldGVQaWxvdFRoaW5nc0ludGVncmF0aW9uEiguYXBpLkRlbGV0",
|
||||||
"YXBpL2FwcGxpY2F0aW9ucy97YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9u",
|
"ZVBpbG90VGhpbmdzSW50ZWdyYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3Rv",
|
||||||
"cy9sb3JhY2xvdWQSrgEKGlVwZGF0ZUxvcmFDbG91ZEludGVncmF0aW9uEiYu",
|
"YnVmLkVtcHR5IkSC0+STAj4qPC9hcGkvYXBwbGljYXRpb25zL3thcHBsaWNh",
|
||||||
"YXBpLlVwZGF0ZUxvcmFDbG91ZEludGVncmF0aW9uUmVxdWVzdBoWLmdvb2ds",
|
"dGlvbl9pZH0vaW50ZWdyYXRpb25zL3BpbG90LXRoaW5ncxKiAQoWQ3JlYXRl",
|
||||||
"ZS5wcm90b2J1Zi5FbXB0eSJQgtPkkwJKGkUvYXBpL2FwcGxpY2F0aW9ucy97",
|
"SWZ0dHRJbnRlZ3JhdGlvbhIiLmFwaS5DcmVhdGVJZnR0dEludGVncmF0aW9u",
|
||||||
"aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9sb3Jh",
|
"UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJMgtPkkwJGIkEvYXBp",
|
||||||
"Y2xvdWQ6ASoSnwEKGkRlbGV0ZUxvcmFDbG91ZEludGVncmF0aW9uEiYuYXBp",
|
|
||||||
"LkRlbGV0ZUxvcmFDbG91ZEludGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5w",
|
|
||||||
"cm90b2J1Zi5FbXB0eSJBgtPkkwI7KjkvYXBpL2FwcGxpY2F0aW9ucy97YXBw",
|
|
||||||
"bGljYXRpb25faWR9L2ludGVncmF0aW9ucy9sb3JhY2xvdWQSsAEKGkNyZWF0",
|
|
||||||
"ZUdjcFB1YlN1YkludGVncmF0aW9uEiYuYXBpLkNyZWF0ZUdjcFB1YlN1Yklu",
|
|
||||||
"dGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJSgtPk",
|
|
||||||
"kwJMIkcvYXBpL2FwcGxpY2F0aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRp",
|
|
||||||
"b25faWR9L2ludGVncmF0aW9ucy9nY3AtcHViLXN1YjoBKhKpAQoXR2V0R2Nw",
|
|
||||||
"UHViU3ViSW50ZWdyYXRpb24SIy5hcGkuR2V0R2NwUHViU3ViSW50ZWdyYXRp",
|
|
||||||
"b25SZXF1ZXN0GiQuYXBpLkdldEdjcFB1YlN1YkludGVncmF0aW9uUmVzcG9u",
|
|
||||||
"c2UiQ4LT5JMCPRI7L2FwaS9hcHBsaWNhdGlvbnMve2FwcGxpY2F0aW9uX2lk",
|
|
||||||
"fS9pbnRlZ3JhdGlvbnMvZ2NwLXB1Yi1zdWISsAEKGlVwZGF0ZUdjcFB1YlN1",
|
|
||||||
"YkludGVncmF0aW9uEiYuYXBpLlVwZGF0ZUdjcFB1YlN1YkludGVncmF0aW9u",
|
|
||||||
"UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJSgtPkkwJMGkcvYXBp",
|
|
||||||
"L2FwcGxpY2F0aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2lu",
|
"L2FwcGxpY2F0aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9L2lu",
|
||||||
"dGVncmF0aW9ucy9nY3AtcHViLXN1YjoBKhKhAQoaRGVsZXRlR2NwUHViU3Vi",
|
"dGVncmF0aW9ucy9pZnR0dDoBKhKXAQoTR2V0SWZ0dHRJbnRlZ3JhdGlvbhIf",
|
||||||
"SW50ZWdyYXRpb24SJi5hcGkuRGVsZXRlR2NwUHViU3ViSW50ZWdyYXRpb25S",
|
"LmFwaS5HZXRJZnR0dEludGVncmF0aW9uUmVxdWVzdBogLmFwaS5HZXRJZnR0",
|
||||||
"ZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IkOC0+STAj0qOy9hcGkv",
|
"dEludGVncmF0aW9uUmVzcG9uc2UiPYLT5JMCNxI1L2FwaS9hcHBsaWNhdGlv",
|
||||||
"YXBwbGljYXRpb25zL3thcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL2dj",
|
"bnMve2FwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvaWZ0dHQSogEKFlVw",
|
||||||
"cC1wdWItc3ViEqYBChdDcmVhdGVBd3NTbnNJbnRlZ3JhdGlvbhIjLmFwaS5D",
|
"ZGF0ZUlmdHR0SW50ZWdyYXRpb24SIi5hcGkuVXBkYXRlSWZ0dHRJbnRlZ3Jh",
|
||||||
"cmVhdGVBd3NTbnNJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9i",
|
"dGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiTILT5JMCRhpB",
|
||||||
"dWYuRW1wdHkiToLT5JMCSCJDL2FwaS9hcHBsaWNhdGlvbnMve2ludGVncmF0",
|
|
||||||
"aW9uLmFwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvYXdzLXNuczoBKhKc",
|
|
||||||
"AQoUR2V0QXdzU25zSW50ZWdyYXRpb24SIC5hcGkuR2V0QXdzU25zSW50ZWdy",
|
|
||||||
"YXRpb25SZXF1ZXN0GiEuYXBpLkdldEF3c1Nuc0ludGVncmF0aW9uUmVzcG9u",
|
|
||||||
"c2UiP4LT5JMCORI3L2FwaS9hcHBsaWNhdGlvbnMve2FwcGxpY2F0aW9uX2lk",
|
|
||||||
"fS9pbnRlZ3JhdGlvbnMvYXdzLXNucxKmAQoXVXBkYXRlQXdzU25zSW50ZWdy",
|
|
||||||
"YXRpb24SIy5hcGkuVXBkYXRlQXdzU25zSW50ZWdyYXRpb25SZXF1ZXN0GhYu",
|
|
||||||
"Z29vZ2xlLnByb3RvYnVmLkVtcHR5Ik6C0+STAkgaQy9hcGkvYXBwbGljYXRp",
|
|
||||||
"b25zL3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25z",
|
|
||||||
"L2F3cy1zbnM6ASoSlwEKF0RlbGV0ZUF3c1Nuc0ludGVncmF0aW9uEiMuYXBp",
|
|
||||||
"LkRlbGV0ZUF3c1Nuc0ludGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90",
|
|
||||||
"b2J1Zi5FbXB0eSI/gtPkkwI5KjcvYXBpL2FwcGxpY2F0aW9ucy97YXBwbGlj",
|
|
||||||
"YXRpb25faWR9L2ludGVncmF0aW9ucy9hd3Mtc25zEsIBCiBDcmVhdGVBenVy",
|
|
||||||
"ZVNlcnZpY2VCdXNJbnRlZ3JhdGlvbhIsLmFwaS5DcmVhdGVBenVyZVNlcnZp",
|
|
||||||
"Y2VCdXNJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1w",
|
|
||||||
"dHkiWILT5JMCUiJNL2FwaS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9uLmFw",
|
|
||||||
"cGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvYXp1cmUtc2VydmljZS1idXM6",
|
|
||||||
"ASoSwQEKHUdldEF6dXJlU2VydmljZUJ1c0ludGVncmF0aW9uEikuYXBpLkdl",
|
|
||||||
"dEF6dXJlU2VydmljZUJ1c0ludGVncmF0aW9uUmVxdWVzdBoqLmFwaS5HZXRB",
|
|
||||||
"enVyZVNlcnZpY2VCdXNJbnRlZ3JhdGlvblJlc3BvbnNlIkmC0+STAkMSQS9h",
|
|
||||||
"cGkvYXBwbGljYXRpb25zL3thcHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25z",
|
|
||||||
"L2F6dXJlLXNlcnZpY2UtYnVzEsIBCiBVcGRhdGVBenVyZVNlcnZpY2VCdXNJ",
|
|
||||||
"bnRlZ3JhdGlvbhIsLmFwaS5VcGRhdGVBenVyZVNlcnZpY2VCdXNJbnRlZ3Jh",
|
|
||||||
"dGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiWILT5JMCUhpN",
|
|
||||||
"L2FwaS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9uLmFwcGxpY2F0aW9uX2lk",
|
"L2FwaS9hcHBsaWNhdGlvbnMve2ludGVncmF0aW9uLmFwcGxpY2F0aW9uX2lk",
|
||||||
"fS9pbnRlZ3JhdGlvbnMvYXp1cmUtc2VydmljZS1idXM6ASoSswEKIERlbGV0",
|
"fS9pbnRlZ3JhdGlvbnMvaWZ0dHQ6ASoSkwEKFkRlbGV0ZUlmdHR0SW50ZWdy",
|
||||||
"ZUF6dXJlU2VydmljZUJ1c0ludGVncmF0aW9uEiwuYXBpLkRlbGV0ZUF6dXJl",
|
"YXRpb24SIi5hcGkuRGVsZXRlSWZ0dHRJbnRlZ3JhdGlvblJlcXVlc3QaFi5n",
|
||||||
"U2VydmljZUJ1c0ludGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1",
|
"b29nbGUucHJvdG9idWYuRW1wdHkiPYLT5JMCNyo1L2FwaS9hcHBsaWNhdGlv",
|
||||||
"Zi5FbXB0eSJJgtPkkwJDKkEvYXBpL2FwcGxpY2F0aW9ucy97YXBwbGljYXRp",
|
"bnMve2FwcGxpY2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvaWZ0dHQS4QEKKEdl",
|
||||||
"b25faWR9L2ludGVncmF0aW9ucy9henVyZS1zZXJ2aWNlLWJ1cxK1AQocQ3Jl",
|
"bmVyYXRlTXF0dEludGVncmF0aW9uQ2xpZW50Q2VydGlmaWNhdGUSNC5hcGku",
|
||||||
"YXRlUGlsb3RUaGluZ3NJbnRlZ3JhdGlvbhIoLmFwaS5DcmVhdGVQaWxvdFRo",
|
"R2VuZXJhdGVNcXR0SW50ZWdyYXRpb25DbGllbnRDZXJ0aWZpY2F0ZVJlcXVl",
|
||||||
"aW5nc0ludGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0",
|
"c3QaNS5hcGkuR2VuZXJhdGVNcXR0SW50ZWdyYXRpb25DbGllbnRDZXJ0aWZp",
|
||||||
"eSJTgtPkkwJNIkgvYXBpL2FwcGxpY2F0aW9ucy97aW50ZWdyYXRpb24uYXBw",
|
"Y2F0ZVJlc3BvbnNlIkiC0+STAkIiQC9hcGkvYXBwbGljYXRpb25zL3thcHBs",
|
||||||
"bGljYXRpb25faWR9L2ludGVncmF0aW9ucy9waWxvdC10aGluZ3M6ASoSsAEK",
|
"aWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL21xdHQvY2VydGlmaWNhdGVCaAoR",
|
||||||
"GUdldFBpbG90VGhpbmdzSW50ZWdyYXRpb24SJS5hcGkuR2V0UGlsb3RUaGlu",
|
"aW8uY2hpcnBzdGFjay5hcGlCEEFwcGxpY2F0aW9uUHJvdG9QAVouZ2l0aHVi",
|
||||||
"Z3NJbnRlZ3JhdGlvblJlcXVlc3QaJi5hcGkuR2V0UGlsb3RUaGluZ3NJbnRl",
|
"LmNvbS9jaGlycHN0YWNrL2NoaXJwc3RhY2svYXBpL2dvL3Y0L2FwaaoCDkNo",
|
||||||
"Z3JhdGlvblJlc3BvbnNlIkSC0+STAj4SPC9hcGkvYXBwbGljYXRpb25zL3th",
|
"aXJwc3RhY2suQXBpYgZwcm90bzM="));
|
||||||
"cHBsaWNhdGlvbl9pZH0vaW50ZWdyYXRpb25zL3BpbG90LXRoaW5ncxK1AQoc",
|
|
||||||
"VXBkYXRlUGlsb3RUaGluZ3NJbnRlZ3JhdGlvbhIoLmFwaS5VcGRhdGVQaWxv",
|
|
||||||
"dFRoaW5nc0ludGVncmF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5F",
|
|
||||||
"bXB0eSJTgtPkkwJNGkgvYXBpL2FwcGxpY2F0aW9ucy97aW50ZWdyYXRpb24u",
|
|
||||||
"YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9waWxvdC10aGluZ3M6ASoS",
|
|
||||||
"pgEKHERlbGV0ZVBpbG90VGhpbmdzSW50ZWdyYXRpb24SKC5hcGkuRGVsZXRl",
|
|
||||||
"UGlsb3RUaGluZ3NJbnRlZ3JhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9i",
|
|
||||||
"dWYuRW1wdHkiRILT5JMCPio8L2FwaS9hcHBsaWNhdGlvbnMve2FwcGxpY2F0",
|
|
||||||
"aW9uX2lkfS9pbnRlZ3JhdGlvbnMvcGlsb3QtdGhpbmdzEqIBChZDcmVhdGVJ",
|
|
||||||
"ZnR0dEludGVncmF0aW9uEiIuYXBpLkNyZWF0ZUlmdHR0SW50ZWdyYXRpb25S",
|
|
||||||
"ZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IkyC0+STAkYiQS9hcGkv",
|
|
||||||
"YXBwbGljYXRpb25zL3tpbnRlZ3JhdGlvbi5hcHBsaWNhdGlvbl9pZH0vaW50",
|
|
||||||
"ZWdyYXRpb25zL2lmdHR0OgEqEpcBChNHZXRJZnR0dEludGVncmF0aW9uEh8u",
|
|
||||||
"YXBpLkdldElmdHR0SW50ZWdyYXRpb25SZXF1ZXN0GiAuYXBpLkdldElmdHR0",
|
|
||||||
"SW50ZWdyYXRpb25SZXNwb25zZSI9gtPkkwI3EjUvYXBpL2FwcGxpY2F0aW9u",
|
|
||||||
"cy97YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9pZnR0dBKiAQoWVXBk",
|
|
||||||
"YXRlSWZ0dHRJbnRlZ3JhdGlvbhIiLmFwaS5VcGRhdGVJZnR0dEludGVncmF0",
|
|
||||||
"aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJMgtPkkwJGGkEv",
|
|
||||||
"YXBpL2FwcGxpY2F0aW9ucy97aW50ZWdyYXRpb24uYXBwbGljYXRpb25faWR9",
|
|
||||||
"L2ludGVncmF0aW9ucy9pZnR0dDoBKhKTAQoWRGVsZXRlSWZ0dHRJbnRlZ3Jh",
|
|
||||||
"dGlvbhIiLmFwaS5EZWxldGVJZnR0dEludGVncmF0aW9uUmVxdWVzdBoWLmdv",
|
|
||||||
"b2dsZS5wcm90b2J1Zi5FbXB0eSI9gtPkkwI3KjUvYXBpL2FwcGxpY2F0aW9u",
|
|
||||||
"cy97YXBwbGljYXRpb25faWR9L2ludGVncmF0aW9ucy9pZnR0dBLhAQooR2Vu",
|
|
||||||
"ZXJhdGVNcXR0SW50ZWdyYXRpb25DbGllbnRDZXJ0aWZpY2F0ZRI0LmFwaS5H",
|
|
||||||
"ZW5lcmF0ZU1xdHRJbnRlZ3JhdGlvbkNsaWVudENlcnRpZmljYXRlUmVxdWVz",
|
|
||||||
"dBo1LmFwaS5HZW5lcmF0ZU1xdHRJbnRlZ3JhdGlvbkNsaWVudENlcnRpZmlj",
|
|
||||||
"YXRlUmVzcG9uc2UiSILT5JMCQiJAL2FwaS9hcHBsaWNhdGlvbnMve2FwcGxp",
|
|
||||||
"Y2F0aW9uX2lkfS9pbnRlZ3JhdGlvbnMvbXF0dC9jZXJ0aWZpY2F0ZUJoChFp",
|
|
||||||
"by5jaGlycHN0YWNrLmFwaUIQQXBwbGljYXRpb25Qcm90b1ABWi5naXRodWIu",
|
|
||||||
"Y29tL2NoaXJwc3RhY2svY2hpcnBzdGFjay9hcGkvZ28vdjQvYXBpqgIOQ2hp",
|
|
||||||
"cnBzdGFjay5BcGliBnByb3RvMw=="));
|
|
||||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
|
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
|
||||||
new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, },
|
new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, },
|
||||||
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Chirpstack.Api.Encoding), typeof(global::Chirpstack.Api.IntegrationKind), typeof(global::Chirpstack.Api.InfluxDbPrecision), typeof(global::Chirpstack.Api.InfluxDbVersion), }, null, new pbr::GeneratedClrTypeInfo[] {
|
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Chirpstack.Api.Encoding), typeof(global::Chirpstack.Api.IntegrationKind), typeof(global::Chirpstack.Api.InfluxDbPrecision), typeof(global::Chirpstack.Api.InfluxDbVersion), }, null, new pbr::GeneratedClrTypeInfo[] {
|
||||||
@ -432,7 +433,7 @@ namespace Chirpstack.Api {
|
|||||||
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.GetPilotThingsIntegrationResponse), global::Chirpstack.Api.GetPilotThingsIntegrationResponse.Parser, new[]{ "Integration" }, null, null, null, null),
|
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.GetPilotThingsIntegrationResponse), global::Chirpstack.Api.GetPilotThingsIntegrationResponse.Parser, new[]{ "Integration" }, null, null, null, null),
|
||||||
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.UpdatePilotThingsIntegrationRequest), global::Chirpstack.Api.UpdatePilotThingsIntegrationRequest.Parser, new[]{ "Integration" }, null, null, null, null),
|
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.UpdatePilotThingsIntegrationRequest), global::Chirpstack.Api.UpdatePilotThingsIntegrationRequest.Parser, new[]{ "Integration" }, null, null, null, null),
|
||||||
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.DeletePilotThingsIntegrationRequest), global::Chirpstack.Api.DeletePilotThingsIntegrationRequest.Parser, new[]{ "ApplicationId" }, null, null, null, null),
|
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.DeletePilotThingsIntegrationRequest), global::Chirpstack.Api.DeletePilotThingsIntegrationRequest.Parser, new[]{ "ApplicationId" }, null, null, null, null),
|
||||||
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.IftttIntegration), global::Chirpstack.Api.IftttIntegration.Parser, new[]{ "ApplicationId", "Key", "UplinkValues" }, null, null, null, null),
|
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.IftttIntegration), global::Chirpstack.Api.IftttIntegration.Parser, new[]{ "ApplicationId", "Key", "UplinkValues", "ArbitraryJson", "EventPrefix" }, null, null, null, null),
|
||||||
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.CreateIftttIntegrationRequest), global::Chirpstack.Api.CreateIftttIntegrationRequest.Parser, new[]{ "Integration" }, null, null, null, null),
|
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.CreateIftttIntegrationRequest), global::Chirpstack.Api.CreateIftttIntegrationRequest.Parser, new[]{ "Integration" }, null, null, null, null),
|
||||||
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.GetIftttIntegrationRequest), global::Chirpstack.Api.GetIftttIntegrationRequest.Parser, new[]{ "ApplicationId" }, null, null, null, null),
|
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.GetIftttIntegrationRequest), global::Chirpstack.Api.GetIftttIntegrationRequest.Parser, new[]{ "ApplicationId" }, null, null, null, null),
|
||||||
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.GetIftttIntegrationResponse), global::Chirpstack.Api.GetIftttIntegrationResponse.Parser, new[]{ "Integration" }, null, null, null, null),
|
new pbr::GeneratedClrTypeInfo(typeof(global::Chirpstack.Api.GetIftttIntegrationResponse), global::Chirpstack.Api.GetIftttIntegrationResponse.Parser, new[]{ "Integration" }, null, null, null, null),
|
||||||
@ -6136,7 +6137,7 @@ namespace Chirpstack.Api {
|
|||||||
public const int IntegrationFieldNumber = 1;
|
public const int IntegrationFieldNumber = 1;
|
||||||
private global::Chirpstack.Api.InfluxDbIntegration integration_;
|
private global::Chirpstack.Api.InfluxDbIntegration integration_;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Integration object to update.
|
/// Integration object to update.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
|
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
|
||||||
@ -10997,7 +10998,8 @@ namespace Chirpstack.Api {
|
|||||||
private string credentialsFile_ = "";
|
private string credentialsFile_ = "";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Credentials file.
|
/// Credentials file.
|
||||||
/// This IAM service-account credentials file (JSON) must have the following Pub/Sub roles:
|
/// This IAM service-account credentials file (JSON) must have the following
|
||||||
|
/// Pub/Sub roles:
|
||||||
/// * Pub/Sub Publisher
|
/// * Pub/Sub Publisher
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
||||||
@ -16231,6 +16233,8 @@ namespace Chirpstack.Api {
|
|||||||
applicationId_ = other.applicationId_;
|
applicationId_ = other.applicationId_;
|
||||||
key_ = other.key_;
|
key_ = other.key_;
|
||||||
uplinkValues_ = other.uplinkValues_.Clone();
|
uplinkValues_ = other.uplinkValues_.Clone();
|
||||||
|
arbitraryJson_ = other.arbitraryJson_;
|
||||||
|
eventPrefix_ = other.eventPrefix_;
|
||||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
|
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16287,7 +16291,8 @@ namespace Chirpstack.Api {
|
|||||||
/// You would specify the following fields:
|
/// You would specify the following fields:
|
||||||
/// uplink_values = ["batteryLevel", "buttons_0_pressed"]
|
/// uplink_values = ["batteryLevel", "buttons_0_pressed"]
|
||||||
///
|
///
|
||||||
/// Note: The first value is always used for the DevEUI.
|
/// Notes: The first value is always used for the DevEUI.
|
||||||
|
/// Ignored if arbitrary_json is set to true.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
|
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
|
||||||
@ -16295,6 +16300,42 @@ namespace Chirpstack.Api {
|
|||||||
get { return uplinkValues_; }
|
get { return uplinkValues_; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Field number for the "arbitrary_json" field.</summary>
|
||||||
|
public const int ArbitraryJsonFieldNumber = 4;
|
||||||
|
private bool arbitraryJson_;
|
||||||
|
/// <summary>
|
||||||
|
/// Arbitrary JSON.
|
||||||
|
/// If set to true, ChirpStack events will be sent as-is as arbitrary JSON
|
||||||
|
/// payload. If set to false (default), the 3 JSON values format will be used.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
|
||||||
|
public bool ArbitraryJson {
|
||||||
|
get { return arbitraryJson_; }
|
||||||
|
set {
|
||||||
|
arbitraryJson_ = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Field number for the "event_prefix" field.</summary>
|
||||||
|
public const int EventPrefixFieldNumber = 5;
|
||||||
|
private string eventPrefix_ = "";
|
||||||
|
/// <summary>
|
||||||
|
/// Event prefix.
|
||||||
|
/// If set, the event name will be PREFIX_EVENT. For example if event_prefix
|
||||||
|
/// is set to weatherstation, and uplink event will be sent as
|
||||||
|
/// weatherstation_up to the IFTTT webhook.
|
||||||
|
/// Note: Only characters in the A-Z, a-z and 0-9 range are allowed.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
|
||||||
|
public string EventPrefix {
|
||||||
|
get { return eventPrefix_; }
|
||||||
|
set {
|
||||||
|
eventPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
|
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
|
||||||
public override bool Equals(object other) {
|
public override bool Equals(object other) {
|
||||||
@ -16313,6 +16354,8 @@ namespace Chirpstack.Api {
|
|||||||
if (ApplicationId != other.ApplicationId) return false;
|
if (ApplicationId != other.ApplicationId) return false;
|
||||||
if (Key != other.Key) return false;
|
if (Key != other.Key) return false;
|
||||||
if(!uplinkValues_.Equals(other.uplinkValues_)) return false;
|
if(!uplinkValues_.Equals(other.uplinkValues_)) return false;
|
||||||
|
if (ArbitraryJson != other.ArbitraryJson) return false;
|
||||||
|
if (EventPrefix != other.EventPrefix) return false;
|
||||||
return Equals(_unknownFields, other._unknownFields);
|
return Equals(_unknownFields, other._unknownFields);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16323,6 +16366,8 @@ namespace Chirpstack.Api {
|
|||||||
if (ApplicationId.Length != 0) hash ^= ApplicationId.GetHashCode();
|
if (ApplicationId.Length != 0) hash ^= ApplicationId.GetHashCode();
|
||||||
if (Key.Length != 0) hash ^= Key.GetHashCode();
|
if (Key.Length != 0) hash ^= Key.GetHashCode();
|
||||||
hash ^= uplinkValues_.GetHashCode();
|
hash ^= uplinkValues_.GetHashCode();
|
||||||
|
if (ArbitraryJson != false) hash ^= ArbitraryJson.GetHashCode();
|
||||||
|
if (EventPrefix.Length != 0) hash ^= EventPrefix.GetHashCode();
|
||||||
if (_unknownFields != null) {
|
if (_unknownFields != null) {
|
||||||
hash ^= _unknownFields.GetHashCode();
|
hash ^= _unknownFields.GetHashCode();
|
||||||
}
|
}
|
||||||
@ -16350,6 +16395,14 @@ namespace Chirpstack.Api {
|
|||||||
output.WriteString(Key);
|
output.WriteString(Key);
|
||||||
}
|
}
|
||||||
uplinkValues_.WriteTo(output, _repeated_uplinkValues_codec);
|
uplinkValues_.WriteTo(output, _repeated_uplinkValues_codec);
|
||||||
|
if (ArbitraryJson != false) {
|
||||||
|
output.WriteRawTag(32);
|
||||||
|
output.WriteBool(ArbitraryJson);
|
||||||
|
}
|
||||||
|
if (EventPrefix.Length != 0) {
|
||||||
|
output.WriteRawTag(42);
|
||||||
|
output.WriteString(EventPrefix);
|
||||||
|
}
|
||||||
if (_unknownFields != null) {
|
if (_unknownFields != null) {
|
||||||
_unknownFields.WriteTo(output);
|
_unknownFields.WriteTo(output);
|
||||||
}
|
}
|
||||||
@ -16369,6 +16422,14 @@ namespace Chirpstack.Api {
|
|||||||
output.WriteString(Key);
|
output.WriteString(Key);
|
||||||
}
|
}
|
||||||
uplinkValues_.WriteTo(ref output, _repeated_uplinkValues_codec);
|
uplinkValues_.WriteTo(ref output, _repeated_uplinkValues_codec);
|
||||||
|
if (ArbitraryJson != false) {
|
||||||
|
output.WriteRawTag(32);
|
||||||
|
output.WriteBool(ArbitraryJson);
|
||||||
|
}
|
||||||
|
if (EventPrefix.Length != 0) {
|
||||||
|
output.WriteRawTag(42);
|
||||||
|
output.WriteString(EventPrefix);
|
||||||
|
}
|
||||||
if (_unknownFields != null) {
|
if (_unknownFields != null) {
|
||||||
_unknownFields.WriteTo(ref output);
|
_unknownFields.WriteTo(ref output);
|
||||||
}
|
}
|
||||||
@ -16386,6 +16447,12 @@ namespace Chirpstack.Api {
|
|||||||
size += 1 + pb::CodedOutputStream.ComputeStringSize(Key);
|
size += 1 + pb::CodedOutputStream.ComputeStringSize(Key);
|
||||||
}
|
}
|
||||||
size += uplinkValues_.CalculateSize(_repeated_uplinkValues_codec);
|
size += uplinkValues_.CalculateSize(_repeated_uplinkValues_codec);
|
||||||
|
if (ArbitraryJson != false) {
|
||||||
|
size += 1 + 1;
|
||||||
|
}
|
||||||
|
if (EventPrefix.Length != 0) {
|
||||||
|
size += 1 + pb::CodedOutputStream.ComputeStringSize(EventPrefix);
|
||||||
|
}
|
||||||
if (_unknownFields != null) {
|
if (_unknownFields != null) {
|
||||||
size += _unknownFields.CalculateSize();
|
size += _unknownFields.CalculateSize();
|
||||||
}
|
}
|
||||||
@ -16405,6 +16472,12 @@ namespace Chirpstack.Api {
|
|||||||
Key = other.Key;
|
Key = other.Key;
|
||||||
}
|
}
|
||||||
uplinkValues_.Add(other.uplinkValues_);
|
uplinkValues_.Add(other.uplinkValues_);
|
||||||
|
if (other.ArbitraryJson != false) {
|
||||||
|
ArbitraryJson = other.ArbitraryJson;
|
||||||
|
}
|
||||||
|
if (other.EventPrefix.Length != 0) {
|
||||||
|
EventPrefix = other.EventPrefix;
|
||||||
|
}
|
||||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
|
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16432,6 +16505,14 @@ namespace Chirpstack.Api {
|
|||||||
uplinkValues_.AddEntriesFrom(input, _repeated_uplinkValues_codec);
|
uplinkValues_.AddEntriesFrom(input, _repeated_uplinkValues_codec);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 32: {
|
||||||
|
ArbitraryJson = input.ReadBool();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 42: {
|
||||||
|
EventPrefix = input.ReadString();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -16459,6 +16540,14 @@ namespace Chirpstack.Api {
|
|||||||
uplinkValues_.AddEntriesFrom(ref input, _repeated_uplinkValues_codec);
|
uplinkValues_.AddEntriesFrom(ref input, _repeated_uplinkValues_codec);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 32: {
|
||||||
|
ArbitraryJson = input.ReadBool();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 42: {
|
||||||
|
EventPrefix = input.ReadString();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3
api/csharp/Chirpstack/api/ApplicationGrpc.cs
vendored
3
api/csharp/Chirpstack/api/ApplicationGrpc.cs
vendored
@ -9,7 +9,8 @@ using grpc = global::Grpc.Core;
|
|||||||
|
|
||||||
namespace Chirpstack.Api {
|
namespace Chirpstack.Api {
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ApplicationService is the service providing API methods for managing applications.
|
/// ApplicationService is the service providing API methods for managing
|
||||||
|
/// applications.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static partial class ApplicationService
|
public static partial class ApplicationService
|
||||||
{
|
{
|
||||||
|
1091
api/go/api/application.pb.go
vendored
1091
api/go/api/application.pb.go
vendored
File diff suppressed because it is too large
Load Diff
8
api/grpc-web/api/application_pb.d.ts
vendored
8
api/grpc-web/api/application_pb.d.ts
vendored
@ -1555,6 +1555,12 @@ export class IftttIntegration extends jspb.Message {
|
|||||||
clearUplinkValuesList(): IftttIntegration;
|
clearUplinkValuesList(): IftttIntegration;
|
||||||
addUplinkValues(value: string, index?: number): IftttIntegration;
|
addUplinkValues(value: string, index?: number): IftttIntegration;
|
||||||
|
|
||||||
|
getArbitraryJson(): boolean;
|
||||||
|
setArbitraryJson(value: boolean): IftttIntegration;
|
||||||
|
|
||||||
|
getEventPrefix(): string;
|
||||||
|
setEventPrefix(value: string): IftttIntegration;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): IftttIntegration.AsObject;
|
toObject(includeInstance?: boolean): IftttIntegration.AsObject;
|
||||||
static toObject(includeInstance: boolean, msg: IftttIntegration): IftttIntegration.AsObject;
|
static toObject(includeInstance: boolean, msg: IftttIntegration): IftttIntegration.AsObject;
|
||||||
@ -1568,6 +1574,8 @@ export namespace IftttIntegration {
|
|||||||
applicationId: string,
|
applicationId: string,
|
||||||
key: string,
|
key: string,
|
||||||
uplinkValuesList: Array<string>,
|
uplinkValuesList: Array<string>,
|
||||||
|
arbitraryJson: boolean,
|
||||||
|
eventPrefix: string,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
62
api/grpc-web/api/application_pb.js
vendored
62
api/grpc-web/api/application_pb.js
vendored
@ -13195,7 +13195,9 @@ proto.api.IftttIntegration.toObject = function(includeInstance, msg) {
|
|||||||
var f, obj = {
|
var f, obj = {
|
||||||
applicationId: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
applicationId: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||||
key: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
key: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||||
uplinkValuesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f
|
uplinkValuesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
|
||||||
|
arbitraryJson: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
|
||||||
|
eventPrefix: jspb.Message.getFieldWithDefault(msg, 5, "")
|
||||||
};
|
};
|
||||||
|
|
||||||
if (includeInstance) {
|
if (includeInstance) {
|
||||||
@ -13244,6 +13246,14 @@ proto.api.IftttIntegration.deserializeBinaryFromReader = function(msg, reader) {
|
|||||||
var value = /** @type {string} */ (reader.readString());
|
var value = /** @type {string} */ (reader.readString());
|
||||||
msg.addUplinkValues(value);
|
msg.addUplinkValues(value);
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
var value = /** @type {boolean} */ (reader.readBool());
|
||||||
|
msg.setArbitraryJson(value);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
var value = /** @type {string} */ (reader.readString());
|
||||||
|
msg.setEventPrefix(value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@ -13294,6 +13304,20 @@ proto.api.IftttIntegration.serializeBinaryToWriter = function(message, writer) {
|
|||||||
f
|
f
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
f = message.getArbitraryJson();
|
||||||
|
if (f) {
|
||||||
|
writer.writeBool(
|
||||||
|
4,
|
||||||
|
f
|
||||||
|
);
|
||||||
|
}
|
||||||
|
f = message.getEventPrefix();
|
||||||
|
if (f.length > 0) {
|
||||||
|
writer.writeString(
|
||||||
|
5,
|
||||||
|
f
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -13370,6 +13394,42 @@ proto.api.IftttIntegration.prototype.clearUplinkValuesList = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* optional bool arbitrary_json = 4;
|
||||||
|
* @return {boolean}
|
||||||
|
*/
|
||||||
|
proto.api.IftttIntegration.prototype.getArbitraryJson = function() {
|
||||||
|
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {boolean} value
|
||||||
|
* @return {!proto.api.IftttIntegration} returns this
|
||||||
|
*/
|
||||||
|
proto.api.IftttIntegration.prototype.setArbitraryJson = function(value) {
|
||||||
|
return jspb.Message.setProto3BooleanField(this, 4, value);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* optional string event_prefix = 5;
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
|
proto.api.IftttIntegration.prototype.getEventPrefix = function() {
|
||||||
|
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} value
|
||||||
|
* @return {!proto.api.IftttIntegration} returns this
|
||||||
|
*/
|
||||||
|
proto.api.IftttIntegration.prototype.setEventPrefix = function(value) {
|
||||||
|
return jspb.Message.setProto3StringField(this, 5, value);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3
api/js/api/application_grpc_pb.js
vendored
3
api/js/api/application_grpc_pb.js
vendored
@ -701,7 +701,8 @@ function deserialize_google_protobuf_Empty(buffer_arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ApplicationService is the service providing API methods for managing applications.
|
// ApplicationService is the service providing API methods for managing
|
||||||
|
// applications.
|
||||||
var ApplicationServiceService = exports.ApplicationServiceService = {
|
var ApplicationServiceService = exports.ApplicationServiceService = {
|
||||||
// Create creates the given application.
|
// Create creates the given application.
|
||||||
create: {
|
create: {
|
||||||
|
8
api/js/api/application_pb.d.ts
vendored
8
api/js/api/application_pb.d.ts
vendored
@ -1691,6 +1691,12 @@ export class IftttIntegration extends jspb.Message {
|
|||||||
setUplinkValuesList(value: Array<string>): void;
|
setUplinkValuesList(value: Array<string>): void;
|
||||||
addUplinkValues(value: string, index?: number): string;
|
addUplinkValues(value: string, index?: number): string;
|
||||||
|
|
||||||
|
getArbitraryJson(): boolean;
|
||||||
|
setArbitraryJson(value: boolean): void;
|
||||||
|
|
||||||
|
getEventPrefix(): string;
|
||||||
|
setEventPrefix(value: string): void;
|
||||||
|
|
||||||
serializeBinary(): Uint8Array;
|
serializeBinary(): Uint8Array;
|
||||||
toObject(includeInstance?: boolean): IftttIntegration.AsObject;
|
toObject(includeInstance?: boolean): IftttIntegration.AsObject;
|
||||||
static toObject(includeInstance: boolean, msg: IftttIntegration): IftttIntegration.AsObject;
|
static toObject(includeInstance: boolean, msg: IftttIntegration): IftttIntegration.AsObject;
|
||||||
@ -1706,6 +1712,8 @@ export namespace IftttIntegration {
|
|||||||
applicationId: string,
|
applicationId: string,
|
||||||
key: string,
|
key: string,
|
||||||
uplinkValuesList: Array<string>,
|
uplinkValuesList: Array<string>,
|
||||||
|
arbitraryJson: boolean,
|
||||||
|
eventPrefix: string,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
62
api/js/api/application_pb.js
vendored
62
api/js/api/application_pb.js
vendored
@ -13195,7 +13195,9 @@ proto.api.IftttIntegration.toObject = function(includeInstance, msg) {
|
|||||||
var f, obj = {
|
var f, obj = {
|
||||||
applicationId: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
applicationId: jspb.Message.getFieldWithDefault(msg, 1, ""),
|
||||||
key: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
key: jspb.Message.getFieldWithDefault(msg, 2, ""),
|
||||||
uplinkValuesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f
|
uplinkValuesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
|
||||||
|
arbitraryJson: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
|
||||||
|
eventPrefix: jspb.Message.getFieldWithDefault(msg, 5, "")
|
||||||
};
|
};
|
||||||
|
|
||||||
if (includeInstance) {
|
if (includeInstance) {
|
||||||
@ -13244,6 +13246,14 @@ proto.api.IftttIntegration.deserializeBinaryFromReader = function(msg, reader) {
|
|||||||
var value = /** @type {string} */ (reader.readString());
|
var value = /** @type {string} */ (reader.readString());
|
||||||
msg.addUplinkValues(value);
|
msg.addUplinkValues(value);
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
var value = /** @type {boolean} */ (reader.readBool());
|
||||||
|
msg.setArbitraryJson(value);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
var value = /** @type {string} */ (reader.readString());
|
||||||
|
msg.setEventPrefix(value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
reader.skipField();
|
reader.skipField();
|
||||||
break;
|
break;
|
||||||
@ -13294,6 +13304,20 @@ proto.api.IftttIntegration.serializeBinaryToWriter = function(message, writer) {
|
|||||||
f
|
f
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
f = message.getArbitraryJson();
|
||||||
|
if (f) {
|
||||||
|
writer.writeBool(
|
||||||
|
4,
|
||||||
|
f
|
||||||
|
);
|
||||||
|
}
|
||||||
|
f = message.getEventPrefix();
|
||||||
|
if (f.length > 0) {
|
||||||
|
writer.writeString(
|
||||||
|
5,
|
||||||
|
f
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -13370,6 +13394,42 @@ proto.api.IftttIntegration.prototype.clearUplinkValuesList = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* optional bool arbitrary_json = 4;
|
||||||
|
* @return {boolean}
|
||||||
|
*/
|
||||||
|
proto.api.IftttIntegration.prototype.getArbitraryJson = function() {
|
||||||
|
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {boolean} value
|
||||||
|
* @return {!proto.api.IftttIntegration} returns this
|
||||||
|
*/
|
||||||
|
proto.api.IftttIntegration.prototype.setArbitraryJson = function(value) {
|
||||||
|
return jspb.Message.setProto3BooleanField(this, 4, value);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* optional string event_prefix = 5;
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
|
proto.api.IftttIntegration.prototype.getEventPrefix = function() {
|
||||||
|
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} value
|
||||||
|
* @return {!proto.api.IftttIntegration} returns this
|
||||||
|
*/
|
||||||
|
proto.api.IftttIntegration.prototype.setEventPrefix = function(value) {
|
||||||
|
return jspb.Message.setProto3StringField(this, 5, value);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
7
api/md/api/api.md
vendored
7
api/md/api/api.md
vendored
@ -1108,7 +1108,9 @@
|
|||||||
| key | [string](#string) | | Key. This key can be obtained from the IFTTT Webhooks documentation page. |
|
| key | [string](#string) | | Key. This key can be obtained from the IFTTT Webhooks documentation page. |
|
||||||
| uplink_values | [string](#string) | repeated | Values. Up to 2 values can be forwarded to IFTTT. These values must map to the decoded payload keys. For example: { "batteryLevel": 75.3, "buttons": [{"pressed": false}, {"pressed": true}] } You would specify the following fields: uplink_values = ["batteryLevel", "buttons_0_pressed"]
|
| uplink_values | [string](#string) | repeated | Values. Up to 2 values can be forwarded to IFTTT. These values must map to the decoded payload keys. For example: { "batteryLevel": 75.3, "buttons": [{"pressed": false}, {"pressed": true}] } You would specify the following fields: uplink_values = ["batteryLevel", "buttons_0_pressed"]
|
||||||
|
|
||||||
Note: The first value is always used for the DevEUI. |
|
Notes: The first value is always used for the DevEUI. Ignored if arbitrary_json is set to true. |
|
||||||
|
| arbitrary_json | [bool](#bool) | | Arbitrary JSON. If set to true, ChirpStack events will be sent as-is as arbitrary JSON payload. If set to false (default), the 3 JSON values format will be used. |
|
||||||
|
| event_prefix | [string](#string) | | Event prefix. If set, the event name will be PREFIX_EVENT. For example if event_prefix is set to weatherstation, and uplink event will be sent as weatherstation_up to the IFTTT webhook. Note: Only characters in the A-Z, a-z and 0-9 range are allowed. |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1549,7 +1551,8 @@ Note: The first value is always used for the DevEUI. |
|
|||||||
<a name="api-ApplicationService"></a>
|
<a name="api-ApplicationService"></a>
|
||||||
|
|
||||||
### ApplicationService
|
### ApplicationService
|
||||||
ApplicationService is the service providing API methods for managing applications.
|
ApplicationService is the service providing API methods for managing
|
||||||
|
applications.
|
||||||
|
|
||||||
| Method Name | Request Type | Response Type | Description |
|
| Method Name | Request Type | Response Type | Description |
|
||||||
| ----------- | ------------ | ------------- | ------------|
|
| ----------- | ------------ | ------------- | ------------|
|
||||||
|
1379
api/proto/api/application.proto
vendored
1379
api/proto/api/application.proto
vendored
File diff suppressed because it is too large
Load Diff
1379
api/python/proto/chirpstack-api/api/application.proto
vendored
1379
api/python/proto/chirpstack-api/api/application.proto
vendored
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -412,14 +412,18 @@ class HttpIntegration(_message.Message):
|
|||||||
def __init__(self, application_id: _Optional[str] = ..., headers: _Optional[_Mapping[str, str]] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., event_endpoint_url: _Optional[str] = ...) -> None: ...
|
def __init__(self, application_id: _Optional[str] = ..., headers: _Optional[_Mapping[str, str]] = ..., encoding: _Optional[_Union[Encoding, str]] = ..., event_endpoint_url: _Optional[str] = ...) -> None: ...
|
||||||
|
|
||||||
class IftttIntegration(_message.Message):
|
class IftttIntegration(_message.Message):
|
||||||
__slots__ = ["application_id", "key", "uplink_values"]
|
__slots__ = ["application_id", "arbitrary_json", "event_prefix", "key", "uplink_values"]
|
||||||
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
APPLICATION_ID_FIELD_NUMBER: _ClassVar[int]
|
||||||
|
ARBITRARY_JSON_FIELD_NUMBER: _ClassVar[int]
|
||||||
|
EVENT_PREFIX_FIELD_NUMBER: _ClassVar[int]
|
||||||
KEY_FIELD_NUMBER: _ClassVar[int]
|
KEY_FIELD_NUMBER: _ClassVar[int]
|
||||||
UPLINK_VALUES_FIELD_NUMBER: _ClassVar[int]
|
UPLINK_VALUES_FIELD_NUMBER: _ClassVar[int]
|
||||||
application_id: str
|
application_id: str
|
||||||
|
arbitrary_json: bool
|
||||||
|
event_prefix: str
|
||||||
key: str
|
key: str
|
||||||
uplink_values: _containers.RepeatedScalarFieldContainer[str]
|
uplink_values: _containers.RepeatedScalarFieldContainer[str]
|
||||||
def __init__(self, application_id: _Optional[str] = ..., key: _Optional[str] = ..., uplink_values: _Optional[_Iterable[str]] = ...) -> None: ...
|
def __init__(self, application_id: _Optional[str] = ..., key: _Optional[str] = ..., uplink_values: _Optional[_Iterable[str]] = ..., arbitrary_json: bool = ..., event_prefix: _Optional[str] = ...) -> None: ...
|
||||||
|
|
||||||
class InfluxDbIntegration(_message.Message):
|
class InfluxDbIntegration(_message.Message):
|
||||||
__slots__ = ["application_id", "bucket", "db", "endpoint", "organization", "password", "precision", "retention_policy_name", "token", "username", "version"]
|
__slots__ = ["application_id", "bucket", "db", "endpoint", "organization", "password", "precision", "retention_policy_name", "token", "username", "version"]
|
||||||
|
@ -7,7 +7,8 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
|||||||
|
|
||||||
|
|
||||||
class ApplicationServiceStub(object):
|
class ApplicationServiceStub(object):
|
||||||
"""ApplicationService is the service providing API methods for managing applications.
|
"""ApplicationService is the service providing API methods for managing
|
||||||
|
applications.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, channel):
|
def __init__(self, channel):
|
||||||
@ -254,7 +255,8 @@ class ApplicationServiceStub(object):
|
|||||||
|
|
||||||
|
|
||||||
class ApplicationServiceServicer(object):
|
class ApplicationServiceServicer(object):
|
||||||
"""ApplicationService is the service providing API methods for managing applications.
|
"""ApplicationService is the service providing API methods for managing
|
||||||
|
applications.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def Create(self, request, context):
|
def Create(self, request, context):
|
||||||
@ -832,7 +834,8 @@ def add_ApplicationServiceServicer_to_server(servicer, server):
|
|||||||
|
|
||||||
# This class is part of an EXPERIMENTAL API.
|
# This class is part of an EXPERIMENTAL API.
|
||||||
class ApplicationService(object):
|
class ApplicationService(object):
|
||||||
"""ApplicationService is the service providing API methods for managing applications.
|
"""ApplicationService is the service providing API methods for managing
|
||||||
|
applications.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
1379
api/rust/proto/chirpstack/api/application.proto
vendored
1379
api/rust/proto/chirpstack/api/application.proto
vendored
File diff suppressed because it is too large
Load Diff
@ -1716,6 +1716,16 @@ impl ApplicationService for Application {
|
|||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
if !req_int.event_prefix.is_empty()
|
||||||
|
&& !regex::Regex::new(r"^[a-zA-Z0-9]+$")
|
||||||
|
.unwrap()
|
||||||
|
.is_match(&req_int.event_prefix)
|
||||||
|
{
|
||||||
|
return Err(Status::invalid_argument(
|
||||||
|
"event_prefix may only contain A-Z, a-z and 0-9 characters",
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
let _ = application::create_integration(application::Integration {
|
let _ = application::create_integration(application::Integration {
|
||||||
application_id: app_id,
|
application_id: app_id,
|
||||||
kind: application::IntegrationKind::Ifttt,
|
kind: application::IntegrationKind::Ifttt,
|
||||||
@ -1726,6 +1736,8 @@ impl ApplicationService for Application {
|
|||||||
req_int.uplink_values.get(0).cloned().unwrap_or_default(),
|
req_int.uplink_values.get(0).cloned().unwrap_or_default(),
|
||||||
req_int.uplink_values.get(1).cloned().unwrap_or_default(),
|
req_int.uplink_values.get(1).cloned().unwrap_or_default(),
|
||||||
],
|
],
|
||||||
|
arbitrary_json: req_int.arbitrary_json,
|
||||||
|
event_prefix: req_int.event_prefix.clone(),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
@ -1766,6 +1778,8 @@ impl ApplicationService for Application {
|
|||||||
application_id: app_id.to_string(),
|
application_id: app_id.to_string(),
|
||||||
key: conf.key.clone(),
|
key: conf.key.clone(),
|
||||||
uplink_values: conf.uplink_values.to_vec(),
|
uplink_values: conf.uplink_values.to_vec(),
|
||||||
|
arbitrary_json: conf.arbitrary_json,
|
||||||
|
event_prefix: conf.event_prefix.clone(),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
resp.metadata_mut()
|
resp.metadata_mut()
|
||||||
@ -1806,6 +1820,8 @@ impl ApplicationService for Application {
|
|||||||
req_int.uplink_values.get(0).cloned().unwrap_or_default(),
|
req_int.uplink_values.get(0).cloned().unwrap_or_default(),
|
||||||
req_int.uplink_values.get(1).cloned().unwrap_or_default(),
|
req_int.uplink_values.get(1).cloned().unwrap_or_default(),
|
||||||
],
|
],
|
||||||
|
arbitrary_json: req_int.arbitrary_json,
|
||||||
|
event_prefix: req_int.event_prefix.clone(),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
@ -3353,6 +3369,8 @@ pub mod test {
|
|||||||
application_id: app.id.to_string(),
|
application_id: app.id.to_string(),
|
||||||
key: "verysecret".into(),
|
key: "verysecret".into(),
|
||||||
uplink_values: vec!["value_1".into(), "value_2".into()],
|
uplink_values: vec!["value_1".into(), "value_2".into()],
|
||||||
|
arbitrary_json: false,
|
||||||
|
event_prefix: "foo".to_string(),
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@ -3372,6 +3390,8 @@ pub mod test {
|
|||||||
application_id: app.id.to_string(),
|
application_id: app.id.to_string(),
|
||||||
key: "verysecret".into(),
|
key: "verysecret".into(),
|
||||||
uplink_values: vec!["value_1".into(), "value_2".into()],
|
uplink_values: vec!["value_1".into(), "value_2".into()],
|
||||||
|
arbitrary_json: false,
|
||||||
|
event_prefix: "foo".to_string(),
|
||||||
}),
|
}),
|
||||||
get_resp.integration
|
get_resp.integration
|
||||||
);
|
);
|
||||||
@ -3384,6 +3404,8 @@ pub mod test {
|
|||||||
application_id: app.id.to_string(),
|
application_id: app.id.to_string(),
|
||||||
key: "verysecrettoo".into(),
|
key: "verysecrettoo".into(),
|
||||||
uplink_values: vec!["value_4".into(), "value_5".into()],
|
uplink_values: vec!["value_4".into(), "value_5".into()],
|
||||||
|
arbitrary_json: true,
|
||||||
|
event_prefix: "bar".to_string(),
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@ -3403,6 +3425,8 @@ pub mod test {
|
|||||||
application_id: app.id.to_string(),
|
application_id: app.id.to_string(),
|
||||||
key: "verysecrettoo".into(),
|
key: "verysecrettoo".into(),
|
||||||
uplink_values: vec!["value_4".into(), "value_5".into()],
|
uplink_values: vec!["value_4".into(), "value_5".into()],
|
||||||
|
arbitrary_json: true,
|
||||||
|
event_prefix: "bar".to_string(),
|
||||||
}),
|
}),
|
||||||
get_resp.integration
|
get_resp.integration
|
||||||
);
|
);
|
||||||
|
@ -27,6 +27,8 @@ pub struct Integration {
|
|||||||
key: String,
|
key: String,
|
||||||
uplink_values: [String; 2],
|
uplink_values: [String; 2],
|
||||||
server: String,
|
server: String,
|
||||||
|
arbitrary_json: bool,
|
||||||
|
event_prefix: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Integration {
|
impl Integration {
|
||||||
@ -37,11 +39,30 @@ impl Integration {
|
|||||||
key: conf.key.clone(),
|
key: conf.key.clone(),
|
||||||
uplink_values: conf.uplink_values.clone(),
|
uplink_values: conf.uplink_values.clone(),
|
||||||
server: "https://maker.ifttt.com".to_string(),
|
server: "https://maker.ifttt.com".to_string(),
|
||||||
|
arbitrary_json: conf.arbitrary_json,
|
||||||
|
event_prefix: conf.event_prefix.clone(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn post(&self, event: &str, v: Values) -> Result<()> {
|
async fn post<T>(&self, event: &str, v: &T) -> Result<()>
|
||||||
let url = format!("{}/trigger/{}/with/key/{}", self.server, event, self.key);
|
where
|
||||||
|
T: Serialize,
|
||||||
|
{
|
||||||
|
let event = if self.event_prefix.is_empty() {
|
||||||
|
event.to_string()
|
||||||
|
} else {
|
||||||
|
format!("{}_{}", self.event_prefix, event)
|
||||||
|
};
|
||||||
|
|
||||||
|
let url = if self.arbitrary_json {
|
||||||
|
format!(
|
||||||
|
"{}/trigger/{}/json/with/key/{}",
|
||||||
|
self.server, event, self.key
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
format!("{}/trigger/{}/with/key/{}", self.server, event, self.key)
|
||||||
|
};
|
||||||
|
|
||||||
let client = Client::builder().timeout(Duration::from_secs(5)).build()?;
|
let client = Client::builder().timeout(Duration::from_secs(5)).build()?;
|
||||||
let mut headers = HeaderMap::new();
|
let mut headers = HeaderMap::new();
|
||||||
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
headers.insert(CONTENT_TYPE, "application/json".parse().unwrap());
|
||||||
@ -65,6 +86,10 @@ impl IntegrationTrait for Integration {
|
|||||||
_vars: &HashMap<String, String>,
|
_vars: &HashMap<String, String>,
|
||||||
pl: &integration::UplinkEvent,
|
pl: &integration::UplinkEvent,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
|
if self.arbitrary_json {
|
||||||
|
return self.post("up", pl).await;
|
||||||
|
}
|
||||||
|
|
||||||
let data_measurements: HashMap<String, pbjson_types::value::Kind> = match &pl.object {
|
let data_measurements: HashMap<String, pbjson_types::value::Kind> = match &pl.object {
|
||||||
None => {
|
None => {
|
||||||
trace!("object is None, nothing to send");
|
trace!("object is None, nothing to send");
|
||||||
@ -91,7 +116,7 @@ impl IntegrationTrait for Integration {
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
self.post("up", v).await
|
self.post("up", &v).await
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn join_event(
|
async fn join_event(
|
||||||
@ -170,13 +195,15 @@ pub mod test {
|
|||||||
use httpmock::prelude::*;
|
use httpmock::prelude::*;
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_ifttt() {
|
async fn test_ifttt_no_prefix() {
|
||||||
let server = MockServer::start();
|
let server = MockServer::start();
|
||||||
|
|
||||||
let i = Integration {
|
let i = Integration {
|
||||||
key: "verysecret".into(),
|
key: "verysecret".into(),
|
||||||
uplink_values: ["temp".to_string(), "door_open".to_string()],
|
uplink_values: ["temp".to_string(), "door_open".to_string()],
|
||||||
server: server.url(""),
|
server: server.url(""),
|
||||||
|
arbitrary_json: false,
|
||||||
|
event_prefix: "".into(),
|
||||||
};
|
};
|
||||||
|
|
||||||
// uplink event
|
// uplink event
|
||||||
@ -228,4 +255,121 @@ pub mod test {
|
|||||||
mock.assert();
|
mock.assert();
|
||||||
mock.delete();
|
mock.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_ifttt_prefix() {
|
||||||
|
let server = MockServer::start();
|
||||||
|
|
||||||
|
let i = Integration {
|
||||||
|
key: "verysecret".into(),
|
||||||
|
uplink_values: ["temp".to_string(), "door_open".to_string()],
|
||||||
|
server: server.url(""),
|
||||||
|
arbitrary_json: false,
|
||||||
|
event_prefix: "weatherstation".into(),
|
||||||
|
};
|
||||||
|
|
||||||
|
// uplink event
|
||||||
|
let pl = integration::UplinkEvent {
|
||||||
|
device_info: Some(integration::DeviceInfo {
|
||||||
|
dev_eui: "0102030405060708".to_string(),
|
||||||
|
..Default::default()
|
||||||
|
}),
|
||||||
|
object: Some(pbjson_types::Struct {
|
||||||
|
fields: [
|
||||||
|
(
|
||||||
|
"temp".to_string(),
|
||||||
|
pbjson_types::Value {
|
||||||
|
kind: Some(pbjson_types::value::Kind::NumberValue(23.5)),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"door_open".to_string(),
|
||||||
|
pbjson_types::Value {
|
||||||
|
kind: Some(pbjson_types::value::Kind::StringValue(
|
||||||
|
"closed".to_string(),
|
||||||
|
)),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.cloned()
|
||||||
|
.collect(),
|
||||||
|
}),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
let mut mock = server.mock(|when, then| {
|
||||||
|
when.method(POST)
|
||||||
|
.path("/trigger/weatherstation_up/with/key/verysecret")
|
||||||
|
.header("Content-Type", "application/json")
|
||||||
|
.body(
|
||||||
|
serde_json::to_string(&Values {
|
||||||
|
value1: "0102030405060708".to_string(),
|
||||||
|
value2: "23.5".to_string(),
|
||||||
|
value3: "closed".to_string(),
|
||||||
|
})
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
|
||||||
|
then.status(200);
|
||||||
|
});
|
||||||
|
|
||||||
|
i.uplink_event(&HashMap::new(), &pl).await.unwrap();
|
||||||
|
mock.assert();
|
||||||
|
mock.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_ifttt_arbitrary_json() {
|
||||||
|
let server = MockServer::start();
|
||||||
|
|
||||||
|
let i = Integration {
|
||||||
|
key: "verysecret".into(),
|
||||||
|
uplink_values: ["temp".to_string(), "door_open".to_string()],
|
||||||
|
server: server.url(""),
|
||||||
|
arbitrary_json: true,
|
||||||
|
event_prefix: "".into(),
|
||||||
|
};
|
||||||
|
|
||||||
|
// uplink event
|
||||||
|
let pl = integration::UplinkEvent {
|
||||||
|
device_info: Some(integration::DeviceInfo {
|
||||||
|
dev_eui: "0102030405060708".to_string(),
|
||||||
|
..Default::default()
|
||||||
|
}),
|
||||||
|
object: Some(pbjson_types::Struct {
|
||||||
|
fields: [
|
||||||
|
(
|
||||||
|
"temp".to_string(),
|
||||||
|
pbjson_types::Value {
|
||||||
|
kind: Some(pbjson_types::value::Kind::NumberValue(23.5)),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"door_open".to_string(),
|
||||||
|
pbjson_types::Value {
|
||||||
|
kind: Some(pbjson_types::value::Kind::StringValue(
|
||||||
|
"closed".to_string(),
|
||||||
|
)),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.cloned()
|
||||||
|
.collect(),
|
||||||
|
}),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
let mut mock = server.mock(|when, then| {
|
||||||
|
when.method(POST)
|
||||||
|
.path("/trigger/up/json/with/key/verysecret")
|
||||||
|
.header("Content-Type", "application/json")
|
||||||
|
.body(serde_json::to_string(&pl).unwrap());
|
||||||
|
|
||||||
|
then.status(200);
|
||||||
|
});
|
||||||
|
|
||||||
|
i.uplink_event(&HashMap::new(), &pl).await.unwrap();
|
||||||
|
mock.assert();
|
||||||
|
mock.delete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -252,10 +252,13 @@ pub struct PilotThingsConfiguration {
|
|||||||
pub token: String,
|
pub token: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
|
#[serde(default)]
|
||||||
pub struct IftttConfiguration {
|
pub struct IftttConfiguration {
|
||||||
pub key: String,
|
pub key: String,
|
||||||
pub uplink_values: [String; 2], // The first value is reserved for the DevEUI
|
pub uplink_values: [String; 2], // The first value is reserved for the DevEUI
|
||||||
|
pub arbitrary_json: bool,
|
||||||
|
pub event_prefix: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Queryable, Insertable, PartialEq, Eq, Debug)]
|
#[derive(Clone, Queryable, Insertable, PartialEq, Eq, Debug)]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React, { Component } from "react";
|
import React, { Component } from "react";
|
||||||
|
|
||||||
import { Form, Input, AutoComplete, Button } from "antd";
|
import { Form, Input, AutoComplete, Button, Row, Col, Switch } from "antd";
|
||||||
|
|
||||||
import { IftttIntegration } from "@chirpstack/chirpstack-api-grpc-web/api/application_pb";
|
import { IftttIntegration } from "@chirpstack/chirpstack-api-grpc-web/api/application_pb";
|
||||||
|
|
||||||
@ -10,18 +10,46 @@ interface IProps {
|
|||||||
onFinish: (obj: IftttIntegration) => void;
|
onFinish: (obj: IftttIntegration) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
class IftttIntegrationForm extends Component<IProps> {
|
interface IState {
|
||||||
|
arbitraryJson: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
class IftttIntegrationForm extends Component<IProps, IState> {
|
||||||
|
constructor(props: IProps) {
|
||||||
|
super(props);
|
||||||
|
|
||||||
|
this.state = {
|
||||||
|
arbitraryJson: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
const v = this.props.initialValues;
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
arbitraryJson: v.getArbitraryJson(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
onFinish = (values: IftttIntegration.AsObject) => {
|
onFinish = (values: IftttIntegration.AsObject) => {
|
||||||
const v = Object.assign(this.props.initialValues.toObject(), values);
|
const v = Object.assign(this.props.initialValues.toObject(), values);
|
||||||
let i = new IftttIntegration();
|
let i = new IftttIntegration();
|
||||||
|
|
||||||
i.setApplicationId(v.applicationId);
|
i.setApplicationId(v.applicationId);
|
||||||
i.setKey(v.key);
|
i.setKey(v.key);
|
||||||
|
i.setEventPrefix(v.eventPrefix);
|
||||||
|
i.setArbitraryJson(v.arbitraryJson);
|
||||||
i.setUplinkValuesList(v.uplinkValuesList);
|
i.setUplinkValuesList(v.uplinkValuesList);
|
||||||
|
|
||||||
this.props.onFinish(i);
|
this.props.onFinish(i);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
onArbitraryJsonChange = (checked: boolean) => {
|
||||||
|
this.setState({
|
||||||
|
arbitraryJson: checked,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const options: {
|
const options: {
|
||||||
value: string;
|
value: string;
|
||||||
@ -39,21 +67,45 @@ class IftttIntegrationForm extends Component<IProps> {
|
|||||||
>
|
>
|
||||||
<Input.Password />
|
<Input.Password />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.List name="uplinkValuesList">
|
<Row gutter={24}>
|
||||||
|
<Col span={12}>
|
||||||
|
<Form.Item
|
||||||
|
label="Event prefix"
|
||||||
|
name="eventPrefix"
|
||||||
|
rules={[{ pattern: /[A-Za-z0-9]+/, message: "Only use A-Z, a-z and 0-9 characters" }]}
|
||||||
|
tooltip="The prefix will be added to the Webhook event, e.g. if set an uplink will be published as PREFIX_up instead of up."
|
||||||
|
>
|
||||||
|
<Input />
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<Form.Item
|
||||||
|
label="Publish as arbitrary JSON"
|
||||||
|
name="arbitraryJson"
|
||||||
|
valuePropName="checked"
|
||||||
|
tooltip="If enabled, the event payload will be published as-is (arbitrary JSON payload instead of 3 JSON values format)."
|
||||||
|
>
|
||||||
|
<Switch onChange={this.onArbitraryJsonChange} />
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
{!this.state.arbitraryJson && <Form.List name="uplinkValuesList">
|
||||||
{fields => (
|
{fields => (
|
||||||
<div>
|
<Row gutter={24}>
|
||||||
{fields.map((field, i) => (
|
{fields.map((field, i) => (
|
||||||
<Form.Item
|
<Col span={12}>
|
||||||
label={`Value ${i + 1} key`}
|
<Form.Item
|
||||||
{...field}
|
label={`Value ${i + 1} key`}
|
||||||
tooltip="This must match the key in the decoded uplink payload. Nested keys are joined with a '_', array elements are indexed (starting at zero), e.g. 'sensor_0', 'sensor_1'. Auto-completion is based on measurements configuration in the device-profile(s) used within this application."
|
{...field}
|
||||||
>
|
tooltip="This must match the key in the decoded uplink payload. Nested keys are joined with a '_', array elements are indexed (starting at zero), e.g. 'sensor_0', 'sensor_1'. Auto-completion is based on measurements configuration in the device-profile(s) used within this application."
|
||||||
<AutoComplete options={options} />
|
>
|
||||||
</Form.Item>
|
<AutoComplete options={options} />
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
))}
|
))}
|
||||||
</div>
|
</Row>
|
||||||
)}
|
)}
|
||||||
</Form.List>
|
</Form.List>}
|
||||||
<Form.Item>
|
<Form.Item>
|
||||||
<Button type="primary" htmlType="submit">
|
<Button type="primary" htmlType="submit">
|
||||||
Submit
|
Submit
|
||||||
|
Loading…
x
Reference in New Issue
Block a user