Skip to content

Commit

Permalink
DOCS-2544: Add backlinks to docs (#235)
Browse files Browse the repository at this point in the history
* DOCS-2544: Add backlinks to docs

* Fixes
  • Loading branch information
npentrel committed Jul 12, 2024
1 parent 1fe01eb commit e38cce8
Show file tree
Hide file tree
Showing 16 changed files with 433 additions and 2 deletions.
140 changes: 140 additions & 0 deletions lib/src/app/app.dart

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions lib/src/app/billing.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,40 @@ import 'package:viam_sdk/protos/app/billing.dart';
/// gRPC client for connecting to Viam's Billing Service
///
/// All calls must be authenticated.
///
/// For more information, see [Billing Client API](https://docs.viam.com/appendix/apis/billing-client/).
class BillingClient {
final BillingServiceClient _client;

BillingClient(this._client);

/// Get a detailed breakdown of current month's costs
///
/// For more information, see [Billing Client API](https://docs.viam.com/appendix/apis/billing-client/).
Future<GetCurrentMonthUsageResponse> getCurrentMonthUsage(String orgId) async {
final request = GetCurrentMonthUsageRequest()..orgId = orgId;
return await _client.getCurrentMonthUsage(request);
}

/// Org-level information (like billing email and payment details)
///
/// For more information, see [Billing Client API](https://docs.viam.com/appendix/apis/billing-client/).
Future<GetOrgBillingInformationResponse> getOrgBillingInformation(String orgId) async {
final request = GetOrgBillingInformationRequest()..orgId = orgId;
return await _client.getOrgBillingInformation(request);
}

/// Total outstanding balance and previous invoices
///
/// For more information, see [Billing Client API](https://docs.viam.com/appendix/apis/billing-client/).
Future<GetInvoicesSummaryResponse> getInvoicesSummary(String orgId) async {
final request = GetInvoicesSummaryRequest()..orgId = orgId;
return await _client.getInvoicesSummary(request);
}

/// Download a PDF invoice
///
/// For more information, see [Billing Client API](https://docs.viam.com/appendix/apis/billing-client/).
Stream<List<int>> getInvoicePdf(String orgId, String id) {
final request = GetInvoicePdfRequest()
..id = id
Expand Down
62 changes: 62 additions & 0 deletions lib/src/app/data.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ typedef DatabaseConnection = GetDatabaseConnectionResponse;
/// gRPC client used for retrieving, uploading, and modifying stored data from app.viam.com.
///
/// All calls must be authenticated.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
class DataClient {
final DataServiceClient _dataClient;
final DataSyncServiceClient _dataSyncClient;
Expand All @@ -43,6 +45,8 @@ class DataClient {

/// Filter and download tabular data. The data will be paginated into pages of `limit` items, and the last ID will be included in
/// the returned response.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<TabularDataByFilterResponse> tabularDataByFilter(
{Filter? filter, int? limit, Order? sortOrder, String? last, countOnly = false}) async {
final dataRequest = _makeDataRequest(filter, limit, last, sortOrder);
Expand All @@ -54,6 +58,8 @@ class DataClient {

/// Filter and download binary data. The data will be paginated into pages of `limit` items, and the last ID will be included in the
/// returned response.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<BinaryDataByFilterResponse> binaryDataByFilter(
{Filter? filter, int? limit, Order? sortOrder, String? last, countOnly = false}) async {
final dataRequest = _makeDataRequest(filter, limit, last, sortOrder);
Expand All @@ -64,13 +70,17 @@ class DataClient {
}

/// Retrieve binary data by IDs
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<List<BinaryData>> binaryDataByIds(List<BinaryID> binaryIds) async {
final request = BinaryDataByIDsRequest()..binaryIds.addAll(binaryIds);
final response = await _dataClient.binaryDataByIDs(request);
return response.data;
}

/// Obtain unified tabular data and metadata, queried with SQL.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<List<Map<String, dynamic>>> tabularDataBySql(String organizationId, String query) async {
final request = TabularDataBySQLRequest()
..organizationId = organizationId
Expand All @@ -80,6 +90,8 @@ class DataClient {
}

/// Obtain unified tabular data and metadata, queried with MQL.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<List<Map<String, dynamic>>> tabularDataByMql(String organizationId, List<Uint8List> query) async {
final request = TabularDataByMQLRequest()
..organizationId = organizationId
Expand All @@ -91,6 +103,8 @@ class DataClient {
/// Delete tabular data older than a provided number of days from an organization.
///
/// Returns the number of pieces of data that were deleted.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<int> deleteTabularData(String organizationId, int olderThanDays) async {
final request = DeleteTabularDataRequest()
..organizationId = organizationId
Expand All @@ -103,6 +117,8 @@ class DataClient {
/// If a [filter] is not provided, all data will be deleted.
///
/// Returns the number of pieces of data that were deleted.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<int> deleteBinaryDataByFilter(Filter? filter, {bool includeInternalData = false}) async {
final request = DeleteBinaryDataByFilterRequest()
..includeInternalData = includeInternalData
Expand All @@ -114,13 +130,17 @@ class DataClient {
/// Delete binary data based on data ID.
///
/// Returns the number of pieces of data that were deleted.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<int> deleteBinaryDataByIds(List<BinaryID> binaryIds) async {
final request = DeleteBinaryDataByIDsRequest()..binaryIds.addAll(binaryIds);
final response = await _dataClient.deleteBinaryDataByIDs(request);
return response.deletedCount.toInt();
}

/// Adds tags to binary data based on IDs.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<void> addTagsToBinaryDataByIds(List<String> tags, List<BinaryID> binaryIds) async {
final request = AddTagsToBinaryDataByIDsRequest()
..tags.addAll(tags)
Expand All @@ -130,6 +150,8 @@ class DataClient {

/// Adds tags to binary data based on a filter.
/// If no [filter] is provided, all binary data will be tagged.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<void> addTagsToBinaryDataByFilter(List<String> tags, Filter? filter) async {
final request = AddTagsToBinaryDataByFilterRequest()
..tags.addAll(tags)
Expand All @@ -141,6 +163,8 @@ class DataClient {
/// If a [filter] is not provided, the tags will be removed from all data.
///
/// Returns the number of tags deleted.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<int> removeTagsFromBinaryDataByFilter(List<String> tags, Filter? filter) async {
final request = RemoveTagsFromBinaryDataByFilterRequest()
..tags.addAll(tags)
Expand All @@ -152,6 +176,8 @@ class DataClient {
/// Remove tags from binary data based on IDs.
///
/// Returns the number of tags deleted.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<int> removeTagsFromBinaryDataByIds(List<String> tags, List<BinaryID> binaryIds) async {
final request = RemoveTagsFromBinaryDataByIDsRequest()
..tags.addAll(tags)
Expand All @@ -163,6 +189,8 @@ class DataClient {
/// Add a bounding box to an image by ID, with x and y coordinates normalized from 0 to 1.
///
/// Returns the bounding box ID.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<String> addBoundingBoxToImageById(
String label, BinaryID binaryId, double xMinNormalized, double yMinNormalized, double xMaxNormalized, double yMaxNormalized) async {
final request = AddBoundingBoxToImageByIDRequest()
Expand All @@ -177,6 +205,8 @@ class DataClient {
}

/// Removes a bounding box from an image based on bbox ID and image ID.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<void> removeBoundingBoxFromImageById(String bboxId, BinaryID binaryId) async {
final request = RemoveBoundingBoxFromImageByIDRequest()
..bboxId = bboxId
Expand All @@ -186,6 +216,8 @@ class DataClient {

/// Returns a list of tags based on a filter.
/// If no [filter] is provided, all tags will be returned.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<List<String>> tagsByFilter(Filter? filter) async {
final request = TagsByFilterRequest()..filter = filter ?? Filter();
final response = await _dataClient.tagsByFilter(request);
Expand All @@ -194,19 +226,25 @@ class DataClient {

/// Returns a list of bounding box labels based on a filter.
/// If no [filter] is provided, all labels will be returned.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<List<String>> boundingBoxLabelsByFilter(Filter? filter) async {
final request = BoundingBoxLabelsByFilterRequest()..filter = filter ?? Filter();
final response = await _dataClient.boundingBoxLabelsByFilter(request);
return response.labels;
}

/// Returns a database connection to access a MongoDB Atlas Data Federation instance.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<DatabaseConnection> getDatabaseConnection(String organizationId) async {
final request = GetDatabaseConnectionRequest()..organizationId = organizationId;
return await _dataClient.getDatabaseConnection(request);
}

/// Configures a database user for Viam's MongoDB Atlas Data Federation instance.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<void> configureDatabaseUser(String organizationId, String password) async {
final request = ConfigureDatabaseUserRequest()
..password = password
Expand All @@ -215,6 +253,8 @@ class DataClient {
}

/// Adds binary data to a dataset based on IDs.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<void> addBinaryDataToDatasetByIds(List<BinaryID> binaryIds, String datasetId) async {
final request = AddBinaryDataToDatasetByIDsRequest()
..binaryIds.addAll(binaryIds)
Expand All @@ -223,6 +263,8 @@ class DataClient {
}

/// Removes binary data from a dataset based on IDs.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<void> removeBinaryDataFromDatasetByIds(List<BinaryID> binaryIds, String datasetId) async {
final request = RemoveBinaryDataFromDatasetByIDsRequest()
..binaryIds.addAll(binaryIds)
Expand All @@ -233,6 +275,8 @@ class DataClient {
/// Upload an image to Viam's Data Manager
///
/// If no name is provided, the current timestamp will be used as the filename.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<String> uploadImage(ViamImage image, String partId,
{String? fileName,
String? componentType,
Expand Down Expand Up @@ -263,6 +307,8 @@ class DataClient {
/// Upload a file from its path to Viam's Data Manager
///
/// The file name can be overridden by providing the [fileName] parameter.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<String> uploadFile(String path, String partId,
{String? fileName,
String? componentType,
Expand Down Expand Up @@ -307,6 +353,8 @@ class DataClient {
/// Upload binary sensor data to Viam's Data Manager
///
/// Returns the data's file ID.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<String> binaryDataCaptureUpload(List<int> binaryData, String partId, String fileExtension,
{String? componentType,
String? componentName,
Expand Down Expand Up @@ -349,6 +397,8 @@ class DataClient {
/// Upload tabular sensor data to Viam's Data Manager
///
/// Returns the data's file ID.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<String> tabularDataCaptureUpload(List<Map<String, dynamic>> tabularData, String partId,
{String? componentType,
String? componentName,
Expand Down Expand Up @@ -392,6 +442,8 @@ class DataClient {
/// Uploads the metadata and contents of streaming binary data
///
/// Returns the data's file ID.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<String> streamingDataCaptureUpload(List<int> bytes, String partId, String fileExtension,
{String? componentType,
String? componentName,
Expand Down Expand Up @@ -433,6 +485,8 @@ class DataClient {
}

/// Creates a new dataset, returning the new dataset's ID.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<String> createDataset(String orgId, String name) async {
final request = CreateDatasetRequest()
..organizationId = orgId
Expand All @@ -442,12 +496,16 @@ class DataClient {
}

/// Deletes a dataset.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<void> deleteDataset(String id) async {
final request = DeleteDatasetRequest()..id = id;
await _datasetClient.deleteDataset(request);
}

/// Renames a dataset by ID.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<void> renameDataset(String id, String name) async {
final request = RenameDatasetRequest()
..id = id
Expand All @@ -456,13 +514,17 @@ class DataClient {
}

/// Returns a list of datasets within a given organization.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<List<Dataset>> listDatasetsByOrganizationID(String orgId) async {
final request = ListDatasetsByOrganizationIDRequest()..organizationId = orgId;
final response = await _datasetClient.listDatasetsByOrganizationID(request);
return response.datasets;
}

/// Looks up and returns a list of datasets by their IDs.
///
/// For more information, see [Data Client API](https://docs.viam.com/appendix/apis/data-client/).
Future<List<Dataset>> listDatasetsByIDs(List<String> ids) async {
final request = ListDatasetsByIDsRequest()..ids.addAll(ids);
final response = await _datasetClient.listDatasetsByIDs(request);
Expand Down
14 changes: 14 additions & 0 deletions lib/src/app/ml_training.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import 'package:viam_sdk/protos/app/ml_training.dart';
/// gRPC client used for working with ML training jobs.
///
/// All calls must be authenticated.
///
/// For more information, see [ML Training Client API](https://docs.viam.com/appendix/apis/ml-training-client/).
class MLTrainingClient {
final MLTrainingServiceClient _mlTrainingClient;

Expand All @@ -11,6 +13,8 @@ class MLTrainingClient {
/// Submits a training job request.
///
/// Returns the new job's ID.
///
/// For more information, see [ML Training Client API](https://docs.viam.com/appendix/apis/ml-training-client/).
Future<String> submitTrainingJob(
String orgId, String datasetId, String modelName, String modelVersion, ModelType modelType, List<String> tags) async {
final request = SubmitTrainingJobRequest()
Expand All @@ -27,6 +31,8 @@ class MLTrainingClient {
/// Submits a custom training job request.
///
/// Returns the new job's ID.
///
/// For more information, see [ML Training Client API](https://docs.viam.com/appendix/apis/ml-training-client/).
Future<String> submitCustomTrainingJob(
String orgId, String datasetId, String modelName, String modelVersion, String registryItemId) async {
final request = SubmitCustomTrainingJobRequest()
Expand All @@ -40,6 +46,8 @@ class MLTrainingClient {
}

/// Retrieves a training job by its ID.
///
/// For more information, see [ML Training Client API](https://docs.viam.com/appendix/apis/ml-training-client/).
Future<TrainingJobMetadata> getTrainingJob(String id) async {
final request = GetTrainingJobRequest()..id = id;
final response = await _mlTrainingClient.getTrainingJob(request);
Expand All @@ -48,6 +56,8 @@ class MLTrainingClient {

/// Lists training jobs for a given orgarnization ID and training status.
/// if [status] is not provided, all training jobs will be returned.
///
/// For more information, see [ML Training Client API](https://docs.viam.com/appendix/apis/ml-training-client/).
Future<List<TrainingJobMetadata>> listTrainingJobs(String orgId,
{TrainingStatus status = TrainingStatus.TRAINING_STATUS_UNSPECIFIED}) async {
final request = ListTrainingJobsRequest()
Expand All @@ -58,12 +68,16 @@ class MLTrainingClient {
}

/// Cancels a training job that has not yet completed.
///
/// For more information, see [ML Training Client API](https://docs.viam.com/appendix/apis/ml-training-client/).
Future<void> cancelTrainingJob(String id) async {
final request = CancelTrainingJobRequest()..id = id;
await _mlTrainingClient.cancelTrainingJob(request);
}

/// Removes a completed training job from the database, whether it has succeeded or failed.
///
/// For more information, see [ML Training Client API](https://docs.viam.com/appendix/apis/ml-training-client/).
Future<void> deleteCompletedTrainingJob(String id) async {
final request = DeleteCompletedTrainingJobRequest()..id = id;
await _mlTrainingClient.deleteCompletedTrainingJob(request);
Expand Down
Loading

0 comments on commit e38cce8

Please sign in to comment.