diff --git a/CHANGELOG.md b/CHANGELOG.md index a861fd6..efaa127 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,49 @@ # Changelog Hiber API -### 0.147 (2023-04-10) +### 0.151 (2023-05-22) +##### DeviceService + +- Added `Device.type` to indicate the device type. + +##### DeviceTypeService + +- Added the `DeviceTypeService` to list available device types. + +##### FieldService + +- Added modem `name` and `identifier` to `ListFieldsForModem.Response.ModemWithFields`. + +##### ModemService + +- Added `Modem.ConnectedDeviceInfo.device_type` to indicate the device type. +- Added blocking logic for gateways (i.e. when license expires) + +##### TokenService + +- Added uniqueness check on token name (for active tokens) within organization. + +### 0.148 (2023-04-17) + +##### EventService + +- Fix a bug where events from transferred modems would be fetched, resulting in errors. +##### ModemTransferService -### 0.146 (2023-04-03) +- Removed the deprecated `ModemTransferService` and related fields +##### ModemTransferReturnService +- Removed the deprecated `ModemTransferReturnService`. -### 0.145 (2023-03-27) +##### EventService +- Removed `deprecated_transfer` from `TransferEvent`. +##### EventService + +- Added `ModemHealth` call, which returns all events that affect modem health in the organization (without time limit). ### 0.144 (2023-03-20) @@ -63,7 +96,7 @@ ##### EventService -- Changed the title and description for `ModemEvent.MessageEvent.ModemMessageCannotBeParsedEvent` +- Changed the title and description for `ModemEvent.MessageEvent.ModemMessageCannotBeParsedEvent` to reflect that this is a configuration issue that hiber support should solve. ### 0.139 (2023-02-06) @@ -153,10 +186,6 @@ - Removed the Easypulse-related organization features. -### 0.134 (2022-12-19) - - - ### 0.133 (2022-12-12) ##### ValueService @@ -165,14 +194,6 @@ - Renamed `duration` to `value_durations`. - Fixed the documentation inside the `oneof value_type`. -### 0.132 (2022-12-05) - - - -### 0.131 (2022-11-28) - - - ### 0.130 (2022-11-21) ##### EventService @@ -349,10 +370,6 @@ Created a new simulation service that allows to directly simulate values. - Use `List` to list absolute values for a given period of time. - Use `Aggregated` to aggregate values over a given period of time, optionally partitioned (i.e. average per day). -### 0.118 (2022-08-22) - -### 0.117 (2022-08-15) - ### 0.116 (2022-08-01) ##### FieldService @@ -449,8 +466,6 @@ Created a new simulation service that allows to directly simulate values. - Added `Value.Enum` with the enum `value`, `display_name` and optional `description`, `color` and `priority`. -### 0.113 (2022-07-04) - ### 0.112 (2022-06-27) - Added new fields for EasyPulse Assets @@ -466,8 +481,6 @@ Created a new simulation service that allows to directly simulate values. - Improved the title and description for alarm events with multiple error messages. -### 0.111 (2022-06-20) - ### 0.110 (2022-06-13) - Added support for textual shortcuts in `Timestamp.textual`: diff --git a/README.md b/README.md index 0536f91..d80a910 100644 --- a/README.md +++ b/README.md @@ -215,7 +215,7 @@ For Hiber customer development, we have set up endpoints under [acc.env.hiber.cl - [acc.env.hiber.cloud](https://acc.env.hiber.cloud): The Hiber web application - [api.acc.env.hiber.cloud](https://api.acc.env.hiber.cloud) (or [grpc.acc.env.hiber.cloud](https://grpc.acc.env.hiber.cloud)): -The GRPC API, accessible over https on port 443 or 1443. +The GRPC API, accessible over https on port 443. (Note that opening this url in your browser will not work, since it requires HTTP2.) Notes: @@ -238,7 +238,7 @@ For actual modems and modem messages, use [hiber.cloud](https://hiber.cloud): - [hiber.cloud](https://hiber.cloud): The Hiber web application - [api.hiber.cloud](https://api.hiber.cloud) (or [grpc.hiber.cloud](https://grpc.hiber.cloud)): -The GRPC API, accessible over https on port 443 or 1443. +The GRPC API, accessible over https on port 443. (Note that opening this url in your browser will not work, since it requires HTTP2.) ## Examples diff --git a/buf.md b/buf.md index 0536f91..d80a910 100644 --- a/buf.md +++ b/buf.md @@ -215,7 +215,7 @@ For Hiber customer development, we have set up endpoints under [acc.env.hiber.cl - [acc.env.hiber.cloud](https://acc.env.hiber.cloud): The Hiber web application - [api.acc.env.hiber.cloud](https://api.acc.env.hiber.cloud) (or [grpc.acc.env.hiber.cloud](https://grpc.acc.env.hiber.cloud)): -The GRPC API, accessible over https on port 443 or 1443. +The GRPC API, accessible over https on port 443. (Note that opening this url in your browser will not work, since it requires HTTP2.) Notes: @@ -238,7 +238,7 @@ For actual modems and modem messages, use [hiber.cloud](https://hiber.cloud): - [hiber.cloud](https://hiber.cloud): The Hiber web application - [api.hiber.cloud](https://api.hiber.cloud) (or [grpc.hiber.cloud](https://grpc.hiber.cloud)): -The GRPC API, accessible over https on port 443 or 1443. +The GRPC API, accessible over https on port 443. (Note that opening this url in your browser will not work, since it requires HTTP2.) ## Examples diff --git a/device.proto b/device.proto index 71c4532..ee1b6a7 100644 --- a/device.proto +++ b/device.proto @@ -65,6 +65,9 @@ message Device { /* The expected transmission rate for this device. */ optional hiber.value.Value.Numeric.Rate expected_transmission_rate = 16; + /* The DeviceType for this device. See DeviceType for more information. */ + string type = 17; + /* Collection of data about the devices it is connected to. */ message Links { /* Other identifiers for this devices. Could include data like its MAC-address or otherwise unique identifier. */ diff --git a/device_type.proto b/device_type.proto new file mode 100644 index 0000000..db9ad12 --- /dev/null +++ b/device_type.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; + +package hiber.device.type; + +option java_multiple_files = true; +option java_package = "global.hiber.api.grpc.device.type"; +option go_package = "hiber"; + +/* Preconfigured device type. */ +message DeviceType { + string identifier = 1; + string brand = 2; + string application = 3; + string category = 4; + string version = 5; + string description = 6; +} + +/* Selection object for device types. */ +message DeviceTypeSelection { + string search = 1; +} diff --git a/device_type_service.proto b/device_type_service.proto new file mode 100644 index 0000000..57c3d0d --- /dev/null +++ b/device_type_service.proto @@ -0,0 +1,47 @@ +/* Device Types. + * + */ +syntax = "proto3"; + +package hiber.device.type; + +import "base.proto"; +import "device_type.proto"; + +option java_multiple_files = false; +option java_package = "global.hiber.api.grpc.device.type"; +option java_outer_classname = "DeviceTypeApi"; +option go_package = "hiber"; + +service DeviceTypeService { + rpc List (ListDeviceTypes.Request) returns (ListDeviceTypes.Response); +} + +message ListDeviceTypes { + enum Sort { + IDENTIFIER_ASC = 0; + IDENTIFIER_DESC = 1; + + BRAND_ASC = 2; + BRAND_DESC = 3; + } + + message Request { + /* Pick the organization to use (/impersonate). If unset, your default organization is used. */ + string organization = 1; + + /* Select which device types to return. */ + DeviceTypeSelection selection = 2; + + /* Paginate through results. */ + Pagination pagination = 3; + + /* Sort the devices with the given sort options. */ + repeated Sort sort_by = 4; + } + message Response { + repeated DeviceType device_types = 1; + Request request = 2; + Pagination.Result pagination = 3; + } +} diff --git a/docs/html/assignment.html b/docs/html/assignment.html index b71399c..e364e95 100644 --- a/docs/html/assignment.html +++ b/docs/html/assignment.html @@ -5669,6 +5669,13 @@

Modem.ConnectedDeviceInfo

External device ids for this modem.

+ + device_type + string + +

Device type for this modem.

+ + diff --git a/docs/html/dashboard.html b/docs/html/dashboard.html index 7e4e47e..6971d48 100644 --- a/docs/html/dashboard.html +++ b/docs/html/dashboard.html @@ -513,6 +513,18 @@

Table of Contents

MMarkEventsResolved.Response +
  • + MModemHealthEvents +
  • + +
  • + MModemHealthEvents.Request +
  • + +
  • + MModemHealthEvents.Response +
  • +
  • MResolveEvent
  • @@ -1167,6 +1179,13 @@

    Event

    The modem number for this event, if it is related to a single modem.

    + + tags + hiber.tag.Tag + repeated +

    The tags for this event, if any.

    + + modem_created Event.ModemEvent.ModemCreatedEvent @@ -4331,38 +4350,10 @@

    Event.TransferEvent

    - - deprecated_transfer - hiber.modem.ModemTransfer - -

    Deprecated. Deprecated, here to be backwards compatible with ModemTransferEvents.

    - - - - -

    Fields with deprecated option

    - - - - - - - - - - - - - - - -
    NameOption
    deprecated_transfer

    true

    - - @@ -5241,6 +5232,89 @@

    MarkEventsResolved.Response

    ModemHealthEvents +

    Get the list of events that affect modem health, chronologically (by default, from now backwards in time).

    Only returns the Event with first-level fields set, event details are not included in the response

    (the oneof is not set).

    + + + + + +

    ModemHealthEvents.Request

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    organizationstring

    Pick the organization to use (/impersonate). If unset, your default organization is used.

    selectionEventSelection

    paginationhiber.Pagination

    + + + + + +

    ModemHealthEvents.Response

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    requestModemHealthEvents.Request

    eventsEventrepeated

    paginationhiber.Pagination.Result

    + + + + +

    ResolveEvent

    Resolve a resolvable event using its resolve_identifier.

    @@ -5479,6 +5553,20 @@

    EventService

    + + History + EventHistory.Request + EventHistory.Response +

    + + + + ModemHealth + ModemHealthEvents.Request + ModemHealthEvents.Response +

    + + Resolve ResolveEvent.Request @@ -5493,13 +5581,6 @@

    EventService

    - - History - EventHistory.Request - EventHistory.Response -

    - - GetEventConfiguration EventConfiguration.Request @@ -6524,6 +6605,13 @@

    Modem.ConnectedDeviceInfo

    External device ids for this modem.

    + + device_type + string + +

    Device type for this modem.

    + + diff --git a/docs/html/device.html b/docs/html/device.html index 6fc690f..279a764 100644 --- a/docs/html/device.html +++ b/docs/html/device.html @@ -1073,6 +1073,13 @@

    Device

    The expected transmission rate for this device.

    + + type + string + +

    The DeviceType for this device. See DeviceType for more information.

    + + @@ -5044,6 +5051,13 @@

    Modem.ConnectedDeviceInfo

    External device ids for this modem.

    + + device_type + string + +

    Device type for this modem.

    + + diff --git a/docs/html/device_service.html b/docs/html/device_service.html index afa199b..6853097 100644 --- a/docs/html/device_service.html +++ b/docs/html/device_service.html @@ -3516,6 +3516,13 @@

    Device

    The expected transmission rate for this device.

    + + type + string + +

    The DeviceType for this device. See DeviceType for more information.

    + + @@ -4818,6 +4825,13 @@

    Modem.ConnectedDeviceInfo

    External device ids for this modem.

    + + device_type + string + +

    Device type for this modem.

    + + diff --git a/docs/html/device_type.html b/docs/html/device_type.html new file mode 100644 index 0000000..650d75f --- /dev/null +++ b/docs/html/device_type.html @@ -0,0 +1,489 @@ + + + + + Protocol Documentation + + + + + + + + + + +

    Protocol Documentation

    + +

    Table of Contents

    + +
    + +
    + + + +
    +

    device_type.proto

    Top +
    +

    + + +

    DeviceType

    +

    Preconfigured device type.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    identifierstring

    brandstring

    applicationstring

    categorystring

    versionstring

    descriptionstring

    + + + + + +

    DeviceTypeSelection

    +

    Selection object for device types.

    + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    searchstring

    + + + + + + + + + + + + + +

    Scalar Value Types

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    .proto TypeNotesC++JavaPythonGoC#PHPRuby
    doubledoubledoublefloatfloat64doublefloatFloat
    floatfloatfloatfloatfloat32floatfloatFloat
    int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
    int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
    uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
    uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
    sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
    sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
    fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
    fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
    sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
    sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
    boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
    stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
    bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)
    + + + diff --git a/docs/html/device_type_service.html b/docs/html/device_type_service.html new file mode 100644 index 0000000..e6b4daa --- /dev/null +++ b/docs/html/device_type_service.html @@ -0,0 +1,2926 @@ + + + + + Protocol Documentation + + + + + + + + + + +

    Protocol Documentation

    + +

    Table of Contents

    + +
    + +
    + + + +
    +

    device_type_service.proto

    Top +
    +

    Device Types.

    + + +

    ListDeviceTypes

    +

    + + + + + +

    ListDeviceTypes.Request

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    organizationstring

    Pick the organization to use (/impersonate). If unset, your default organization is used.

    selectionDeviceTypeSelection

    Select which device types to return.

    paginationhiber.Pagination

    Paginate through results.

    sort_byListDeviceTypes.Sortrepeated

    Sort the devices with the given sort options.

    + + + + + +

    ListDeviceTypes.Response

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    device_typesDeviceTyperepeated

    requestListDeviceTypes.Request

    paginationhiber.Pagination.Result

    + + + + + + + +

    ListDeviceTypes.Sort

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    IDENTIFIER_ASC0

    IDENTIFIER_DESC1

    BRAND_ASC2

    BRAND_DESC3

    + + + + + +

    DeviceTypeService

    +

    + + + + + + + + + + + + + + +
    Method NameRequest TypeResponse TypeDescription
    ListListDeviceTypes.RequestListDeviceTypes.Response

    + + + + +
    +

    base.proto

    Top +
    +

    + + +

    Area

    +

    Rectangular area between two locations, normalized to bottom-left and top-right points.

    Center point is added for convenience; it's simple the point directly between the two corner points.

    When sending an Area to the api, the center location is ignored.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    centerLocation

    bottom_leftLocation

    top_rightLocation

    textualstring

    Text representation. Can be used as an alternative input in a request, filled in by the API in responses.

    + + + + + +

    Avatar

    +

    An avatar is represented either by a (publicly) fetchable URL that serves an image,

    xor a binary payload that knows its name and mime-type.

    If it is a url, it must be obtainable without credentials, though this is not validated by the API.

    Because the content behind URL's can change or become unavailable over time,

    the client should make sure it properly caches the data fetched from the URL.

    ("Properly" means [among other things] respecting the response headers for this resource)

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    urlstring

    A URL that contains the location of avatar.

    imageNamedFile

    The data of the avatar as a Named File.

    + + + + + +

    BytesOrHex

    +

    Some clients may prefer direct binary data, while other prefer a hexadecimal string,

    both for input and output. To support both methods, this object is used to represent binary data.

    When you receive this from the api, both fields are set. When sending it to the api, only one field is required.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    bytesbytes

    hexstring

    + + + + + +

    BytesOrHex.Update

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valueBytesOrHex

    + + + + + +

    Date

    +

    Date type for convenience.

    Some clients are better at parsing year, month and day of month as separate fields,

    while others prefer a text-based format.

    To accommodate this, this Date type supports both.

    When used as API output, both the int fields and textual fields will be set.

    The textual field has the commonly used ISO 8601 local date format (i.e. "2018-01-01").

    When used an API input, either specify the int fields or the textual field.

    If both are specified, the textual field will be discarded.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    yearuint32

    monthuint32

    dayuint32

    textualstring

    + + + + + +

    DoubleRange

    +

    Decimal range.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    startdouble

    enddouble

    + + + + + +

    Duration

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    durationgoogle.protobuf.Duration

    textualstring

    + + + + + +

    Filter

    +

    Filters used in many api calls to filter the data sources, results, etc.

    "Include" fields filter out anything not in the include set.

    When not set, all items will be returned (except excluded items)

    "Exclude" fields filter out anything in the exclude set.

    When combined with include, exclude takes precedence when determining whether an item is filtered

    + + + + + +

    Filter.ChildOrganizations

    +

    Specify which organizations to get data from. By default, data is only retrieved for the current organization,

    but using ChildOrganizations we can specify to include a number of, or all, sub-organizations.

    Note: ChildOrganization differs from other filters in that it defaults to not allowing anything, where the

    other filters default to allowing everything

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    include_allbool

    includestringrepeated

    excludestringrepeated

    + + + + + +

    Filter.ChildOrganizations.Update

    +

    Update object to update a Filter.ChildOrganizations field.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valueFilter.ChildOrganizations

    + + + + + +

    Filter.Events

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includeEventTyperepeated

    excludeEventTyperepeated

    + + + + + +

    Filter.Events.Update

    +

    Update object to update a Filter.Events field.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valueFilter.Events

    + + + + + +

    Filter.FieldEnumValues

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    fieldstring

    includestringrepeated

    excludestringrepeated

    + + + + + +

    Filter.HealthLevels

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includestringrepeated

    excludestringrepeated

    + + + + + +

    Filter.ModemIdentifiers

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includestringrepeated

    excludestringrepeated

    + + + + + +

    Filter.Modems

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includestringrepeated

    Include all modems with these modem numbers (HEX)

    excludestringrepeated

    Exclude all modems with these modem numbers (HEX). +Exclude takes precedence over include.

    + + + + + +

    Filter.Modems.Update

    +

    Update object to update a Filter.Modems field.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valueFilter.Modems

    + + + + + +

    Filter.OrganizationPermissions

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    include_allbool

    includeOrganizationPermissionrepeated

    excludeOrganizationPermissionrepeated

    + + + + + +

    Filter.Organizations

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includestringrepeated

    excludestringrepeated

    + + + + + +

    Filter.Properties

    +

    Filter result on specific properties encoded in map-value pairs.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    propertiesMapFilter

    include_only_emptybool

    When set to true, match only empty property-sets.

    + + + + + +

    Filter.Publishers

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includeint64repeated

    excludeint64repeated

    only_activebool

    + + + + + +

    Filter.SupportPermissions

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includeSupportPermissionrepeated

    excludeSupportPermissionrepeated

    + + + + + +

    Filter.Tags

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includeint64repeated

    excludeint64repeated

    + + + + + +

    Filter.Tags.Update

    +

    Update object to update a Filter.Tags field.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valueFilter.Tags

    + + + + + +

    Filter.UserPermissions

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    include_allbool

    includeUserPermissionrepeated

    excludeUserPermissionrepeated

    + + + + + +

    Filter.Users

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includestringrepeated

    excludestringrepeated

    + + + + + +

    Filter.Webhooks

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    includeint64repeated

    excludeint64repeated

    only_activebool

    + + + + + +

    Location

    +

    Geographic latitude and longitude coordinates specified in decimal degrees.

    For more information, see the WGS-84 coordinate system, which is used for most GPS systems.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    latitudedouble

    Decimal degrees north.

    longitudedouble

    Decimal degrees east.

    textualstring

    Text representation. Can be used as an alternative input in a request, filled in by the API in responses.

    + + + + + +

    LocationSelection

    +

    Selection object for map data. Filter modems on the map by id, (child)organization.

    Also, filter the map data by level and area restriction, to only display a small area at a detailed map level,

    for example

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    areasArearepeated

    Rectangular areas, each defined by two locations, normalized to bottom-left and top-right points.

    shapesShaperepeated

    Polygon shapes, each defined by a list of locations, which draw a shape on the map.

    + + + + + +

    MapFilter

    +

    Some properties are stored as a name-value pair (e.g. bluetooth: 4.0, bluetooth: BLE).

    This filter allows selecting a range of values for a specific name.

    One could imagine wanting to include "all devices with bluetooth 4.0 or 4.1".

    To select for multiple versions of a property,

    add the name of the property as a map-key and add a repeated list of versions as the map-value.

    For example:

    - include { 'bluetooth' -> [ ] }

    returns all items that have any version of bluetooth,

    - include { 'bluetooth' -> [ '4.0', '5.0' ] }

    will only return items that have bluetooth version 4.0 _or_ 5.0 (inclusive or),

    - include { 'bluetooth' -> [ '' ] }

    would only select bluetooth peripherals that don't have any version set,

    - include { 'bluetooth' -> [ ], 'LoRaWAN' -> [ ] }

    will only select items that have both bluetooth (any version) _and_ LoRaWAN (any version),

    - include { 'bluetooth' -> [ ] }, exclude { 'bluetooth' -> [ ] }

    will return an empty list since exclude will take precedence, and

    - include { 'bluetooth' -> [ ] }, exclude { 'bluetooth' -> [ '3.0' ] }

    returns only items that have bluetooth, but not version 3.0.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    include_andMapFilter.IncludeAndEntryrepeated

    Filter to only include items with all of the given set of properties.

    excludeMapFilter.ExcludeEntryrepeated

    Filter to exclude items with any of the given set of properties.

    + + + + + +

    MapFilter.ExcludeEntry

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    keystring

    valueMapFilter.OneOfValues

    + + + + + +

    MapFilter.IncludeAndEntry

    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    keystring

    valueMapFilter.OneOfValues

    + + + + + +

    MapFilter.OneOfValues

    +

    Technical solution to make map into a map,

    which is not possible in protobuf without trickery.

    + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    valuestringrepeated

    + + + + + +

    NamedFile

    +

    A NamedFile contains bytes with its mime-type and name.

    It can represent any file of any type.

    Note that depending on where in the API this is used,

    the server might put restrictions on file size, media-type or name length.

    The file name should be interpreted as-is.

    No hierarchical information is stored in the name, nor should you look at the "extension" to know its media-type.

    It might not even have a file extension.

    The file name may contain characters that cannot be a valid file name on certain systems.

    Specific API calls may pur restrictions on the name or size of the file.

    When showing this as an image in a browser, one can make use of a `data` URI.

    The client must convert the bytes to base64 and can then construct a data URI like this

    data:;base64,

    Other type clients should be able to sort-of-directly set the data bytes as the source for an image.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    dataBytesOrHex

    The binary payload that represents the file

    media_typestring

    The media-type of the file, as defined by RFC 6838 or its extensions

    namestring

    A semantic name for this file.

    + + + + + +

    Pagination

    +

    Pagination is normalized across the api. Provide a pagination object to get a specific page or offset,

    or limit your data.

    Calls that have a pagination option automatically return a Pagination.Result, which contains

    either the specified pagination options or the defaults, as well as total counts. It also contains Pagination

    objects that can be used for the previous and next page.

    This effectively means that an api user would never need to create their own pagination object; as long as they

    start at the first page and continue to the next, they can use the provided Pagination object.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    sizeint32

    pageint32

    + + + + + +

    Pagination.Result

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    sizeint32

    pageint32

    totalint32

    total_pagesint32

    previousPagination

    nextPagination

    approximated_totalbool

    Indicates that the total is an approximation, and not an exact value. +This can be set for data that changes often, or is generally only fetched in an infinite scrolling manner. +For example, unbundled events are likely to return an approximated total, but not guaranteed to do so.

    + + + + + +

    Shape

    +

    Polygon shape defined by a list of locations, which draw a shape on the map.

    The last point is connected to the first to close the shape.

    For example, the outline of a city would be defined using a Shape,

    while a rectangular region is easier to define using Area.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    pathLocationrepeated

    textualstring

    Text representation. Can be used as an alternative input in a request, filled in by the API in responses.

    + + + + + +

    TimeRange

    +

    Period of time between two timestamps. Typically used for filtering.

    This can be used with textual shortcuts for timestamp, and some additional duration textual shortcuts:

    - a duration as an offset of now, i.e. "-10h" or "PT-10h": converted to now + offset, so start.textual -10h is

    10 hours before the end time (using the ISO 8601 duration format)

    Examples:

    - start "-10h" end "now": a time range from 10 hours before the request time, to the request time

    - start "-10h" end "2022-01-01 20:00": becomes start 2022-01-01 10:00 end 2022-01-01 20:00

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    startTimestamp

    endTimestamp

    + + + + + +

    Timestamp

    +

    Timestamp type for convenience.

    Some clients are better at parsing Google's seconds/nanos based timestamp, while others prefer a text-based format.

    To accommodate this, this Timestamp type supports both.

    When used as API output, both the timestamp and textual fields will be set. The textual field has the commonly

    used ISO 8601 format (i.e. "2018-01-01T13:00:00Z").

    When used an API input, only one of the fields is needed, there is no need to set both. When both are set, the

    timestamp field will be used, the textual field will be discarded.

    In addition, the textual field, when used as input, allows for a number of shortcuts that get converted into

    timestamps:

    - "now": converted to the current timestamp at the time of the request

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    timestampgoogle.protobuf.Timestamp

    time_zonestring

    textualstring

    + + + + + +

    UpdateBoolean

    +

    Update object for a boolean.

    Since false is the default value, we need to distinguish between an omitted value and setting the value to false,

    in an update object.

    To use this to update, set a value and set updated to true

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valuebool

    + + + + + +

    UpdateClearableString

    +

    Update object for a string that can be empty.

    Since an empty string is also the default value, we need to distinguish between an omitted value and

    setting the value to an empty string, in an update object.

    To use this to update, set a value and set updated to true

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valuestring

    + + + + + +

    UpdateOptionalDuration

    +

    Update object for an optional Duration.

    To use this to update, set a value and set updated to true.

    To clear the duration, set updated to true, but set no value.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valueDuration

    + + + + + +

    UpdateOptionalId

    +

    Update object for an optional id.

    To use this to update, set a value and set updated to true. To clear the id, set updated to true, but set no value.

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valueint64

    + + + + + +

    UpdateZeroableInt

    +

    Update object for an int that can be set to 0.

    Since 0 is also the default value, we need to distinguish between an omitted value and setting the value to 0,

    in an update object.

    To use this to update, set a value and set updated to true

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updatedbool

    valueuint32

    + + + + + + + +

    EventType

    +

    Enum of api-accessible events.

    The event types in this enum have a protobuf implementation, and can be used, for example, in the

    api event stream and publishers.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    DEFAULT0

    ORGANIZATION_CREATED34

    ORGANIZATION_UPDATED12

    ORGANIZATION_DELETED35

    ORGANIZATION_EVENT_CONFIGURATION_UPDATED43

    MODEM_CREATED55

    MODEM_UPDATED36

    MODEM_LOCATION_UPDATED4

    MODEM_ACTIVATED33

    MODEM_MESSAGE_RECEIVED5

    MODEM_MESSAGE_BODY_PARSED39

    MODEM_MESSAGE_BODY_RECEIVED45

    MODEM_MESSAGE_CANNOT_BE_PARSED15

    MODEM_MESSAGE_SUMMARY42

    MODEM_MESSAGE_BODY_PARSER_CREATED46

    MODEM_MESSAGE_BODY_PARSER_UPDATED47

    MODEM_MESSAGE_BODY_PARSER_DELETED48

    MODEM_ALARM56

    MODEM_ALARM_CREATED57

    MODEM_ALARM_UPDATED58

    MODEM_ALARM_DELETED59

    ASSIGNED63

    UNASSIGNED64

    TRANSFER18

    PUBLISHER_CREATED1

    PUBLISHER_UPDATED2

    PUBLISHER_DELETED3

    PUBLISHER_AUTO_DISABLED37

    PUBLISHER_FAILED11

    USER_ACCESS_REQUEST8

    USER_INVITED38

    USER_ADDED9

    USER_REMOVED10

    USER_VALIDATION_UPDATED54

    TOKEN_CREATED31

    TOKEN_EXPIRY_WARNING25

    TOKEN_EXPIRED26

    TOKEN_DELETED32

    EXPORT_CREATED65

    EXPORT_READY66

    EXPORT_FAILED67

    + +

    Health

    +

    Health is an indicator for issues. It is used for publishers to give a quick indication of issues.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    OK0

    WARNING1

    ERROR2

    + +

    UnitOfMeasurement

    +

    Unit of measurement for a numeric value.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    UNIT_UNKNOWN0

    DURATION_MILLISECONDS40

    DURATION_SECONDS1

    DURATION_MINUTES2

    DURATION_HOURS3

    DURATION_DAYS4

    DURATION_WEEKS41

    FUEL_EFFICIENCY_LITER_PER_100_KILOMETER30

    FUEL_EFFICIENCY_KILOMETER_PER_LITER31

    FUEL_EFFICIENCY_KILOMETER_PER_US_GALLON32

    FUEL_EFFICIENCY_KILOMETER_PER_IMPERIAL_GALLON33

    FUEL_EFFICIENCY_MILE_PER_US_GALLON34

    FUEL_EFFICIENCY_MILE_PER_IMPERIAL_GALLON35

    FUEL_EFFICIENCY_MILE_PER_LITER36

    DISTANCE_METER8

    DISTANCE_MILLIMETER9

    DISTANCE_CENTIMETER10

    DISTANCE_KILOMETER11

    DISTANCE_NAUTICAL_MILE26

    DISTANCE_MILE21

    DISTANCE_YARD27

    DISTANCE_FOOT28

    DISTANCE_INCH29

    PERCENT16

    PRESSURE_BAR12

    PRESSURE_PSI14

    PRESSURE_K_PA17

    SPEED_KILOMETERS_PER_HOUR18

    SPEED_KNOTS19

    SPEED_METERS_PER_SECOND20

    SPEED_MILES_PER_HOUR22

    TEMPERATURE_KELVIN5

    TEMPERATURE_DEGREES_CELSIUS6

    TEMPERATURE_DEGREES_FAHRENHEIT7

    VOLTAGE_MILLIVOLT15

    VOLUME_LITER23

    VOLUME_GALLON_US24

    VOLUME_GALLON_IMPERIAL25

    VOLUME_CUBIC_METER42

    VOLUME_CUBIC_FOOT43

    MASS_KILOGRAMS37

    MASS_POUNDS38

    FLOW_CUBIC_METERS_PER_HOUR39

    FLOW_BARRELS_PER_DAY46

    REVOLUTIONS_PER_MINUTE44

    ITEMS_PER_24_HOURS45

    + + + + + + + +
    +

    device_type.proto

    Top +
    +

    + + +

    DeviceType

    +

    Preconfigured device type.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    identifierstring

    brandstring

    applicationstring

    categorystring

    versionstring

    descriptionstring

    + + + + + +

    DeviceTypeSelection

    +

    Selection object for device types.

    + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    searchstring

    + + + + + + + + + + + + + +

    Scalar Value Types

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    .proto TypeNotesC++JavaPythonGoC#PHPRuby
    doubledoubledoublefloatfloat64doublefloatFloat
    floatfloatfloatfloatfloat32floatfloatFloat
    int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
    int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
    uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
    uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
    sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
    sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
    fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
    fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
    sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
    sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
    boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
    stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
    bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)
    + + + diff --git a/docs/html/event.html b/docs/html/event.html index 8c7df64..3f24192 100644 --- a/docs/html/event.html +++ b/docs/html/event.html @@ -490,6 +490,18 @@

    Table of Contents

    MMarkEventsResolved.Response +
  • + MModemHealthEvents +
  • + +
  • + MModemHealthEvents.Request +
  • + +
  • + MModemHealthEvents.Response +
  • +
  • MResolveEvent
  • @@ -1837,129 +1849,6 @@

    Table of Contents

    -
  • - modem_transfer.proto - -
  • - -
  • organization.proto