Proto commits in eclipse-uprotocol/up-spec

These 32 commits are when the Protocol Buffers files have changed:

Commit:94b76ad
Author:Daniel Krippner
Committer:GitHub

Simplify uSubscription::Reset operation (#322) * Remove Reset.before parameter, correct spec text

The documentation is generated from this commit.

Commit:f3ff839
Author:Kai Hudalla
Committer:GitHub

[#315] Do not require priority for publish messages Updated UAttributes specification to make the 'priority' attribute optional for publish messages. This change can help reduce the size of encoded publish messages by allowing producers to omit the priority setting when not necessary. Fixes #315

Commit:ed8bdca
Author:Kai Hudalla
Committer:Kai Hudalla

Remove unused imports

Commit:fb74bea
Author:Daniel Krippner

consistent uEntity naming

Commit:8247854
Author:Daniel Krippner

Remove subscriber/subscription list pagination

Commit:623c520
Author:Steven Hartley
Committer:GitHub

Remove Set API from uTwin (#252) The set API is not part of the public APIs that clients will use so it needs to be removed. #221

Commit:b4cbb2a
Author:Steven Hartley

Remove Set API from uTwin The set API is not part of the public APIs that clients will use so it needs to be removed. #221

Commit:cdd8ec3
Author:Kai Hudalla
Committer:GitHub

Support UNSPECIFIED payload format in CloudEvents mapping (#248) * Support UNSPECIFIED payload format in CloudEvents mapping This is a follow up of https://github.com/eclipse-uprotocol/up-spec/pull/247 * Change the type name of uProtocol messages The names defined for the different uProtocol message types have been changed to allow distinguishing between existing CloudEvents being exchanged by legacy systems using a predecessor of Eclipse uProtocol and CloudEvents conforming to the mapping rules defined in the uProtocol specification.

Commit:d5091c4
Author:Steven Hartley
Committer:GitHub

uDiscovery redesign (#242) * uDiscovery redesign The following PR is a reboot of uDiscovery to be able to take all the lessons learned from existing implementations in production. #137 --------- Co-authored-by: Kai Hudalla <sophokles.kh@gmail.com>

Commit:4835ba1
Author:Steven Hartley
Committer:GitHub

Fix uStreamer service name (#250) When I created the ustreamer proto, I used the utwin proto and forgot to replace the service name to the correct one, this could cause issues in built artifacts. #249

Commit:b9640d2
Author:Steven Hartley
Committer:GitHub

Add Initial name & number Registry Requirements In order to ensure that there is no overlap of assignment of names and/or numbers of uEs, this commit will add in basic rules for reserving names/numbers for specific purposes. Fixes #67 Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com>

Commit:e953cb2
Author:Steven Hartley
Committer:GitHub

Remove ambiguity for UNSPECIFIED UPayloadFormat Previously (version 1.3.6 and earlier of the specification) we did not have an enum for the payload format (it was a string) and sending the string was costly to the cloud even though we always knew it was WRAPPED_IN_ANY. To avoid sending the payload format we omitted the attribute and then "assumed" that if it was not present it would be WRAPPED_IN_ANY. Now that we have an enum defined, it is better to remove the ambiguity of this attribute and make it explicit, this means that if someone sets it to UNSPECIFIED it really means unspecified (we don't know or are not setting it to anything). Additionally, for SOME/IP there is no way to pass this attribute (UPayloadFormat) so we have to set UPayloadFormat as UNSPECIFIED and then leave it up to the client to know the format from the source. Fixes #237 Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com>

Commit:6622fc1
Author:Greg Medding
Committer:Greg Medding

Enable generic service generation in C++ See https://protobuf.dev/reference/cpp/cpp-generated/#service

Commit:fc7c2bf
Author:czfdcn
Committer:czfdcn

Remove unused SubscriberInfo from some USubscription messages The SubscriberInfo was a wrapper for the subscribers URI however it passes details that was never used (and complicates the implementations) and is passed in some scenarios that is redundant (we know who is calling the APIs). The SubscriberInfo is also passed to registerForNotifications however subscribers don't call this API so it is confusing for developers.

Commit:e833717
Author:Steven Hartley
Committer:GitHub

Fix warning for unused ustatus.proto (#186) Once I committed #173 I caused an issue with a warning that appears that ustatus proto is included in uattributes.proto even though it is not used so this issue will be used to remove the warning. #185

Commit:43369a1
Author:Steven Hartley
Committer:GitHub

Separate UCode from UStatus (#183) Mechatronics world would like to use UCode that that we have consistent definitions of errors codes across all uServices however they cannot and will not use UStatus that also includes string messages and repeated any (that is more used for high-compute services. Although they can still achieve their goal by only using UCode from uservice.proto, splitting them means we can add the SOME/Ip serialization metadata (CustomOptions) to the ucode.proto and we do not have do do that for ustatus.proto. #173

Commit:4123b07
Author:Steven Hartley
Committer:GitHub

Replace UUIDv8 for UUIDv7 (#179) * Replace UUIDv8 for UUIDv7 After further study of the UUID specifications, there was a concern that fixing rand_b per instantiation of the uE could result in two events being generated with the same UUID if the time jumps back (due to corrections). #170 * Feedback from Kai * Update basics/uuid.adoc Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com> --------- Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com>

Commit:85586b7
Author:Kai Hudalla
Committer:GitHub

Remove obsolete proto imports (#166)

Commit:2385018
Author:Kai Hudalla
Committer:GitHub

Use dedicated messages in service operations (#163) * [#112] Use dedicated messages in service operations Changed operation definitions of uProtocol core services to always use dedicated request and response messages as recommended by Protobuf Best Practices. Removed UStatus from response messages, following recommendations from uProtocol Error Model specification. * Add documentation

Commit:b9d142e
Author:Greg Medding
Committer:Greg Medding

Fixing import paths so generated headers work The protobuf compiler uses the concept of a "canonical" path when generating source files. This is the base point where it searches for import files. It _expects_ that path will match the base path for searching for headers, too. The end result is that import "v1/ustatus.proto" will generate a C++ header that contains #include "v1/ustatus.pb.h" while we have been explicitly asked to use includes starting with `uprotocol` in up-cpp: #include "uprotocol/v1/ustatus.pb.h" We were able to work around this with some tricks when the import paths were file names only (e.g. `import ustatus.proto`). However, the proto files have moved under the `v1/` directory as of #141. Based on my reading of the protoc documentation and several stack overflow postings, it seems the intended way for .proto files to be written in this scenario is to import the full canonical path as intended for the output files: import "uprotocol/v1/ustatus.proto" so that protoc can generate the correct paths in output sources in the first place.

Commit:b0ac920
Author:Kai Hudalla
Committer:GitHub

[#115] Align uri.proto with spec (#156) The UUri specification contains all relevant definitions and requirements for a URI's components. The proto3 file simply defines the encoding to use when sending UUris over the wire. All comments containing field definitions/requirements have been removed in order to prevent diverging semantics.

Commit:a19bdc2
Author:Steven Hartley
Committer:GitHub

uProtocol Options Cleanup (#141) * uProtocol Options Cleanup The following change addresses a number of concerns with the uprotocol_options.proto that is used to declare protocol specific metadata. * missing the java package name * Incorporate feedback from Yuval * Adding the someip compiler options * Update basics/permissions.adoc Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com> * Update up-l3/udiscovery/v3/README.adoc Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com> * add missing EOL * Incorporate more feedback from Halim and Yuval * make UServiceTopic::permission_level optional --------- Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com>

Commit:18fadea
Author:Steven Hartley
Committer:GitHub

Remove uPayload (#145) * Remove uPayload The following change removes the unused UPayload protobuf object and places the format in UAttributes. #144 * Missed the data_content_type from UAttributes!! * Update basics/uattributes.adoc Co-authored-by: Pete LeVasseur <peter.levasseur@gm.com> * switch back to UPayloadFormat to avoid unnecessary changes and since we refer to payload everywhere in the specs * Incorporated feedback from reviewers * Add back link in README.adoc to upayloadformat.adoc * add missing cloudevent mapping --------- Co-authored-by: Pete LeVasseur <peter.levasseur@gm.com>

Commit:aaefd48
Author:Kai Hudalla
Committer:GitHub

Fix license headers (#139) * [#138] Fix license headers Updated license headers to reflect recommendations from Eclipse Project Handbook. * Remove obsolete copyright line * Remove copyright and license info from SVGs --------- Co-authored-by: Steven Hartley <steven.hartley@gm.com>

Commit:19bec77
Author:Greg Medding
Committer:GitHub

Remove the CallOptions message (#133) CallOptions is never sent as a uProtocol message. Instead of being a layer-0 message, it was used as a layer-2 client API. It is being removed in favor of allowing language-specific API libraries to define the most appropriate function signatures for the language. Addresses issue #132

Commit:79fff9d
Author:Steven Hartley
Committer:GitHub

Cleanup of UPayload (#130) The following change removes the notion of passing data by reference in UPayload till we finalize the shared memory APIs. #128

Commit:cffabcc
Author:Steven Hartley
Committer:GitHub

[#115] Simplification of UUri Data model Drastically simplified the data model for UUri: * Replaced separate messages for authority, entity and resource with single scalar fields * Only use (textual) name for authority * Only use numerical identifiers in entity and resource * Defined dedicated values to be used as wildcards

Commit:8fcb37d
Author:Kai Hudalla
Committer:GitHub

[#71] Remove ambiguity around uAttributes requirements The requirements regarding the usage of particular UAttributes properties for the message types supported by uProtocol had been scattered around multiple documents, some textual descriptions as well as proto files. It was hard to find the relevant information and to keep it consistent across the specifications. The following things have been done to mitigate the situation: * The uattributes.adoc file is now the single source of truth regarding the usage of UAttributes for the supported message types. All corresponding definitions have been removed from the cloudevents.adoc and uattributes.proto files. * The cloudevents.adoc file has been moved to the up-l1 folder because its content is relevant to uProtocol Client libraries only that use CloudEvents' JSON or Protobuf Format to map UMessages to a transport protocol's PDU. Application (uEntity) developers will not get in touch with CloudEvents at all. Fixes #71

Commit:3cefb30
Author:Ruchir Chauhan
Committer:GitHub

Making Uri proto, microuri support mandatory and longuri support optional (#110) * Update uri.proto to support microuri * Modify UEntity and UResource Ids to be required fields In order to make microuri support standard and mandatory, all the "Id" fields need to be required fields and the corresponding "name" fields have to be optional. * Incorporating suggestions Make all the fields optional, to allow long form only and micro form only.

Commit:2ff303c
Author:Steven Hartley
Committer:GitHub

Remove USubscription CreateTopic() and DeprecateTopic() APIs (#108) * Remove USubscription CreateTopic() and DeprecateTopic() APIs The topic lifecycle APIs were added as an optimization early on so that subscribers could know if the topic they are subscribing to is valid and the producer is alive however this optimization has given us nothing but heartburn in production as it forces all publishers to call the API when then are initialized and it causes race conditions on initial boot-up. Furthermore, validation of topics could already be done by calling UDiscovery so there was no added benefit of adding the extra states to the subscription service. #96 * Apply suggestions from code review Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com> --------- Co-authored-by: Kai Hudalla <kai.hudalla@bosch.com>

Commit:4a04ce9
Author:Dmitry Gurovich
Committer:GitHub

minor: fix indentation (#105)

Commit:36c4a2d
Author:Steven Hartley
Committer:GitHub

Merge up-spec and up-core-api (#91) * Merge up-spec and up-core-api the following change takes the 1.5.7 release of up-core-api and merges it with up-spec so we can have better traceability with the spec and protos. #88 * Remove unnecessary legal documents and update gitignore * Fix the links * Fix whitespace issues * fixes to the utwin and uprotocol_options protos