= uProtocol Core Service APIs
:toc:

----
SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation

See the NOTICE file(s) distributed with this work for additional
information regarding copyright ownership.

This program and the accompanying materials are made available under
the terms of the Apache License Version 2.0 which is available at
https://www.apache.org/licenses/LICENSE-2.0
 
SPDX-FileType: DOCUMENTATION
SPDX-License-Identifier: Apache-2.0
----

Core uProtocol services interfaces to define:

.Protobuf Files
|===
|File |Description

|link:udiscovery/v3/udiscovery.proto[*udiscovery.proto*]
|Contract for dynamically discovery uThings (other uEs, uDevices, uDomains, uResources, uMethods, etc...), for example what topics a service in another device shall publish, properties of a service, etc...

|link:usubscription/v3/usubscription.proto[*usubscription.proto*]
|Contract for publishers and subscribers to subscribe/publish to topics

|link:utwin/v2/utwin.proto[*utwin.proto*]
a|* Device-to-device Twin:
** To enable remote Apps to access last published state (and received by the device)
** To remain accessible even if connectivity is lost
* In-vehicle Twin:
** To avoid re-sending (re-publishing) data when apps are launched/subscribed

|===

