= ohai

* FIX (url)

== DESCRIPTION:

I'm in yur server, findin yer dater

== FEATURES/PROBLEMS:

* FIX (list of features or problems)

== SYNOPSIS:

./bin/ohai

Will print out a JSON structure for all the known data about
your system.

== REQUIREMENTS:

* FIX (list of requirements)

== INSTALL:

* FIX (sudo gem install, anything else)

== SPECIAL THANKS:

Ohai was significantly easier to build because of the pre-existing
work of everyone who contributed to Facter, especially Luke Kanies
of Reductive Labs.  Thanks, guys.

== LICENSE:

Ohai - system information application

Author:: Adam Jacob (<adam@opscode.com>)
Copyright:: Copyright (c) 2008 OpsCode, Inc.
License:: Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Update requirements and installation in readme

= ohai

* FIX (url)

== DESCRIPTION:

I'm in yur server, findin yer dater

== FEATURES/PROBLEMS:

* FIX (list of features or problems)

== SYNOPSIS:

./bin/ohai

Will print out a JSON structure for all the known data about
your system.

== REQUIREMENTS:

* rake
* rubigen
* newgem
* json
* rspec
* extlib

== INSTALL:

* git clone git@github.com:hjkp/ohai.git
* cd ohai
* rake install

== SPECIAL THANKS:

Ohai was significantly easier to build because of the pre-existing
work of everyone who contributed to Facter, especially Luke Kanies
of Reductive Labs.  Thanks, guys.

== LICENSE:

Ohai - system information application

Author:: Adam Jacob (<adam@opscode.com>)
Copyright:: Copyright (c) 2008 OpsCode, Inc.
License:: Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


= rptman

This is a command line tool and suite of rake tasks for uploading and
manipulating SSRS reports. The tool can generate project files for
the "SQL Server Business Intelligence Development Studio" as well as
uploading the report files directly to the server

== Installation

The extension is packaged as a jruby gem named "rptman", consult the ruby
gems installation steps but typically it is

  jgem install buildr-bnd


= db-purge

DbPurge is a plugin that designed to reset your database to a pristine state
prior to running tests. The plugin assumes ActiveRecord is used to communicate
with the database.

DbPurge wraps each test in a transaction and rolls the transaction back at the
end of the test. Before the first test runs the plugin will also attempt to
clean the database. The plugin will also clean the database if it is told that
a test uses a transaction internally. The clean action deletes rows from databases
in an order configured by the plugin user.

== Integration with a test framework

To integrate with a test framework, DbPurge requires that two methods be called
at the start and at the end of the test. The following demonstrates how to
incorporate it into the Rails unit testing framework.

  class ActiveSupport::TestCase
    protected

    self.setup :setup_db_purge
    self.teardown :teardown_db_purge

    def setup_db_purge
      DbPurge.start
    end

    def teardown_db_purge
      DbPurge.finish
    end
  end

Note the +DbPurge.start+ method takes an optional parameter that indicates the
tableset that the tests use and thus the tables that will be cleaned. If unspecified
the +:default+ tableset is used.

== Tests that use a transaction

A test can indicate that it uses a transaction by invoking +DbPurge.uses_transaction+
between the invocation of +DbPurge.start+ and +DbPurge.finish+. This will ensure that
the next test attempts to clean the database.

== Configuring the clean action

The clean action attempts to issue a +DELETE FROM+ SQL statement for every table in the
tableset supplied to the +DbPurge.start+ method. The tableset also defines the order
in which tables are deleted.

e.g.

  # Define the default table set used when no parameter passed to start
  DbPurge.define_tableset(:default, [:tblSubPart, :tblComponent])

  # Define the table set used when :audit parameter passed to start
  DbPurge.define_tableset(:audit, [:tblLogEntry, :tblLogSession])

== Credit

The gem was initially developed as by StockSoftware for use in the Department
of Sustainability and Environment, Victoria, Australia. It was inspired by the
database_cleaner plugin. See http://github.com/bmabey/database_cleaner


message TraceMessage {
  required string act_id=1;
  required string msg=2;
  required int32 flags=3;
}

Add the local timestamp to the Trace Message

message TraceMessage {
  required string act_id=1;
  required string msg=2;
  required uint64 ts_origin=3;
  required int32 flags=4;
}


// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.events.cloud.scheduler.v1;

option csharp_namespace = "Google.Events.Protobuf.Cloud.Scheduler.V1";

import "google/events/cloudevent.proto";
import "google/protobuf/timestamp.proto";

// The CloudEvent raised when a Scheduler job is executed.
message JobExecutedEvent {
  option (google.events.cloud_event_type) =
      "google.cloud.scheduler.job.v1.executed";

  // The data associated with the event.
  SchedulerData data = 1;
}

// Scheduler event data.
message SchedulerData {
  // The custom data the user specified when creating the scheduler source.
  bytes custom_data = 1;

  // The time at which the job was executed, populated by the server.
  google.protobuf.Timestamp execution_time = 2;
}

Remove execution time from scheduler schema

// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.events.cloud.scheduler.v1;

option csharp_namespace = "Google.Events.Protobuf.Cloud.Scheduler.V1";

import "google/events/cloudevent.proto";
import "google/protobuf/timestamp.proto";

// The CloudEvent raised when a Scheduler job is executed.
message JobExecutedEvent {
  option (google.events.cloud_event_type) =
      "google.cloud.scheduler.job.v1.executed";

  // The data associated with the event.
  SchedulerData data = 1;
}

// Scheduler event data.
message SchedulerData {
  // The custom data the user specified when creating the scheduler source.
  bytes custom_data = 1;
}


syntax = "proto3";
package zigbeealliance.distributedcomplianceledger.dclauth;

option go_package = "github.com/zigbee-alliance/distributed-compliance-ledger/x/dclauth/types";

import "gogoproto/gogo.proto";
import "dclauth/account.proto";
import "dclauth/grant.proto";

message RevokedAccount {
  Account account = 1 [(gogoproto.embed) = true];
  repeated Grant revoke_approvals = 2;
}

Change variable name in protofile

syntax = "proto3";
package zigbeealliance.distributedcomplianceledger.dclauth;

option go_package = "github.com/zigbee-alliance/distributed-compliance-ledger/x/dclauth/types";

import "gogoproto/gogo.proto";
import "dclauth/account.proto";
import "dclauth/grant.proto";

message RevokedAccount {
  Account account = 1 [(gogoproto.embed) = true];
  repeated Grant revokeApprovals = 2;
}


syntax = "proto3";

package Cura;

// typeid 1
message ObjectList {
    repeated Object objects = 1;
}

message Object {
    int64 id = 1;
    bytes vertices = 2; //An array of 3 floats.
    bytes normals = 3; //An array of 3 floats.
    bytes indices = 4; //An array of ints.
}

// typeid 3
message Progress {
    float amount = 1;
}

// typeid 2
message SlicedObjectList {
    repeated SlicedObject objects = 1;
}

message SlicedObject {
    int64 id = 1;

    repeated Layer layers = 2;
}

message Layer {
    int32 id = 1;
    repeated Polygon polygons = 2;
}

message Polygon {
    enum Type {
        NoneType = 0;
        Inset0Type = 1;
        InsetXType = 2;
        SkinType = 3;
        SupportType = 4;
        SkirtType = 5;
    }
    Type type = 1;
    bytes points = 2;
}

// typeid 4
message GCode {
    string filename = 1;
}

// typeid 5
message ObjectPrintTime {
    int64 id = 1;
    float time = 2;
}

Add SettingList and Setting messages to the protocol

syntax = "proto3";

package Cura;

// typeid 1
message ObjectList {
    repeated Object objects = 1;
}

message Object {
    int64 id = 1;
    bytes vertices = 2; //An array of 3 floats.
    bytes normals = 3; //An array of 3 floats.
    bytes indices = 4; //An array of ints.
}

// typeid 3
message Progress {
    float amount = 1;
}

// typeid 2
message SlicedObjectList {
    repeated SlicedObject objects = 1;
}

message SlicedObject {
    int64 id = 1;

    repeated Layer layers = 2;
}

message Layer {
    int32 id = 1;
    repeated Polygon polygons = 2;
}

message Polygon {
    enum Type {
        NoneType = 0;
        Inset0Type = 1;
        InsetXType = 2;
        SkinType = 3;
        SupportType = 4;
        SkirtType = 5;
    }
    Type type = 1;
    bytes points = 2;
}

// typeid 4
message GCode {
    string filename = 1;
}

// typeid 5
message ObjectPrintTime {
    int64 id = 1;
    float time = 2;
}

// typeid 6
message SettingList {
    repeated Setting settings = 1;
}

message Setting {
    string name = 1;

    bytes value = 2;
}


message meta {
  required msgtype type = 1;
  required bytes   msg  = 2;
}

enum msgtype {
  meta                   = 0;
  ping                   = 1;
  pong                   = 2;
  connect                = 3;
  disconnect             = 4;
  connect_resp           = 5;
  force_disconnect       = 6;
  client_egress_chat_msg = 7;
  server_egress_chat_msg = 8;
}

Move the msgtype enum out of the root namespace

message meta {
  enum msgtype {
    meta                   = 0;
    ping                   = 1;
    pong                   = 2;
    connect                = 3;
    disconnect             = 4;
    connect_resp           = 5;
    force_disconnect       = 6;
    client_egress_chat_msg = 7;
    server_egress_chat_msg = 8;
  }
  required msgtype type = 1;
  required bytes   msg  = 2;
}


syntax = "proto3";

package tensorflow.serving;
option cc_enable_arenas = true;

import "google/protobuf/wrappers.proto";

// Metadata for an inference request such as the model name and version.
message ModelSpec {
  // Required servable name.
  string name = 1;

  // Optional version. If unspecified, will use the latest (numerical) version.
  // Typically not needed unless coordinating across multiple models that were
  // co-trained and/or have inter-dependencies on the versions used at inference
  // time.
  google.protobuf.Int64Value version = 2;

  // A named signature to evaluate. If unspecified, the default signature will
  // be used. Note that only MultiInference will initially support this.
  string signature_name = 3;
}

Update outdated comment now that all functions in the Prediction API support signature_name. Change: 158580011

syntax = "proto3";

package tensorflow.serving;
option cc_enable_arenas = true;

import "google/protobuf/wrappers.proto";

// Metadata for an inference request such as the model name and version.
message ModelSpec {
  // Required servable name.
  string name = 1;

  // Optional version. If unspecified, will use the latest (numerical) version.
  // Typically not needed unless coordinating across multiple models that were
  // co-trained and/or have inter-dependencies on the versions used at inference
  // time.
  google.protobuf.Int64Value version = 2;

  // A named signature to evaluate. If unspecified, the default signature will
  // be used.
  string signature_name = 3;
}


package com.signalfuse.metrics.protobuf;

enum MetricType {
    /**
     * Numerical: Periodic, instantaneous measurement of some state.
     */
    GAUGE = 0;
    /**
     * Numerical: Count of occurrences. Generally non-negative integers.
     */
    COUNTER = 1;
    /**
     * String: Used for non-continuous quantities (that is, measurements where there is a fixed
     * set of meaningful values). This is essentially a special case of gauge.
     */
    ENUM = 2;
    /**
     * Tracks a value that increases over time, where only the difference is important.
     */
    CUMULATIVE_COUNTER =3;
}

message Datum {
    optional string strValue = 1;
    optional double doubleValue = 2;
    optional int64 intValue = 3;
}

message DataPoint {
    optional string source = 1;
    optional string metric = 2;
    optional int64 timestamp = 3;
    optional Datum value = 4;
    optional MetricType metricType = 5;
}

message PointValue {
    optional int64 timestamp = 3;
    optional Datum value = 4;
}

Add dimensions to protocol buffer

package com.signalfuse.metrics.protobuf;

enum MetricType {
    /**
     * Numerical: Periodic, instantaneous measurement of some state.
     */
    GAUGE = 0;
    /**
     * Numerical: Count of occurrences. Generally non-negative integers.
     */
    COUNTER = 1;
    /**
     * String: Used for non-continuous quantities (that is, measurements where there is a fixed
     * set of meaningful values). This is essentially a special case of gauge.
     */
    ENUM = 2;
    /**
     * Tracks a value that increases over time, where only the difference is important.
     */
    CUMULATIVE_COUNTER =3;
}

message Datum {
    optional string strValue = 1;
    optional double doubleValue = 2;
    optional int64 intValue = 3;
}

message Dimension {
    optional string key = 1;
    optional string value = 2;
}

message DataPoint {
    optional string source = 1;
    optional string metric = 2;
    optional int64 timestamp = 3;
    optional Datum value = 4;
    optional MetricType metricType = 5;
    repeated Dimension dimensions = 6;
}

message DataPointUploadMessage {
    repeated DataPoint datapoints = 1;
}

message PointValue {
    optional int64 timestamp = 3;
    optional Datum value = 4;
}


syntax = "proto3";

package io.intoto;

// An authenticated message of arbitrary type.
message Envelope {
  // Message to be signed. (In JSON, this is encoded as base64.)
  bytes payload = 1;

  // String unambiguously identifying how to interpret payload.
  string payloadType = 2;

  // Signature over:
  //     le64(2) || le64(len(utf8(payloadType))) || utf8(payloadType) ||
  //         le64(len(payload)) || payload
  // At least one signature must be present.
  repeated Signature signatures = 3;
}

message Signature {
  // Signature itself. (In JSON, this is encoded as base64.)
  bytes sig = 1;

  // *Unauthenticated* hint identifying which public key was used.
  string keyid = 2;
}

Add required/optional and explain PAE.

syntax = "proto3";

package io.intoto;

// An authenticated message of arbitrary type.
message Envelope {
  // Message to be signed. (In JSON, this is encoded as base64.)
  // REQUIRED.
  bytes payload = 1;

  // String unambiguously identifying how to interpret payload.
  // REQUIRED.
  string payloadType = 2;

  // Signature over:
  //     le64(2) || le64(len(utf8(payloadType))) || utf8(payloadType) ||
  //         le64(len(payload)) || payload
  // where:
  //     le64(n) := 64-bit little-endian encoding of integer `n`, 0 <= n < 2^63
  //     len(s) := number of octets in byte sequence `s`
  //     utf8(s) := UTF-8 encoding of unicode string `s`
  // REQUIRED (length >= 1).
  repeated Signature signatures = 3;
}

message Signature {
  // Signature itself. (In JSON, this is encoded as base64.)
  // REQUIRED.
  bytes sig = 1;

  // *Unauthenticated* hint identifying which public key was used.
  // OPTIONAL.
  string keyid = 2;
}


package openxc;

message VehicleMessage {
    enum Type { RAW = 1; STRING = 2; NUM = 3; BOOL = 4; }

    optional Type type = 1;

    optional RawMessage raw_message = 2;
    optional TranslatedStringMessage string_message = 3;
    optional TranslatedNumericMessage numerical_message = 4;
    optional TranslatedBooleanMessage boolean_message = 5;
}

message RawMessage {
    optional uint32 message_id = 1;
    optional double data = 2;
}

message TranslatedStringMessage {
    optional string name = 1;
    optional string value = 2;
}

message TranslatedNumericMessage {
    optional string name = 1;
    optional double value = 2;
}

message TranslatedBooleanMessage {
    optional string name = 1;
    optional bool value = 2;
}

// TODO we should also consider having an enum type, h aving each specific
// message defined as a protobuf

Add a bus field to RawMessage and make data an 64-bit int.

package openxc;

message VehicleMessage {
    enum Type { RAW = 1; STRING = 2; NUM = 3; BOOL = 4; }

    optional Type type = 1;

    optional RawMessage raw_message = 2;
    optional TranslatedStringMessage string_message = 3;
    optional TranslatedNumericMessage numerical_message = 4;
    optional TranslatedBooleanMessage boolean_message = 5;
}

message RawMessage {
    optional int32 bus = 1;
    optional uint32 message_id = 2;
    optional sint64 data = 3;
}

message TranslatedStringMessage {
    optional string name = 1;
    optional string value = 2;
}

message TranslatedNumericMessage {
    optional string name = 1;
    optional double value = 2;
}

message TranslatedBooleanMessage {
    optional string name = 1;
    optional bool value = 2;
}

// TODO we should also consider having an enum type, h aving each specific
// message defined as a protobuf


/*
 * Copyright 2012 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Author: rahulbansal@google.com (Rahul Bansal)
//
// Proto representing critical line information.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package net_instaweb;

// Protobuf to encapsulate the information use by blink flow.
// Next id = 3
message CriticalLineInfo {
  // Panels that are below the critical line.
  repeated Panel panels = 1;
  // URLs of images above the critical line.
  repeated string critical_image_url = 2;
}

message Panel {
  // XPath identifying the start instance tag for the panel.
  required string start_xpath = 1;
  // XPath identifying the marker beyond instances of this panel.
  // The marker can be text/comment/tag
  // The marker is not part of the panel.
  optional string end_marker_xpath = 2;
};

Add css critical images field to critical line proto.

/*
 * Copyright 2012 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Author: rahulbansal@google.com (Rahul Bansal)
//
// Proto representing critical line information.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package net_instaweb;

// Protobuf to encapsulate the information use by blink flow.
// Next id = 4
message CriticalLineInfo {
  // Panels that are below the critical line.
  repeated Panel panels = 1;
  // URLs of images above the critical line.
  repeated string critical_image_url = 2;
  // URLs of css background images above the critical line.
  repeated string css_critical_image_url = 3;
}

message Panel {
  // XPath identifying the start instance tag for the panel.
  required string start_xpath = 1;
  // XPath identifying the marker beyond instances of this panel.
  // The marker can be text/comment/tag
  // The marker is not part of the panel.
  optional string end_marker_xpath = 2;
};


syntax = "proto2";

import "pose_controller_config.proto";
import "arm_system_config.proto";
import "transform.proto";

message UAVArmSystemConfig {

  /**
  * @brief Arm transform in the frame of the UAV (assuming NWU).
  */
  optional config.Transform arm_transform = 3;

  /**
  * @brief Config for arm controller
  */
  optional PoseControllerConfig position_controller_config = 6;

  /**
  * @brief How much time to spend trying to grip the object in milliseconds
  */
  optional uint32 grip_timeout = 7 [ default = 2000 ];

  /**
  * @brief Configuration for arm system
  */
  optional ArmSystemConfig arm_system_config = 9;
}

Remove grip timeout from proto file

syntax = "proto2";

import "pose_controller_config.proto";
import "arm_system_config.proto";
import "transform.proto";

message UAVArmSystemConfig {

  /**
  * @brief Arm transform in the frame of the UAV (assuming NWU).
  */
  optional config.Transform arm_transform = 3;

  /**
  * @brief Config for arm controller
  */
  optional PoseControllerConfig position_controller_config = 6;

  /**
  * @brief Configuration for arm system
  */
  optional ArmSystemConfig arm_system_config = 9;
}


package amber.drive_to_point_proto;
option java_package = "pl.edu.agh.amber.drivetopoint.proto";
option java_outer_classname = "DriveToPointProto";

import "drivermsg.proto";

extend amber.DriverMsg {
    optional bool setTargets = 80;
    optional bool getNextTarget = 81;
    optional bool getNextTargets = 82;
    optional bool getVisitedTarget = 83;
    optional bool getVisitedTargets = 84;
    optional Targets targets = 85;
}

message Targets {
    repeated double longitudes = 1 [packed = true];
    repeated double latitudes = 2 [packed = true];
    repeated double radiuses = 3 [packed = true];
}

Add information about location and configuration to drive to point protobuf file

package amber.drive_to_point_proto;
option java_package = "pl.edu.agh.amber.drivetopoint.proto";
option java_outer_classname = "DriveToPointProto";

import "drivermsg.proto";

extend amber.DriverMsg {
    optional bool setTargets = 80;
    optional bool getNextTarget = 81;
    optional bool getNextTargets = 82;
    optional bool getVisitedTarget = 83;
    optional bool getVisitedTargets = 84;
    optional Targets targets = 85;
    optional Location location = 86;
    optional bool getConfiguration = 87;
    optional Configuration configuration = 88;
}

message Targets {
    repeated double longitudes = 1 [packed = true];
    repeated double latitudes = 2 [packed = true];
    repeated double radiuses = 3 [packed = true];
}

message Location {
    optional double x = 1;
    optional double y = 2;
    optional double p = 3;
    optional double alfa = 4;
    optional double timeStamp = 5;
}

message Configuration {
    optional double maxSpeed = 1;
}


package aris;

message Availability {
  optional uint32 serialNumber = 1;
  optional SystemType systemType = 2;
  optional SoftwareVersion softwareVersion = 3;
  optional ConnectionState connectionState = 4;
  optional Capabilities capabilities = 5;
  optional uint32 reserved6 = 6; // was ack port
  optional CommLinkPreference commLinkPreference = 7;
  optional float cpuTemp = 8;
  optional PowerDownReason powerDownReason = 9;
  optional float overTempLimitDegreesC = 10;
  optional uint32 overTempLimitSeconds = 11;
  optional bool isDiverHeld = 12;

  enum SystemType {
    ARIS_1800 = 0;
    ARIS_3000 = 1;
    ARIS_1200 = 2;
  }

  message SoftwareVersion {
    optional uint32 major = 1;
    optional uint32 minor = 2;
    optional uint32 buildnumber = 3;
  }

  enum ConnectionState {
    AVAILABLE = 0;
    BUSY = 1;
  }

  message Capabilities {
    // KA  : TCP keepalives
    repeated string enabled = 1;
  }

  enum CommLinkPreference {
    HomePlug = 0;
    Ethernet = 1;
  }

  enum PowerDownReason {
    OverTemp = 0;
  }
}

Add system variants to sonar beacon.

package aris;

message Availability {
  optional uint32 serialNumber = 1;
  optional SystemType systemType = 2;
  optional SoftwareVersion softwareVersion = 3;
  optional ConnectionState connectionState = 4;
  optional Capabilities capabilities = 5;
  optional uint32 reserved6 = 6; // was ack port
  optional CommLinkPreference commLinkPreference = 7;
  optional float cpuTemp = 8;
  optional PowerDownReason powerDownReason = 9;
  optional float overTempLimitDegreesC = 10;
  optional uint32 overTempLimitSeconds = 11;
  optional bool isDiverHeld = 12;
  optional SystemVariants systemVariants = 13;

  enum SystemType {
    ARIS_1800 = 0;
    ARIS_3000 = 1;
    ARIS_1200 = 2;
  }

  message SoftwareVersion {
    optional uint32 major = 1;
    optional uint32 minor = 2;
    optional uint32 buildnumber = 3;
  }

  enum ConnectionState {
    AVAILABLE = 0;
    BUSY = 1;
  }

  message Capabilities {
    // KA  : TCP keepalives
    repeated string enabled = 1;
  }

  enum CommLinkPreference {
    HomePlug = 0;
    Ethernet = 1;
  }

  enum PowerDownReason {
    OverTemp = 0;
  }

  message SystemVariants {
    // DF : Defender
    repeated string enabled = 1;
  }

}


/*
 * Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
 */

import "google/protobuf/descriptor.proto";

message SelfDescribingMessage {
  // Timestamp
  required uint64 timestamp = 1;

  // Set of .proto files which define the type.
  optional google.protobuf.FileDescriptorSet proto_files = 2;

  // Name of the message type.  Must be defined by one of the files in
  // proto_files.
  required string type_name = 3;

  // The message data.
  required bytes message_data = 4;
}

message TelemetryFieldOptions {
  // Key
  optional bool is_key = 1;

  // Timestamp
  optional bool is_timestamp = 2;
}

extend google.protobuf.FieldOptions {
  optional TelemetryFieldOptions telemetry_options = 33333;
}

Fix the extension number for TelemetryFieldOptions to be in sync with MX

/*
 * Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
 */

import "google/protobuf/descriptor.proto";

message SelfDescribingMessage {
  // Timestamp
  required uint64 timestamp = 1;

  // Set of .proto files which define the type.
  optional google.protobuf.FileDescriptorSet proto_files = 2;

  // Name of the message type.  Must be defined by one of the files in
  // proto_files.
  required string type_name = 3;

  // The message data.
  required bytes message_data = 4;
}

message TelemetryFieldOptions {
  // Key
  optional bool is_key = 1;

  // Timestamp
  optional bool is_timestamp = 2;
}

extend google.protobuf.FieldOptions {
  optional TelemetryFieldOptions telemetry_options = 50000;
}


syntax = "proto3";

package tensorflow.serving;
option cc_enable_arenas = true;

import "google/protobuf/wrappers.proto";

// Metadata for an inference request such as the model name and version.
message ModelSpec {
  // Required servable name.
  string name = 1;

  // Optional version.
  google.protobuf.Int64Value version = 2;

  // A named signature to evaluate. If unspecified, the default signature will
  // be used.
  string signature_name = 3;
}

Clarify the ModelSpec API to recommend that users leave the version field unspecified for the common case.

syntax = "proto3";

package tensorflow.serving;
option cc_enable_arenas = true;

import "google/protobuf/wrappers.proto";

// Metadata for an inference request such as the model name and version.
message ModelSpec {
  // Required servable name.
  string name = 1;

  // Optional version. Recommended to be left unset in the common case. Should
  // be specified only when there is a strong version consistency requirement.
  //
  // When left unspecified, the system will serve the best available version.
  // This is typically the latest version, though during version transitions,
  // notably when serving on a fleet of instances, may be either the previous or
  // new version.
  google.protobuf.Int64Value version = 2;

  // A named signature to evaluate. If unspecified, the default signature will
  // be used.
  string signature_name = 3;
}


syntax = "proto3";
package com.google.cloud.solutions.datalineage.model;

message CompositeLineage {
  uint64 reconcileTime = 1;
  JobInformation jobInformation = 2;
  TableLineage tableLineage = 5;
  repeated ColumnLineage columnsLineage = 10;
}

message JobInformation {
  string jobId = 1;
  uint64 jobTime = 2;
  string jobType = 5;
  string actuator = 10;
}

message TableLineage {
  DataEntity target = 1;
  string operation = 2;
  repeated DataEntity parents = 5;
}

message ColumnLineage {
  ColumnEntity target = 1;
  repeated string operations = 2;
  repeated ColumnEntity parents = 5;
}

message DataEntity {
  enum DataEntityTypes {
    UNKNOWN = 0;
    QUERY_LEVEL_TABLE = 1;
    CLOUD_STORAGE_FILE = 5;
    BIGQUERY_TABLE = 10;
  }

  DataEntityTypes kind = 1;
  string sqlResource = 2;
  string linkedResource = 3;
}

message ColumnEntity {
  DataEntity table = 1;
  string column = 2;
}

message TargetPolicyTags {
  DataEntity table = 1;
  repeated ColumnPolicyTags policyTags = 5;
}

message ColumnPolicyTags {
  string column = 1;
  repeated string policyTagIds = 2;
}

Make proto timestamp type signed

syntax = "proto3";
package com.google.cloud.solutions.datalineage.model;

message CompositeLineage {
  int64 reconcileTime = 1;
  JobInformation jobInformation = 2;
  TableLineage tableLineage = 5;
  repeated ColumnLineage columnsLineage = 10;
}

message JobInformation {
  string jobId = 1;
  int64 jobTime = 2;
  string jobType = 5;
  string actuator = 10;
}

message TableLineage {
  DataEntity target = 1;
  string operation = 2;
  repeated DataEntity parents = 5;
}

message ColumnLineage {
  ColumnEntity target = 1;
  repeated string operations = 2;
  repeated ColumnEntity parents = 5;
}

message DataEntity {
  enum DataEntityTypes {
    UNKNOWN = 0;
    QUERY_LEVEL_TABLE = 1;
    CLOUD_STORAGE_FILE = 5;
    BIGQUERY_TABLE = 10;
  }

  DataEntityTypes kind = 1;
  string sqlResource = 2;
  string linkedResource = 3;
}

message ColumnEntity {
  DataEntity table = 1;
  string column = 2;
}

message TargetPolicyTags {
  DataEntity table = 1;
  repeated ColumnPolicyTags policyTags = 5;
}

message ColumnPolicyTags {
  string column = 1;
  repeated string policyTagIds = 2;
}


syntax = "proto3";

package tensorflow;
option cc_enable_arenas = true;
option java_outer_classname = "SaverProtos";
option java_multiple_files = true;
option java_package = "org.tensorflow.util";

// Protocol buffer representing the configuration of a SaveRestoreHelper.
message SaverDef {
  // The name of the tensor in which to specify the filename when saving or
  // restoring a model checkpoint.
  string filename_tensor_name = 1;

  // The operation to run when saving a model checkpoint.
  string save_tensor_name = 2;

  // The operation to run when restoring a model checkpoint.
  string restore_op_name = 3;

  // Maximum number of checkpoints to keep.  If 0, no checkpoints are deleted.
  int32 max_to_keep = 4;

  // Shard the save files, one per device that has Variable nodes.
  bool sharded = 5;

  // How often to keep an additional checkpoint. If not specified, only the last
  // "max_to_keep" checkpoints are kept; if specified, in addition to keeping
  // the last "max_to_keep" checkpoints, an additional checkpoint will be kept
  // for every n hours of training.
  float keep_checkpoint_every_n_hours = 6;
}

Replace a minomer: s/SaveRestoreHelper/Saver. Change: 129002390

syntax = "proto3";

package tensorflow;
option cc_enable_arenas = true;
option java_outer_classname = "SaverProtos";
option java_multiple_files = true;
option java_package = "org.tensorflow.util";

// Protocol buffer representing the configuration of a Saver.
message SaverDef {
  // The name of the tensor in which to specify the filename when saving or
  // restoring a model checkpoint.
  string filename_tensor_name = 1;

  // The operation to run when saving a model checkpoint.
  string save_tensor_name = 2;

  // The operation to run when restoring a model checkpoint.
  string restore_op_name = 3;

  // Maximum number of checkpoints to keep.  If 0, no checkpoints are deleted.
  int32 max_to_keep = 4;

  // Shard the save files, one per device that has Variable nodes.
  bool sharded = 5;

  // How often to keep an additional checkpoint. If not specified, only the last
  // "max_to_keep" checkpoints are kept; if specified, in addition to keeping
  // the last "max_to_keep" checkpoints, an additional checkpoint will be kept
  // for every n hours of training.
  float keep_checkpoint_every_n_hours = 6;
}


package amber;
option java_package = "pl.edu.agh.amber.common.proto";
option java_outer_classname = "CommonProto";

option optimize_for = SPEED;

enum DeviceType {
    NINEDOF = 1;
    ROBOCLAW = 2;
    STARGAZER = 3;
    HOKUYO = 4;
    DUMMY = 5;
    LOCATION = 6;
    MAESTRO = 7;
}

message DriverHdr {
    optional int32 deviceType = 1;
    optional int32 deviceID = 2;
    repeated int32 clientIDs = 3 [packed = true];
}

message DriverMsg {
    enum MsgType {
        DATA = 1;
        PING = 2;
        PONG = 3;
        CLIENT_DIED = 4;
        DRIVER_DIED = 5;
        SUBSCRIBE = 6;
        UNSUBSCRIBE = 7;
    }

    required MsgType type = 2;
    optional uint32 synNum = 3;
    optional uint32 ackNum = 4;
    optional uint32 listenerNum = 5;
    extensions 10 to 99;
}

Update driver message to the latest version

package amber;
option java_package = "pl.edu.agh.amber.common.proto";
option java_outer_classname = "CommonProto";

option optimize_for = SPEED;

enum DeviceType {
    NINEDOF = 1;
    ROBOCLAW = 2;
    STARGAZER = 3;
    HOKUYO = 4;
    DUMMY = 5;
    LOCATION = 6;
    MAESTRO = 7;
}

message DriverHdr {
    optional int32 deviceType = 1;
    optional int32 deviceID = 2;
    repeated int32 clientIDs = 3 [packed = true];
}

message DriverMsg {
    enum MsgType {
        DATA = 1;
        PING = 2;
        PONG = 3;
        CLIENT_DIED = 4;
        DRIVER_DIED = 5;
        SUBSCRIBE = 6;
        UNSUBSCRIBE = 7;
    }

    required MsgType type = 2;
    optional uint32 synNum = 3;
    optional uint32 ackNum = 4;
    optional uint32 listenerNum = 5;
    extensions 10 to 89;
}


/*
 * Copyright (C) 2015 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

/*
 * Protocol Buffer messages used for testing Proto2Coder implementation.
 */

syntax = "proto2";

package proto2_coder_test_messages;

option java_package = "com.google.cloud.dataflow.sdk.coders";

message MessageA {
  optional string field1 = 1;
  repeated MessageB field2 = 2;
}

message MessageB {
  optional bool field1 = 1;
}

message MessageC {
  extensions 100 to 105;
}

extend MessageC {
  optional MessageA field1 = 101;
  optional MessageB field2 = 102;
}

Add new test proto messages that use map fields

/*
 * Copyright (C) 2015 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

/*
 * Protocol Buffer messages used for testing Proto2Coder implementation.
 */

syntax = "proto2";

package proto2_coder_test_messages;

option java_package = "com.google.cloud.dataflow.sdk.coders";

message MessageA {
  optional string field1 = 1;
  repeated MessageB field2 = 2;
}

message MessageB {
  optional bool field1 = 1;
}

message MessageC {
  extensions 100 to 105;
}

extend MessageC {
  optional MessageA field1 = 101;
  optional MessageB field2 = 102;
}

message MessageWithMap {
  map<string, MessageA> field1 = 1;
}

message ReferencesMessageWithMap {
  repeated MessageWithMap field1 = 1;
}


syntax = "proto3";

package nrpc;

option go_package = "github.com/rapidloop/nrpc";

import "google/protobuf/descriptor.proto";

enum SubjectRule {
    COPY = 0;
    TOLOWER = 1;
}

extend google.protobuf.FileOptions {
    // A custom subject prefix to use instead of the package name
    string packageSubject = 50000;
    // Parameters included in the subject at the package level
    repeated string packageSubjectParams = 50001;
    // Default rule to build a service subject from the service name
    SubjectRule serviceSubjectRule = 50002;
    // Default rule to build a method subject from its name
    SubjectRule methodSubjectRule = 50003;
}

extend google.protobuf.ServiceOptions {
	// A custom subject token to use instead of (service name + serviceSubjectRule)
	string serviceSubject = 51000;
	// Parameters included in the subject at the service level
	repeated string serviceSubjectParams = 51001;
}

extend google.protobuf.MethodOptions {
    // A custom subject to use instead of (methor name + methodSubjectRule)
    string methodSubject = 52000;
    // Parameters included in the subject at the method level
    repeated string methodSubjectParams = 52001;
}

message Error {
    enum Type {
        CLIENT = 0;
        SERVER = 1;
    }
    Type type = 1;
	string message = 2;
}

message Void {}

message NoReply {}

Add a 'NoRequest' message type

syntax = "proto3";

package nrpc;

option go_package = "github.com/rapidloop/nrpc";

import "google/protobuf/descriptor.proto";

enum SubjectRule {
    COPY = 0;
    TOLOWER = 1;
}

extend google.protobuf.FileOptions {
    // A custom subject prefix to use instead of the package name
    string packageSubject = 50000;
    // Parameters included in the subject at the package level
    repeated string packageSubjectParams = 50001;
    // Default rule to build a service subject from the service name
    SubjectRule serviceSubjectRule = 50002;
    // Default rule to build a method subject from its name
    SubjectRule methodSubjectRule = 50003;
}

extend google.protobuf.ServiceOptions {
	// A custom subject token to use instead of (service name + serviceSubjectRule)
	string serviceSubject = 51000;
	// Parameters included in the subject at the service level
	repeated string serviceSubjectParams = 51001;
}

extend google.protobuf.MethodOptions {
    // A custom subject to use instead of (methor name + methodSubjectRule)
    string methodSubject = 52000;
    // Parameters included in the subject at the method level
    repeated string methodSubjectParams = 52001;
}

message Error {
    enum Type {
        CLIENT = 0;
        SERVER = 1;
    }
    Type type = 1;
	string message = 2;
}

message Void {}

message NoRequest {}
message NoReply {}


syntax = "proto3";

package defender;

// Commands and reports for communicating with an ARIS Defender.
// Note that little is available to control via this interface, as
// the diver is intended to have primary control.

message DefenderSet {
  string dateTime = 1;
  Frequency frequency = 2;
  uint32 range = 3;
  Units units = 4;
  uint32 antialiasing = 5;
  FrameStreamReceiver receiver = 6;
}

message DefenderReport {
  string dateTime = 1;
  Frequency frequency = 2;
  uint32 range = 3;
  Units units = 4;
  uint32 antialiasing = 5;
  FrameStreamReceiver receiver = 6;
}

enum Frequency {
  AUTO = 0;
  LOW = 1;
  HIGH = 2;
}

// for depth and range markers
enum Units {
  METERS = 0;
  FEET = 1;
}

message FrameStreamReceiver {
  string ip = 1;
  uint32 port = 2;
}

Add FieldUpdate and fieldsUsed for DefenderSet

syntax = "proto3";

package defender;

// Commands and reports for communicating with an ARIS Defender.
// Note that little is available to control via this interface, as
// the diver is intended to have primary control.

message DefenderSet {
  string dateTime = 1;
  Frequency frequency = 2;
  uint32 range = 3;
  Units units = 4;
  uint32 antialiasing = 5;
  FrameStreamReceiver receiver = 6;
  FieldUpdate fieldsUsed = 7;
}

message DefenderReport {
  string dateTime = 1;
  Frequency frequency = 2;
  uint32 range = 3;
  Units units = 4;
  uint32 antialiasing = 5;
  FrameStreamReceiver receiver = 6;
}

enum Frequency {
  AUTO = 0;
  LOW = 1;
  HIGH = 2;
}

// for depth and range markers
enum Units {
  METERS = 0;
  FEET = 1;
}

message FrameStreamReceiver {
  string ip = 1;
  uint32 port = 2;
}

// An effort to deal with the ambiguity of protobuf v3 and its tendency to elide
// fields that have a value of zero. The original DefenderSet message was not meant
// to send multiple fields at once, but losing the ability to call .has_xxx has been
// problematic.
//
// Usage: bitwise-or the field specs that are passed in DefenderSet and set fieldsUsed.
enum FieldUpdate {
  NONE          = 0x00;
  DATETIME      = 0x01;
  FREQUENCY     = 0x02;
  RANGE         = 0x04;
  UNITS         = 0x08;
  ANTIALIASING  = 0x10; // Not currently implemented.
  RECEIVER      = 0x20;
}


/*
 * Copyright 2019, TeamDev. All rights reserved.
 *
 * Redistribution and use in source and/or binary forms, with or without
 * modification, must retain the above copyright notice and the following
 * disclaimer.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
syntax = "proto3";

package spine.ui;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_multiple_files = true;
option java_outer_classname = "LanguageProto";
option java_package = "io.spine.ui";

enum Language {
    UNDEFINED = 0;

    //TODO:2015-12-16:alexander.yevsyukov: Implement
}

Remove `Language` todo item and replace it with a reference to an issue.

/*
 * Copyright 2019, TeamDev. All rights reserved.
 *
 * Redistribution and use in source and/or binary forms, with or without
 * modification, must retain the above copyright notice and the following
 * disclaimer.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
syntax = "proto3";

package spine.ui;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_multiple_files = true;
option java_outer_classname = "LanguageProto";
option java_package = "io.spine.ui";

// A human language.
//
// See https://github.com/SpineEventEngine/base/issues/2
enum Language {

    UNDEFINED = 0;
}


package otmp.meta;

message meta {
  enum msgtype {
    meta                   = 0;
    ping                   = 1;
    pong                   = 2;
    connect                = 3;
    disconnect             = 4;
    connect_resp           = 5;
    force_disconnect       = 6;
    client_egress_chat_msg = 7;
    server_egress_chat_msg = 8;
  }
  required msgtype type = 1;
  required bytes   msg  = 2;
}

Correct meta enums to reflect current state of protocol

package otmp.meta;

message meta {
  enum msgtype {
    meta                   = 0;
    ping                   = 1;
    pong                   = 2;
    connect                = 3;
    disconnect             = 4;
    conn_status            = 5;
    client_egress_chat_msg = 6;
    server_egress_chat_msg = 7;
  }
  required msgtype type = 1;
  required bytes   msg  = 2;
}


syntax = "proto2";

option cc_api_version = 2;
package grr;

message ClientConfiguration {
  repeated string control_url = 1;
  repeated string proxy_server = 2;

  // The ca certificate which is used to validate server certs.
  optional string ca_cert_pem = 3;

  // The RSA private key of the client.
  optional string client_private_key_pem = 4;

  optional int32 last_server_cert_serial_number = 5;

  // The file to write configuration updates.
  optional string writeback_filename = 6;

  message SubprocessConfig {
    optional string filename = 1;
    repeated string argv = 2;
    repeated string env = 3;
  }
  optional SubprocessConfig subprocess_config = 7;
}

Remove version from proto file

syntax = "proto2";

package grr;

message ClientConfiguration {
  repeated string control_url = 1;
  repeated string proxy_server = 2;

  // The ca certificate which is used to validate server certs.
  optional string ca_cert_pem = 3;

  // The RSA private key of the client.
  optional string client_private_key_pem = 4;

  optional int32 last_server_cert_serial_number = 5;

  // The file to write configuration updates.
  optional string writeback_filename = 6;

  message SubprocessConfig {
    optional string filename = 1;
    repeated string argv = 2;
    repeated string env = 3;
  }
  optional SubprocessConfig subprocess_config = 7;
}


// Copyright 2014 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto2";
package gen_bq_schema;

option go_package = "protos";

import "google/protobuf/descriptor.proto";

extend google.protobuf.FieldOptions {
  // Flag to specify that a field should be marked as 'REQUIRED' when
  // used to generate schema for BigQuery.
  //
  // TODO: register with protobuf-global-extension-registry@google.com
  optional bool require = 1022;

  // Optionally override whatever type is resolved by the schema
  // generator. This is useful, for example, to store epoch timestamps
  // with the underlying 'TIMESTAMP' type, when normally, they would
  // be structured as 'INTEGER' fields.
  //
  // TODO: register with protobuf-global-extension-registry@google.com
  optional string type_override = 1023;
}

Add ignore field to proto

// Copyright 2014 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto2";
package gen_bq_schema;

option go_package = "protos";

import "google/protobuf/descriptor.proto";

extend google.protobuf.FieldOptions {
  // Flag to specify that a field should be marked as 'REQUIRED' when
  // used to generate schema for BigQuery.
  //
  // TODO: register with protobuf-global-extension-registry@google.com
  optional bool require = 1022;

  // Optionally override whatever type is resolved by the schema
  // generator. This is useful, for example, to store epoch timestamps
  // with the underlying 'TIMESTAMP' type, when normally, they would
  // be structured as 'INTEGER' fields.
  //
  // TODO: register with protobuf-global-extension-registry@google.com
  optional string type_override = 1023;

  // Optionally omit a field from BigQuery schema.
  //
  // TODO: register with protobuf-global-extension-registry@google.com
  optional bool ignore = 1024;
}


/**
 * Booking related messages.
 *
 * This file is really just an example. The data model is completely
 * fictional.
 *
 * Author: Elvis Stansvik
 */
package com.example;

/**
 * Represents the status of a vehicle booking.
 */
message BookingStatus {
    required int32 id = 1;           /// Unique booking status ID.
    required string description = 2; /// Booking status description. E.g. "Active".
}

/**
 * Represents the booking of a vehicle.
 *
 * Vehicles are some cool shit. But drive carefully!
 */
message Booking {
    required int32 vehicle_id = 1;     /// ID of booked vehicle.
    required int32 customer_id = 2;    /// Customer that booked the vehicle.
    required BookingStatus status = 3; /// Status of the booking.

    /** Has booking confirmation been sent? */
    required bool confirmation_sent = 4;

    /** Has payment been received? */
    required bool payment_received = 5;
}

/**
 * Service for handling vehicle bookings.
 */
service BookingService {
    rpc BookVehicle (Booking) returns (BookingStatus); /// Used to book a vehicle. Pass in a Booking and a Booking Status will be returned
}

Put comment before RPC method

/**
 * Booking related messages.
 *
 * This file is really just an example. The data model is completely
 * fictional.
 *
 * Author: Elvis Stansvik
 */
package com.example;

/**
 * Represents the status of a vehicle booking.
 */
message BookingStatus {
    required int32 id = 1;           /// Unique booking status ID.
    required string description = 2; /// Booking status description. E.g. "Active".
}

/**
 * Represents the booking of a vehicle.
 *
 * Vehicles are some cool shit. But drive carefully!
 */
message Booking {
    required int32 vehicle_id = 1;     /// ID of booked vehicle.
    required int32 customer_id = 2;    /// Customer that booked the vehicle.
    required BookingStatus status = 3; /// Status of the booking.

    /** Has booking confirmation been sent? */
    required bool confirmation_sent = 4;

    /** Has payment been received? */
    required bool payment_received = 5;
}

/**
 * Service for handling vehicle bookings.
 */
service BookingService {
    /// Used to book a vehicle. Pass in a Booking and a Booking Status will be returned
    rpc BookVehicle (Booking) returns (BookingStatus);
}


option optimize_for = LITE_RUNTIME;

package orwell.com;

// Base message used for communication, it contains an header defining the type of message
// And another message serialized in a byte array
message base_message {
	required string message_type = 1;
	required bytes serialized_message = 2;
	optional string recipient = 3;
}

// This message is used to handle a new client's login
message login_message {
	required string client_id = 1;
	required string wished_robot_type = 2;
}

message sample_message {
	required string login = 1;
}

message move_tank_message {
	required double left = 1;
	required double right = 2;
}

Remove recipient in message as zmq can filter at a higher level.

option optimize_for = LITE_RUNTIME;

package orwell.com;

// Base message used for communication, it contains an header defining the type of message
// And another message serialized in a byte array
message base_message {
	required string message_type = 1;
	required bytes serialized_message = 2;
}

// This message is used to handle a new client's login
message login_message {
	required string client_id = 1;
	required string wished_robot_type = 2;
}

message sample_message {
	required string login = 1;
}

message move_tank_message {
	required double left = 1;
	required double right = 2;
}


//
// Copyright 2017, TeamDev Ltd. All rights reserved.
//
// Redistribution and use in source and/or binary forms, with or without
// modification, must retain the above copyright notice and the following
// disclaimer.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
syntax = "proto3";

package spine.test.entity.number;

option (type_url_prefix) = "type.spine3.org";
option java_package = "org.spine3.test.entity.number";
option java_multiple_files = true;

import "spine/annotations.proto";
import "spine/validate.proto";

message NaturalNumber {
    int32 value = 1 [(min).value = "1"];
}

Change min natural number value

//
// Copyright 2017, TeamDev Ltd. All rights reserved.
//
// Redistribution and use in source and/or binary forms, with or without
// modification, must retain the above copyright notice and the following
// disclaimer.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
syntax = "proto3";

package spine.test.entity.number;

option (type_url_prefix) = "type.spine3.org";
option java_package = "org.spine3.test.entity.number";
option java_multiple_files = true;

import "spine/annotations.proto";
import "spine/validate.proto";

message NaturalNumber {
    int32 value = 1 [(min).value = "0"];
}


//
// Copyright 2016, TeamDev Ltd. All rights reserved.
//
// Redistribution and use in source and/or binary forms, with or without
// modification, must retain the above copyright notice and the following
// disclaimer.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
syntax = "proto3";

package spine.base;

option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_outer_classname = "EmailProto";
option java_package = "org.spine3.base";

// An email address.
// No validation is performed for the passed value.
message EmailAddress {
    // String value of the address.
    string value = 1;
}

Add todo for improving `EmailAddress` type.

//
// Copyright 2016, TeamDev Ltd. All rights reserved.
//
// Redistribution and use in source and/or binary forms, with or without
// modification, must retain the above copyright notice and the following
// disclaimer.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
syntax = "proto3";

package spine.base;

option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_outer_classname = "EmailProto";
option java_package = "org.spine3.base";

// An email address.
// No validation is performed for the passed value.
message EmailAddress {

    //TODO:2016-02-20:alexander.yevsyukov: Make it structured, to reflect http://www.ietf.org/rfc/rfc822.txt
    // A minimum it should have fields like `user`, `domain`, `personal`, `suffix` - the part coming after `+`.
    // See also InternetAddress from JavaMail: http://docs.oracle.com/javaee/6/api/javax/mail/internet/InternetAddress.html

    // String value of the address.
    string value = 1;
}


message Robot {
    // Message to the robot
    optional LED headlights = 1;
    optional Motor motor_left = 2;
    optional Motor motor_right = 3;
    repeated Procedure procedures = 4;

    message Motor {
        optional bool update = 1;
        // range 0 to 100, as precent of total
        optional int32 speed = 2;
        optional bool breaks = 3;
    }
    message Servo {
        optional bool update = 1;
        optional int32 degree = 2;
    }
    message LED {
        optional bool update = 1;
        optional bool on = 2;
    }
    message Procedure {
        oneof procedure {
            GoInCircle circle = 1;
        }

        message GoInCircle {
            required int32 radius = 1;
        }
    }
}

message BaseStation {
    // Message to the basestation
    optional Battery battery = 1;

    message Battery {
        optional int32 charge = 1;
    }
}

Add sensor data to protobuf

message Robot {
    // Message to the robot
    optional LED headlights = 1;
    optional Motor motor_left = 2;
    optional Motor motor_right = 3;
    repeated Procedure procedures = 4;
    optional Servo arm = 5;

    message Motor {
        optional bool update = 1;
        // range 0 to 100, as precent of total
        optional int32 speed = 2;
        optional bool breaks = 3;
    }
    message Servo {
        optional bool update = 1;
        optional int32 degree = 2;
    }
    message LED {
        optional bool update = 1;
        optional bool on = 2;
    }
    message Procedure {
        oneof procedure {
            GoInCircle circle = 1;
        }

        message GoInCircle {
            required int32 radius = 1;
        }
    }
}

message BaseStation {
    // Message to the basestation
    optional Battery battery = 1;
    optional Distance sensor_data = 2;

    message Battery {
        optional int32 charge = 1;
    }

    message Distance {
        optional int32 front_right = 1;
        optional int32 front_left = 2;
        optional int32 back_right = 3;
        optional int32 back_left = 4;
        optional bool update = 5;
    }
}


option java_multiple_files = true;
option java_generate_equals_and_hash = true;
option java_package = "com.xtrader.protocol.proto.commons.model";
option java_outer_classname = "ContainerCommonModelMessages";

// --- COMMON API 50 - 69 --- [1 - 49 reserved for traffic intensive messages]
enum ProtoPayloadType {
    ERROR_RES = 50;
    HEARTBEAT_EVENT = 51;
    PING_REQ = 52;
    PING_RES = 53;
}

// COMMON error codes 1 - 99
enum ProtoErrorCode {
    UNKNOWN_ERROR = 1;
    UNSUPPORTED_MESSAGE = 2;
    INVALID_REQUEST = 3;
    WRONG_PASSWORD = 4;
    TIMEOUT_ERROR = 5;
    ENTITY_NOT_FOUND = 6;
    CANT_ROUTE_REQUEST = 7;
    FRAME_TOO_LONG = 8;
    MARKET_CLOSED = 9;
    CONCURRENT_MODIFICATION = 10;
}

message ProtoIntRange {
    optional int32 from = 1;
    optional int32 to = 2;
}

message ProtoLongRange {
    optional int64 from = 1;
    optional int64 to = 2;
}

message ProtoDoubleRange {
    optional double from = 1;
    optional double to = 2;
}

enum ProtoTradeSide {
    BUY = 1;
    SELL = 2;
}

enum ProtoQuoteType {
    BID = 1;
    ASK = 2;
}

enum ProtoTimeInForce {
    GOOD_TILL_DATE = 1;
    GOOD_TILL_CANCEL = 2;
    IMMEDIATE_OR_CANCEL = 3;
}

Remove these enums as they are already defined elsewhere


package AppStream;
option optimize_for = LITE_RUNTIME;

message Urls {
  enum UrlType {
    UNKNOWN = 0;
    HOMEPAGE = 1;
    BUGTRACKER = 2;
    FAQ = 3;
    HELP = 4;
    DONATION = 5;
  }

  message Url {
    required UrlType type = 1 [default = UNKNOWN];
    required string url = 2;
  }

  repeated Url url = 1;
}

Define most field types we want for the DB as Protobuf messages

package AppStream;
option optimize_for = LITE_RUNTIME;

/* =================================== */
message Urls {
  enum UrlType {
    UNKNOWN = 0;
    HOMEPAGE = 1;
    BUGTRACKER = 2;
    FAQ = 3;
    HELP = 4;
    DONATION = 5;
  }

  message Url {
    required UrlType type = 1 [default = UNKNOWN];
    required string url = 2;
  }

  repeated Url url = 1;
}

/* =================================== */
message Bundles {
  enum BundleType {
    UNKNOWN = 0;
    LIMBA = 1;
    XDG_APP = 2;
  }

  message Bundle {
    required BundleType type = 1 [default = UNKNOWN];
    required string id = 2;
  }

  repeated Bundle bundle = 1;
}

/* =================================== */
message Screenshots {
  message Image {
    required int32 width  = 1;
    required int32 height = 2;
    required string url = 3;
  }

  message Screenshot {
    required bool primary = 1 [default = false];
    required Image source_image = 2;
    repeated Image thumbnail = 3;
  }

  repeated Screenshot screenshot = 1;
}

/* =================================== */
message Languages {
  message Language {
    required string locale = 1;
    required int32 completion = 2 [default = 0];
  }

  repeated Language language = 1;
}


import "uav_system_config.proto";

message OnboardSystemHandlerConfig {
  required UAVSystemConfig uav_system_config = 1;
  required string uav_parser_type = 2;
  optional int32 uav_parser_load_timeout = 3 [ default = 5 ];
  optional int32 uav_controller_timer_duration = 4 [ default = 20 ]; // millis
  optional int32 state_machine_timer_duration = 5 [ default = 20 ];  // millis
}

Remove parser timeout config param

import "uav_system_config.proto";

message OnboardSystemHandlerConfig {
  required UAVSystemConfig uav_system_config = 1;
  required string uav_parser_type = 2;
  optional int32 uav_controller_timer_duration = 3 [ default = 20 ]; // millis
  optional int32 state_machine_timer_duration = 4 [ default = 20 ];  // millis
}


/*
 * Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
 */

import "google/protobuf/descriptor.proto";

message SelfDescribingMessage {
  // Timestamp
  required uint64 timestamp = 1;

  // Set of .proto files which define the type.
  required google.protobuf.FileDescriptorSet proto_files = 2;

  // Name of the message type.  Must be defined by one of the files in
  // proto_files.
  required string type_name = 3;

  // The message data.
  required bytes message_data = 4;
}

Change FileDescriptorSet to be an optional field in self describing message proto file to accomodate any future plans to send schemas separately from the protobuf messages.

/*
 * Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
 */

import "google/protobuf/descriptor.proto";

message SelfDescribingMessage {
  // Timestamp
  required uint64 timestamp = 1;

  // Set of .proto files which define the type.
  optional google.protobuf.FileDescriptorSet proto_files = 2;

  // Name of the message type.  Must be defined by one of the files in
  // proto_files.
  required string type_name = 3;

  // The message data.
  required bytes message_data = 4;
}


// RPC interface for vtworker.
// The interface is very similar to the vtctld interface (see vtctlservice.proto).

syntax = "proto3";

package vtworkerservice;

import "vtworkerdata.proto";

// Service Vtworker contains the vtworker RPC calls.
service Vtworker {
  rpc ExecuteVtworkerCommand (vtworkerdata.ExecuteVtworkerCommandRequest) returns (stream vtworkerdata.ExecuteVtworkerCommandResponse) {};
}

Add comment to RPC proto definition.

// RPC interface for vtworker.
// The interface is very similar to the vtctld interface (see vtctlservice.proto).

syntax = "proto3";

package vtworkerservice;

import "vtworkerdata.proto";

// Service Vtworker contains the vtworker RPC calls.
service Vtworker {
  // ExecuteVtworkerCommand allows to run a vtworker command by specifying the
  // same arguments as on the command line.
  rpc ExecuteVtworkerCommand (vtworkerdata.ExecuteVtworkerCommandRequest) returns (stream vtworkerdata.ExecuteVtworkerCommandResponse) {};
}


syntax = "proto2";

import "rustproto.proto";

option (rustproto.carllerche_bytes_for_bytes_all) = true;
option (rustproto.carllerche_bytes_for_string_all) = true;

message TestCarllercheBytes {
    optional bytes b1 = 1;
    optional string s1 = 2;
    repeated bytes br = 3;
    repeated string sr = 4;
}

Test test compilation when `with-bytes` feature enabled

syntax = "proto2";

import "rustproto.proto";

option (rustproto.carllerche_bytes_for_bytes_all) = true;
option (rustproto.carllerche_bytes_for_string_all) = true;
option (rustproto.generate_accessors_all) = true;

message TestCarllercheBytes {
    optional bytes b1 = 1;
    optional string s1 = 2;
    repeated bytes br = 3;
    repeated string sr = 4;
}


package events;

import "heartbeat.proto";
import "http.proto";
import "log.proto";
import "metric.proto";
import "error.proto";

/// Envelope wraps an Event and adds metadata.
message Envelope {
    /// Type of the wrapped event.
    enum EventType {
        Heartbeat = 1;
        HttpStart = 2;
        HttpStop = 3;
        HttpStartStop = 4;
        LogMessage = 5;
        ValueMetric = 6;
        CounterEvent = 7;
        Error = 8;
        ContainerMetric = 9;
    }

    required string origin = 1;               /// Unique description of the origin of this event.
    required EventType eventType = 2;         /// Type of wrapped event. Only the optional field corresponding to the value of eventType should be set.

    optional int64 timestamp = 6;             /// UNIX timestamp (in nanoseconds) event was wrapped in this Envelope.

    optional Heartbeat heartbeat = 3;
    optional HttpStart httpStart = 4;
    optional HttpStop httpStop = 5;
    optional HttpStartStop httpStartStop = 7;
    optional LogMessage logMessage = 8;
    optional ValueMetric valueMetric = 9;
    optional CounterEvent counterEvent = 10;
    optional Error error = 11;
    optional ContainerMetric containerMetric = 12;

    repeated Tag tags = 13;                    /// Optional list of key-value pairs. Should hold meta/descriptive information about the event contained in this envelope, not metric data itself.
}

/// Tag holds a key-value pair
message Tag {
    required string key = 1;
    required string value = 2;
}

Swap tags for explicit deployment, job, index, ip fields

package events;

import "heartbeat.proto";
import "http.proto";
import "log.proto";
import "metric.proto";
import "error.proto";

/// Envelope wraps an Event and adds metadata.
message Envelope {
    /// Type of the wrapped event.
    enum EventType {
        Heartbeat = 1;
        HttpStart = 2;
        HttpStop = 3;
        HttpStartStop = 4;
        LogMessage = 5;
        ValueMetric = 6;
        CounterEvent = 7;
        Error = 8;
        ContainerMetric = 9;
    }

    required string origin = 1;               /// Unique description of the origin of this event.
    required EventType eventType = 2;         /// Type of wrapped event. Only the optional field corresponding to the value of eventType should be set.

    optional int64 timestamp = 6;             /// UNIX timestamp (in nanoseconds) event was wrapped in this Envelope.

    optional string deployment = 13;          /// Deployment name (used to uniquely identify source).
    optional string job = 14;                 /// Job name (used to uniquely identify source).
    optional string index = 15;               /// Index of job (used to uniquely identify source).
    optional string ip = 16;                  /// IP address (used to uniquely identify source).

    optional Heartbeat heartbeat = 3;
    optional HttpStart httpStart = 4;
    optional HttpStop httpStop = 5;
    optional HttpStartStop httpStartStop = 7;
    optional LogMessage logMessage = 8;
    optional ValueMetric valueMetric = 9;
    optional CounterEvent counterEvent = 10;
    optional Error error = 11;
    optional ContainerMetric containerMetric = 12;
}


// -*- cpy-indent-level: 4; indent-tabs-mode: nil -*-
// ex: set expandtab softtabstop=4 shiftwidth=4:
package aqddnsdomains;

message DNSDomain {
    optional string name = 1;
}

message DNSDomainList {
    repeated DNSDomain dns_domains = 1;
}

Add restricted attribute to DnsDomain

// -*- cpy-indent-level: 4; indent-tabs-mode: nil -*-
// ex: set expandtab softtabstop=4 shiftwidth=4:
package aqddnsdomains;

message DNSDomain {
    optional string name = 1;
    optional bool restricted = 2;
}

message DNSDomainList {
    repeated DNSDomain dns_domains = 1;
}


syntax = "proto3";
package POGOProtos.Networking.Envelopes;

import "POGOProtos/Networking/Envelopes/AuthTicket.proto";
import "POGOProtos/Networking/Platform/PlatformRequestType.proto";

message ResponseEnvelope {
	StatusCode status_code = 1;
	uint64 request_id = 2;
	string api_url = 3;

	repeated PlatformResponse platform_returns = 6;
	.POGOProtos.Networking.Envelopes.AuthTicket auth_ticket = 7;

	repeated bytes returns = 100;
	string error = 101;

	message PlatformResponse {
		.POGOProtos.Networking.Platform.PlatformRequestType type = 1;
		bytes response = 2;
	}

	enum StatusCode {
		UNKNOWN = 0;
		OK = 1; // valid response with no api url
		OK_RPC_URL_IN_RESPONSE = 2; // the response envelope has api_url set and this response is valid
		INVALID = 3; // bad request
		INVALID_REQUEST = 51; // using unimplemented request or corrupt request
		INVALID_PLATFORM_REQUEST = 52; // invalid platform request or corrupt platform request
		REDIRECT = 53; // a new rpc endpoint is available and you should redirect to there
		SESSION_INVALIDATED = 100; // occurs when you send blank authinfo, or sending nonsense timings (ie LocationFix.timestampSnapshot == Signature.timestampSinceStart)
		INVALID_AUTH_TOKEN = 102; // occurs when the login token is invalid
    }
}

Rename INVALID status code to BAD_REQUEST

syntax = "proto3";
package POGOProtos.Networking.Envelopes;

import "POGOProtos/Networking/Envelopes/AuthTicket.proto";
import "POGOProtos/Networking/Platform/PlatformRequestType.proto";

message ResponseEnvelope {
	StatusCode status_code = 1;
	uint64 request_id = 2;
	string api_url = 3;

	repeated PlatformResponse platform_returns = 6;
	.POGOProtos.Networking.Envelopes.AuthTicket auth_ticket = 7;

	repeated bytes returns = 100;
	string error = 101;

	message PlatformResponse {
		.POGOProtos.Networking.Platform.PlatformRequestType type = 1;
		bytes response = 2;
	}

	enum StatusCode {
		UNKNOWN = 0;
		OK = 1; // valid response with no api url
		OK_RPC_URL_IN_RESPONSE = 2; // the response envelope has api_url set and this response is valid
		BAD_REQUEST = 3; // bad request
		INVALID_REQUEST = 51; // using unimplemented request or corrupt request
		INVALID_PLATFORM_REQUEST = 52; // invalid platform request or corrupt platform request
		REDIRECT = 53; // a new rpc endpoint is available and you should redirect to there
		SESSION_INVALIDATED = 100; // occurs when you send blank authinfo, or sending nonsense timings (ie LocationFix.timestampSnapshot == Signature.timestampSinceStart)
		INVALID_AUTH_TOKEN = 102; // occurs when the login token is invalid
    }
}


syntax = "proto3";

package spine.test.bus.stock;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.test.bus";
option java_outer_classname = "StockProto";
option java_multiple_files = true;

message ShareId {
    string value = 1;
}

message Share {
    option (entity).kind = AGGREGATE;

    ShareId id = 1;

    Price price = 2;
}

message Price {

    float usd = 2 [(digits).fraction_max = 2];
}

Remove outdated proto option usage

syntax = "proto3";

package spine.test.bus.stock;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.test.bus";
option java_outer_classname = "StockProto";
option java_multiple_files = true;

message ShareId {
    string value = 1;
}

message Share {
    option (entity).kind = AGGREGATE;

    ShareId id = 1;

    Price price = 2;
}

message Price {

    float usd = 2;
}


package metadata_info;

message MetadataInfo
{
    optional metadata metadata = 1;
    optional string metadataMergeInfo = 2;
}

message Metadata
{
    optional string modelVersion = 1;
    required string groupId = 2;
    required string artifactId = 3;
    required string version = 4;
    optional Versioning versioning = 5;
    repeated Plugin plugins = 6;
    optional string modelEncoding = 7;
}

message Versioning
{
    optional string latest = 1;
    optional string release = 2;
    optional Snapshot snapshot = 3;
    repeated string versions = 4;
    optional string lastUpdated = 5;
    repeated SnapshotVersion snapshotVersions = 6;
}

message Plugin
{
    optional string artifactId = 1;
    optional string name = 2;
    optional string prefix = 3;
}

message Snapshot
{
    optional string timestamp = 1;
    optional int32 buildNumber = 2;
    optional bool localCopy = 3;
}

message SnapshotVersion
{
    optional string classifier = 1;
    optional string extension = 2;
    optional string version = 3;
    optional string updated = 4;
}

Fix the type in .proto

package metadata_info;

message MetadataInfo
{
    optional Metadata metadata = 1;
    optional string metadataMergeInfo = 2;
}

message Metadata
{
    optional string modelVersion = 1;
    required string groupId = 2;
    required string artifactId = 3;
    required string version = 4;
    optional Versioning versioning = 5;
    repeated Plugin plugins = 6;
    optional string modelEncoding = 7;
}

message Versioning
{
    optional string latest = 1;
    optional string release = 2;
    optional Snapshot snapshot = 3;
    repeated string versions = 4;
    optional string lastUpdated = 5;
    repeated SnapshotVersion snapshotVersions = 6;
}

message Plugin
{
    optional string artifactId = 1;
    optional string name = 2;
    optional string prefix = 3;
}

message Snapshot
{
    optional string timestamp = 1;
    optional int32 buildNumber = 2;
    optional bool localCopy = 3;
}

message SnapshotVersion
{
    optional string classifier = 1;
    optional string extension = 2;
    optional string version = 3;
    optional string updated = 4;
}


/*
 * Copyright 2019, TeamDev. All rights reserved.
 *
 * Redistribution and use in source and/or binary forms, with or without
 * modification, must retain the above copyright notice and the following
 * disclaimer.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
syntax = "proto3";

package spine.tools.protoc.iface;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_multiple_files = true;
option java_outer_classname = "EntityStatesProto";
option java_package = "io.spine.tools.protoc.iface";

message ProtocProject {
    option (entity).kind = PROJECTION;

    ProtocProjectId id = 1;
}

message ProtocProjectId {
    string uuid = 1;
}

message ProtocTask {
    option (entity) = {};

    string id = 1;
}

Delete a redundant empty line


syntax = "proto3";
package zigbeealliance.distributedcomplianceledger.dclauth;

option go_package = "github.com/zigbee-alliance/distributed-compliance-ledger/x/dclauth/types";

import "gogoproto/gogo.proto";
import "dclauth/account.proto";
import "dclauth/grant.proto";

message RevokedAccount {
  Account account = 1 [(gogoproto.embed) = true];
  repeated Grant revokeApprovals = 2;
}

Add a new field revokedReason for RevokedAccount

syntax = "proto3";
package zigbeealliance.distributedcomplianceledger.dclauth;

option go_package = "github.com/zigbee-alliance/distributed-compliance-ledger/x/dclauth/types";

import "gogoproto/gogo.proto";
import "dclauth/account.proto";
import "dclauth/grant.proto";
import "cosmos_proto/cosmos.proto";

message RevokedAccount {
  Account account = 1 [(gogoproto.embed) = true];
  repeated Grant revokeApprovals = 2;
  string revokedReason = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}


// Copyright 2020 The Measurement System Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package wfa.measurement.internal.kingdom;

option java_package = "org.wfanet.measurement.internal.kingdom";
option java_multiple_files = true;

message ReportDetails {
  repeated string confirmed_duchies = 1;
  repeated string unconfirmed_duchies = 2;
}

Document and fix up ReportDetails proto fields

// Copyright 2020 The Measurement System Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package wfa.measurement.internal.kingdom;

option java_package = "org.wfanet.measurement.internal.kingdom";
option java_multiple_files = true;

message ReportDetails {
  // Before a Report can be started, each Duchy involved needs to confirm its
  // readiness. This holds the list of Duchies that are ready.
  repeated string confirmed_duchies = 1;
}


// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Protocol buffer definitions for Drive backend of Syncable FileSystem.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package sync_file_system.drive_backend;

enum FileKind {
  KIND_UNSUPPORTED = 0;
  KIND_FILE = 1;
  KIND_FOLDER = 2;
}

message ServiceMetadata {
  optional int64 largest_change_id = 1;
  optional string sync_root_folder_id = 2;
}

Add FileMetadata and FileTracker for MetadataDatabase

// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Protocol buffer definitions for Drive backend of Syncable FileSystem.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package sync_file_system.drive_backend;

enum FileKind {
  KIND_UNSUPPORTED = 0;
  KIND_FILE = 1;
  KIND_FOLDER = 2;
}

message ServiceMetadata {
  optional int64 largest_change_id = 1;
  optional int64 sync_root_tracker_id = 2;

  // The sequence number of FileTrackers. Must be positive.
  optional int64 next_tracker_id = 3;
}

// Holds details of file/folder metadata.
message FileDetails {
  repeated string parent_folder_ids = 1;

  optional string title = 2;
  optional FileKind kind = 3;
  optional string md5 = 4;
  optional string etag = 5;

  // Creation time and modification time of the resource.
  // Serialized by Time::ToInternalValue.
  optional int64 creation_time = 6;
  optional int64 modification_time = 7;

  optional bool deleted = 8;
  optional int64 change_id = 9;
}

// Represents a server-side file.
message FileMetadata {
  // File ID of the remote file/folder which the FileMetadata represents.
  required string file_id = 1;

  optional FileDetails details = 2;
}

// Represents synced local file.
message FileTracker {
  // A unique sequence number to identify the tracker. Must be positive.
  required int64 tracker_id = 1;

  // Points the parent tracker in the tracker tree.  0 if there's no parent.
  required int64 parent_tracker_id = 2;

  required string file_id = 3;

  optional string app_id = 4;
  optional bool is_app_root = 5;

  optional FileDetails synced_details = 6;

  // True if the file is changed since the last update for this file.
  optional bool dirty = 7;

  // True if the FileTracker is active.
  // Remote file modification should only be applied to active trackers.
  // Active FileTracker must have a unique title under its parent.
  optional bool active = 8;

  // Valid only for folders.
  // True if the folder contents have not yet been fetched.
  optional bool needs_folder_listing = 9;
}


syntax = "proto3";

package tensorflow.distributed_runtime;

option cc_enable_arenas = true;

// Used to serialize and transmit tensorflow::Status payloads through
// grpc::Status `error_details` since grpc::Status lacks payload API.
// TODO(b/204231601): Use GRPC API once supported.
message GrpcPayloadContainer {
  map<string, string> payloads = 1;
}

// If included as a payload, this message flags the Status to have lost payloads
// during the GRPC transmission.
// URI: "type.googleapis.com/tensorflow.distributed_runtime.GrpcPayloadsLost"
message GrpcPayloadsLost {}

// If included as a payload, this message flags the Status to be a possible
// outcome of a worker restart.
// URI:
// "type.googleapis.com/tensorflow.distributed_runtime.WorkerPossiblyRestarted"
message WorkerPossiblyRestarted {}

Declare import path in distributed runtime payloads proto

syntax = "proto3";

package tensorflow.distributed_runtime;

option cc_enable_arenas = true;
option go_package = "github.com/tensorflow/tensorflow/tensorflow/go/core/protobuf/for_core_protos_go_proto";

// Used to serialize and transmit tensorflow::Status payloads through
// grpc::Status `error_details` since grpc::Status lacks payload API.
// TODO(b/204231601): Use GRPC API once supported.
message GrpcPayloadContainer {
  map<string, string> payloads = 1;
}

// If included as a payload, this message flags the Status to have lost payloads
// during the GRPC transmission.
// URI: "type.googleapis.com/tensorflow.distributed_runtime.GrpcPayloadsLost"
message GrpcPayloadsLost {}

// If included as a payload, this message flags the Status to be a possible
// outcome of a worker restart.
// URI:
// "type.googleapis.com/tensorflow.distributed_runtime.WorkerPossiblyRestarted"
message WorkerPossiblyRestarted {}


// Copyright 2020 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.events;

import "google/protobuf/descriptor.proto";

option csharp_namespace = "Google.Events.Protobuf";

extend google.protobuf.MessageOptions {
  // The CloudEvent type (e.g. "google.cloud.storage.object.v1.finalized")
  // that relates to this message.
  string cloud_event_type = 311716486;
}

Use a smaller extension field number for the cloud_event_type

// Copyright 2020 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.events;

import "google/protobuf/descriptor.proto";

option csharp_namespace = "Google.Events.Protobuf";

extend google.protobuf.MessageOptions {
  // The CloudEvent type (e.g. "google.cloud.storage.object.v1.finalized")
  // that relates to this message.
  string cloud_event_type = 11716486;
}


package amber;
option java_package = "pl.edu.agh.amber.common.proto";
option java_outer_classname = "CommonProto";

option optimize_for = SPEED;

enum DeviceType {
    NINEDOF = 1;
    ROBOCLAW = 2;
    STARGAZER = 3;
    HOKUYO = 4;
    DUMMY = 5;
    LOCATION = 6;
    MAESTRO = 7;
    DRIVE_TO_POINT = 8;
    COLLISION_AVOIDANCE = 9;
}

message DriverHdr {
    optional int32 deviceType = 1;
    optional int32 deviceID = 2;
    repeated int32 clientIDs = 3 [packed = true];
}

message DriverMsg {
    enum MsgType {
        DATA = 1;
        PING = 2;
        PONG = 3;
        CLIENT_DIED = 4;
        DRIVER_DIED = 5;
        SUBSCRIBE = 6;
        UNSUBSCRIBE = 7;
    }

    required MsgType type = 2;
    optional uint32 synNum = 3;
    optional uint32 ackNum = 4;
    optional uint32 listenerNum = 5;
    extensions 10 to 99;
}

Extend number of extenstions to 199, add PID follow trajectory driver

package amber;
option java_package = "pl.edu.agh.amber.common.proto";
option java_outer_classname = "CommonProto";

option optimize_for = SPEED;

enum DeviceType {
    NINEDOF = 1;
    ROBOCLAW = 2;
    STARGAZER = 3;
    HOKUYO = 4;
    DUMMY = 5;
    LOCATION = 6;
    MAESTRO = 7;
    DRIVE_TO_POINT = 8;
    COLLISION_AVOIDANCE = 9;
    PID_FOLLOW_TRAJECTORY = 10;
}

message DriverHdr {
    optional int32 deviceType = 1;
    optional int32 deviceID = 2;
    repeated int32 clientIDs = 3 [packed = true];
}

message DriverMsg {
    enum MsgType {
        DATA = 1;
        PING = 2;
        PONG = 3;
        CLIENT_DIED = 4;
        DRIVER_DIED = 5;
        SUBSCRIBE = 6;
        UNSUBSCRIBE = 7;
    }

    required MsgType type = 2;
    optional uint32 synNum = 3;
    optional uint32 ackNum = 4;
    optional uint32 listenerNum = 5;
    extensions 10 to 199;
}


// -*- cpy-indent-level: 4; indent-tabs-mode: nil -*-
// ex: set expandtab softtabstop=4 shiftwidth=4:
package aqdnetworks;

import "aqdsystems.proto";
import "aqdlocations.proto";

message DynamicRange {
    optional string start = 1;
    optional string end = 2;
}

message Network {
    optional string name = 1;
    optional string ip = 2;
    optional int32 cidr = 3;
    optional string bcast = 4;
    optional string netmask = 5;
    optional string side = 6;
    optional string sysloc = 7;
    optional aqdlocations.Location location = 8;
    repeated aqdsystems.Host hosts = 9;
    optional int32 id = 10 [deprecated=true];
    optional string type = 11;
    optional bool discoverable = 12 [deprecated=true];
    optional bool discovered = 13 [deprecated=true];
    optional string env_name = 14;
    repeated DynamicRange dynamic_ranges = 15;
    repeated string routers = 16;
    optional string compartment = 17;
    optional aqdsystems.NetworkEnvironment network_environment = 18;
    // Note: network_environment.name == env_name
}

message NetworkList {
    repeated Network networks = 1;
}

message NetworkCompartment {
    required string name = 1;
}

message NetworkCompartmentList {
    repeated NetworkCompartment compartments = 1;
}

Add range_class option to dynamic ranges

// -*- cpy-indent-level: 4; indent-tabs-mode: nil -*-
// ex: set expandtab softtabstop=4 shiftwidth=4:
package aqdnetworks;

import "aqdsystems.proto";
import "aqdlocations.proto";

message DynamicRange {
    optional string start = 1;
    optional string end = 2;
    optional string range_class = 3;
}

message Network {
    optional string name = 1;
    optional string ip = 2;
    optional int32 cidr = 3;
    optional string bcast = 4;
    optional string netmask = 5;
    optional string side = 6;
    optional string sysloc = 7;
    optional aqdlocations.Location location = 8;
    repeated aqdsystems.Host hosts = 9;
    optional int32 id = 10 [deprecated=true];
    optional string type = 11;
    optional bool discoverable = 12 [deprecated=true];
    optional bool discovered = 13 [deprecated=true];
    optional string env_name = 14;
    repeated DynamicRange dynamic_ranges = 15;
    repeated string routers = 16;
    optional string compartment = 17;
    optional aqdsystems.NetworkEnvironment network_environment = 18;
    // Note: network_environment.name == env_name
}

message NetworkList {
    repeated Network networks = 1;
}

message NetworkCompartment {
    required string name = 1;
}

message NetworkCompartmentList {
    repeated NetworkCompartment compartments = 1;
}


/*
 *  Copyright 2017 Google Inc. All Rights Reserved.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

syntax = "proto2";

package goosci;
option java_package = "com.google.android.apps.forscience.whistlepunk.metadata";
option java_outer_classname = "GoosciCaption";
option objc_class_prefix = "GSJ";
option optimize_for = LITE_RUNTIME;

// A user-added caption. This can be applied to trials and labels.
message Caption {
    optional string text = 1;

    optional string lastEditedTimestamp = 2;
}

Fix proto timestamp: should be long, not string.

/*
 *  Copyright 2017 Google Inc. All Rights Reserved.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

syntax = "proto2";

package goosci;
option java_package = "com.google.android.apps.forscience.whistlepunk.metadata";
option java_outer_classname = "GoosciCaption";
option objc_class_prefix = "GSJ";
option optimize_for = LITE_RUNTIME;

// A user-added caption. This can be applied to trials and labels.
message Caption {
    optional string text = 1;

    optional int64 lastEditedTimestamp = 2;
}


// To regenerate api.pb.go run `make proto`
syntax = "proto3";

package cri.runtimeoptions.v1;

import "github.com/gogo/protobuf/gogoproto/gogo.proto";

option (gogoproto.goproto_stringer_all) = false;
option (gogoproto.stringer_all) =  true;
option (gogoproto.goproto_getters_all) = true;
option (gogoproto.marshaler_all) = true;
option (gogoproto.sizer_all) = true;
option (gogoproto.unmarshaler_all) = true;
option (gogoproto.goproto_unrecognized_all) = false;

message Options {
  // TypeUrl specifies the type of the content inside the config file.
  string type_url = 1;
  // ConfigPath specifies the filesystem location of the config file
  // used by the runtime.
  string config_path = 2;
}

Use tabs in protofile indentation


syntax = "proto3";

package org.langmeta.internal.semanticdb.schema;

message TextDocuments {
  repeated TextDocument documents = 1;
}

message TextDocument {
  reserved 1;
  reserved 5;
  string format = 10;
  string uri = 9;
  string text = 8;
  string language = 7;
  repeated SymbolInformation symbols = 4;
  repeated SymbolOccurrence occurrences = 2;
  repeated Diagnostic diagnostics = 3;
  repeated Synthetic synthetics = 6;
}

message SymbolInformation {
  string symbol = 1;
  Denotation denotation = 2;
}

message Denotation {
  int64 flags = 1;
  string name = 2;
  string signature = 3;
  repeated SymbolOccurrence occurrences = 4;
  repeated string members = 5;
  repeated string overrides = 6;
}

message SymbolOccurrence {
  Position position = 1;
  string symbol = 2;
  bool is_definition = 3;
}

message Position {
  int32 start = 2;
  int32 end = 3;
}

message Diagnostic {
  enum Severity {
    UNKNOWN = 0;
    INFO = 1;
    WARNING = 2;
    ERROR = 3;
  }
  Position position = 1;
  Severity severity = 2;
  string text = 3;
}

message Synthetic {
  Position pos = 1;
  string text = 2;
  repeated SymbolOccurrence occurrences = 3;
}

Move s.Position to be directly under s.TextDocument

syntax = "proto3";

package org.langmeta.internal.semanticdb.schema;

message TextDocuments {
  repeated TextDocument documents = 1;
}

message TextDocument {
  reserved 1;
  reserved 5;
  string format = 10;
  string uri = 9;
  string text = 8;
  string language = 7;
  repeated SymbolInformation symbols = 4;
  repeated SymbolOccurrence occurrences = 2;
  repeated Diagnostic diagnostics = 3;
  repeated Synthetic synthetics = 6;
}

message Position {
  int32 start = 2;
  int32 end = 3;
}

message SymbolInformation {
  string symbol = 1;
  Denotation denotation = 2;
}

message Denotation {
  int64 flags = 1;
  string name = 2;
  string signature = 3;
  repeated SymbolOccurrence occurrences = 4;
  repeated string members = 5;
  repeated string overrides = 6;
}

message SymbolOccurrence {
  Position position = 1;
  string symbol = 2;
  bool is_definition = 3;
}

message Diagnostic {
  enum Severity {
    UNKNOWN = 0;
    INFO = 1;
    WARNING = 2;
    ERROR = 3;
  }
  Position position = 1;
  Severity severity = 2;
  string text = 3;
}

message Synthetic {
  Position pos = 1;
  string text = 2;
  repeated SymbolOccurrence occurrences = 3;
}


syntax = "proto3";

package bazil.db;

option go_package = "wire";

import "bazil.org/bazil/cas/wire/manifest.proto";

message Dirent {
  uint64 inode = 1;
  oneof type {
    File file = 2;
    Dir dir = 3;
  }

  // TODO executable, xattr, acl
  // TODO mtime
  // TODO vector clocks
}

message File {
  bazil.cas.Manifest manifest = 1;
}

// Dir is a directory stored fully in the database, not persisted
// in objects.
message Dir {
}

Remove TODO note, logical clocks are now implemented

syntax = "proto3";

package bazil.db;

option go_package = "wire";

import "bazil.org/bazil/cas/wire/manifest.proto";

message Dirent {
  uint64 inode = 1;
  oneof type {
    File file = 2;
    Dir dir = 3;
  }

  // TODO executable, xattr, acl
  // TODO mtime
}

message File {
  bazil.cas.Manifest manifest = 1;
}

// Dir is a directory stored fully in the database, not persisted
// in objects.
message Dir {
}