syntax = "proto3"; package vulcanize.registry.v1beta1; import "gogoproto/gogo.proto"; option go_package = "github.com/cerc-io/laconicd/x/registry/types"; message HashReference { map hash_reference=1; } message ServiceProviderRecord { string bond_id = 1 [(gogoproto.moretags) = "json:\"bondId\" yaml:\"bondId\""]; string laconic_id = 2 [(gogoproto.moretags) = "json:\"laconicId\" yaml:\"laconicId\""]; X500 x500 = 3 [(gogoproto.moretags) = "json:\"x500\" yaml:\"x500\""]; string type = 4 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""]; string version = 6 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""]; message X500 { string common_name = 1 [(gogoproto.moretags) = "json:\"commonName\" yaml:\"commonName\""]; string organization_unit = 2 [(gogoproto.moretags) = "json:\"organizationUnit\" yaml:\"organizationUnit\""]; string organization_name = 3 [(gogoproto.moretags) = "json:\"organizationName\" yaml:\"organizationName\""]; string locality_name = 4 [(gogoproto.moretags) = "json:\"localityName\" yaml:\"localityName\""]; string state_name = 5 [(gogoproto.moretags) = "json:\"stateName\" yaml:\"stateName\""]; string country = 6 [(gogoproto.moretags) = "json:\"country\" yaml:\"country\""]; } } message WebsiteRegistrationRecord { string url = 1 [(gogoproto.moretags) = "json:\"url\" yaml:\"url\""]; string repo_registration_record_cid = 2 [(gogoproto.moretags) = "json:\"repoRegistrationRecordCID\" yaml:\"repoRegistrationRecordCID\""]; string build_artifact_cid = 3 [(gogoproto.moretags) = "json:\"buildArtifactCID\" yaml:\"buildArtifactCID\""]; string tls_cert_cid = 4 [(gogoproto.moretags) = "json:\"TLSCertCID\" yaml:\"TLSCertCID\""]; string type = 5 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""]; string version = 6 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""]; } message GitRepository{ string name =1 [(gogoproto.moretags) = "json:\"name\" yaml:\"name\""]; string repo_reference=2 [(gogoproto.moretags) = "json:\"repo_reference\" yaml:\"repo_reference\""]; string description=3 [(gogoproto.moretags) = "json:\"description\" yaml:\"description\""]; string version = 4 [(gogoproto.moretags) = "json:\"version\" yaml:\"version\""]; } message Binary{ HashReference hash_reference=1; string targeted_arch=2; string runtime_version=3; HashReference repo_hash_reference=4; string version=5; string type=6; } message DockerImage{ string image_id=1; HashReference binary_hash_reference=2; HashReference repo_hash_reference=3; string version=4; string type=5; } message WatcherRegistrationRecord{ WatcherMetadata metadata =1; HashReference repo_hash_reference=2; WASMBinary wasm=3; string version=4; string type=5; message WatcherMetadata{ string version=1; HashReference chain_hash_reference=2; } message WASMBinary{ HashReference hash_reference=1; WASMBinaryMetadata metadata=2; } message WASMBinaryMetadata{ string compiler_version=1; string execution_engine_version=2; } } message ResponderContract{ HashReference service_provider_hash_ref=1; HashReference auction_hash_ref=2; HashReference watcher_hash_ref=3; string version=4; string type=5; } message JSPackage{ HashReference repo_hash_reference=1; HashReference js_package_hash_ref=2; string version=3; string type=4; string name =5; } message ChainRegistrationRecord{ string name=1; repeated string ipld_types=2; string type=3; string version=4; string chain_id=5; string netwrok_id=6; string genesis_hash=7; } message AppRecord{ string id=1; string name=2; string package=3; string type=4; string version=5; string build=6; string display_name=7; } message BotRecord{ string type=1; string version=2; string display_name=3; string name =4; Packages packages=5; message Packages{ // method 1 map os =1; message Build{ map build=1; } // method 2 map ref =3; // contains os and build together as key ex: macosx64:.... instead of macos:{x64:....,} } } message Resource{ string version=1; Docker docker=2; string name=3; string type=4; message Docker{ string hash=1; string url=2; } } message WNS{ string name=1; string type=2; string version=3; Endpoint wns_endpoints=4; message Endpoint{ string rpc=1; } } message Service{ string type=1; string name=2; string version=3; string service=4; string description=5; // method 1 Tag tag=10; message Tag{ map tags=1; repeated string addresses=2; // will be empty if its not IPFS } // method 2 oneof tags{ IPFS ipfs=6; Signal signal=7; STUN stun=8; TURN turn=9; } message IPFS{ string protocol=1; repeated string addresses=2; } message Signal{ string url=1; string bootstrap=2; } message STUN{ string url=1; } message TURN{ string url=1; string username=2; string password=3; } }