Commit daf08780 authored by per1234's avatar per1234 Committed by umbynos

[skip changelog] Add documentation for library components of the gRPC interface (#692)

* [skip changelog] Add documentation for library components of the gRPC interface

Comments added to the .proto files are included in the generated gRPC interface documentation.

* Correct documentation re: relative vs absolute paths provided by Library message fields
Co-authored-by: default avatarRoberto Sora <r.sora@arduino.cc>

* Use preferred "platform" term in gRPC interface documentation

The official term is now "platform", rather than the previous ambiguous "core".
Co-authored-by: default avatarRoberto Sora <r.sora@arduino.cc>

* Fix formatting of gRPC interface documentation

* Fix incorrect documentation for task_progress field of LibraryUninstall response

* Document that library version is the key of the releases map

* Update gRPC interface code comments
Co-authored-by: default avatarRoberto Sora <r.sora@arduino.cc>
parent ec44ad12
...@@ -675,12 +675,21 @@ type ArduinoCoreClient interface { ...@@ -675,12 +675,21 @@ type ArduinoCoreClient interface {
PlatformSearch(ctx context.Context, in *PlatformSearchReq, opts ...grpc.CallOption) (*PlatformSearchResp, error) PlatformSearch(ctx context.Context, in *PlatformSearchReq, opts ...grpc.CallOption) (*PlatformSearchResp, error)
// List all installed platforms. // List all installed platforms.
PlatformList(ctx context.Context, in *PlatformListReq, opts ...grpc.CallOption) (*PlatformListResp, error) PlatformList(ctx context.Context, in *PlatformListReq, opts ...grpc.CallOption) (*PlatformListResp, error)
// Download the archive file of an Arduino library in the libraries index to
// the staging directory.
LibraryDownload(ctx context.Context, in *LibraryDownloadReq, opts ...grpc.CallOption) (ArduinoCore_LibraryDownloadClient, error) LibraryDownload(ctx context.Context, in *LibraryDownloadReq, opts ...grpc.CallOption) (ArduinoCore_LibraryDownloadClient, error)
// Download and install an Arduino library from the libraries index.
LibraryInstall(ctx context.Context, in *LibraryInstallReq, opts ...grpc.CallOption) (ArduinoCore_LibraryInstallClient, error) LibraryInstall(ctx context.Context, in *LibraryInstallReq, opts ...grpc.CallOption) (ArduinoCore_LibraryInstallClient, error)
// Uninstall an Arduino library.
LibraryUninstall(ctx context.Context, in *LibraryUninstallReq, opts ...grpc.CallOption) (ArduinoCore_LibraryUninstallClient, error) LibraryUninstall(ctx context.Context, in *LibraryUninstallReq, opts ...grpc.CallOption) (ArduinoCore_LibraryUninstallClient, error)
// Upgrade all installed Arduino libraries to the newest version available.
LibraryUpgradeAll(ctx context.Context, in *LibraryUpgradeAllReq, opts ...grpc.CallOption) (ArduinoCore_LibraryUpgradeAllClient, error) LibraryUpgradeAll(ctx context.Context, in *LibraryUpgradeAllReq, opts ...grpc.CallOption) (ArduinoCore_LibraryUpgradeAllClient, error)
// List the recursive dependencies of a library, as defined by the `depends`
// field of the library.properties files.
LibraryResolveDependencies(ctx context.Context, in *LibraryResolveDependenciesReq, opts ...grpc.CallOption) (*LibraryResolveDependenciesResp, error) LibraryResolveDependencies(ctx context.Context, in *LibraryResolveDependenciesReq, opts ...grpc.CallOption) (*LibraryResolveDependenciesResp, error)
// Search the Arduino libraries index for libraries.
LibrarySearch(ctx context.Context, in *LibrarySearchReq, opts ...grpc.CallOption) (*LibrarySearchResp, error) LibrarySearch(ctx context.Context, in *LibrarySearchReq, opts ...grpc.CallOption) (*LibrarySearchResp, error)
// List the installed libraries.
LibraryList(ctx context.Context, in *LibraryListReq, opts ...grpc.CallOption) (*LibraryListResp, error) LibraryList(ctx context.Context, in *LibraryListReq, opts ...grpc.CallOption) (*LibraryListResp, error)
} }
...@@ -1324,12 +1333,21 @@ type ArduinoCoreServer interface { ...@@ -1324,12 +1333,21 @@ type ArduinoCoreServer interface {
PlatformSearch(context.Context, *PlatformSearchReq) (*PlatformSearchResp, error) PlatformSearch(context.Context, *PlatformSearchReq) (*PlatformSearchResp, error)
// List all installed platforms. // List all installed platforms.
PlatformList(context.Context, *PlatformListReq) (*PlatformListResp, error) PlatformList(context.Context, *PlatformListReq) (*PlatformListResp, error)
// Download the archive file of an Arduino library in the libraries index to
// the staging directory.
LibraryDownload(*LibraryDownloadReq, ArduinoCore_LibraryDownloadServer) error LibraryDownload(*LibraryDownloadReq, ArduinoCore_LibraryDownloadServer) error
// Download and install an Arduino library from the libraries index.
LibraryInstall(*LibraryInstallReq, ArduinoCore_LibraryInstallServer) error LibraryInstall(*LibraryInstallReq, ArduinoCore_LibraryInstallServer) error
// Uninstall an Arduino library.
LibraryUninstall(*LibraryUninstallReq, ArduinoCore_LibraryUninstallServer) error LibraryUninstall(*LibraryUninstallReq, ArduinoCore_LibraryUninstallServer) error
// Upgrade all installed Arduino libraries to the newest version available.
LibraryUpgradeAll(*LibraryUpgradeAllReq, ArduinoCore_LibraryUpgradeAllServer) error LibraryUpgradeAll(*LibraryUpgradeAllReq, ArduinoCore_LibraryUpgradeAllServer) error
// List the recursive dependencies of a library, as defined by the `depends`
// field of the library.properties files.
LibraryResolveDependencies(context.Context, *LibraryResolveDependenciesReq) (*LibraryResolveDependenciesResp, error) LibraryResolveDependencies(context.Context, *LibraryResolveDependenciesReq) (*LibraryResolveDependenciesResp, error)
// Search the Arduino libraries index for libraries.
LibrarySearch(context.Context, *LibrarySearchReq) (*LibrarySearchResp, error) LibrarySearch(context.Context, *LibrarySearchReq) (*LibrarySearchResp, error)
// List the installed libraries.
LibraryList(context.Context, *LibraryListReq) (*LibraryListResp, error) LibraryList(context.Context, *LibraryListReq) (*LibraryListResp, error)
} }
......
...@@ -96,18 +96,27 @@ service ArduinoCore { ...@@ -96,18 +96,27 @@ service ArduinoCore {
// List all installed platforms. // List all installed platforms.
rpc PlatformList(PlatformListReq) returns (PlatformListResp); rpc PlatformList(PlatformListReq) returns (PlatformListResp);
// Download the archive file of an Arduino library in the libraries index to
// the staging directory.
rpc LibraryDownload(LibraryDownloadReq) returns (stream LibraryDownloadResp); rpc LibraryDownload(LibraryDownloadReq) returns (stream LibraryDownloadResp);
// Download and install an Arduino library from the libraries index.
rpc LibraryInstall(LibraryInstallReq) returns (stream LibraryInstallResp); rpc LibraryInstall(LibraryInstallReq) returns (stream LibraryInstallResp);
// Uninstall an Arduino library.
rpc LibraryUninstall(LibraryUninstallReq) returns (stream LibraryUninstallResp); rpc LibraryUninstall(LibraryUninstallReq) returns (stream LibraryUninstallResp);
// Upgrade all installed Arduino libraries to the newest version available.
rpc LibraryUpgradeAll(LibraryUpgradeAllReq) returns (stream LibraryUpgradeAllResp); rpc LibraryUpgradeAll(LibraryUpgradeAllReq) returns (stream LibraryUpgradeAllResp);
// List the recursive dependencies of a library, as defined by the `depends`
// field of the library.properties files.
rpc LibraryResolveDependencies(LibraryResolveDependenciesReq) returns (LibraryResolveDependenciesResp); rpc LibraryResolveDependencies(LibraryResolveDependenciesReq) returns (LibraryResolveDependenciesResp);
// Search the Arduino libraries index for libraries.
rpc LibrarySearch(LibrarySearchReq) returns (LibrarySearchResp); rpc LibrarySearch(LibrarySearchReq) returns (LibrarySearchResp);
// List the installed libraries.
rpc LibraryList(LibraryListReq) returns (LibraryListResp); rpc LibraryList(LibraryListReq) returns (LibraryListResp);
} }
......
...@@ -23,7 +23,9 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package ...@@ -23,7 +23,9 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type LibrarySearchStatus int32 type LibrarySearchStatus int32
const ( const (
// No search results were found.
LibrarySearchStatus_failed LibrarySearchStatus = 0 LibrarySearchStatus_failed LibrarySearchStatus = 0
// Search results were found.
LibrarySearchStatus_success LibrarySearchStatus = 1 LibrarySearchStatus_success LibrarySearchStatus = 1
) )
...@@ -48,7 +50,9 @@ func (LibrarySearchStatus) EnumDescriptor() ([]byte, []int) { ...@@ -48,7 +50,9 @@ func (LibrarySearchStatus) EnumDescriptor() ([]byte, []int) {
type LibraryLayout int32 type LibraryLayout int32
const ( const (
// Library is in the 1.0 Arduino library format.
LibraryLayout_flat_layout LibraryLayout = 0 LibraryLayout_flat_layout LibraryLayout = 0
// Library is in the 1.5 Arduino library format.
LibraryLayout_recursive_layout LibraryLayout = 1 LibraryLayout_recursive_layout LibraryLayout = 1
) )
...@@ -73,9 +77,15 @@ func (LibraryLayout) EnumDescriptor() ([]byte, []int) { ...@@ -73,9 +77,15 @@ func (LibraryLayout) EnumDescriptor() ([]byte, []int) {
type LibraryLocation int32 type LibraryLocation int32
const ( const (
// In the `libraries` subdirectory of the Arduino IDE installation.
LibraryLocation_ide_builtin LibraryLocation = 0 LibraryLocation_ide_builtin LibraryLocation = 0
// In the `libraries` subdirectory of the user directory (sketchbook).
LibraryLocation_user LibraryLocation = 1 LibraryLocation_user LibraryLocation = 1
// In the `libraries` subdirectory of a platform.
LibraryLocation_platform_builtin LibraryLocation = 2 LibraryLocation_platform_builtin LibraryLocation = 2
// When `LibraryLocation` is used in a context where a board is specified,
// this indicates the library is in the `libraries` subdirectory of a
// platform referenced by the board's platform.
LibraryLocation_referenced_platform_builtin LibraryLocation = 3 LibraryLocation_referenced_platform_builtin LibraryLocation = 3
) )
...@@ -102,8 +112,11 @@ func (LibraryLocation) EnumDescriptor() ([]byte, []int) { ...@@ -102,8 +112,11 @@ func (LibraryLocation) EnumDescriptor() ([]byte, []int) {
} }
type LibraryDownloadReq struct { type LibraryDownloadReq struct {
// Arduino Core Service instance from the `Init` response.
Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
// Name of the library.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// The version of the library to download.
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -157,6 +170,7 @@ func (m *LibraryDownloadReq) GetVersion() string { ...@@ -157,6 +170,7 @@ func (m *LibraryDownloadReq) GetVersion() string {
} }
type LibraryDownloadResp struct { type LibraryDownloadResp struct {
// Progress of the library download.
Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"` Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -196,8 +210,11 @@ func (m *LibraryDownloadResp) GetProgress() *DownloadProgress { ...@@ -196,8 +210,11 @@ func (m *LibraryDownloadResp) GetProgress() *DownloadProgress {
} }
type LibraryInstallReq struct { type LibraryInstallReq struct {
// Arduino Core Service instance from the `Init` response.
Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
// Name of the library.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// The version of the library to install.
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -251,7 +268,9 @@ func (m *LibraryInstallReq) GetVersion() string { ...@@ -251,7 +268,9 @@ func (m *LibraryInstallReq) GetVersion() string {
} }
type LibraryInstallResp struct { type LibraryInstallResp struct {
// Progress of the library download.
Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"` Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"`
// Description of the current stage of the installation.
TaskProgress *TaskProgress `protobuf:"bytes,2,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"` TaskProgress *TaskProgress `protobuf:"bytes,2,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -298,8 +317,11 @@ func (m *LibraryInstallResp) GetTaskProgress() *TaskProgress { ...@@ -298,8 +317,11 @@ func (m *LibraryInstallResp) GetTaskProgress() *TaskProgress {
} }
type LibraryUninstallReq struct { type LibraryUninstallReq struct {
// Arduino Core Service instance from the `Init` response.
Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
// Name of the library.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// The version of the library to uninstall.
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -353,6 +375,7 @@ func (m *LibraryUninstallReq) GetVersion() string { ...@@ -353,6 +375,7 @@ func (m *LibraryUninstallReq) GetVersion() string {
} }
type LibraryUninstallResp struct { type LibraryUninstallResp struct {
// Description of the current stage of the uninstallation.
TaskProgress *TaskProgress `protobuf:"bytes,1,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"` TaskProgress *TaskProgress `protobuf:"bytes,1,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -392,6 +415,7 @@ func (m *LibraryUninstallResp) GetTaskProgress() *TaskProgress { ...@@ -392,6 +415,7 @@ func (m *LibraryUninstallResp) GetTaskProgress() *TaskProgress {
} }
type LibraryUpgradeAllReq struct { type LibraryUpgradeAllReq struct {
// Arduino Core Service instance from the `Init` response.
Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -431,7 +455,9 @@ func (m *LibraryUpgradeAllReq) GetInstance() *Instance { ...@@ -431,7 +455,9 @@ func (m *LibraryUpgradeAllReq) GetInstance() *Instance {
} }
type LibraryUpgradeAllResp struct { type LibraryUpgradeAllResp struct {
// Progress of the downloads of files needed for the upgrades.
Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"` Progress *DownloadProgress `protobuf:"bytes,1,opt,name=progress,proto3" json:"progress,omitempty"`
// Description of the current stage of the upgrade.
TaskProgress *TaskProgress `protobuf:"bytes,2,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"` TaskProgress *TaskProgress `protobuf:"bytes,2,opt,name=task_progress,json=taskProgress,proto3" json:"task_progress,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -478,8 +504,12 @@ func (m *LibraryUpgradeAllResp) GetTaskProgress() *TaskProgress { ...@@ -478,8 +504,12 @@ func (m *LibraryUpgradeAllResp) GetTaskProgress() *TaskProgress {
} }
type LibraryResolveDependenciesReq struct { type LibraryResolveDependenciesReq struct {
// Arduino Core Service instance from the `Init` response.
Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
// Name of the library.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// The version of the library to check dependencies of. If no version is
// specified, dependencies of the newest version will be listed.
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -533,6 +563,7 @@ func (m *LibraryResolveDependenciesReq) GetVersion() string { ...@@ -533,6 +563,7 @@ func (m *LibraryResolveDependenciesReq) GetVersion() string {
} }
type LibraryResolveDependenciesResp struct { type LibraryResolveDependenciesResp struct {
// Dependencies of the library.
Dependencies []*LibraryDependencyStatus `protobuf:"bytes,1,rep,name=dependencies,proto3" json:"dependencies,omitempty"` Dependencies []*LibraryDependencyStatus `protobuf:"bytes,1,rep,name=dependencies,proto3" json:"dependencies,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -572,8 +603,11 @@ func (m *LibraryResolveDependenciesResp) GetDependencies() []*LibraryDependencyS ...@@ -572,8 +603,11 @@ func (m *LibraryResolveDependenciesResp) GetDependencies() []*LibraryDependencyS
} }
type LibraryDependencyStatus struct { type LibraryDependencyStatus struct {
// The name of the library dependency.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The required version of the library dependency.
VersionRequired string `protobuf:"bytes,2,opt,name=versionRequired,proto3" json:"versionRequired,omitempty"` VersionRequired string `protobuf:"bytes,2,opt,name=versionRequired,proto3" json:"versionRequired,omitempty"`
// Version of the library dependency currently installed.
VersionInstalled string `protobuf:"bytes,3,opt,name=versionInstalled,proto3" json:"versionInstalled,omitempty"` VersionInstalled string `protobuf:"bytes,3,opt,name=versionInstalled,proto3" json:"versionInstalled,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -627,7 +661,9 @@ func (m *LibraryDependencyStatus) GetVersionInstalled() string { ...@@ -627,7 +661,9 @@ func (m *LibraryDependencyStatus) GetVersionInstalled() string {
} }
type LibrarySearchReq struct { type LibrarySearchReq struct {
// Arduino Core Service instance from the `Init` response.
Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
// The search query.
Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -674,7 +710,9 @@ func (m *LibrarySearchReq) GetQuery() string { ...@@ -674,7 +710,9 @@ func (m *LibrarySearchReq) GetQuery() string {
} }
type LibrarySearchResp struct { type LibrarySearchResp struct {
// The results of the search.
Libraries []*SearchedLibrary `protobuf:"bytes,1,rep,name=libraries,proto3" json:"libraries,omitempty"` Libraries []*SearchedLibrary `protobuf:"bytes,1,rep,name=libraries,proto3" json:"libraries,omitempty"`
// Whether the search yielded results.
Status LibrarySearchStatus `protobuf:"varint,2,opt,name=status,proto3,enum=cc.arduino.cli.commands.LibrarySearchStatus" json:"status,omitempty"` Status LibrarySearchStatus `protobuf:"varint,2,opt,name=status,proto3,enum=cc.arduino.cli.commands.LibrarySearchStatus" json:"status,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -721,8 +759,12 @@ func (m *LibrarySearchResp) GetStatus() LibrarySearchStatus { ...@@ -721,8 +759,12 @@ func (m *LibrarySearchResp) GetStatus() LibrarySearchStatus {
} }
type SearchedLibrary struct { type SearchedLibrary struct {
// Library name.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The index data for the available versions of the library. The key of the
// map is the library version.
Releases map[string]*LibraryRelease `protobuf:"bytes,2,rep,name=releases,proto3" json:"releases,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Releases map[string]*LibraryRelease `protobuf:"bytes,2,rep,name=releases,proto3" json:"releases,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// The index data for the latest version of the library.
Latest *LibraryRelease `protobuf:"bytes,3,opt,name=latest,proto3" json:"latest,omitempty"` Latest *LibraryRelease `protobuf:"bytes,3,opt,name=latest,proto3" json:"latest,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -776,18 +818,34 @@ func (m *SearchedLibrary) GetLatest() *LibraryRelease { ...@@ -776,18 +818,34 @@ func (m *SearchedLibrary) GetLatest() *LibraryRelease {
} }
type LibraryRelease struct { type LibraryRelease struct {
// Value of the `author` field in library.properties.
Author string `protobuf:"bytes,1,opt,name=author,proto3" json:"author,omitempty"` Author string `protobuf:"bytes,1,opt,name=author,proto3" json:"author,omitempty"`
// Value of the `version` field in library.properties.
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
// Value of the `maintainer` field in library.properties.
Maintainer string `protobuf:"bytes,3,opt,name=maintainer,proto3" json:"maintainer,omitempty"` Maintainer string `protobuf:"bytes,3,opt,name=maintainer,proto3" json:"maintainer,omitempty"`
// Value of the `sentence` field in library.properties.
Sentence string `protobuf:"bytes,4,opt,name=sentence,proto3" json:"sentence,omitempty"` Sentence string `protobuf:"bytes,4,opt,name=sentence,proto3" json:"sentence,omitempty"`
// Value of the `paragraph` field in library.properties.
Paragraph string `protobuf:"bytes,5,opt,name=paragraph,proto3" json:"paragraph,omitempty"` Paragraph string `protobuf:"bytes,5,opt,name=paragraph,proto3" json:"paragraph,omitempty"`
// Value of the `url` field in library.properties.
Website string `protobuf:"bytes,6,opt,name=website,proto3" json:"website,omitempty"` Website string `protobuf:"bytes,6,opt,name=website,proto3" json:"website,omitempty"`
// Value of the `category` field in library.properties.
Category string `protobuf:"bytes,7,opt,name=category,proto3" json:"category,omitempty"` Category string `protobuf:"bytes,7,opt,name=category,proto3" json:"category,omitempty"`
// Value of the `architectures` field in library.properties.
Architectures []string `protobuf:"bytes,8,rep,name=architectures,proto3" json:"architectures,omitempty"` Architectures []string `protobuf:"bytes,8,rep,name=architectures,proto3" json:"architectures,omitempty"`
// The type categories of the library, as defined in the libraries index.
// Possible values: `Arduino`, `Partner`, `Recommended`, `Contributed`,
// `Retired`.
Types []string `protobuf:"bytes,9,rep,name=types,proto3" json:"types,omitempty"` Types []string `protobuf:"bytes,9,rep,name=types,proto3" json:"types,omitempty"`
// Information about the library archive file.
Resources *DownloadResource `protobuf:"bytes,10,opt,name=resources,proto3" json:"resources,omitempty"` Resources *DownloadResource `protobuf:"bytes,10,opt,name=resources,proto3" json:"resources,omitempty"`
// Value of the `license` field in library.properties.
License string `protobuf:"bytes,11,opt,name=license,proto3" json:"license,omitempty"` License string `protobuf:"bytes,11,opt,name=license,proto3" json:"license,omitempty"`
// Value of the `includes` field in library.properties.
ProvidesIncludes []string `protobuf:"bytes,12,rep,name=provides_includes,json=providesIncludes,proto3" json:"provides_includes,omitempty"` ProvidesIncludes []string `protobuf:"bytes,12,rep,name=provides_includes,json=providesIncludes,proto3" json:"provides_includes,omitempty"`
// The names of the library's dependencies, as defined by the 'depends'
// field of library.properties.
Dependencies []*LibraryDependency `protobuf:"bytes,13,rep,name=dependencies,proto3" json:"dependencies,omitempty"` Dependencies []*LibraryDependency `protobuf:"bytes,13,rep,name=dependencies,proto3" json:"dependencies,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -911,7 +969,9 @@ func (m *LibraryRelease) GetDependencies() []*LibraryDependency { ...@@ -911,7 +969,9 @@ func (m *LibraryRelease) GetDependencies() []*LibraryDependency {
} }
type LibraryDependency struct { type LibraryDependency struct {
// Library name of the dependency.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Version constraint of the dependency.
VersionConstraint string `protobuf:"bytes,2,opt,name=version_constraint,json=versionConstraint,proto3" json:"version_constraint,omitempty"` VersionConstraint string `protobuf:"bytes,2,opt,name=version_constraint,json=versionConstraint,proto3" json:"version_constraint,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -958,10 +1018,16 @@ func (m *LibraryDependency) GetVersionConstraint() string { ...@@ -958,10 +1018,16 @@ func (m *LibraryDependency) GetVersionConstraint() string {
} }
type DownloadResource struct { type DownloadResource struct {
// Download URL of the library archive.
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
// Filename of the library archive.
Archivefilename string `protobuf:"bytes,2,opt,name=archivefilename,proto3" json:"archivefilename,omitempty"` Archivefilename string `protobuf:"bytes,2,opt,name=archivefilename,proto3" json:"archivefilename,omitempty"`
// Checksum of the library archive.
Checksum string `protobuf:"bytes,3,opt,name=checksum,proto3" json:"checksum,omitempty"` Checksum string `protobuf:"bytes,3,opt,name=checksum,proto3" json:"checksum,omitempty"`
// File size of the library archive.
Size int64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` Size int64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
// The directory under the staging subdirectory of the data directory the
// library archive file will be downloaded to.
Cachepath string `protobuf:"bytes,5,opt,name=cachepath,proto3" json:"cachepath,omitempty"` Cachepath string `protobuf:"bytes,5,opt,name=cachepath,proto3" json:"cachepath,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -1029,8 +1095,13 @@ func (m *DownloadResource) GetCachepath() string { ...@@ -1029,8 +1095,13 @@ func (m *DownloadResource) GetCachepath() string {
} }
type LibraryListReq struct { type LibraryListReq struct {
// Arduino Core Service instance from the `Init` response.
Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` Instance *Instance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"`
// Whether to include built-in libraries (from platforms and the Arduino
// IDE) in the listing.
All bool `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"` All bool `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
// Whether to list only libraries for which there is a newer version than
// the installed version available in the libraries index.
Updatable bool `protobuf:"varint,3,opt,name=updatable,proto3" json:"updatable,omitempty"` Updatable bool `protobuf:"varint,3,opt,name=updatable,proto3" json:"updatable,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -1084,6 +1155,7 @@ func (m *LibraryListReq) GetUpdatable() bool { ...@@ -1084,6 +1155,7 @@ func (m *LibraryListReq) GetUpdatable() bool {
} }
type LibraryListResp struct { type LibraryListResp struct {
// List of installed libraries.
InstalledLibrary []*InstalledLibrary `protobuf:"bytes,1,rep,name=installed_library,json=installedLibrary,proto3" json:"installed_library,omitempty"` InstalledLibrary []*InstalledLibrary `protobuf:"bytes,1,rep,name=installed_library,json=installedLibrary,proto3" json:"installed_library,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -1123,7 +1195,11 @@ func (m *LibraryListResp) GetInstalledLibrary() []*InstalledLibrary { ...@@ -1123,7 +1195,11 @@ func (m *LibraryListResp) GetInstalledLibrary() []*InstalledLibrary {
} }
type InstalledLibrary struct { type InstalledLibrary struct {
// Information about the library.
Library *Library `protobuf:"bytes,1,opt,name=library,proto3" json:"library,omitempty"` Library *Library `protobuf:"bytes,1,opt,name=library,proto3" json:"library,omitempty"`
// When the `updatable` field of the `LibraryList` request is set to `true`,
// this will contain information on the latest version of the library in the
// libraries index.
Release *LibraryRelease `protobuf:"bytes,2,opt,name=release,proto3" json:"release,omitempty"` Release *LibraryRelease `protobuf:"bytes,2,opt,name=release,proto3" json:"release,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -1170,28 +1246,55 @@ func (m *InstalledLibrary) GetRelease() *LibraryRelease { ...@@ -1170,28 +1246,55 @@ func (m *InstalledLibrary) GetRelease() *LibraryRelease {
} }
type Library struct { type Library struct {
// The library's directory name.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Value of the `author` field in library.properties.
Author string `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"` Author string `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"`
// Value of the `maintainer` field in library.properties.
Maintainer string `protobuf:"bytes,3,opt,name=maintainer,proto3" json:"maintainer,omitempty"` Maintainer string `protobuf:"bytes,3,opt,name=maintainer,proto3" json:"maintainer,omitempty"`
// Value of the `sentence` field in library.properties.
Sentence string `protobuf:"bytes,4,opt,name=sentence,proto3" json:"sentence,omitempty"` Sentence string `protobuf:"bytes,4,opt,name=sentence,proto3" json:"sentence,omitempty"`
// Value of the `paragraph` field in library.properties.
Paragraph string `protobuf:"bytes,5,opt,name=paragraph,proto3" json:"paragraph,omitempty"` Paragraph string `protobuf:"bytes,5,opt,name=paragraph,proto3" json:"paragraph,omitempty"`
// Value of the `url` field in library.properties.
Website string `protobuf:"bytes,6,opt,name=website,proto3" json:"website,omitempty"` Website string `protobuf:"bytes,6,opt,name=website,proto3" json:"website,omitempty"`
// Value of the `category` field in library.properties.
Category string `protobuf:"bytes,7,opt,name=category,proto3" json:"category,omitempty"` Category string `protobuf:"bytes,7,opt,name=category,proto3" json:"category,omitempty"`
// Value of the `architectures` field in library.properties.
Architectures []string `protobuf:"bytes,8,rep,name=architectures,proto3" json:"architectures,omitempty"` Architectures []string `protobuf:"bytes,8,rep,name=architectures,proto3" json:"architectures,omitempty"`
// The type categories of the library. Possible values: `Arduino`,
// `Partner`, `Recommended`, `Contributed`, `Retired`.
Types []string `protobuf:"bytes,9,rep,name=types,proto3" json:"types,omitempty"` Types []string `protobuf:"bytes,9,rep,name=types,proto3" json:"types,omitempty"`
// The path of the library directory.
InstallDir string `protobuf:"bytes,10,opt,name=install_dir,json=installDir,proto3" json:"install_dir,omitempty"` InstallDir string `protobuf:"bytes,10,opt,name=install_dir,json=installDir,proto3" json:"install_dir,omitempty"`
// The location of the library's source files.
SourceDir string `protobuf:"bytes,11,opt,name=source_dir,json=sourceDir,proto3" json:"source_dir,omitempty"` SourceDir string `protobuf:"bytes,11,opt,name=source_dir,json=sourceDir,proto3" json:"source_dir,omitempty"`
// The location of the library's `utility` directory.
UtilityDir string `protobuf:"bytes,12,opt,name=utility_dir,json=utilityDir,proto3" json:"utility_dir,omitempty"` UtilityDir string `protobuf:"bytes,12,opt,name=utility_dir,json=utilityDir,proto3" json:"utility_dir,omitempty"`
// If `location` is `platform_builtin` or `referenced_platform_builtin`, the
// identifying string for the platform containing the library
// (e.g., `arduino:avr@1.8.2`).
ContainerPlatform string `protobuf:"bytes,14,opt,name=container_platform,json=containerPlatform,proto3" json:"container_platform,omitempty"` ContainerPlatform string `protobuf:"bytes,14,opt,name=container_platform,json=containerPlatform,proto3" json:"container_platform,omitempty"`
// Value of the `name` field in library.properties.
RealName string `protobuf:"bytes,16,opt,name=real_name,json=realName,proto3" json:"real_name,omitempty"` RealName string `protobuf:"bytes,16,opt,name=real_name,json=realName,proto3" json:"real_name,omitempty"`
// Value of the `dot_a_linkage` field in library.properties.
DotALinkage bool `protobuf:"varint,17,opt,name=dot_a_linkage,json=dotALinkage,proto3" json:"dot_a_linkage,omitempty"` DotALinkage bool `protobuf:"varint,17,opt,name=dot_a_linkage,json=dotALinkage,proto3" json:"dot_a_linkage,omitempty"`
// Value of the `precompiled` field in library.properties.
Precompiled bool `protobuf:"varint,18,opt,name=precompiled,proto3" json:"precompiled,omitempty"` Precompiled bool `protobuf:"varint,18,opt,name=precompiled,proto3" json:"precompiled,omitempty"`
// Value of the `ldflags` field in library.properties.
LdFlags string `protobuf:"bytes,19,opt,name=ld_flags,json=ldFlags,proto3" json:"ld_flags,omitempty"` LdFlags string `protobuf:"bytes,19,opt,name=ld_flags,json=ldFlags,proto3" json:"ld_flags,omitempty"`
// A library.properties file is not present in the library's root directory.
IsLegacy bool `protobuf:"varint,20,opt,name=is_legacy,json=isLegacy,proto3" json:"is_legacy,omitempty"` IsLegacy bool `protobuf:"varint,20,opt,name=is_legacy,json=isLegacy,proto3" json:"is_legacy,omitempty"`
// Value of the `version` field in library.properties.
Version string `protobuf:"bytes,21,opt,name=version,proto3" json:"version,omitempty"` Version string `protobuf:"bytes,21,opt,name=version,proto3" json:"version,omitempty"`
// Value of the `license` field in library.properties.
License string `protobuf:"bytes,22,opt,name=license,proto3" json:"license,omitempty"` License string `protobuf:"bytes,22,opt,name=license,proto3" json:"license,omitempty"`
// The data from the library's library.properties file, including unused
// fields.
Properties map[string]string `protobuf:"bytes,23,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Properties map[string]string `protobuf:"bytes,23,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// The location type of the library installation.
Location LibraryLocation `protobuf:"varint,24,opt,name=location,proto3,enum=cc.arduino.cli.commands.LibraryLocation" json:"location,omitempty"` Location LibraryLocation `protobuf:"varint,24,opt,name=location,proto3,enum=cc.arduino.cli.commands.LibraryLocation" json:"location,omitempty"`
// The library format type.
Layout LibraryLayout `protobuf:"varint,25,opt,name=layout,proto3,enum=cc.arduino.cli.commands.LibraryLayout" json:"layout,omitempty"` Layout LibraryLayout `protobuf:"varint,25,opt,name=layout,proto3,enum=cc.arduino.cli.commands.LibraryLayout" json:"layout,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
......
...@@ -22,160 +22,263 @@ option go_package = "github.com/arduino/arduino-cli/rpc/commands"; ...@@ -22,160 +22,263 @@ option go_package = "github.com/arduino/arduino-cli/rpc/commands";
import "commands/common.proto"; import "commands/common.proto";
message LibraryDownloadReq { message LibraryDownloadReq {
// Arduino Core Service instance from the `Init` response.
Instance instance = 1; Instance instance = 1;
// Name of the library.
string name = 2; string name = 2;
// The version of the library to download.
string version = 3; string version = 3;
} }
message LibraryDownloadResp { message LibraryDownloadResp {
// Progress of the library download.
DownloadProgress progress = 1; DownloadProgress progress = 1;
} }
message LibraryInstallReq { message LibraryInstallReq {
// Arduino Core Service instance from the `Init` response.
Instance instance = 1; Instance instance = 1;
// Name of the library.
string name = 2; string name = 2;
// The version of the library to install.
string version = 3; string version = 3;
} }
message LibraryInstallResp { message LibraryInstallResp {
// Progress of the library download.
DownloadProgress progress = 1; DownloadProgress progress = 1;
// Description of the current stage of the installation.
TaskProgress task_progress = 2; TaskProgress task_progress = 2;
} }
message LibraryUninstallReq { message LibraryUninstallReq {
// Arduino Core Service instance from the `Init` response.
Instance instance = 1; Instance instance = 1;
// Name of the library.
string name = 2; string name = 2;
// The version of the library to uninstall.
string version = 3; string version = 3;
} }
message LibraryUninstallResp { message LibraryUninstallResp {
// Description of the current stage of the uninstallation.
TaskProgress task_progress = 1; TaskProgress task_progress = 1;
} }
message LibraryUpgradeAllReq { message LibraryUpgradeAllReq {
// Arduino Core Service instance from the `Init` response.
Instance instance = 1; Instance instance = 1;
} }
message LibraryUpgradeAllResp { message LibraryUpgradeAllResp {
// Progress of the downloads of files needed for the upgrades.
DownloadProgress progress = 1; DownloadProgress progress = 1;
// Description of the current stage of the upgrade.
TaskProgress task_progress = 2; TaskProgress task_progress = 2;
} }
message LibraryResolveDependenciesReq { message LibraryResolveDependenciesReq {
// Arduino Core Service instance from the `Init` response.
Instance instance = 1; Instance instance = 1;
// Name of the library.
string name = 2; string name = 2;
// The version of the library to check dependencies of. If no version is
// specified, dependencies of the newest version will be listed.
string version = 3; string version = 3;
} }
message LibraryResolveDependenciesResp { message LibraryResolveDependenciesResp {
// Dependencies of the library.
repeated LibraryDependencyStatus dependencies = 1; repeated LibraryDependencyStatus dependencies = 1;
} }
message LibraryDependencyStatus { message LibraryDependencyStatus {
// The name of the library dependency.
string name = 1; string name = 1;
// The required version of the library dependency.
string versionRequired = 2; string versionRequired = 2;
// Version of the library dependency currently installed.
string versionInstalled = 3; string versionInstalled = 3;
} }
message LibrarySearchReq { message LibrarySearchReq {
// Arduino Core Service instance from the `Init` response.
Instance instance = 1; Instance instance = 1;
// The search query.
string query = 2; string query = 2;
} }
enum LibrarySearchStatus { enum LibrarySearchStatus {
// No search results were found.
failed = 0; failed = 0;
// Search results were found.
success = 1; success = 1;
} }
message LibrarySearchResp { message LibrarySearchResp {
// The results of the search.
repeated SearchedLibrary libraries = 1; repeated SearchedLibrary libraries = 1;
// Whether the search yielded results.
LibrarySearchStatus status = 2; LibrarySearchStatus status = 2;
} }
message SearchedLibrary { message SearchedLibrary {
// Library name.
string name = 1; string name = 1;
// The index data for the available versions of the library. The key of the
// map is the library version.
map<string, LibraryRelease> releases = 2; map<string, LibraryRelease> releases = 2;
// The index data for the latest version of the library.
LibraryRelease latest = 3; LibraryRelease latest = 3;
} }
message LibraryRelease { message LibraryRelease {
// Value of the `author` field in library.properties.
string author = 1; string author = 1;
// Value of the `version` field in library.properties.
string version = 2; string version = 2;
// Value of the `maintainer` field in library.properties.
string maintainer = 3; string maintainer = 3;
// Value of the `sentence` field in library.properties.
string sentence = 4; string sentence = 4;
// Value of the `paragraph` field in library.properties.
string paragraph = 5; string paragraph = 5;
// Value of the `url` field in library.properties.
string website = 6; string website = 6;
// Value of the `category` field in library.properties.
string category = 7; string category = 7;
// Value of the `architectures` field in library.properties.
repeated string architectures = 8; repeated string architectures = 8;
// The type categories of the library, as defined in the libraries index.
// Possible values: `Arduino`, `Partner`, `Recommended`, `Contributed`,
// `Retired`.
repeated string types = 9; repeated string types = 9;
// Information about the library archive file.
DownloadResource resources = 10; DownloadResource resources = 10;
// Value of the `license` field in library.properties.
string license = 11; string license = 11;
// Value of the `includes` field in library.properties.
repeated string provides_includes = 12; repeated string provides_includes = 12;
// The names of the library's dependencies, as defined by the 'depends'
// field of library.properties.
repeated LibraryDependency dependencies = 13; repeated LibraryDependency dependencies = 13;
} }
message LibraryDependency { message LibraryDependency {
// Library name of the dependency.
string name = 1; string name = 1;
// Version constraint of the dependency.
string version_constraint = 2; string version_constraint = 2;
} }
message DownloadResource { message DownloadResource {
// Download URL of the library archive.
string url = 1; string url = 1;
// Filename of the library archive.
string archivefilename = 2; string archivefilename = 2;
// Checksum of the library archive.
string checksum = 3; string checksum = 3;
// File size of the library archive.
int64 size = 4; int64 size = 4;
// The directory under the staging subdirectory of the data directory the
// library archive file will be downloaded to.
string cachepath = 5; string cachepath = 5;
} }
message LibraryListReq { message LibraryListReq {
// Arduino Core Service instance from the `Init` response.
Instance instance = 1; Instance instance = 1;
// Whether to include built-in libraries (from platforms and the Arduino
// IDE) in the listing.
bool all = 2; bool all = 2;
// Whether to list only libraries for which there is a newer version than
// the installed version available in the libraries index.
bool updatable = 3; bool updatable = 3;
} }
message LibraryListResp { message LibraryListResp {
// List of installed libraries.
repeated InstalledLibrary installed_library = 1; repeated InstalledLibrary installed_library = 1;
} }
message InstalledLibrary { message InstalledLibrary {
// Information about the library.
Library library = 1; Library library = 1;
// When the `updatable` field of the `LibraryList` request is set to `true`,
// this will contain information on the latest version of the library in the
// libraries index.
LibraryRelease release = 2; LibraryRelease release = 2;
} }
message Library { message Library {
// The library's directory name.
string name = 1; string name = 1;
// Value of the `author` field in library.properties.
string author = 2; string author = 2;
// Value of the `maintainer` field in library.properties.
string maintainer = 3; string maintainer = 3;
// Value of the `sentence` field in library.properties.
string sentence = 4; string sentence = 4;
// Value of the `paragraph` field in library.properties.
string paragraph = 5; string paragraph = 5;
// Value of the `url` field in library.properties.
string website = 6; string website = 6;
// Value of the `category` field in library.properties.
string category = 7; string category = 7;
// Value of the `architectures` field in library.properties.
repeated string architectures = 8; repeated string architectures = 8;
// The type categories of the library. Possible values: `Arduino`,
// `Partner`, `Recommended`, `Contributed`, `Retired`.
repeated string types = 9; repeated string types = 9;
// The path of the library directory.
string install_dir = 10; string install_dir = 10;
// The location of the library's source files.
string source_dir = 11; string source_dir = 11;
// The location of the library's `utility` directory.
string utility_dir = 12; string utility_dir = 12;
// If `location` is `platform_builtin` or `referenced_platform_builtin`, the
// identifying string for the platform containing the library
// (e.g., `arduino:avr@1.8.2`).
string container_platform = 14; string container_platform = 14;
// Value of the `name` field in library.properties.
string real_name = 16; string real_name = 16;
// Value of the `dot_a_linkage` field in library.properties.
bool dot_a_linkage = 17; bool dot_a_linkage = 17;
// Value of the `precompiled` field in library.properties.
bool precompiled = 18; bool precompiled = 18;
// Value of the `ldflags` field in library.properties.
string ld_flags = 19; string ld_flags = 19;
// A library.properties file is not present in the library's root directory.
bool is_legacy = 20; bool is_legacy = 20;
// Value of the `version` field in library.properties.
string version = 21; string version = 21;
// Value of the `license` field in library.properties.
string license = 22; string license = 22;
// The data from the library's library.properties file, including unused
// fields.
map<string, string> properties = 23; map<string, string> properties = 23;
// The location type of the library installation.
LibraryLocation location = 24; LibraryLocation location = 24;
// The library format type.
LibraryLayout layout = 25; LibraryLayout layout = 25;
} }
enum LibraryLayout { enum LibraryLayout {
// Library is in the 1.0 Arduino library format.
flat_layout = 0; flat_layout = 0;
// Library is in the 1.5 Arduino library format.
recursive_layout = 1; recursive_layout = 1;
} }
enum LibraryLocation { enum LibraryLocation {
// In the `libraries` subdirectory of the Arduino IDE installation.
ide_builtin = 0; ide_builtin = 0;
user = 1; // (sketchbook) // In the `libraries` subdirectory of the user directory (sketchbook).
user = 1;
// In the `libraries` subdirectory of a platform.
platform_builtin = 2; platform_builtin = 2;
// When `LibraryLocation` is used in a context where a board is specified,
// this indicates the library is in the `libraries` subdirectory of a
// platform referenced by the board's platform.
referenced_platform_builtin = 3; referenced_platform_builtin = 3;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment