:py:mod:`viam.gen.app.data.v1.data_pb2` ======================================= .. py:module:: viam.gen.app.data.v1.data_pb2 .. autoapi-nested-parse:: @generated by mypy-protobuf. Do not edit manually! isort:skip_file Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: viam.gen.app.data.v1.data_pb2.Order viam.gen.app.data.v1.data_pb2.TagsFilterType viam.gen.app.data.v1.data_pb2.DataRequest viam.gen.app.data.v1.data_pb2.Filter viam.gen.app.data.v1.data_pb2.TagsFilter viam.gen.app.data.v1.data_pb2.CaptureMetadata viam.gen.app.data.v1.data_pb2.CaptureInterval viam.gen.app.data.v1.data_pb2.TabularDataByFilterRequest viam.gen.app.data.v1.data_pb2.TabularDataByFilterResponse viam.gen.app.data.v1.data_pb2.TabularData viam.gen.app.data.v1.data_pb2.TabularDataBySQLRequest viam.gen.app.data.v1.data_pb2.TabularDataBySQLResponse viam.gen.app.data.v1.data_pb2.TabularDataByMQLRequest viam.gen.app.data.v1.data_pb2.TabularDataByMQLResponse viam.gen.app.data.v1.data_pb2.BinaryData viam.gen.app.data.v1.data_pb2.BinaryDataByFilterRequest viam.gen.app.data.v1.data_pb2.BinaryDataByFilterResponse viam.gen.app.data.v1.data_pb2.BinaryID viam.gen.app.data.v1.data_pb2.BinaryDataByIDsRequest viam.gen.app.data.v1.data_pb2.BinaryDataByIDsResponse viam.gen.app.data.v1.data_pb2.BoundingBox viam.gen.app.data.v1.data_pb2.Annotations viam.gen.app.data.v1.data_pb2.BinaryMetadata viam.gen.app.data.v1.data_pb2.DeleteTabularDataRequest viam.gen.app.data.v1.data_pb2.DeleteTabularDataResponse viam.gen.app.data.v1.data_pb2.DeleteBinaryDataByFilterRequest viam.gen.app.data.v1.data_pb2.DeleteBinaryDataByFilterResponse viam.gen.app.data.v1.data_pb2.DeleteBinaryDataByIDsRequest viam.gen.app.data.v1.data_pb2.DeleteBinaryDataByIDsResponse viam.gen.app.data.v1.data_pb2.AddTagsToBinaryDataByIDsRequest viam.gen.app.data.v1.data_pb2.AddTagsToBinaryDataByIDsResponse viam.gen.app.data.v1.data_pb2.AddTagsToBinaryDataByFilterRequest viam.gen.app.data.v1.data_pb2.AddTagsToBinaryDataByFilterResponse viam.gen.app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsRequest viam.gen.app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsResponse viam.gen.app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterRequest viam.gen.app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterResponse viam.gen.app.data.v1.data_pb2.TagsByFilterRequest viam.gen.app.data.v1.data_pb2.TagsByFilterResponse viam.gen.app.data.v1.data_pb2.AddBoundingBoxToImageByIDRequest viam.gen.app.data.v1.data_pb2.AddBoundingBoxToImageByIDResponse viam.gen.app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDRequest viam.gen.app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDResponse viam.gen.app.data.v1.data_pb2.BoundingBoxLabelsByFilterRequest viam.gen.app.data.v1.data_pb2.BoundingBoxLabelsByFilterResponse viam.gen.app.data.v1.data_pb2.ConfigureDatabaseUserRequest viam.gen.app.data.v1.data_pb2.ConfigureDatabaseUserResponse viam.gen.app.data.v1.data_pb2.GetDatabaseConnectionRequest viam.gen.app.data.v1.data_pb2.GetDatabaseConnectionResponse viam.gen.app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsRequest viam.gen.app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsResponse viam.gen.app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest viam.gen.app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse Attributes ~~~~~~~~~~ .. autoapisummary:: viam.gen.app.data.v1.data_pb2.DESCRIPTOR viam.gen.app.data.v1.data_pb2.ORDER_UNSPECIFIED viam.gen.app.data.v1.data_pb2.ORDER_DESCENDING viam.gen.app.data.v1.data_pb2.ORDER_ASCENDING viam.gen.app.data.v1.data_pb2.global___Order viam.gen.app.data.v1.data_pb2.TAGS_FILTER_TYPE_UNSPECIFIED viam.gen.app.data.v1.data_pb2.TAGS_FILTER_TYPE_MATCH_BY_OR viam.gen.app.data.v1.data_pb2.TAGS_FILTER_TYPE_TAGGED viam.gen.app.data.v1.data_pb2.TAGS_FILTER_TYPE_UNTAGGED viam.gen.app.data.v1.data_pb2.global___TagsFilterType viam.gen.app.data.v1.data_pb2.global___DataRequest viam.gen.app.data.v1.data_pb2.global___Filter viam.gen.app.data.v1.data_pb2.global___TagsFilter viam.gen.app.data.v1.data_pb2.global___CaptureMetadata viam.gen.app.data.v1.data_pb2.global___CaptureInterval viam.gen.app.data.v1.data_pb2.global___TabularDataByFilterRequest viam.gen.app.data.v1.data_pb2.global___TabularDataByFilterResponse viam.gen.app.data.v1.data_pb2.global___TabularData viam.gen.app.data.v1.data_pb2.global___TabularDataBySQLRequest viam.gen.app.data.v1.data_pb2.global___TabularDataBySQLResponse viam.gen.app.data.v1.data_pb2.global___TabularDataByMQLRequest viam.gen.app.data.v1.data_pb2.global___TabularDataByMQLResponse viam.gen.app.data.v1.data_pb2.global___BinaryData viam.gen.app.data.v1.data_pb2.global___BinaryDataByFilterRequest viam.gen.app.data.v1.data_pb2.global___BinaryDataByFilterResponse viam.gen.app.data.v1.data_pb2.global___BinaryID viam.gen.app.data.v1.data_pb2.global___BinaryDataByIDsRequest viam.gen.app.data.v1.data_pb2.global___BinaryDataByIDsResponse viam.gen.app.data.v1.data_pb2.global___BoundingBox viam.gen.app.data.v1.data_pb2.global___Annotations viam.gen.app.data.v1.data_pb2.global___BinaryMetadata viam.gen.app.data.v1.data_pb2.global___DeleteTabularDataRequest viam.gen.app.data.v1.data_pb2.global___DeleteTabularDataResponse viam.gen.app.data.v1.data_pb2.global___DeleteBinaryDataByFilterRequest viam.gen.app.data.v1.data_pb2.global___DeleteBinaryDataByFilterResponse viam.gen.app.data.v1.data_pb2.global___DeleteBinaryDataByIDsRequest viam.gen.app.data.v1.data_pb2.global___DeleteBinaryDataByIDsResponse viam.gen.app.data.v1.data_pb2.global___AddTagsToBinaryDataByIDsRequest viam.gen.app.data.v1.data_pb2.global___AddTagsToBinaryDataByIDsResponse viam.gen.app.data.v1.data_pb2.global___AddTagsToBinaryDataByFilterRequest viam.gen.app.data.v1.data_pb2.global___AddTagsToBinaryDataByFilterResponse viam.gen.app.data.v1.data_pb2.global___RemoveTagsFromBinaryDataByIDsRequest viam.gen.app.data.v1.data_pb2.global___RemoveTagsFromBinaryDataByIDsResponse viam.gen.app.data.v1.data_pb2.global___RemoveTagsFromBinaryDataByFilterRequest viam.gen.app.data.v1.data_pb2.global___RemoveTagsFromBinaryDataByFilterResponse viam.gen.app.data.v1.data_pb2.global___TagsByFilterRequest viam.gen.app.data.v1.data_pb2.global___TagsByFilterResponse viam.gen.app.data.v1.data_pb2.global___AddBoundingBoxToImageByIDRequest viam.gen.app.data.v1.data_pb2.global___AddBoundingBoxToImageByIDResponse viam.gen.app.data.v1.data_pb2.global___RemoveBoundingBoxFromImageByIDRequest viam.gen.app.data.v1.data_pb2.global___RemoveBoundingBoxFromImageByIDResponse viam.gen.app.data.v1.data_pb2.global___BoundingBoxLabelsByFilterRequest viam.gen.app.data.v1.data_pb2.global___BoundingBoxLabelsByFilterResponse viam.gen.app.data.v1.data_pb2.global___ConfigureDatabaseUserRequest viam.gen.app.data.v1.data_pb2.global___ConfigureDatabaseUserResponse viam.gen.app.data.v1.data_pb2.global___GetDatabaseConnectionRequest viam.gen.app.data.v1.data_pb2.global___GetDatabaseConnectionResponse viam.gen.app.data.v1.data_pb2.global___AddBinaryDataToDatasetByIDsRequest viam.gen.app.data.v1.data_pb2.global___AddBinaryDataToDatasetByIDsResponse viam.gen.app.data.v1.data_pb2.global___RemoveBinaryDataFromDatasetByIDsRequest viam.gen.app.data.v1.data_pb2.global___RemoveBinaryDataFromDatasetByIDsResponse .. py:data:: DESCRIPTOR :type: google.protobuf.descriptor.FileDescriptor .. py:class:: Order Bases: :py:obj:`_Order` Order specifies the order in which data is returned. .. py:data:: ORDER_UNSPECIFIED :type: Order .. py:data:: ORDER_DESCENDING :type: Order .. py:data:: ORDER_ASCENDING :type: Order .. py:data:: global___Order .. py:class:: TagsFilterType Bases: :py:obj:`_TagsFilterType` TagsFilterType specifies how data can be filtered based on tags. .. py:data:: TAGS_FILTER_TYPE_UNSPECIFIED :type: TagsFilterType .. py:data:: TAGS_FILTER_TYPE_MATCH_BY_OR :type: TagsFilterType TAGS_FILTER_TYPE_MATCH_BY_OR specifies documents matched (using logical OR) on the tags field in the TagsFilter. .. py:data:: TAGS_FILTER_TYPE_TAGGED :type: TagsFilterType TAGS_FILTER_TYPE_TAGGED specifies that all tagged documents should be returned. .. py:data:: TAGS_FILTER_TYPE_UNTAGGED :type: TagsFilterType TAGS_FILTER_TYPE_UNTAGGED specifes that all untagged documents should be returned. .. py:data:: global___TagsFilterType .. py:class:: DataRequest(*, filter: global___Filter | None = ..., limit: int = ..., last: str = ..., sort_order: global___Order = ...) Bases: :py:obj:`google.protobuf.message.Message` DataRequest encapsulates the filter for the data, a limit on the maximum results returned, a last string associated with the last returned document, and the sorting order by time. last is returned in the responses TabularDataByFilterResponse and BinaryDataByFilterResponse from the API calls TabularDataByFilter and BinaryDataByFilter, respectively. We can then use the last string from the previous API calls in the subsequent request to get the next set of ordered documents. .. py:property:: filter :type: global___Filter .. py:attribute:: limit :type: int .. py:attribute:: last :type: str .. py:attribute:: sort_order :type: global___Order .. py:method:: HasField(field_name: Literal[filter, b'filter']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___DataRequest .. py:class:: Filter(*, component_name: str = ..., component_type: str = ..., method: str = ..., robot_name: str = ..., robot_id: str = ..., part_name: str = ..., part_id: str = ..., location_ids: collections.abc.Iterable[str] | None = ..., organization_ids: collections.abc.Iterable[str] | None = ..., mime_type: collections.abc.Iterable[str] | None = ..., interval: global___CaptureInterval | None = ..., tags_filter: global___TagsFilter | None = ..., bbox_labels: collections.abc.Iterable[str] | None = ..., dataset_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Filter defines the fields over which we can filter data using a logic AND. For example, if component_type and robot_id are specified, only data from that `robot_id` of type `component_type` is returned. However, we logical OR over the specified tags and bounding box labels, such that if component_type, robot_id, tagA, tagB are specified, we return data from that `robot_id` of type `component_type` with `tagA` or `tagB`. .. py:property:: location_ids :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:property:: organization_ids :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:property:: mime_type :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:property:: interval :type: global___CaptureInterval .. py:property:: tags_filter :type: global___TagsFilter .. py:property:: bbox_labels :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] bbox_labels are used to match documents with the specified bounding box labels (using logical OR). .. py:attribute:: component_name :type: str .. py:attribute:: component_type :type: str .. py:attribute:: method :type: str .. py:attribute:: robot_name :type: str .. py:attribute:: robot_id :type: str .. py:attribute:: part_name :type: str .. py:attribute:: part_id :type: str .. py:attribute:: dataset_id :type: str .. py:method:: HasField(field_name: Literal[interval, b'interval', tags_filter, b'tags_filter']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___Filter .. py:class:: TagsFilter(*, type: global___TagsFilterType = ..., tags: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` TagsFilter defines the type of filtering and, if applicable, over which tags to perform a logical OR. .. py:property:: tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] Tags are used to match documents if `type` is UNSPECIFIED or MATCH_BY_OR. .. py:attribute:: type :type: global___TagsFilterType .. py:data:: global___TagsFilter .. py:class:: CaptureMetadata(*, organization_id: str = ..., location_id: str = ..., robot_name: str = ..., robot_id: str = ..., part_name: str = ..., part_id: str = ..., component_type: str = ..., component_name: str = ..., method_name: str = ..., method_parameters: collections.abc.Mapping[str, google.protobuf.any_pb2.Any] | None = ..., tags: collections.abc.Iterable[str] | None = ..., mime_type: str = ...) Bases: :py:obj:`google.protobuf.message.Message` CaptureMetadata contains information on the settings used for the data capture. .. py:class:: MethodParametersEntry(*, key: str = ..., value: google.protobuf.any_pb2.Any | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: value :type: google.protobuf.any_pb2.Any .. py:attribute:: key :type: str .. py:method:: HasField(field_name: Literal[value, b'value']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:property:: method_parameters :type: google.protobuf.internal.containers.MessageMap[str, google.protobuf.any_pb2.Any] .. py:property:: tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:attribute:: organization_id :type: str .. py:attribute:: location_id :type: str .. py:attribute:: robot_name :type: str .. py:attribute:: robot_id :type: str .. py:attribute:: part_name :type: str .. py:attribute:: part_id :type: str .. py:attribute:: component_type :type: str .. py:attribute:: component_name :type: str .. py:attribute:: method_name :type: str .. py:attribute:: mime_type :type: str .. py:data:: global___CaptureMetadata .. py:class:: CaptureInterval(*, start: google.protobuf.timestamp_pb2.Timestamp | None = ..., end: google.protobuf.timestamp_pb2.Timestamp | None = ...) Bases: :py:obj:`google.protobuf.message.Message` CaptureInterval describes the start and end time of the capture in this file. .. py:property:: start :type: google.protobuf.timestamp_pb2.Timestamp .. py:property:: end :type: google.protobuf.timestamp_pb2.Timestamp .. py:method:: HasField(field_name: Literal[end, b'end', start, b'start']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___CaptureInterval .. py:class:: TabularDataByFilterRequest(*, data_request: global___DataRequest | None = ..., count_only: bool = ..., include_internal_data: bool = ...) Bases: :py:obj:`google.protobuf.message.Message` TabularDataByFilterRequest requests tabular data based on filter values. .. py:property:: data_request :type: global___DataRequest .. py:attribute:: count_only :type: bool .. py:attribute:: include_internal_data :type: bool .. py:method:: HasField(field_name: Literal[data_request, b'data_request']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___TabularDataByFilterRequest .. py:class:: TabularDataByFilterResponse(*, metadata: collections.abc.Iterable[global___CaptureMetadata] | None = ..., data: collections.abc.Iterable[global___TabularData] | None = ..., count: int = ..., last: str = ..., total_size_bytes: int = ...) Bases: :py:obj:`google.protobuf.message.Message` TabularDataByFilterResponse provides the data and metadata of tabular data. .. py:property:: metadata :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CaptureMetadata] .. py:property:: data :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TabularData] .. py:attribute:: count :type: int .. py:attribute:: last :type: str .. py:attribute:: total_size_bytes :type: int .. py:data:: global___TabularDataByFilterResponse .. py:class:: TabularData(*, data: google.protobuf.struct_pb2.Struct | None = ..., metadata_index: int = ..., time_requested: google.protobuf.timestamp_pb2.Timestamp | None = ..., time_received: google.protobuf.timestamp_pb2.Timestamp | None = ...) Bases: :py:obj:`google.protobuf.message.Message` TabularData contains data and metadata associated with tabular data. .. py:property:: data :type: google.protobuf.struct_pb2.Struct .. py:property:: time_requested :type: google.protobuf.timestamp_pb2.Timestamp .. py:property:: time_received :type: google.protobuf.timestamp_pb2.Timestamp .. py:attribute:: metadata_index :type: int .. py:method:: HasField(field_name: Literal[data, b'data', time_received, b'time_received', time_requested, b'time_requested']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___TabularData .. py:class:: TabularDataBySQLRequest(*, organization_id: str = ..., sql_query: str = ...) Bases: :py:obj:`google.protobuf.message.Message` TabularDataBySQLRequest requests tabular data using a SQL query. .. py:attribute:: organization_id :type: str .. py:attribute:: sql_query :type: str sql_query accepts any valid SQL SELECT statement. Tabular data is held in a database called "sensorData" and a table called readings, so queries should select from "readings" or "sensorData.readings". .. py:data:: global___TabularDataBySQLRequest .. py:class:: TabularDataBySQLResponse(*, data: collections.abc.Iterable[google.protobuf.struct_pb2.Struct] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` TabularDataBySQLResponse provides unified tabular data and metadata, queried with SQL. .. py:property:: data :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Struct] .. py:data:: global___TabularDataBySQLResponse .. py:class:: TabularDataByMQLRequest(*, organization_id: str = ..., mql_binary: collections.abc.Iterable[bytes] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` TabularDataByMQLRequest requests tabular data using an MQL query. .. py:property:: mql_binary :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[bytes] mql_binary accepts a MongoDB aggregation pipeline as a list of BSON documents, where each document is one stage in the pipeline. The pipeline is run on the "sensorData.readings" namespace, which holds the Viam organization's tabular data. .. py:attribute:: organization_id :type: str .. py:data:: global___TabularDataByMQLRequest .. py:class:: TabularDataByMQLResponse(*, data: collections.abc.Iterable[google.protobuf.struct_pb2.Struct] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` TabularDataByMQLResponse provides unified tabular data and metadata, queried with MQL. .. py:property:: data :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Struct] .. py:data:: global___TabularDataByMQLResponse .. py:class:: BinaryData(*, binary: bytes = ..., metadata: global___BinaryMetadata | None = ...) Bases: :py:obj:`google.protobuf.message.Message` BinaryData contains data and metadata associated with binary data. .. py:property:: metadata :type: global___BinaryMetadata .. py:attribute:: binary :type: bytes .. py:method:: HasField(field_name: Literal[metadata, b'metadata']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___BinaryData .. py:class:: BinaryDataByFilterRequest(*, data_request: global___DataRequest | None = ..., include_binary: bool = ..., count_only: bool = ..., include_internal_data: bool = ...) Bases: :py:obj:`google.protobuf.message.Message` BinaryDataByFilterRequest requests the data and metadata of binary (image + file) data when a filter is provided. .. py:property:: data_request :type: global___DataRequest .. py:attribute:: include_binary :type: bool .. py:attribute:: count_only :type: bool .. py:attribute:: include_internal_data :type: bool .. py:method:: HasField(field_name: Literal[data_request, b'data_request']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___BinaryDataByFilterRequest .. py:class:: BinaryDataByFilterResponse(*, data: collections.abc.Iterable[global___BinaryData] | None = ..., count: int = ..., last: str = ..., total_size_bytes: int = ...) Bases: :py:obj:`google.protobuf.message.Message` BinaryDataByFilterResponse provides the data and metadata of binary (image + file) data when a filter is provided. .. py:property:: data :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryData] .. py:attribute:: count :type: int .. py:attribute:: last :type: str .. py:attribute:: total_size_bytes :type: int .. py:data:: global___BinaryDataByFilterResponse .. py:class:: BinaryID(*, file_id: str = ..., organization_id: str = ..., location_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` BinaryID is the unique identifier for a file that one can request to be retrieved or modified. .. py:attribute:: file_id :type: str .. py:attribute:: organization_id :type: str .. py:attribute:: location_id :type: str .. py:data:: global___BinaryID .. py:class:: BinaryDataByIDsRequest(*, include_binary: bool = ..., binary_ids: collections.abc.Iterable[global___BinaryID] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` BinaryDataByFilterRequest requests the data and metadata of binary (image + file) data by binary ids. .. py:property:: binary_ids :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID] .. py:attribute:: include_binary :type: bool .. py:data:: global___BinaryDataByIDsRequest .. py:class:: BinaryDataByIDsResponse(*, data: collections.abc.Iterable[global___BinaryData] | None = ..., count: int = ...) Bases: :py:obj:`google.protobuf.message.Message` BinaryDataByIDsResponse provides the data and metadata of binary (image + file) data when a filter is provided. .. py:property:: data :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryData] .. py:attribute:: count :type: int .. py:data:: global___BinaryDataByIDsResponse .. py:class:: BoundingBox(*, id: str = ..., label: str = ..., x_min_normalized: float = ..., y_min_normalized: float = ..., x_max_normalized: float = ..., y_max_normalized: float = ...) Bases: :py:obj:`google.protobuf.message.Message` BoundingBox represents a labeled bounding box on an image. x and y values are normalized ratios between 0 and 1. .. py:attribute:: id :type: str .. py:attribute:: label :type: str .. py:attribute:: x_min_normalized :type: float .. py:attribute:: y_min_normalized :type: float .. py:attribute:: x_max_normalized :type: float .. py:attribute:: y_max_normalized :type: float .. py:data:: global___BoundingBox .. py:class:: Annotations(*, bboxes: collections.abc.Iterable[global___BoundingBox] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Annotations are data annotations used for machine learning. .. py:property:: bboxes :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BoundingBox] .. py:data:: global___Annotations .. py:class:: BinaryMetadata(*, id: str = ..., capture_metadata: global___CaptureMetadata | None = ..., time_requested: google.protobuf.timestamp_pb2.Timestamp | None = ..., time_received: google.protobuf.timestamp_pb2.Timestamp | None = ..., file_name: str = ..., file_ext: str = ..., uri: str = ..., annotations: global___Annotations | None = ..., dataset_ids: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` BinaryMetadata is the metadata associated with binary data. .. py:property:: capture_metadata :type: global___CaptureMetadata .. py:property:: time_requested :type: google.protobuf.timestamp_pb2.Timestamp .. py:property:: time_received :type: google.protobuf.timestamp_pb2.Timestamp .. py:property:: annotations :type: global___Annotations .. py:property:: dataset_ids :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:attribute:: id :type: str .. py:attribute:: file_name :type: str .. py:attribute:: file_ext :type: str .. py:attribute:: uri :type: str .. py:method:: HasField(field_name: Literal[annotations, b'annotations', capture_metadata, b'capture_metadata', time_received, b'time_received', time_requested, b'time_requested']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___BinaryMetadata .. py:class:: DeleteTabularDataRequest(*, organization_id: str = ..., delete_older_than_days: int = ...) Bases: :py:obj:`google.protobuf.message.Message` DeleteTabularDataRequest deletes the data from the organization that is older than `delete_older_than_days`. For example if `delete_older_than_days` is 10, this deletes any data that was captured up to 10 days ago. If it is 0, all existing data is deleted. .. py:attribute:: organization_id :type: str .. py:attribute:: delete_older_than_days :type: int .. py:data:: global___DeleteTabularDataRequest .. py:class:: DeleteTabularDataResponse(*, deleted_count: int = ...) Bases: :py:obj:`google.protobuf.message.Message` DeleteBinaryDataResponse returns the number of tabular datapoints deleted. .. py:attribute:: deleted_count :type: int .. py:data:: global___DeleteTabularDataResponse .. py:class:: DeleteBinaryDataByFilterRequest(*, filter: global___Filter | None = ..., include_internal_data: bool = ...) Bases: :py:obj:`google.protobuf.message.Message` DeleteBinaryDataByFilterRequest deletes the data and metadata of binary data when a filter is provided. .. py:property:: filter :type: global___Filter .. py:attribute:: include_internal_data :type: bool .. py:method:: HasField(field_name: Literal[filter, b'filter']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___DeleteBinaryDataByFilterRequest .. py:class:: DeleteBinaryDataByFilterResponse(*, deleted_count: int = ...) Bases: :py:obj:`google.protobuf.message.Message` DeleteBinaryDataByFilterResponse returns the number of binary files deleted when a filter is provided. .. py:attribute:: deleted_count :type: int .. py:data:: global___DeleteBinaryDataByFilterResponse .. py:class:: DeleteBinaryDataByIDsRequest(*, binary_ids: collections.abc.Iterable[global___BinaryID] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` DeleteBinaryDataByIDsRequest deletes the data and metadata of binary data when binary ids are provided. .. py:property:: binary_ids :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID] .. py:data:: global___DeleteBinaryDataByIDsRequest .. py:class:: DeleteBinaryDataByIDsResponse(*, deleted_count: int = ...) Bases: :py:obj:`google.protobuf.message.Message` DeleteBinaryDataByIDsResponse returns the number of binary files deleted when binary ids are provided. .. py:attribute:: deleted_count :type: int .. py:data:: global___DeleteBinaryDataByIDsResponse .. py:class:: AddTagsToBinaryDataByIDsRequest(*, binary_ids: collections.abc.Iterable[global___BinaryID] | None = ..., tags: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` AddTagsToBinaryDataByIDsRequest requests adding all specified tags to each of the files when binary ids are provided. .. py:property:: binary_ids :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID] .. py:property:: tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:data:: global___AddTagsToBinaryDataByIDsRequest .. py:class:: AddTagsToBinaryDataByIDsResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:data:: global___AddTagsToBinaryDataByIDsResponse .. py:class:: AddTagsToBinaryDataByFilterRequest(*, filter: global___Filter | None = ..., tags: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` AddTagsToBinaryDataByFilterRequest requests adding all specified tags to each of the files when a filter is provided. .. py:property:: filter :type: global___Filter .. py:property:: tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:method:: HasField(field_name: Literal[filter, b'filter']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___AddTagsToBinaryDataByFilterRequest .. py:class:: AddTagsToBinaryDataByFilterResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:data:: global___AddTagsToBinaryDataByFilterResponse .. py:class:: RemoveTagsFromBinaryDataByIDsRequest(*, binary_ids: collections.abc.Iterable[global___BinaryID] | None = ..., tags: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` RemoveTagsFromBinaryDataByIDsRequest requests removing the given tags value from each file when binary ids are provided. .. py:property:: binary_ids :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID] .. py:property:: tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:data:: global___RemoveTagsFromBinaryDataByIDsRequest .. py:class:: RemoveTagsFromBinaryDataByIDsResponse(*, deleted_count: int = ...) Bases: :py:obj:`google.protobuf.message.Message` RemoveTagsFromBinaryDataByIDsResponse returns the number of binary files which had tags removed .. py:attribute:: deleted_count :type: int .. py:data:: global___RemoveTagsFromBinaryDataByIDsResponse .. py:class:: RemoveTagsFromBinaryDataByFilterRequest(*, filter: global___Filter | None = ..., tags: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` RemoveTagsFromBinaryDataByFilterRequest requests removing the given tags value from each file when a filter is provided. .. py:property:: filter :type: global___Filter .. py:property:: tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:method:: HasField(field_name: Literal[filter, b'filter']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___RemoveTagsFromBinaryDataByFilterRequest .. py:class:: RemoveTagsFromBinaryDataByFilterResponse(*, deleted_count: int = ...) Bases: :py:obj:`google.protobuf.message.Message` RemoveTagsFromBinaryDataByFilterResponse returns the number of binary files which had tags removed. .. py:attribute:: deleted_count :type: int .. py:data:: global___RemoveTagsFromBinaryDataByFilterResponse .. py:class:: TagsByFilterRequest(*, filter: global___Filter | None = ...) Bases: :py:obj:`google.protobuf.message.Message` TagsByFilterRequest requests the unique tags from data based on given filter. .. py:property:: filter :type: global___Filter .. py:method:: HasField(field_name: Literal[filter, b'filter']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___TagsByFilterRequest .. py:class:: TagsByFilterResponse(*, tags: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` TagsByFilterResponse returns the unique tags from data based on given filter. .. py:property:: tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:data:: global___TagsByFilterResponse .. py:class:: AddBoundingBoxToImageByIDRequest(*, binary_id: global___BinaryID | None = ..., label: str = ..., x_min_normalized: float = ..., y_min_normalized: float = ..., x_max_normalized: float = ..., y_max_normalized: float = ...) Bases: :py:obj:`google.protobuf.message.Message` AddBoundingBoxToImageByIDRequest specifies the binary ID to which a bounding box with the associated label and position in normalized coordinates will be added. .. py:property:: binary_id :type: global___BinaryID .. py:attribute:: label :type: str .. py:attribute:: x_min_normalized :type: float .. py:attribute:: y_min_normalized :type: float .. py:attribute:: x_max_normalized :type: float .. py:attribute:: y_max_normalized :type: float .. py:method:: HasField(field_name: Literal[binary_id, b'binary_id']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___AddBoundingBoxToImageByIDRequest .. py:class:: AddBoundingBoxToImageByIDResponse(*, bbox_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` AddBoundingBoxToImageByIDResponse returns the bounding box ID of the successfully added bounding box. .. py:attribute:: bbox_id :type: str .. py:data:: global___AddBoundingBoxToImageByIDResponse .. py:class:: RemoveBoundingBoxFromImageByIDRequest(*, binary_id: global___BinaryID | None = ..., bbox_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` RemoveBoundingBoxFromImageByIDRequest removes the bounding box with specified bbox ID for the file represented by the binary id. .. py:property:: binary_id :type: global___BinaryID .. py:attribute:: bbox_id :type: str .. py:method:: HasField(field_name: Literal[binary_id, b'binary_id']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___RemoveBoundingBoxFromImageByIDRequest .. py:class:: RemoveBoundingBoxFromImageByIDResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:data:: global___RemoveBoundingBoxFromImageByIDResponse .. py:class:: BoundingBoxLabelsByFilterRequest(*, filter: global___Filter | None = ...) Bases: :py:obj:`google.protobuf.message.Message` BoundingBoxLabelsByFilterRequest requests all the labels of the bounding boxes from files from a given filter. .. py:property:: filter :type: global___Filter .. py:method:: HasField(field_name: Literal[filter, b'filter']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:data:: global___BoundingBoxLabelsByFilterRequest .. py:class:: BoundingBoxLabelsByFilterResponse(*, labels: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` BoundingBoxLabelsByFilterRequest returns all the labels of the bounding boxes from files from a given filter. .. py:property:: labels :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:data:: global___BoundingBoxLabelsByFilterResponse .. py:class:: ConfigureDatabaseUserRequest(*, organization_id: str = ..., password: str = ...) Bases: :py:obj:`google.protobuf.message.Message` ConfigureDatabaseUserRequest accepts a Viam organization ID and a password for the database user being configured. Viam uses gRPC over TLS, so the entire request will be encrypted while in flight, including the password. .. py:attribute:: organization_id :type: str .. py:attribute:: password :type: str .. py:data:: global___ConfigureDatabaseUserRequest .. py:class:: ConfigureDatabaseUserResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:data:: global___ConfigureDatabaseUserResponse .. py:class:: GetDatabaseConnectionRequest(*, organization_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` GetDatabaseConnectionRequest requests the database connection hostname. .. py:attribute:: organization_id :type: str .. py:data:: global___GetDatabaseConnectionRequest .. py:class:: GetDatabaseConnectionResponse(*, hostname: str = ..., mongodb_uri: str = ..., has_database_user: bool = ...) Bases: :py:obj:`google.protobuf.message.Message` GetDatabaseConnectionResponse returns the database connection hostname endpoint. It also returns a URI that can be used to connect to the database instance through MongoDB clients, as well as information on whether the Viam organization has a database user configured. .. py:attribute:: hostname :type: str .. py:attribute:: mongodb_uri :type: str .. py:attribute:: has_database_user :type: bool .. py:data:: global___GetDatabaseConnectionResponse .. py:class:: AddBinaryDataToDatasetByIDsRequest(*, binary_ids: collections.abc.Iterable[global___BinaryID] | None = ..., dataset_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` AddBinaryDataToDatasetByIDsRequest adds the binary data with the given binary IDs to a dataset with dataset_id. .. py:property:: binary_ids :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID] .. py:attribute:: dataset_id :type: str .. py:data:: global___AddBinaryDataToDatasetByIDsRequest .. py:class:: AddBinaryDataToDatasetByIDsResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:data:: global___AddBinaryDataToDatasetByIDsResponse .. py:class:: RemoveBinaryDataFromDatasetByIDsRequest(*, binary_ids: collections.abc.Iterable[global___BinaryID] | None = ..., dataset_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` RemoveBinaryDataFromDatasetByIDsRequest removes the specified binary IDs from a dataset with dataset_id. .. py:property:: binary_ids :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID] .. py:attribute:: dataset_id :type: str .. py:data:: global___RemoveBinaryDataFromDatasetByIDsRequest .. py:class:: RemoveBinaryDataFromDatasetByIDsResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:data:: global___RemoveBinaryDataFromDatasetByIDsResponse