{"type":"api","title":"Create a plugin","meta":{"id":"/apps/pubhub/media/crosswork-network-controller-7-1/f445c17e25a1120e8fbde4bd413083d0fd88b2b3/42552ab7-d679-37b0-afe0-7313ad2e8c01","info":{"title":"Service Health Heuristic Packages APIs","description":"APIs for requesting rule and metric data stored by the Crosswork Service Health application.","termsOfService":"terms-of-service","contact":{"name":"Crosswork Team, Cisco","email":"support@cisco.com"},"license":{"name":"Cisco Software License Agreement","url":"http://www.cisco.com/public/sw-license-agreement.html"},"version":"7.1.0"},"security":[{"bearerAuth":[]}],"x-parser-conf":{"overview":{"markdownPath":"reference/ServiceHealth/sh_heuristic_packages_overview.md"}},"openapi":"3.0.1","servers":[{"url":"/crosswork/aa/hpmgr"}],"securitySchemes":{"bearerAuth":{"type":"apiKey","description":"Security token for authorizing requests for these APIs.","name":"Authorization","in":"header"}}},"spec":{"tags":["AaHeuristicPackage"],"summary":"Create a plugin.","operationId":"AaHeuristicPackage_CreatePlugin","requestBody":{"description":"The Plugin request parameter.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"description":"Generated ID of the plugin","type":"string"},"name":{"description":"Name of the plugin","type":"string"},"namespace":{"description":"Namespace to which this plugin belongs","type":"string"},"content":{"description":"Content of the plugin file in byte format","pattern":"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$","type":"string","format":"byte"},"create_timestamp":{"description":"Create timestamp for the plugin","type":"string","format":"int64"},"update_timestamp":{"description":"Update timestamp for the plugin","type":"string","format":"int64"},"version":{"description":"current version of the plugin","type":"string"}},"description":"Plugin information.","$$ref":"#/components/schemas/Plugin"},"example":{"name":"l3vpn_plugin.py","namespace":"custom","content":"IyAhL3Vzci9iaW4vZW52IHB5dGhvbjMKaW1wb3J0IGxvZ2dpbmcKaW1wb3J0IGx4bWwuZXRyZWUgYXMgRVQKZnJvbSBqc29uMnhtbCBpbXBvcnQganNvbjJ4bWwKCgojIGZyb20gYnM0IGltcG9ydCBCZWF1dGlmdWxTb3VwCgoKIyBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigiRXh0cmFjdG9yIikKIyBoYW5kbGVyID0gbG9nZ2luZy5GaWxlSGFuZGxlcignLi9jdXN0b21fcGx1Z2luLmxvZycpCiMgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoJyUoYXNjdGltZSlzICUobGV2ZWxuYW1lKXMgJShtZXNzYWdlKXMnKQojIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKIyBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQojIGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLkVSUk9SKQoKIyBkZXBfbmFtZXNwYWNlOgpkZWYgcnVuKHhtbF9vYmplY3QsIGRlcF9jbGFzcywgZGVwX25hbWUsIGRlcF9uYW1lc3BhY2UsIHRlc3RfcnVuLCBydWxlX25hbWUsIHJ1bGVfbmFtZXNwYWNlKToKICAgIHJlc3VsdCA9IHt9CiAgICByZXN1bHRfbGlzdCA9IFtdCiAgICB1dGY4X3BhcnNlciA9IEVULlhNTFBhcnNlcihlbmNvZGluZz0ndXRmLTgnLCByZWNvdmVyPVRydWUpCiAgICByb290ID0gRVQuZnJvbXN0cmluZyh4bWxfb2JqZWN0LmVuY29kZSgndXRmLTgnKSwgcGFyc2VyPXV0ZjhfcGFyc2VyKQoKICAgIHRyeToKICAgICAgICBpZiBkZXBfY2xhc3MgPT0gInN1YnNlcnZpY2UuaW50ZXJmYWNlLmhlYWx0aCIgYW5kIGRlcF9uYW1lID09ICJ2cG4taWYtaGVhbHRoLWxpc3QiIGFuZCBcCiAgICAgICAgICAgICAgICBkZXBfbmFtZXNwYWNlID09ICJjdXN0b20iIGFuZCBcCiAgICAgICAgICAgICAgICBydWxlX25hbWUgPT0gIlJ1bGUtTDNWUE4tTk0iIGFuZCBydWxlX25hbWVzcGFjZSA9PSAiY3VzdG9tIjoKICAgICAgICAgICAgaWYgdGVzdF9ydW46CiAgICAgICAgICAgICAgICByZXN1bHRfbGlzdCA9IFsiZGV2aWNlIiwgImlmLWlkIl0KICAgICAgICAgICAgICAgICMgcmVzdWx0X2xpc3QuYXBwZW5kKHJlc3VsdF9kaWN0KQogICAgICAgICAgICAgICAgIyByZXN1bHRfbGlzdC5hcHBlbmQoImRldmljZSIpCiAgICAgICAgICAgICAgICAjIHJlc3VsdF9saXN0LmFwcGVuZCgicGVlcl9kZXZpY2UiKQogICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdF9saXN0CiAgICAgICAgICAgICMgcmVjb3JkcyA9IFtyLmZpbmQoJ2tleScpLnRleHQgZm9yIHIgaW4gcmVzdWx0c10KICAgICAgICAgICAgIyBmb3IgZGV2aWNlIGluIHJvb3QuZmluZGFsbCgiLi9kZXZpY2UvZGVjYWRlL21vdmllL2Zvcm1hdC9bQG11bHRpcGxlPSdZZXMnXSIpOgogICAgICAgICAgICAjIGZvciBrZXkgaW4gcm9vdC5maW5kYWxsKCIuL2RldmljZS9rZXkiKToKICAgICAgICAgICAgcmVzdWx0cyA9IHJvb3QuZmluZGFsbCgnLi8vZGV2aWNlcy9kZXZpY2UnKSAgIyBkZXZpY2VzCiAgICAgICAgICAgIHJlY29yZHMgPSBbci5maW5kKCdrZXknKS50ZXh0IGZvciByIGluIHJlc3VsdHNdCiAgICAgICAgICAgIHJlc3VsdFsnZGV2aWNlJ10gPSByZWNvcmRzWzBdICAjIC8vZGV2aWNlcy9kZXZpY2VbMV0va2V5CiAgICAgICAgICAgIGlmX3Jlc3VsdCA9IHJvb3QuZmluZGFsbCgnLi8vZW5kcG9pbnQnKQogICAgICAgICAgICByZWNzID0gW3IuZmluZCgnaWYtaWQnKS50ZXh0IGZvciByIGluIGlmX3Jlc3VsdF0KICAgICAgICAgICAgcmVzdWx0WydpZi1pZCddID0gcmVjc1swXQogICAgICAgICAgICByZXN1bHRfeG1sID0ganNvbjJ4bWwuSnNvbjJ4bWwocmVzdWx0LCB3cmFwcGVyPSJwbHVnaW4tb3V0cHV0IiwgcHJldHR5PVRydWUsIGF0dHJfdHlwZT1GYWxzZSkudG9feG1sKCkKICAgICAgICAgICAgcmVzdWx0X2xpc3QuYXBwZW5kKHJlc3VsdF94bWwpCiAgICAgICAgICAgIHJlc3VsdFsnZGV2aWNlJ10gPSByZWNvcmRzWzFdICAjIC8vZGV2aWNlcy9kZXZpY2VbMV0va2V5CiAgICAgICAgICAgIHJlc3VsdFsnaWYtaWQnXSA9IHJlY3NbMV0KICAgICAgICAgICAgcmVzdWx0X3htbCA9IGpzb24yeG1sLkpzb24yeG1sKHJlc3VsdCwgd3JhcHBlcj0icGx1Z2luLW91dHB1dCIsIHByZXR0eT1UcnVlLCBhdHRyX3R5cGU9RmFsc2UpLnRvX3htbCgpCiAgICAgICAgICAgIHJlc3VsdF9saXN0LmFwcGVuZChyZXN1bHRfeG1sKQogICAgICAgICAgICByZXR1cm4gcmVzdWx0X2xpc3QKICAgICAgICAjZWxpZiBkZXBfY2xhc3MgPT0gInN1YnNlcnZpY2UuZGV2aWNlLmhlYWx0aCIgYW5kIGRlcF9uYW1lID09ICJkZXZpY2UtaGVhbHRoLWxpc3QiIGFuZCBcCiAgICAgICAgZWxpZiBkZXBfY2xhc3MgPT0gInN1YnNlcnZpY2UuZGV2aWNlLmhlYWx0aCIgYW5kIFwKICAgICAgICAgICAgICAgIGRlcF9uYW1lc3BhY2UgPT0gImN1c3RvbSIgYW5kIFwKICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSA9PSAiUnVsZS1MM1ZQTi1OTSIgYW5kIHJ1bGVfbmFtZXNwYWNlID09ICJjdXN0b20iOgogICAgICAgICAgICBpZiB0ZXN0X3J1bjoKICAgICAgICAgICAgICAgIHJlc3VsdF9saXN0ID0gWyJkZXZpY2UiXQogICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdF9saXN0CiAgICAgICAgICAgIHJlc3VsdHMgPSByb290LmZpbmRhbGwoJy4vL2RldmljZXMvZGV2aWNlJykgICMgZGV2aWNlcwogICAgICAgICAgICByZWNvcmRzID0gW3IuZmluZCgna2V5JykudGV4dCBmb3IgciBpbiByZXN1bHRzXQogICAgICAgICAgICByZXN1bHRbJ2RldmljZSddID0gcmVjb3Jkc1swXSAgIyAvL2RldmljZXMvZGV2aWNlWzFdL2tleQogICAgICAgICAgICByZXN1bHRfeG1sID0ganNvbjJ4bWwuSnNvbjJ4bWwocmVzdWx0LCB3cmFwcGVyPSJwbHVnaW4tb3V0cHV0IiwgcHJldHR5PVRydWUsIGF0dHJfdHlwZT1GYWxzZSkudG9feG1sKCkKICAgICAgICAgICAgcmVzdWx0X2xpc3QuYXBwZW5kKHJlc3VsdF94bWwpCiAgICAgICAgICAgIHJlc3VsdFsnZGV2aWNlJ10gPSByZWNvcmRzWzFdICAjIC8vZGV2aWNlcy9kZXZpY2VbMV0va2V5CiAgICAgICAgICAgIHJlc3VsdF94bWwgPSBqc29uMnhtbC5Kc29uMnhtbChyZXN1bHQsIHdyYXBwZXI9InBsdWdpbi1vdXRwdXQiLCBwcmV0dHk9VHJ1ZSwgYXR0cl90eXBlPUZhbHNlKS50b194bWwoKQogICAgICAgICAgICByZXN1bHRfbGlzdC5hcHBlbmQocmVzdWx0X3htbCkKICAgICAgICAgICAgcmV0dXJuIHJlc3VsdF9saXN0CiAgICAgICAgZWxpZiBydWxlX25hbWUgPT0gIlJ1bGUtTDNWUE4tTk0iIGFuZCBydWxlX25hbWVzcGFjZSA9PSAiY3VzdG9tIiBhbmQgXAogICAgICAgICAgICAgICAgZGVwX2NsYXNzID09ICJzdWJzZXJ2aWNlLmViZ3AubmJyLmhlYWx0aCI6CiAgICAgICAgICAgIHJldHVybiBleHRyYWN0X3N1YnNlcnZpY2VfZWJncF9uYnJfaGVhbHRoX3BheWxvYWQocm9vdCwgdGVzdF9ydW4pCgogICAgICAgIGVsaWYgcnVsZV9uYW1lID09ICJSdWxlLUwzVlBOLU5NIiBhbmQgcnVsZV9uYW1lc3BhY2UgPT0gImN1c3RvbSIgYW5kIFwKICAgICAgICAgICAgICAgIGRlcF9jbGFzcyA9PSAic3Vic2VydmljZS52cmYucGxhaW4ubHNwLnJlYWNoYWJpbGl0eSI6CiAgICAgICAgICAgIHJldHVybiBleHRyYWN0X3N1YnNlcnZpY2VfdnJmX3BsYWluX2xzcF9yZWFjaGFiaWxpdHlfcGF5bG9hZChyb290LCB0ZXN0X3J1bikKCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIHJlc3VsdF9saXN0CiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKICAgICAgICByZXR1cm4gImV4Y2VwdGlvbiBpbiBydW5uaW5nIHRoZSBwbHVnaW4oSXRlcjkpLiBFcnJvciB7ZXJyb3J9Ii5mb3JtYXQoZXJyb3I9ZXhjZXB0aW9uKQoKIyBQYXlsb2FkIEV4dHJhY3Rpb24gbG9naWMgZm9yIHN1YnNlcnZpY2UudnJmLnBsYWluLmxzcC5yZWFjaGFiaWxpdHkKZGVmIGV4dHJhY3Rfc3Vic2VydmljZV92cmZfcGxhaW5fbHNwX3JlYWNoYWJpbGl0eV9wYXlsb2FkKHJvb3QsIHRlc3RfcnVuKToKICAgIHJlc3VsdF9saXN0ID0gW10KICAgIGlmIHRlc3RfcnVuOgogICAgICAgIHJlc3VsdF9saXN0ID0gWyJkZXZpY2UiLCAidnJmIiwgInBlZXItdnBuLWFkZHItbGlzdCJdCiAgICAgICAgcmV0dXJuIHJlc3VsdF9saXN0CgogICAgZGV2aWNlX3JlY29yZHMgPSByb290LmZpbmRhbGwoJy4vL2RldmljZXMvZGV2aWNlL2tleScpCiAgICBkZXZpY2VzID0gW2RldmljZV9yZWNvcmQudGV4dCBmb3IgZGV2aWNlX3JlY29yZCBpbiBkZXZpY2VfcmVjb3Jkc10KCiAgICBmb3IgZGV2aWNlIGluIGRldmljZXM6CiAgICAgICAgIyBFYWNoIHJlc3VsdCBpcyBhIGRpY3Rpb25hcnkgdGhhdCBjYW4gYmUgdXNlZCB0byBpbnN0YW50aWF0ZSBvbmUgU3Vic2VydmljZSBpbnN0YW5jZQogICAgICAgIHJlc3VsdCA9IHt9CiAgICAgICAgcmVzdWx0WyJkZXZpY2UiXSA9IGRldmljZQoKICAgICAgICBkZXZpY2VfdnJmX3BhdGggPSAiLi8vZmxhdC1MM3Zwbi9lbmRwb2ludFthY2Nlc3MtcGU9J3tkZXZpY2V9J10vdnJmL3ZyZi1kZWZpbml0aW9uIi5mb3JtYXQoZGV2aWNlPWRldmljZSkKICAgICAgICBkZXZpY2VfdnJmX3JlY29yZHMgPSByb290LmZpbmRhbGwoZGV2aWNlX3ZyZl9wYXRoKQogICAgICAgIHJlc3VsdFsidnJmIl0gPSBkZXZpY2VfdnJmX3JlY29yZHNbMF0udGV4dAoKICAgICAgICBzZWxmX3Zwbl9pcF9wYXRoID0gIi4vL2ZsYXQtTDN2cG4vZW5kcG9pbnRbYWNjZXNzLXBlPSd7ZGV2aWNlfSddL3BlLWlwLWFkZHIiLmZvcm1hdChkZXZpY2U9ZGV2aWNlKQogICAgICAgIHNlbGZfdnBuX2lwX3JlY29yZHMgPSByb290LmZpbmRhbGwoc2VsZl92cG5faXBfcGF0aCkKICAgICAgICBzZWxmX3Zwbl9pcCA9IHNlbGZfdnBuX2lwX3JlY29yZHNbMF0udGV4dAogICAgICAgIGFsbF92cG5faXBfcmVjb3JkcyA9IHJvb3QuZmluZGFsbCgiLi8vZmxhdC1MM3Zwbi9lbmRwb2ludC9wZS1pcC1hZGRyIikKCiAgICAgICAgIyBGZXRjaCBhbGwgSVAgYWRkcmVzc2VzIGV4Y2VwdCBmb3Igc2VsZiBvbmUKICAgICAgICBwZWVyX2lwX2xpc3QgPSBbXQogICAgICAgIGZvciBpcF9yZWNvcmQgaW4gYWxsX3Zwbl9pcF9yZWNvcmRzOgogICAgICAgICAgICBpZiBpcF9yZWNvcmQudGV4dCAhPSBzZWxmX3Zwbl9pcDoKICAgICAgICAgICAgICAgIHBlZXJfaXBfbGlzdC5hcHBlbmQoaXBfcmVjb3JkLnRleHQpCgogICAgICAgIHJlc3VsdFsicGVlci12cG4tYWRkci1saXN0Il0gPSBwZWVyX2lwX2xpc3QKICAgICAgICByZXN1bHRfeG1sID0ganNvbjJ4bWwuSnNvbjJ4bWwocmVzdWx0LCB3cmFwcGVyPSJwbHVnaW4tb3V0cHV0IiwgcHJldHR5PVRydWUsIGF0dHJfdHlwZT1GYWxzZSkudG9feG1sKCkKICAgICAgICByZXN1bHRfbGlzdC5hcHBlbmQocmVzdWx0X3htbCkKCiAgICByZXR1cm4gcmVzdWx0X2xpc3QKCiMgUGF5bG9hZCBFeHRyYWN0aW9uIGxvZ2ljIGZvciBzdWJzZXJ2aWNlLmViZ3AubmJyLmhlYWx0aApkZWYgZXh0cmFjdF9zdWJzZXJ2aWNlX2ViZ3BfbmJyX2hlYWx0aF9wYXlsb2FkKHJvb3QsIHRlc3RfcnVuKToKICAgIHJlc3VsdF9saXN0ID0gW10KICAgIGlmIHRlc3RfcnVuOgogICAgICAgIHJlc3VsdF9saXN0ID0gWyJkZXZpY2UiLCAiYmdwX25icl90eXBlIiwgInZyZiIsICJiZ3BfbmJyX2lwYWRkcnMiXQogICAgICAgIHJldHVybiByZXN1bHRfbGlzdAoKICAgIGRldmljZV9yZWNvcmRzID0gcm9vdC5maW5kYWxsKCcuLy9kZXZpY2VzL2RldmljZS9rZXknKQogICAgZGV2aWNlcyA9IFtkZXZpY2VfcmVjb3JkLnRleHQgZm9yIGRldmljZV9yZWNvcmQgaW4gZGV2aWNlX3JlY29yZHNdCgogICAgZm9yIGRldmljZSBpbiBkZXZpY2VzOgogICAgICAgICMgRWFjaCByZXN1bHQgaXMgYSBkaWN0aW9uYXJ5IHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5zdGFudGlhdGUgb25lIFN1YnNlcnZpY2UgaW5zdGFuY2UKICAgICAgICByZXN1bHQgPSB7fQogICAgICAgIHJlc3VsdFsiZGV2aWNlIl0gPSBkZXZpY2UKCiAgICAgICAgZGV2aWNlX3ZyZl9wYXRoID0gIi4vL2ZsYXQtTDN2cG4vZW5kcG9pbnRbYWNjZXNzLXBlPSd7ZGV2aWNlfSddL3ZyZi92cmYtZGVmaW5pdGlvbiIuZm9ybWF0KGRldmljZT1kZXZpY2UpCiAgICAgICAgZGV2aWNlX3ZyZl9yZWNvcmRzID0gcm9vdC5maW5kYWxsKGRldmljZV92cmZfcGF0aCkKICAgICAgICByZXN1bHRbInZyZiJdID0gZGV2aWNlX3ZyZl9yZWNvcmRzWzBdLnRleHQKCiAgICAgICAgZWJncF9jb25maWdfcGF0aCA9ICIuLy9mbGF0LUwzdnBuL2VuZHBvaW50W2FjY2Vzcy1wZT0ne2RldmljZX0nXS9jZS1wZS1wcm90L2UtYmdwIi5mb3JtYXQoZGV2aWNlPWRldmljZSkKICAgICAgICBlYmdwX2NvbmZpZ19yZWNvcmRzID0gcm9vdC5maW5kYWxsKGViZ3BfY29uZmlnX3BhdGgpCiAgICAgICAgaWYgbGVuKGViZ3BfY29uZmlnX3JlY29yZHMpID09IDA6CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgcmVzdWx0WyJiZ3BfbmJyX3R5cGUiXSA9IGViZ3BfY29uZmlnX3JlY29yZHNbMF0udGV4dAoKICAgICAgICBiZ3BfbmJyX2lwYWRkcnNfcGF0aCA9ICIuLy9mbGF0LUwzdnBuL2VuZHBvaW50W2FjY2Vzcy1wZT0ne2RldmljZX0nXS9jZS1wZS1wcm90L2UtYmdwL25laWdoYm9yLWlwdjQiLmZvcm1hdChkZXZpY2U9ZGV2aWNlKQogICAgICAgIGJncF9uYnJfaXBhZGRyc19yZWNvcmRzID0gcm9vdC5maW5kYWxsKGJncF9uYnJfaXBhZGRyc19wYXRoKQogICAgICAgIGlmIGxlbihiZ3BfbmJyX2lwYWRkcnNfcmVjb3JkcykgPT0gMDoKICAgICAgICAgICAgY29udGludWUKICAgICAgICBiZ3BfbmJyX2lwYWRkcnMgPSBbYmdwX2lwYWRkcl9yZWNvcmQudGV4dCBmb3IgYmdwX2lwYWRkcl9yZWNvcmQgaW4gYmdwX25icl9pcGFkZHJzX3JlY29yZHNdCiAgICAgICAgcmVzdWx0WyJiZ3BfbmJyX2lwYWRkcnMiXSA9IGJncF9uYnJfaXBhZGRycwoKICAgICAgICByZXN1bHRfeG1sID0ganNvbjJ4bWwuSnNvbjJ4bWwocmVzdWx0LCB3cmFwcGVyPSJwbHVnaW4tb3V0cHV0IiwgcHJldHR5PVRydWUsIGF0dHJfdHlwZT1GYWxzZSkudG9feG1sKCkKICAgICAgICByZXN1bHRfbGlzdC5hcHBlbmQocmVzdWx0X3htbCkKCiAgICByZXR1cm4gcmVzdWx0X2xpc3QK"}}},"required":true},"responses":{"200":{"description":"OK. The request was successful. The result is contained in the response body.","content":{"application/json":{"schema":{"type":"object","description":"Response for the Heuristic Package Element CRUD.","properties":{"status":{"type":"string","description":"Response status for the Heuristic Package Element CRUD.","default":"RESP_STATUS_UNKNOWN","enum":["RESP_STATUS_UNKNOWN","RESP_STATUS_SUCCESS","RESP_STATUS_ERROR"],"$$ref":"#/components/schemas/HpCrudResponseStatus"},"error_description":{"description":"The reason for the error.","type":"string"},"name":{"description":"The name of the Heuristic Package Element.","type":"string"},"namespace":{"description":"The namespace of the Heuristic Package Element.","type":"string"}},"$$ref":"#/components/schemas/HpCrudResponse"},"example":{"data":[{"status":"RESP_STATUS_SUCCESS","name":"plugin.sample","namespace":"custom"}]}}}},"default":{"description":"An empty response.","content":{"application/json":{"schema":{"type":"object","description":"Runtime error","properties":{"error":{"type":"string","description":"Error of Runtime error"},"code":{"type":"integer","description":"Code of Runtime error","format":"int32"},"message":{"type":"string","description":"Message of Runtime error"},"details":{"type":"array","description":"Details of Runtime error","items":{"type":"object","description":"ProtobufAny","properties":{"type_url":{"type":"string","description":"Type-url of ProtobufAny"},"value":{"pattern":"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$","type":"string","description":"Value of ProtobufAny","format":"byte"}},"$$ref":"#/components/schemas/protobufAny"}}},"$$ref":"#/components/schemas/runtimeError"},"example":{"data":[{"status":"RESP_STATUS_SUCCESS"}]}}}}},"x-codegen-request-body-name":"body","__originalOperationId":"AaHeuristicPackage_CreatePlugin","security":[{"bearerAuth":[]}],"method":"post","path":"/createPlugin"}}