// ------------------------------------------------------------------// Connectivity Suite Registry// ------------------------------------------------------------------//// Naming convention according:// https://cloud.google.com/apis/design/naming_convention//// ------------------------------------------------------------------syntax="proto3";packagesiemens.connectivitysuite.registry.v1;//===================================================================// Discovery (Registry) Interface Definitions//===================================================================// ===========================================// The Services Definition//serviceRegistryApi{// Possible return values// - OKrpcRegisterService(RegisterServiceRequest)returns(RegisterServiceResponse){}// Possible return values// - OK// - NOT_FOUND - service with the provided key was not registeredrpcUnregisterService(UnregisterServiceRequest)returns(UnregisterServiceResponse){}// Possible return values// - OKrpcQueryRegisteredServices(QueryRegisteredServicesRequest)returns(QueryRegisteredServicesResponse){}}// The key of ServiceInfo is the app_instance_id:messageServiceInfo{// Mandatory: unique ID of the application// Examples: "s7p1", "pnioc1"stringapp_instance_id=7;// Mandatory: Either 'dns_domainname' or 'ipv4_address' needs to be provided.// Intentionally there is no 'ipv6_address', because ipv6 without DNS will not really work.oneofgrpc_ip{// DNS host name of the driverstringdns_domainname=1;// ipv4 address of the driverstringipv4_address=2;}// Mandatory: port number of gRPC interfaceuint32grpc_ip_port_number=3;// Mandatory: application type// +----------------------------------------------------// | Examples// +-----------------------+----------------------------// | "cs-driver" | Connectivity Suite Driver// | "cs-gateway" | Connectivity Suite Gateway which is configured// | | by the IIH Configurator// | "noncs-driver" | Driver which supports all interfaces to be configurable// | | via IIH Configurator, but doesn't support DataApi// | "cs-import-converter" | Service which can convert a device-specific configuration// | | file to a 'Connectivity Suite compatible' configuration file.// | | This app is e.g. used by the IIH Configurator to let convert// | | specific config files provided by the user to compatible format// | "cs-tagbrowser" | Service which can browse tags. See the 'BrowsingApi' repeatedstringapp_types=4;// Mandatory: the schema identification(s) of the driverrepeatedstringdriver_schema_uris=5;}// RegisterServicemessageRegisterServiceRequest{ServiceInfoinfo=1;}messageRegisterServiceResponse{// maximum time between ServiceInfo refresh in [sec]uint32expire_time=2;}// UnregisterService// Only the following fields of 'info' are considered, the rest is ignored:// app_instance_idmessageUnregisterServiceRequest{ServiceInfoinfo=1;}messageUnregisterServiceResponse{}// QueryRegisteredServices// Any property which is not set, is ignored// When a property has multiple values, any entry which matches at least one of the fields matches// When multiple properties are set, all have to match//// Example1: return all apps which have either app_type "cs-driver" or "cs-gateway":// .app_types = ["cs-driver", "cs-gateway"]//// Example2: return all apps which have app_type "cs-import-converter"// and uri="https://siemens.com/connectivity_suite/schemas/s7plus/1.0.0/config.json":// .app_types = ["cs-import-converter"]// .driver_schema_uris = ["https://siemens.com/connectivity_suite/schemas/s7plus/1.0.0/config.json"]//messageServiceInfoFilter{// unique ID(s) of the application// Examples: "s7p1", "pnioc1"repeatedstringapp_instance_ids=2;// application types// Examples "cs-driver" or "cs-gateway"// (see 'ServiceInfo.app_types')repeatedstringapp_types=3;// the schema identification(s) of the driverrepeatedstringdriver_schema_uris=4;}messageQueryRegisteredServicesRequest{ServiceInfoFilterfilter=1;}messageQueryRegisteredServicesResponse{repeatedServiceInfoinfos=1;}