message ColorProto
{
  required int32 color = 1;
  optional uint8 opacity = 2;  // opacity : 0 - completly invisible, 255 - completly visible
}

message DashDotProto
{
  repeated double dd = 1;
}

message LineRuleProto
{
  required double width = 1;
  required ColorProto color = 2;
  optional DashDotProto dashdot = 4;
}

message AreaRuleProto
{
  required ColorProto color = 1;
  optional LineRuleProto border = 3;
}

message SymbolRuleProto
{
  required string name = 1;
}

message CaptionRuleProto
{
  required int32 height = 1;
  optional ColorProto color = 2;
  optional ColorProto stroke_color = 3;
}

message CircleRuleProto
{
  required double rad = 1;
  required ColorProto color = 2;
  optional LineRuleProto border = 3;
}

// PathTextRule is same as CaptionRule

// WayMarkerRule not used yet

Add drawing rules container definition.

message ColorProto
{
  required int32 color = 1;
  optional uint8 opacity = 2;  // opacity : 0 - completly invisible, 255 - completly visible
}

message DashDotProto
{
  repeated double dd = 1;
}

message LineRuleProto
{
  required double width = 1;
  required ColorProto color = 2;
  optional DashDotProto dashdot = 4;
}

message AreaRuleProto
{
  required ColorProto color = 1;
  optional LineRuleProto border = 3;
}

message SymbolRuleProto
{
  required string name = 1;
}

message CaptionRuleProto
{
  required int32 height = 1;
  optional ColorProto color = 2;
  optional ColorProto stroke_color = 3;
}

message CircleRuleProto
{
  required double rad = 1;
  required ColorProto color = 2;
  optional LineRuleProto border = 3;
}

// PathTextRule is same as CaptionRule

// WayMarkerRule not used yet

// Describe containers.

message DrawElementProto
{
  required int8 scale = 1;
  optional repeated LineRuleProto lines = 2;
  optional AreaRuleProto area = 3;
  optional SymbolRuleProto = 4;
  optional CaptionRuleProto = 5;
  optional CircleRuleProto = 6;
}

message ClassifElementProto
{
  required string name = 1;
  repeated DrawElementProto lines = 2;
}

message ContainerProto
{
  repeated ClassifElementProto cont = 1;
}


// Copyright 2018 The Hypebot Authors. 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 = "proto3";

package hypebot;

message Channel {
  // The unique name of the target. For IRC, the channel or username. For
  // Hangouts Chat, the Space name. This is intended to be the replacement for
  // everything that currently uses target as a string.
  string id = 1;

  enum Visibility {
    PUBLIC = 0;
    PRIVATE = 1;
  }

  // Indicates who can see messages sent to the channel. Certain behavior (spam)
  // is only acceptable in private channels.
  Visibility visibility = 2;

  // Human readable name for the room. Make it easier to talk about Hangout
  // rooms instead of using gibberish.
  string name = 3;
}

Clarify some semantics of Channel.id.

// Copyright 2018 The Hypebot Authors. 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 = "proto3";

package hypebot;

message Channel {
  // The unique name of the target. For IRC, the channel or username. For
  // Hangouts Chat, the Space name. This is intended to be the replacement for
  // everything that currently uses target as a string. Note that some chat
  // systems may have case-sensitive identifiers, so this field should not have
  // case changing operations applied to it.
  string id = 1;

  enum Visibility {
    PUBLIC = 0;
    PRIVATE = 1;
  }

  // Indicates who can see messages sent to the channel. Certain behavior (spam)
  // is only acceptable in private channels.
  Visibility visibility = 2;

  // Human readable name for the room. Make it easier to talk about Hangout
  // rooms instead of using gibberish.
  string name = 3;
}


option optimize_for = LITE_RUNTIME;

import "common.proto";
package orwell.messages;

// Tell a player wants to join
// answered by: Welcome, Goodbye
message Hello {
	required string name = 1;
	optional bool ready = 2 [default = true];
}

// Notify the state of the inputs to control the robot
message Input {
	optional group Move = 1 {
		optional double left = 1;
		optional double right = 2;
	}
	optional group Fire = 2 {
		optional bool weapon1 = 1;
		optional bool weapon2 = 2;
	}
}

// Ask for a pong message to mesure timings
message Ping {
	repeated Timing timing = 1;
}

Replace groups with separate messages (for shooter).

option optimize_for = LITE_RUNTIME;

import "common.proto";
package orwell.messages;

// Tell a player wants to join
// answered by: Welcome, Goodbye
message Hello {
	required string name = 1;
	optional bool ready = 2 [default = true];
}

message Move {
	optional double left = 1;
	optional double right = 2;
}

message Fire {
	optional bool weapon1 = 1;
	optional bool weapon2 = 2;
}

// Notify the state of the inputs to control the robot
message Input {
	optional Move move = 1;
	optional Fire fire = 2;
}

// Ask for a pong message to mesure timings
message Ping {
	repeated Timing timing = 1;
}


/*
 * Copyright 2013 Madhusudan C.S.
 *
 * 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 from
 *
 *     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.
 */

package message;

message ReplyLeader {
	required string leader = 1;
}

Update the leader reply proto.


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"];
}

Add a new enum field Reason 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";

message RevokedAccount {
  Account account = 1 [(gogoproto.embed) = true];
  repeated Grant revokeApprovals = 2;
  enum Reason {
    TrusteeVoting = 0;
    MaliciousValidator = 1;
  }
  Reason reason = 3;
}


message Node {
    required string id = 1;
    required bytes ip_address = 2;
    required uint32 port = 3;
}

message FindNodeQuery {
    required Node origin = 1;  // Querying node
    required string target = 2;
}

message FindNodeResponse {
    required Node origin = 1; // Responding node
    repeated Node nodes = 2;
}

message Envelope {
    enum Type {
        FIND_NODE_QUERY = 1;
        FIND_NODE_RESPONSE = 2;
    }
    required Type message_type = 1;
    optional FindNodeQuery find_node_query = 2;
    optional FindNodeResponse find_node_response = 3;
}

Add some comments to protnbuf definitions

// Types

message Node {
    required string id = 1;
    required bytes ip_address = 2;
    required uint32 port = 3;
}

// Messages

message FindNodeQuery {
    required Node origin = 1;  // Querying node
    required string target = 2;
}

message FindNodeResponse {
    required Node origin = 1; // Responding node
    repeated Node nodes = 2;
}

// Wrapper

message Envelope {
    enum Type {
        FIND_NODE_QUERY = 1;
        FIND_NODE_RESPONSE = 2;
    }
    required Type message_type = 1;
    optional FindNodeQuery find_node_query = 2;
    optional FindNodeResponse find_node_response = 3;
}


// 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 {
  // FIXME: Determine the right field number to use
  // TODO: Use a message instead of just a string?
  string cloud_event_type = 20000;
}

Fix the extension number for 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 = 311716486;
}


package leap.test;

message Pet {
  required string name = 1;

  enum Species {
    DOG = 0;
    CAT = 1;
  }
  required Species species = 2;
}

message PetFieldEntry {
  required string key = 1;
  required Pet value = 2;
}

message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2[default = HOME];
  }

  repeated PhoneNumber phone = 4;
  repeated PetFieldEntry pet = 5;
}

message AddressBook {
  repeated Person person = 1;
}

Fix warning in build process

syntax = "proto2";
package leap.test;

message Pet {
  required string name = 1;

  enum Species {
    DOG = 0;
    CAT = 1;
  }
  required Species species = 2;
}

message PetFieldEntry {
  required string key = 1;
  required Pet value = 2;
}

message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2[default = HOME];
  }

  repeated PhoneNumber phone = 4;
  repeated PetFieldEntry pet = 5;
}

message AddressBook {
  repeated Person person = 1;
}


syntax = "proto3";

package syft.grid.messages;

import "proto/core/common/common_object.proto";
import "proto/core/io/address.proto";

message CreateInitialSetupMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
}

message CreateInitialSetupResponse {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  bool success = 3;
  syft.core.io.Address reply_to = 4;
}

message GetSetupMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 3;
}

message GetSetupResponse {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  bool success = 3;
  syft.core.io.Address reply_to = 4;
}

ADD setup messages protobuf descriptor

syntax = "proto3";

package syft.grid.messages;

import "proto/core/common/common_object.proto";
import "proto/core/io/address.proto";

message CreateInitialSetUpMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  string content = 3;
  syft.core.io.Address reply_to = 4;
}

message CreateInitialSetUpResponse {
  syft.core.common.UID msg_id = 1;
  bool success = 2;
  string content = 3;
  syft.core.io.Address address = 4;
}

message GetSetUpMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  string content = 3;
  syft.core.io.Address reply_to = 4;
}

message GetSetUpResponse {
  syft.core.common.UID msg_id = 1;
  bool success = 2;
  string content = 3;
  syft.core.io.Address address = 4;
}


syntax = "proto3";

message CreateVMRequest {
  string id = 1;
  string host = 2;
  string arch = 3;
  uint32 vcpus = 4;
  uint32 memory_mb = 5;
  string vnc_password = 6;
}

Add volume_id field to CreateVMRequest

syntax = "proto3";

message CreateVMRequest {
  string id = 1;
  string host = 2;
  string arch = 3;
  uint32 vcpus = 4;
  uint32 memory_mb = 5;
  string vnc_password = 6;
  string volume_id = 7;
}


/*
 * 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.test.natural.number;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.test.entity.number";
option java_multiple_files = true;

// A natural number.
//
// Zero is considered a natural number.
//
message NaturalNumber {
    option (entity).kind = ENTITY;

    // Natural number value.
    //
    // Must be greater than or equal to zero.
    int32 value = 1 [(min).value = "0"];
}

Change proto test package name to `server`

/*
 * 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.test.server.number;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.test.server.number";
option java_multiple_files = true;

// A natural number.
//
// Zero is considered a natural number.
//
message NaturalNumber {
    option (entity).kind = ENTITY;

    // Natural number value.
    //
    // Must be greater than or equal to zero.
    int32 value = 1 [(min).value = "0"];
}


syntax = "proto3";

package proto;

// The remote PiGlow service
service PiGlow {
  // SetLED
  rpc SetLED (LedRequest) returns (Ack) {}
}

message LedRequest {
  int32 num = 1;
  uint32 brightness = 2;
}

message Ack {
  bool ok = 1;
}

Implement those calls in protobuf

syntax = "proto3";

package proto;

// The remote PiGlow service
service PiGlow {
  // SetLED
  rpc SetLED (LedRequest) returns (Ack) {}

  // Set all LEDs to brightness
  rpc SetAll (BrightnessRequest) returns (Ack) {}
  // Set all White LEDs to brightness
  rpc SetWhite (BrightnessRequest) returns (Ack) {}
  // Set all Blue LEDs to brightness
  rpc SetBlue (BrightnessRequest) returns (Ack) {}
  // Set all Green LEDs to brightness
  rpc SetGreen (BrightnessRequest) returns (Ack) {}
  // Set all Yellow LEDs to brightness
  rpc SetYellow (BrightnessRequest) returns (Ack) {}
  // Set all Orange LEDs to brightness
  rpc SetOrange (BrightnessRequest) returns (Ack) {}
  // Set all Red LEDs to brightness
  rpc SetRed (BrightnessRequest) returns (Ack) {}
}

message LedRequest {
  int32 num = 1;
  uint32 brightness = 2;
}

message BrightnessRequest {
  uint32 brightness = 1;
}

message Ack {
  bool ok = 1;
}


message GoogleMapsDirection {
  optional string distance = 1;
  required string direction = 2;
  required string eta = 3;
  required TurnDirection tdirection = 4;

  enum TurnDirection {
    Right = 0;
    Left = 1;
    Straight = 2;
    TurnAround = 3;
  }
}

Update proto to deal with garbage BT adapter.

message GoogleMapsDirection {
  required TurnDirection tdirection = 4;
  required string distance = 1;

  enum TurnDirection {
    Right = 0;
    Left = 1;
    Straight = 2;
    TurnAround = 3;
  }
}


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

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

import "cosmos_proto/cosmos.proto";
import "pki/grant.proto";

message Certificate {

  string pemCert = 1;
  string serialNumber = 2;
  string issuer = 3;
  string authorityKeyId = 4;
  string rootSubject = 5;
  string rootSubjectKeyId = 6;
  bool isRoot = 7;
  string owner = 8 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  string subject = 9;
  string subjectKeyId = 10;
  repeated Grant approvals = 11;
  string subjectAsText = 12;
  repeated string rejectApprovals = 13;
}

Change rejectApprovals type from string to Grant

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

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

import "cosmos_proto/cosmos.proto";
import "pki/grant.proto";

message Certificate {

  string pemCert = 1;
  string serialNumber = 2;
  string issuer = 3;
  string authorityKeyId = 4;
  string rootSubject = 5;
  string rootSubjectKeyId = 6;
  bool isRoot = 7;
  string owner = 8 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  string subject = 9;
  string subjectKeyId = 10;
  repeated Grant approvals = 11;
  string subjectAsText = 12;
  repeated Grant rejectApprovals = 13;
}


package metadata_key;

message MetadataKey
{
    StoreKey storeKey = 1;
    string path = 2;
}

message StoreKey
{
    string packageType = 1;

    enum StoreType {
        group = 1;
        remote = 2;
        hosted = 3;
    }

    string name = 3;
}

Fix the syntax error in .proto file

package metadata_key;

message MetadataKey
{
    required StoreKey storeKey = 1;
    optional string path = 2;
}

message StoreKey
{
    required string packageType = 1;

    enum StoreType {
        group = 1;
        remote = 2;
        hosted = 3;
    }

    required StoreType type = 2;

    optional string name = 3;
}


/*
 * 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.test.string;

import "spine/options.proto";

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

message STaskId {
    string uuid = 1;
}

message STask {
    STaskId id = 1;
    STaskStatus status = 2;
}

enum STaskStatus {

    OPEN = 0;

    DONE = 1;
}

Fix formatting in a test proto


/*
 * This file is part of JEJDBC
 * https://github.com/perbone/jejdbc/
 *
 * Copyright 2013-2017 Paulo Perbone
 *
 * 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";

option java_multiple_files = true;

package io.perbone.jejdbc.ipc;

service MonitorService {}

Add more design ideas definition

/*
 * This file is part of JEJDBC
 * https://github.com/perbone/jejdbc/
 *
 * Copyright 2013-2017 Paulo Perbone
 *
 * 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";

option java_multiple_files = true;
option java_package = "io.perbone.jejdbc.ipc.internal";
option java_outer_classname = "JeJdbcProto";

enum NodeStatus {
    UNKNOWN  = 0;
    DETACHED = 1;
    REPLICA  = 2;
    MASTER   = 3;
}

message StatusRequest {
    bool full = 1;
}

message StatusResponse {
    NodeStatus status = 1;
}

service MonitorService {
    rpc getStatus(StatusRequest) returns (StatusResponse) {}
}


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;
}

Update drive to point proto, get time stamp as int64

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 int64 timeStamp = 5;
}

message Configuration {
    optional double maxSpeed = 1;
}


syntax = "proto3";

package containerd.v1;

import "google/protobuf/empty.proto";
import "gogoproto/gogo.proto";

service ShimService {
    rpc Create(CreateRequest) returns (google.protobuf.Empty);
    rpc Exec(ExecRequest) returns (google.protobuf.Empty);
    rpc State(StateRequest) returns (StateResponse);
    rpc Pty(PtyRequest) returns (google.protobuf.Empty);
}

message PtyRequest {
    string id = 1 [(gogoproto.customname) = "ID"];
    uint32 width = 2;
    uint32 height = 3;
}

Indent proto files with tabs only


/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
 */

import "mesos/mesos.proto";

package mesos;

option java_package = "org.apache.mesos";
option java_outer_classname = "Protos";

message AuthenticateMessage {
  required string pid = 1; // PID that needs to be authenticated.
}

message AuthenticationMechanismsMessage {
  repeated string mechanisms = 1; // List of available SASL mechanisms.
}

message AuthenticationStartMessage {
  required string mechanism = 1;
  optional bytes data = 2;
}

message AuthenticationStepMessage {
  required bytes data = 1;
}

message AuthenticationCompletedMessage {}

message AuthenticationFailedMessage {}

message AuthenticationErrorMessage {
  optional string error = 1;
}

Put Authentication protobufs back in mesos.internal package.

/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
 */

import "mesos/mesos.proto";

package mesos.internal;

option java_package = "org.apache.mesos";
option java_outer_classname = "Protos";

message AuthenticateMessage {
  required string pid = 1; // PID that needs to be authenticated.
}

message AuthenticationMechanismsMessage {
  repeated string mechanisms = 1; // List of available SASL mechanisms.
}

message AuthenticationStartMessage {
  required string mechanism = 1;
  optional bytes data = 2;
}

message AuthenticationStepMessage {
  required bytes data = 1;
}

message AuthenticationCompletedMessage {}

message AuthenticationFailedMessage {}

message AuthenticationErrorMessage {
  optional string error = 1;
}


syntax = "proto2";

package oneof_test;

message OneofProto {
  optional int32 outside = 1;
  oneof MyOneof {
    int32 intval = 2;
    string strval = 3;
    bool boolval = 4;
  }
  optional int32 after = 5;
}

message NestedOneof {
  optional int32 outside = 1;
  optional OneofProto nested = 2;
}

message OneofTest {
  message int_list {
    repeated int32 ints = 1;
  }

  oneof MyOneof {
    int_list list_of_ints = 1;
    int32 single_int = 2;
  }
}

Use camelcase for new proto

syntax = "proto2";

package oneof_test;

message OneofProto {
  optional int32 outside = 1;
  oneof MyOneof {
    int32 intval = 2;
    string strval = 3;
    bool boolval = 4;
  }
  optional int32 after = 5;
}

message NestedOneof {
  optional int32 outside = 1;
  optional OneofProto nested = 2;
}

message OneofTest {
  message IntList {
    repeated int32 ints = 1;
  }

  oneof MyOneof {
    IntList list_of_ints = 1;
    int32 single_int = 2;
  }
}


syntax = "proto3";

package blog;

service Blog {
  // Read operations
  rpc Feed(FeedRequest) returns (FeedResponse) {};
  rpc FilterPosts(FilterPostsRequest) returns (FilterPostsResponse) {};
  rpc Post(PostRequest) returns (Post) {};

  // Write operations
  rpc SignupUser(SignupUserRequest) returns (User) {};
  rpc CreateDraft(CreateDraftRequest) returns (Post) {};
  rpc DeletePost(DeletePostRequest) returns (Post) {};
  rpc Publish(PublishRequest) returns (Post) {};
}

message Post {
  string id = 1;
  string createdAt = 2;
  string updatedAt = 3;
  string title = 4;
  string content = 5;
  bool published = 6;
  User author = 7;
}

message User {
  string id = 1;
  string email = 2;
  string name = 3;
  repeated Post posts = 4;
}

message FeedRequest {}

message FeedResponse {
  repeated Post feed = 1;
}

message FilterPostsRequest {
  string searchString = 1;
}

message FilterPostsResponse {
  repeated Post filteredPosts = 1;
}

message PostRequest {
  string id = 1;
}

message SignupUserRequest {
  string name = 1;
  string email = 2;
}

message CreateDraftRequest {
  string title = 1;
  string content = 2;
  string authorEmail = 3;
}

message PublishRequest {
  string id = 1;
}

message DeletePostRequest {
  string id = 1;
}

Add password field to SignupUserRequest

syntax = "proto3";

package blog;

service Blog {
  // Read operations
  rpc Feed(FeedRequest) returns (FeedResponse) {};
  rpc FilterPosts(FilterPostsRequest) returns (FilterPostsResponse) {};
  rpc Post(PostRequest) returns (Post) {};

  // Write operations
  rpc SignupUser(SignupUserRequest) returns (User) {};
  rpc CreateDraft(CreateDraftRequest) returns (Post) {};
  rpc DeletePost(DeletePostRequest) returns (Post) {};
  rpc Publish(PublishRequest) returns (Post) {};
}

message Post {
  string id = 1;
  string createdAt = 2;
  string updatedAt = 3;
  string title = 4;
  string content = 5;
  bool published = 6;
  User author = 7;
}

message User {
  string id = 1;
  string email = 2;
  string name = 3;
  repeated Post posts = 4;
}

message FeedRequest {}

message FeedResponse {
  repeated Post feed = 1;
}

message FilterPostsRequest {
  string searchString = 1;
}

message FilterPostsResponse {
  repeated Post filteredPosts = 1;
}

message PostRequest {
  string id = 1;
}

message SignupUserRequest {
  string name = 1;
  string email = 2;
  string password = 3;
}

message CreateDraftRequest {
  string title = 1;
  string content = 2;
  string authorEmail = 3;
}

message PublishRequest {
  string id = 1;
}

message DeletePostRequest {
  string id = 1;
}


package entry;

option java_package = "es.tid.smartsteps.footfalls.microgrids.data.generated";
option java_outer_classname = "EntryProtocol";

message TrafficCounts {
    required string id = 1;
    required string date = 2;
    required double latitude = 3;
    required double longitude = 4;
    repeated Counts vectors = 5;
}

message Counts {
    required string name = 1;
    repeated double values = 2;
}

message SOACentroid {
    required string soaId = 1;
    required double squaredKilometers = 2;
    required double latitude = 3;
    required double longitude = 4;
}

message Catchments {
    required string id = 1;
    required string date = 2;
    optional double latitude = 3;
    optional double longitude = 4;
    repeated Catchment catchments = 5;
}

message Catchment {
    required uint32 hour = 1;
    repeated TopCell topCells = 2;
}

message TopCell {
    required string id = 1;
    required double count = 2;
    required double latitude = 3;
    required double longitude = 4;
}

Make all fields in Catchments required

package entry;

option java_package = "es.tid.smartsteps.footfalls.microgrids.data.generated";
option java_outer_classname = "EntryProtocol";

message TrafficCounts {
    required string id = 1;
    required string date = 2;
    required double latitude = 3;
    required double longitude = 4;
    repeated Counts vectors = 5;
}

message Counts {
    required string name = 1;
    repeated double values = 2;
}

message SOACentroid {
    required string soaId = 1;
    required double squaredKilometers = 2;
    required double latitude = 3;
    required double longitude = 4;
}

message Catchments {
    required string id = 1;
    required string date = 2;
    required double latitude = 3;
    required double longitude = 4;
    repeated Catchment catchments = 5;
}

message Catchment {
    required uint32 hour = 1;
    repeated TopCell topCells = 2;
}

message TopCell {
    required string id = 1;
    required double count = 2;
    required double latitude = 3;
    required double longitude = 4;
}


// See README.txt for information and build instructions.

package pbexample;

option java_package = "com.ociweb.protocoltest";
option java_outer_classname = "PBMessageProvider";

message ProductQuery {
  required string product_name = 1;
  required int64 online_item_id = 2;
  required string store_item_id = 3;
  optional string product_desc = 4;

  required int64 query_time = 5;

  message ProductAvailability {
    required int32 store_id = 1;
    required string store_location = 2;
    required int32 num_available = 3;
  }

  repeated ProductAvailability in_stock_locations = 6;
}

message ProductQueryProvider {
  repeated ProductQuery queries = 1;
}

Add optimization option for protobuf

// See README.txt for information and build instructions.

package pbexample;

option java_package = "com.ociweb.protocoltest";
option java_outer_classname = "PBMessageProvider";

//optimize_for (file option):
//Can be set to SPEED, CODE_SIZE, or LITE_RUNTIME
option optimize_for = SPEED;

message ProductQuery {
  required string product_name = 1;
  required int64 online_item_id = 2;
  required string store_item_id = 3;
  optional string product_desc = 4;

  required int64 query_time = 5;

  message ProductAvailability {
    required int32 store_id = 1;
    required string store_location = 2;
    required int32 num_available = 3;
  }

  repeated ProductAvailability in_stock_locations = 6;
}

message ProductQueryProvider {
  repeated ProductQuery queries = 1;
}


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;
}

Add signature_name to ModelSpec. Change: 138004925

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;
}


// See README.txt for information and build instructions.

syntax = "proto3";

package tutorial;

option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";
option csharp_namespace = "Google.Protobuf.Examples.AddressBook";

message Person {
  string name = 1;
  int32 id = 2;        // Unique ID number for this person.
  string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    string number = 1;
    PhoneType type = 2;
  }

  repeated PhoneNumber phones = 4;
}

// Our address book file is just one of these.
message AddressBook {
  repeated Person people = 1;
}

Add region tags for protocol buffers tutorials.

// See README.txt for information and build instructions.
//
// Note: START and END tags are used in comments to define sections used in
// tutorials.  They are not part of the syntax for Protocol Buffers.
//
// To get an in-depth walkthrough of this file and the related examples, see:
// https://developers.google.com/protocol-buffers/docs/tutorials

// [START declaration]
syntax = "proto3";
package tutorial;
// [END declaration]

// [START java_declaration]
option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";
// [END java_declaration]

// [START csharp_declaration]
option csharp_namespace = "Google.Protobuf.Examples.AddressBook";
// [END csharp_declaration]

// [START messages]
message Person {
  string name = 1;
  int32 id = 2;  // Unique ID number for this person.
  string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    string number = 1;
    PhoneType type = 2;
  }

  repeated PhoneNumber phones = 4;
}

// Our address book file is just one of these.
message AddressBook {
  repeated Person people = 1;
}
// [END messages]


syntax = "proto3";

enum Color {
    UNKNOWN = 0;
    RED = 1;
    GREEN = 2;
    BLUE = 3;
}

message Properties {
    oneof properties {
        int32 p1 = 1;
        string p2 = 2;
    }
}

message Triangle {
  string description = 1;
  Color color = 2;
  Properties properties = 3;
}

Add example of host protobuf vs prost escapes identifiers

syntax = "proto3";

enum Color {
    UNKNOWN = 0;
    RED = 1;
    GREEN = 2;
    BLUE = 3;
}

message Properties {
    oneof properties {
        int32 p1 = 1;
        string p2 = 2;
    }
}

message Triangle {
  string description = 1;
  Color color = 2;
  Properties properties = 3;
  int32 struct = 4;
}


// See README.txt for information and build instructions.

package pbexample;

option java_package = "com.ociweb.protocoltest";
option java_outer_classname = "PBMessageProvider";

//optimize_for (file option):
//Can be set to SPEED, CODE_SIZE, or LITE_RUNTIME
option optimize_for = SPEED;

message PBQuery {
  required int32 user = 1;
  required int32 year = 2;
  required int32 month = 3;
  required int32 date = 4;
  required int32 sampleCount = 5;

  message PBSample {
    required int32 id = 1;
    required int64 time = 2;
    required int32 measurement = 3;
    required int32 action = 4;
  }

  repeated PBSample samples = 6;
}

//message PBQueryProvider {
//  repeated PBQuery queries = 1;
//}

Make message fields optional (suggested over required)

// See README.txt for information and build instructions.

package pbexample;

option java_package = "com.ociweb.protocoltest";
option java_outer_classname = "PBMessageProvider";

//optimize_for (file option):
//Can be set to SPEED, CODE_SIZE, or LITE_RUNTIME
option optimize_for = SPEED;

message PBQuery {
  optional int32 user = 1;
  optional int32 year = 2;
  optional int32 month = 3;
  optional int32 date = 4;
  optional int32 sampleCount = 5;

  message PBSample {
    optional int32 id = 1;
    optional int64 time = 2;
    optional int32 measurement = 3;
    optional int32 action = 4;
  }

  repeated PBSample samples = 6;
}

//message PBQueryProvider {
//  repeated PBQuery queries = 1;
//}


package mimosa.rpc.samples.pb;

enum Status
{
  kOk            = 0;
  kNotFound      = 1;
  kInternalError = 2;
}

message Key
{
  required bytes key = 1;
}

message KeyValue
{
  required bytes key   = 1;
  required bytes value = 2;
}

message Result
{
  required Status status = 1;
  optional bytes  value  = 2;
}

service Database
{
  rpc get(Key) returns (Result);
  rpc set(KeyValue) returns (Result);
  rpc del(Key) returns (Result);
}

Switch example to protoc v3

syntax = "proto3";

package mimosa.rpc.samples.pb;

enum Status
{
  kOk            = 0;
  kNotFound      = 1;
  kInternalError = 2;
}

message Key
{
  bytes key = 1;
}

message KeyValue
{
  bytes key   = 1;
  bytes value = 2;
}

message Result
{
  Status status = 1;
  bytes value  = 2;
}

service Database
{
  rpc get(Key) returns (Result);
  rpc set(KeyValue) returns (Result);
  rpc del(Key) returns (Result);
}


syntax = "proto3";

// AggregateBool is a container that counts individual instances of true/false
// It should be used for aggregating streams of bool values to appropriately
// account for their distribution.
message AggregateBool {
  uint64 true = 1;
  uint64 false = 2;
}

// AggregateBoolOption is an example container that can switch from single
// bool via a bool type and multi bools via an AggregateBool type.
// It may be desirable to copy this code and use it directly
message AggregateBoolOption {
  oneof bool_or_aggregate_bool {
    bool single = 1;
    AggregateBool multi = 2;
  }
}

Add AggregateDouble and AggregateLong message types

syntax = "proto3";

// AggregateBool is a container that counts individual instances of true/false
// It should be used for aggregating streams of bool values to appropriately
// account for their distribution.
message AggregateBool {
  uint64 true = 1;
  uint64 false = 2;
}

// AggregateBoolTag is a tagged union that can switch from single
// one via a bool type and many via an AggregateBool type.
// It may be desirable to copy this code and use it directly
message AggregateBoolTag {
  oneof one_or_many {
    bool one = 1;
    AggregateBool many = 2;
  }
}

// BigInt is a string representation of a big integer
// It's not the most efficient transmission, but it's easier than
// repeated enum, bytes or repeated uint64 for consuming JSON.
message BigInt {
  string value = 1;
}

// AggregateLong is a container that holds information about a set of longs
// It should be used for aggregating streams of long values to appropriately
// account for their distribution
message AggregateLong {
  BigInt sum = 1;
  uint64 source_count = 2;
  uint64 min = 3;
  uint64 max = 4;
  double mean = 5;
  uint64 median = 6;
  double standard_deviation = 7;
}

// AggregateLongTag is a tagged union that can switch from single
// one via a long type and multi bools via an AggregateLong type.
// It may be desirable to copy this code and use it directly
message AggregateLongTag {
  oneof one_or_many {
    uint64 one = 1;
    AggregateCount many = 2;
  }
}

// AggregateDouble is a container that holds information about a set of doubles
// It should be used for aggregating streams of double values to appropriately
// account for their distribution.
message AggregateDouble {
  double mean = 1;
  uint64 source_count = 2;
  double min = 3;
  double max = 4;
  double median = 5;
  double standard_deviation = 6;
}

// AggregateDoubleTag is a tagged union that can switch from single
// one via a double type and many via an AggregateDouble type.
// It may be desirable to copy this code and use it directly
message AggregateDoubleTag {
  oneof one_or_many {
    double one = 1;
    AggregateDouble many = 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.envelope;

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

import "spine/options.proto";
import "spine/test/envelope/project.proto";

message ProjectCreated {
    ProjectId project_id = 1;
}

Add a doc for a test proto definition.

//
// 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.envelope;

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

import "spine/options.proto";
import "spine/test/envelope/project.proto";

// A test event for the suites targeting the {@link io.spine.envelope.MessageEnvelope} tests.
message ProjectCreated {
    ProjectId project_id = 1;
}


package events;

message ValueMetric {
    required string name = 1;
    required double value = 2;
    required string unit = 3;
}

message CounterEvent {
    required string name = 1;
}

Add required delta to CounterEvent

package events;

message ValueMetric {
    required string name = 1;
    required double value = 2;
    required string unit = 3;
}

message CounterEvent {
    required string name = 1;
    required uint64 delta = 2;
}


// -*- 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;
}

Add service addresses to Network skeleton

// -*- 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;
    repeated aqdsystems.ServiceAddress service_addresses = 19;
    // Note: network_environment.name == env_name
}

message NetworkList {
    repeated Network networks = 1;
}

message NetworkCompartment {
    required string name = 1;
}

message NetworkCompartmentList {
    repeated NetworkCompartment compartments = 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 "cosmos/auth/v1beta1/auth.proto";
import "dclauth/grant.proto";

message Account {
  // TODO issue 99: do we need that ???
  option (gogoproto.goproto_getters)  = false;
  option (gogoproto.goproto_stringer) = false;

  cosmos.auth.v1beta1.BaseAccount base_account = 1  [(gogoproto.embed) = true];
  // NOTE. we do not user AccountRoles casting here to preserve repeated form
  //       so protobuf takes care about repeated items in generated code,
  //       (but that might be not the final solution)
  repeated string roles = 2 [(gogoproto.casttype) = "AccountRole"];
  repeated Grant approvals = 3;
  int32 vendorID = 4;

}

Add a new filed rejectApprovals

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

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

import "gogoproto/gogo.proto";
import "cosmos/auth/v1beta1/auth.proto";
import "dclauth/grant.proto";

message Account {
  // TODO issue 99: do we need that ???
  option (gogoproto.goproto_getters)  = false;
  option (gogoproto.goproto_stringer) = false;

  cosmos.auth.v1beta1.BaseAccount base_account = 1  [(gogoproto.embed) = true];
  // NOTE. we do not user AccountRoles casting here to preserve repeated form
  //       so protobuf takes care about repeated items in generated code,
  //       (but that might be not the final solution)
  repeated string roles = 2 [(gogoproto.casttype) = "AccountRole"];
  repeated Grant approvals = 3;
  int32 vendorID = 4;
  repeated Grant rejectApprovals = 5;
}


/*
 * 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 = "proto3";

package xla;

import "tensorflow/compiler/xla/xla_data.proto";

message RunHloModuleIterationLiterals {
  // Arguments used by the iteration.
  repeated LiteralProto arguments = 2;

  // Ressult of the iteration on the target platform.
  optional LiteralProto result = 3;

  // Result of the iteration on the reference platform.
  optional LiteralProto reference_result = 4;
}

message RunHloModuleLiterals {
  // Iterations of run hlo module.
  repeated RunHloModuleIterationLiterals iterations = 1;
}

Remove disallowed and redundant optional in proto buf

syntax = "proto3";

package xla;

import "tensorflow/compiler/xla/xla_data.proto";

message RunHloModuleIterationLiterals {
  // Arguments used by the iteration.
  repeated LiteralProto arguments = 2;

  // Ressult of the iteration on the target platform.
  LiteralProto result = 3;

  // Result of the iteration on the reference platform.
  LiteralProto reference_result = 4;
}

message RunHloModuleLiterals {
  // Iterations of run hlo module.
  repeated RunHloModuleIterationLiterals iterations = 1;
}


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

import "aqdsystems.proto";

message ParamDefinition {
    required string path = 1;
    required string value_type = 2;
    optional string default = 3;
    optional string description = 4;
    optional string template = 5;
    optional bool is_required = 6 [default = false];
    optional bool rebuild_required = 7 [deprecated = true];
    optional aqdsystems.Activation activation = 8;
}

message ParamDefinitionList {
    repeated ParamDefinition param_definitions = 1;
}

Include archetype and feature fields in ParameterDefinition.

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

import "aqdsystems.proto";

message ParamDefinition {
    required string path = 1;
    required string value_type = 2;
    optional string default = 3;
    optional string description = 4;
    optional string template = 5;
    optional bool is_required = 6 [default = false];
    optional bool rebuild_required = 7 [deprecated = true];
    optional aqdsystems.Activation activation = 8;
    optional string archetype = 9;
    optional string feature = 10;
    optional string type = 11;
}

message ParamDefinitionList {
    repeated ParamDefinition param_definitions = 1;
}


//
// Copyright 2015, 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 = "DomainProto";
option java_package = "org.spine3.base";

// An Internet domain name.
message DomainName {
  // The value of the domain name.
  //
  // It is the responsibility of the application to provide a correct value for this field.
  string value = 1;
}

Add a new line at the end of the file.


package events;

import "uuid.proto";

/// A ValueMetric indicates the value of a metric at an instant in time.
message ValueMetric {
    required string name = 1;  /// Name of the metric. Must be consistent for downstream consumers to associate events semantically.
    required double value = 2; /// Value at the time of event emission.
    required string unit = 3;  /// Unit of the metric. Please see http://metrics20.org/spec/#units for ideas; SI units/prefixes are recommended where applicable. Should be consistent for the life of the metric (consumers are expected to report, but not interpret, prefixes).
}

/// A CounterEvent represents the increment of a counter. It contains only the change in the value; it is the responsibility of downstream consumers to maintain the value of the counter.
message CounterEvent {
    required string name = 1;  /// Name of the counter. Must be consistent for downstream consumers to associate events semantically.
    required uint64 delta = 2; /// Amount by which to increment the counter.
}

/// A ContainerMetric records resource usage of an app in a container.
 message ContainerMetric {
    required string applicationId = 1; /// ID of the contained application.
    required int32 instanceIndex = 2;  /// Instance index of the contained application. (This, with applicationId, should uniquely identify a container.)

    required double cpuPercentage = 3; /// CPU used, on a scale of 0 to 100.
    required uint64 memoryBytes = 4;   /// Bytes of memory used.
    required uint64 diskBytes = 5;     /// Bytes of disk used.
 }

Add optional total to CounterEvent

package events;

import "uuid.proto";

/// A ValueMetric indicates the value of a metric at an instant in time.
message ValueMetric {
    required string name = 1;  /// Name of the metric. Must be consistent for downstream consumers to associate events semantically.
    required double value = 2; /// Value at the time of event emission.
    required string unit = 3;  /// Unit of the metric. Please see http://metrics20.org/spec/#units for ideas; SI units/prefixes are recommended where applicable. Should be consistent for the life of the metric (consumers are expected to report, but not interpret, prefixes).
}

/// A CounterEvent represents the increment of a counter. It contains only the change in the value; it is the responsibility of downstream consumers to maintain the value of the counter.
message CounterEvent {
    required string name = 1;  /// Name of the counter. Must be consistent for downstream consumers to associate events semantically.
    required uint64 delta = 2; /// Amount by which to increment the counter.
    optional uint64 total = 3; /// Total value of the counter. By default, this may be left unset and downstream components will track the total.
}

/// A ContainerMetric records resource usage of an app in a container.
 message ContainerMetric {
    required string applicationId = 1; /// ID of the contained application.
    required int32 instanceIndex = 2;  /// Instance index of the contained application. (This, with applicationId, should uniquely identify a container.)

    required double cpuPercentage = 3; /// CPU used, on a scale of 0 to 100.
    required uint64 memoryBytes = 4;   /// Bytes of memory used.
    required uint64 diskBytes = 5;     /// Bytes of disk used.
 }


/**
 * Copyright (C) 2009 - 2010 by OpenGamma Inc.
 *
 * Please see distribution for license.
 */

namespace com.opengamma.engine.security {

  /**
   * A simple mutable implementation of {@code Security}.
   */
  message DefaultSecurity {

    optional com.opengamma.id.UniqueIdentifier uniqueIdentifier;
    required string name [default=""];
    required string securityType;
    required com.opengamma.id.IdentifierBundle identifiers [default=()];

    // TODO: getName - used to call buildDefaultDisplayName if no name was given

    binding Java {
      implements "Security, com.opengamma.id.MutableUniqueIdentifiable";
      methods "equals,hashCode";
      body <<<JAVA
        /**
         * Dynamically determines a 'default' display name if one hasn't been explicitly set.
         * This implementation constructs one from the identity key or identifiers.
         *
         * @return a default display name
         */
        protected String buildDefaultDisplayName() {
          final com.opengamma.id.UniqueIdentifier identifier = getUniqueIdentifier(); // assign for thread-safety
          if (identifier != null) {
            return identifier.toString();
          }
          final com.opengamma.id.IdentifierBundle bundle = getIdentifiers(); // assign for thread-safety
          final com.opengamma.id.Identifier first = (bundle.size() == 0 ? null : bundle.getIdentifiers().iterator().next());
          return org.apache.commons.lang.ObjectUtils.toString(first);
        }

        /**
         * Add an identifier to the bundle.
         */
        public void addIdentifier (final com.opengamma.id.Identifier identifier) {
          setIdentifiers (getIdentifiers ().withIdentifier (identifier));
        }
JAVA;
    }
  }

}

Move security to OG Core

/**
 * Copyright (C) 2009 - 2010 by OpenGamma Inc.
 *
 * Please see distribution for license.
 */

namespace com.opengamma.engine.security {

  /**
   * A simple mutable implementation of {@code Security}.
   */
  message DefaultSecurity {

    optional com.opengamma.id.UniqueIdentifier uniqueIdentifier;
    required string name [default=""];
    required string securityType;
    required com.opengamma.id.IdentifierBundle identifiers [default=()];

    // TODO: getName - used to call buildDefaultDisplayName if no name was given

    binding Java {
      implements "com.opengamma.core.security.Security, com.opengamma.id.MutableUniqueIdentifiable";
      methods "equals,hashCode";
      body <<<JAVA
        /**
         * Dynamically determines a 'default' display name if one hasn't been explicitly set.
         * This implementation constructs one from the identity key or identifiers.
         *
         * @return a default display name
         */
        protected String buildDefaultDisplayName() {
          final com.opengamma.id.UniqueIdentifier identifier = getUniqueIdentifier(); // assign for thread-safety
          if (identifier != null) {
            return identifier.toString();
          }
          final com.opengamma.id.IdentifierBundle bundle = getIdentifiers(); // assign for thread-safety
          final com.opengamma.id.Identifier first = (bundle.size() == 0 ? null : bundle.getIdentifiers().iterator().next());
          return org.apache.commons.lang.ObjectUtils.toString(first);
        }

        /**
         * Add an identifier to the bundle.
         */
        public void addIdentifier (final com.opengamma.id.Identifier identifier) {
          setIdentifiers (getIdentifiers ().withIdentifier (identifier));
        }
JAVA;
    }
  }

}


syntax = "proto3";

package spine.site.home;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.site.home";
option java_outer_classname = "TaskProto";
option java_multiple_files = true;

import "google/protobuf/timestamp.proto";
import "spine/site/home/identifiers.proto";

// A task which can be assigned to a developer.
message Task {
    option (entity).kind = AGGREGATE;
    TaskId id = 1;
    string name = 2 [(required) = true];
    string description = 3;
    spine.core.UserId owner = 4 [(required) = true];
    spine.core.UserId assignee = 5;
}

// An item in a task list displayed in UI.
message TaskItem {
    option (entity).kind = PROJECTION;
    TaskId task = 1;
    string name = 2 [(required) = true];
    string description = 3;
    string owner = 4 [(required) = true];
    string assignee = 5;
    google.protobuf.Timestamp when_done = 6;
}

Make type comment correspond to the definition

syntax = "proto3";

package spine.site.home;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.site.home";
option java_outer_classname = "TaskProto";
option java_multiple_files = true;

import "google/protobuf/timestamp.proto";
import "spine/site/home/identifiers.proto";

// A task which can be assigned to a user.
message Task {
    option (entity).kind = AGGREGATE;
    TaskId id = 1;
    string name = 2 [(required) = true];
    string description = 3;
    spine.core.UserId owner = 4 [(required) = true];
    spine.core.UserId assignee = 5;
}

// An item in a task list displayed in UI.
message TaskItem {
    option (entity).kind = PROJECTION;
    TaskId task = 1;
    string name = 2 [(required) = true];
    string description = 3;
    string owner = 4 [(required) = true];
    string assignee = 5;
    google.protobuf.Timestamp when_done = 6;
}


syntax = "proto3";

package spine.server;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.server";
option java_outer_classname = "ServerEnvironmentProto";
option java_multiple_files = true;

// A type of the environment system is deployed to.
//
enum DeploymentType {

    // Running in a standalone mode.
    //
    // Standalone mode is activated when no specific runtime deployment is recognized.
    //
    STANDALONE = 0;

    // Running on an App Engine local development server.
    APPENGINE_EMULATOR = 2;

    // Running on an App Engine cloud infrastructure.
    APPENGINE_CLOUD = 3;
}

Update indexes to be orderly.

syntax = "proto3";

package spine.server;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.server";
option java_outer_classname = "ServerEnvironmentProto";
option java_multiple_files = true;

// A type of the environment system is deployed to.
//
enum DeploymentType {

    // Running in a standalone mode.
    //
    // Standalone mode is activated when no specific runtime deployment is recognized.
    //
    STANDALONE = 0;

    // Running on an App Engine local development server.
    APPENGINE_EMULATOR = 1;

    // Running on an App Engine cloud infrastructure.
    APPENGINE_CLOUD = 2;
}


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;
}

Extend number of extenstions to 99

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;
}


syntax = "proto3";

package fs;

message Empty {

}

message String {
  string txt = 1;
}

message Bytes {
  bytes data = 1;
}

message Content {
  Path path = 1;
  Bytes content = 2;
}

message Path {
  string path = 1;
  enum PathType {
    NONE = 1;
    FILE = 2;
    DIR = 3;
    LINK = 4;
  }
  PathType type = 2;
}

message PathArguments {
  repeated Path paths = 1;
}

message Command {
  Path cwd = 1;
  string command = 2;
  map env = 3;
}

message CommandOutput {
  string stdout = 1;
  string stderr = 2;
  int32 code = 3;
}

service FileSystem {
  rpc createDir(Path) returns (Empty) {}

  rpc createFile(Path) returns (Empty) {}

  rpc copy(repeated Path) returns (Empty) {}

  rpc move(repeated Path) returns (Empty) {}

  rpc delete(repeated Path) returns (Empty) {}

  rpc exists(Path) returns (Path) {}

  rpc readFile(Path) returns (stream Content) {}

  rpc writeFile(stream Content) returns (Empty) {}

  rpc readDir(Path) returns (stream Content) {}

  rpc writeDir(stream Content) returns (Empty) {}

  rpc exec(Command) returns (CommandOutput) {}}

  rpc execStream(Command) returns (stream CommandOutput) {}
}

Fix env map in Command message

syntax = "proto3";

package fs;

message Empty {

}

message String {
  string txt = 1;
}

message Bytes {
  bytes data = 1;
}

message Content {
  Path path = 1;
  Bytes content = 2;
}

message Path {
  string path = 1;
  enum PathType {
    NONE = 1;
    FILE = 2;
    DIR = 3;
    LINK = 4;
  }
  PathType type = 2;
}

message PathArguments {
  repeated Path paths = 1;
}

message Command {
  Path cwd = 1;
  string command = 2;
  map<string, string> env = 3;
}

message CommandOutput {
  string stdout = 1;
  string stderr = 2;
  int32 code = 3;
}

service FileSystem {
  rpc createDir(Path) returns (Empty) {}

  rpc createFile(Path) returns (Empty) {}

  rpc copy(repeated Path) returns (Empty) {}

  rpc move(repeated Path) returns (Empty) {}

  rpc delete(repeated Path) returns (Empty) {}

  rpc exists(Path) returns (Path) {}

  rpc readFile(Path) returns (stream Content) {}

  rpc writeFile(stream Content) returns (Empty) {}

  rpc readDir(Path) returns (stream Content) {}

  rpc writeDir(stream Content) returns (Empty) {}

  rpc exec(Command) returns (CommandOutput) {}}

  rpc execStream(Command) returns (stream CommandOutput) {}
}


package events;

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

message Envelope {
    enum EventType {
        Heartbeat = 1;
        HttpStart = 2;
        HttpStop = 3;
        HttpStartStop = 4;
        LogMessage = 5;
        ValueMetric = 6;
        CounterEvent = 7;
        Error = 8;
    }

    required string origin = 1;
    required EventType eventType = 2;

    optional int64 timestamp = 6;

    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 errorEvent = 11;
}

Rename errorEvent to error for simplicity

package events;

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

message Envelope {
    enum EventType {
        Heartbeat = 1;
        HttpStart = 2;
        HttpStop = 3;
        HttpStartStop = 4;
        LogMessage = 5;
        ValueMetric = 6;
        CounterEvent = 7;
        Error = 8;
    }

    required string origin = 1;
    required EventType eventType = 2;

    optional int64 timestamp = 6;

    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;
}


syntax = "proto3";

// PluginSpec defines the base payload which clients can specify for creating
// a service with the plugin runtime.
message PluginSpec {
	string name = 1;
	string remote = 2;
	repeated PluginPrivilege privileges = 3;
	bool disabled = 4;
}

// PluginPrivilege describes a permission the user has to accept
// upon installing a plugin.
message PluginPrivilege {
	string name = 1;
	string description = 2;
	repeated string value = 3;
}

Set a go_package on api/types/swarm/runtime to make it Bazel compatible

syntax = "proto3";

option go_package = "github.com/docker/docker/api/types/swarm/runtime;runtime";

// PluginSpec defines the base payload which clients can specify for creating
// a service with the plugin runtime.
message PluginSpec {
	string name = 1;
	string remote = 2;
	repeated PluginPrivilege privileges = 3;
	bool disabled = 4;
}

// PluginPrivilege describes a permission the user has to accept
// upon installing a plugin.
message PluginPrivilege {
	string name = 1;
	string description = 2;
	repeated string value = 3;
}


syntax = "proto3";

option java_multiple_files = true;
option java_package = "org.skywalking.apm.network.proto";

import "Downstream.proto";

//discovery service for application instance, this service is called when application starts
//or http client connection switch to another collector server instance
service InstanceDiscoveryService {
    rpc register (ApplicationInstance) returns (ApplicationInstanceMapping) {
    }

    rpc heartbeat (ApplicationInstanceHeartbeat) returns (Downstream) {
    }

    rpc registerRecover (ApplicationInstanceMapping) returns (Downstream) {
    }
}

message ApplicationInstance {
    int32 applicationId = 1;
    int64 registerTime = 2;
}

message ApplicationInstanceMapping {
    int32 applicationId = 1;
    int32 applicationInstanceId = 2;
    int64 registerTime = 3;
}

message ApplicationInstanceHeartbeat {
    int32 applicationInstanceId = 1;
    int64 heartbeatTime = 2;
}

//discovery service for ServiceName by Network address or application code
service ServiceNameDiscoveryService {
    rpc discovery (ServiceNameCollection) returns (ServiceNameMappingCollection) {
    }
}

message ServiceNameCollection {
    repeated ServiceNameElement elements = 1;
}

message ServiceNameMappingCollection {
    repeated ServiceNameMappingElement elements = 1;
}

message ServiceNameMappingElement {
    int32 serviceId = 1;
    ServiceNameElement element = 2;
}

message ServiceNameElement {
    string serviceName = 1;
    int32 applicationId = 2;
}

Add ApplicationInstanceRecover message for the request of instance recover service

syntax = "proto3";

option java_multiple_files = true;
option java_package = "org.skywalking.apm.network.proto";

import "Downstream.proto";

//discovery service for application instance, this service is called when application starts
//or http client connection switch to another collector server instance
service InstanceDiscoveryService {
    rpc register (ApplicationInstance) returns (ApplicationInstanceMapping) {
    }

    rpc heartbeat (ApplicationInstanceHeartbeat) returns (Downstream) {
    }

    rpc registerRecover (ApplicationInstanceRecover) returns (Downstream) {
    }
}

message ApplicationInstance {
    int32 applicationId = 1;
    int64 registerTime = 2;
}

message ApplicationInstanceMapping {
    int32 applicationId = 1;
    int32 applicationInstanceId = 2;
}

message ApplicationInstanceRecover {
    int32 applicationId = 1;
    int32 applicationInstanceId = 2;
    int64 registerTime = 3;
}

message ApplicationInstanceHeartbeat {
    int32 applicationInstanceId = 1;
    int64 heartbeatTime = 2;
}

//discovery service for ServiceName by Network address or application code
service ServiceNameDiscoveryService {
    rpc discovery (ServiceNameCollection) returns (ServiceNameMappingCollection) {
    }
}

message ServiceNameCollection {
    repeated ServiceNameElement elements = 1;
}

message ServiceNameMappingCollection {
    repeated ServiceNameMappingElement elements = 1;
}

message ServiceNameMappingElement {
    int32 serviceId = 1;
    ServiceNameElement element = 2;
}

message ServiceNameElement {
    string serviceName = 1;
    int32 applicationId = 2;
}


syntax = "proto3";

import public "shared.proto";

package fontbakery.dashboard;

message FamilyJob {
    string docid = 1;
    repeated fontbakery.dashboard.File files = 2;
    enum JobType {
       UNKNOWN = 0;
       DRAGANDDROP_ORIGIN = 1;
       DRAGANDDROP_DISTRIBUTED = 2;
    }
    JobType type = 3;
    message DistributedInfo {
        int32 id = 1;
        repeated string order = 2;
    }
    DistributedInfo distributedInfo = 4;
}

// Cache:
// TODO: if implemented widely, fontbakery.dashboard.Files could be replaced
// by google.Any, making this a universial protobuf message cache
// needs testing. (CacheItem expects fontbakery.dashboard.Files as well)

// The greeting service definition.
service Cache {
  // Sends a greeting
  rpc Put (stream CacheItem) returns (stream CacheKey) {};
  // Sends another greeting
  rpc Get (CacheKey) returns (fontbakery.dashboard.Files) {};
  rpc Purge (CacheKey) returns (CacheStatus) {};
}

// The request message containing the user's name.
message CacheItem {
  fontbakery.dashboard.Files payload = 1;
  string clientid = 2;
}

message CacheKey {
    string key = 1;
    string clientid = 2; // optional, set if CacheItem.clientid was set
    bool force = 3; // used for purge
}

message CacheStatus {
    string key = 1;
    int32 instances = 2;
}

Use Any as payload type

syntax = "proto3";

import "google/protobuf/any.proto";
import public "shared.proto";

package fontbakery.dashboard;

message FamilyJob {
    string docid = 1;
    repeated fontbakery.dashboard.File files = 2;
    enum JobType {
       UNKNOWN = 0;
       DRAGANDDROP_ORIGIN = 1;
       DRAGANDDROP_DISTRIBUTED = 2;
    }
    JobType type = 3;
    message DistributedInfo {
        int32 id = 1;
        repeated string order = 2;
    }
    DistributedInfo distributedInfo = 4;
}

// Cache:
// TODO: if implemented widely, fontbakery.dashboard.Files could be replaced
// by google.Any, making this a universial protobuf message cache
// needs testing. (CacheItem expects fontbakery.dashboard.Files as well)

// The greeting service definition.
service Cache {
  // Sends a greeting
  rpc Put (stream CacheItem) returns (stream CacheKey) {};
  // Sends another greeting
  rpc Get (CacheKey) returns (google.protobuf.Any) {};
  rpc Purge (CacheKey) returns (CacheStatus) {};
}

// The request message containing the user's name.
message CacheItem {
  google.protobuf.Any payload = 1;
  string clientid = 2;
}

message CacheKey {
    string key = 1;
    string clientid = 2; // optional, set if CacheItem.clientid was set
    bool force = 3; // used for purge
}

message CacheStatus {
    string key = 1;
    int32 instances = 2;
}


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

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

message Service {
    optional string name = 1;
    optional string template = 2 [deprecated=true];
    repeated ServiceInstance serviceinstances = 3;
}

message ServiceList {
    repeated Service services = 1;
}

message ServiceInstance {
    optional string name = 1;
    optional string template = 2 [deprecated=true];
    repeated aqdsystems.Host servers = 3;
    repeated aqdsystems.Host clients = 4 [deprecated=true];
    repeated ServiceInstanceProvider provider = 5;
}

message ServiceInstanceProvider {
    optional string target_ip = 1;
    optional string target_fqdn = 2;
    optional aqdsystems.Host host = 3;
    optional aqdsystems.Cluster cluster = 4;
    optional aqdsystems.ServiceAddress service_address = 5;
}

message ServiceMap {
    optional aqdlocations.Location location = 1;
    optional Service service = 2;
    optional aqdsystems.Personality personality = 3;
    optional aqdnetworks.Network network = 4;
}

message ServiceMapList {
    repeated ServiceMap servicemaps = 1;
}

Allow mapping services to host environments

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

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

message Service {
    optional string name = 1;
    optional string template = 2 [deprecated=true];
    repeated ServiceInstance serviceinstances = 3;
}

message ServiceList {
    repeated Service services = 1;
}

message ServiceInstance {
    optional string name = 1;
    optional string template = 2 [deprecated=true];
    repeated aqdsystems.Host servers = 3;
    repeated aqdsystems.Host clients = 4 [deprecated=true];
    repeated ServiceInstanceProvider provider = 5;
}

message ServiceInstanceProvider {
    optional string target_ip = 1;
    optional string target_fqdn = 2;
    optional aqdsystems.Host host = 3;
    optional aqdsystems.Cluster cluster = 4;
    optional aqdsystems.ServiceAddress service_address = 5;
}

message ServiceMap {
    optional aqdlocations.Location location = 1;
    optional Service service = 2;
    optional aqdsystems.Personality personality = 3;
    optional aqdnetworks.Network network = 4;
    optional string host_environment = 5;
}

message ServiceMapList {
    repeated ServiceMap servicemaps = 1;
}


package org.wildfly.clustering.web.undertow.sso.elytron;

// IDs: 250

/**
 * @TypeId(250)
 */
message ElytronAuthentication {
	optional	string	mechanism	= 1;
	optional	string	name	= 2;
}

Add "programmatic" to the protobuf schema.

package org.wildfly.clustering.web.undertow.sso.elytron;

// IDs: 250

/**
 * @TypeId(250)
 */
message ElytronAuthentication {
	optional	string	mechanism	= 1;
	optional	string	name	= 2;
	optional	bool	programmatic	= 3;
}


//
// 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.validate.msg;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_outer_classname = "QueryTestsIdentifiersProto";
option java_package = "io.spine.test.queries";

message ProjectId {
    string value = 1;
}

message TaskId {
    string value = 1;
}

Fix invalid proto package name.

//
// 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.queries;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_outer_classname = "QueryTestsIdentifiersProto";
option java_package = "io.spine.test.queries";

message ProjectId {
    string value = 1;
}

message TaskId {
    string value = 1;
}


syntax = "proto3";

package syft.grid.messages;

import "proto/core/common/common_object.proto";
import "proto/core/io/address.proto";

message SuccessResponseMessage {
  syft.core.common.UID msg_id = 1;
  string resp_msg = 3;
  syft.core.io.Address address = 4;
}

ADD new Protobuf schema ErrorResponseMessage

syntax = "proto3";

package syft.grid.messages;

import "proto/core/common/common_object.proto";
import "proto/core/io/address.proto";

message SuccessResponseMessage {
  syft.core.common.UID msg_id = 1;
  string resp_msg = 2;
  syft.core.io.Address address = 3;
}

message ErrorResponseMessage {
  syft.core.common.UID msg_id = 1;
  string resp_msg = 2;
  syft.core.io.Address address = 3;
}


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;
}

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;
    }

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

Add subscribe and unsubscribe action to driver message protobuf file

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;
}

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 8 to 63;
}


syntax = "proto3";
package POGOProtos.Data;

import "POGOProtos/Enums/TutorialState.proto";
import "POGOProtos/Data/Player/PlayerAvatar.proto";
import "POGOProtos/Data/Player/DailyBonus.proto";
import "POGOProtos/Data/Player/EquippedBadge.proto";
import "POGOProtos/Data/Player/ContactSettings.proto";
import "POGOProtos/Data/Player/Currency.proto";

message PlayerData {
	int64 creation_timestamp_ms  = 1;
	string username = 2;
	int32 team = 5;
	repeated .POGOProtos.Enums.TutorialState tutorial_state = 7;
	.POGOProtos.Data.Player.PlayerAvatar avatar = 8;
	int32 max_pokemon_storage = 9;
	int32 max_item_storage = 10;
	.POGOProtos.Data.Player.DailyBonus daily_bonus = 11;
	.POGOProtos.Data.Player.EquippedBadge equipped_badge = 12;
	.POGOProtos.Data.Player.ContactSettings contact_settings = 13;
	repeated .POGOProtos.Data.Player.Currency currencies = 14;
}

Fix tutorial_state for protobufjs users.

syntax = "proto3";
package POGOProtos.Data;

import "POGOProtos/Enums/TutorialState.proto";
import "POGOProtos/Data/Player/PlayerAvatar.proto";
import "POGOProtos/Data/Player/DailyBonus.proto";
import "POGOProtos/Data/Player/EquippedBadge.proto";
import "POGOProtos/Data/Player/ContactSettings.proto";
import "POGOProtos/Data/Player/Currency.proto";

message PlayerData {
	int64 creation_timestamp_ms  = 1;
	string username = 2;
	int32 team = 5;
	repeated .POGOProtos.Enums.TutorialState tutorial_state = 7 [packed=true];
	.POGOProtos.Data.Player.PlayerAvatar avatar = 8;
	int32 max_pokemon_storage = 9;
	int32 max_item_storage = 10;
	.POGOProtos.Data.Player.DailyBonus daily_bonus = 11;
	.POGOProtos.Data.Player.EquippedBadge equipped_badge = 12;
	.POGOProtos.Data.Player.ContactSettings contact_settings = 13;
	repeated .POGOProtos.Data.Player.Currency currencies = 14;
}


package muduo;

message Query {
  required int64 id = 1;
  required string questioner = 2;

  repeated string question = 3;
}

message Answer {
  required int64 id = 1;
  required string questioner = 2;
  required string answerer = 3;

  repeated string solution = 4;
}

message Empty {
  optional int32 id = 1;
}

Set java class name for proto.

package muduo;

option java_outer_classname = "Proto";

message Query {
  required int64 id = 1;
  required string questioner = 2;

  repeated string question = 3;
}

message Answer {
  required int64 id = 1;
  required string questioner = 2;
  required string answerer = 3;

  repeated string solution = 4;
}

message Empty {
  optional int32 id = 1;
}


syntax = "proto2";

message Telemetry {
  optional int32 timestamp_ms = 1;
}

Add java output class name to .proto file

syntax = "proto2";

option java_outer_classname="TelemetryProto";

message Telemetry {
  optional int32 timestamp_ms = 1;
}


package org.wildfly.clustering.marshalling.protostream;

/**
 * @TypeId(0)
 */
message Any {
	oneof value {
		bool	boolean	= 1;
		sint32	byte	= 2;
		sint32	short	= 3;
		sint32	integer	= 4;
		sint64	long	= 5;
		float	float	= 6;
		double	double	= 7;
		uint32	char	= 8;
		bytes	string	= 9;
		bytes	boolean_array	= 10;
		bytes	byte_array	= 11;
		uint32	short_array	= 12;
		uint32	integer_array	= 13;
		uint32	long_array	= 14;
		uint32	float_array	= 15;
		uint32	double_array	= 16;
		uint32	char_array	= 17;
	}
}

Fix protobuf schema for Any.

package org.wildfly.clustering.marshalling.protostream;

/**
 * @TypeId(0)
 */
message Any {
	repeated	bytes	any	= 1;
	optional	uint32	reference	= 2;
	optional	bool	boolean	= 3;
	optional	sint32	byte	= 4;
	optional	sint32	short	= 5;
	optional	sint32	integer	= 6;
	optional	sint64	long	= 7;
	optional	float	float	= 8;
	optional	double	double	= 9;
	optional	uint32	char	= 10;
	optional	string	string	= 11;
	optional	uint32	idObject	= 12;
	optional	uint32	idEnum	= 13;
	optional	uint32	idArray	= 14;
	optional	uint32	fieldArray	= 15;
	optional	string	namedObject	= 16;
	optional	string	namedEnum	= 17;
	optional	string	namedArray	= 18;
	optional	bytes	booleanArray	= 19;
	optional	bytes	byteArray	= 20;
	repeated	sint32	shortArray	= 21	[packed=true];
	repeated	sint32	integerArray	= 22	[packed=true];
	repeated	sint64	longArray	= 23	[packed=true];
	repeated	float	floatArray	= 24	[packed=true];
	repeated	double	doubleArray	= 25	[packed=true];
	repeated	uint32	charArray	= 26	[packed=true];
	optional	bytes	anyArray	= 27;
	optional	bytes	proxy	= 28;
}


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

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

import "compliance/compliance_history_item.proto";
import "cosmos_proto/cosmos.proto";

message ComplianceInfo {
  int32 vid = 1;
  int32 pid = 2;
  uint32 softwareVersion = 3;
  string certificationType = 4;
  string softwareVersionString = 5;
  uint32 cDVersionNumber = 6;
  uint32 softwareVersionCertificationStatus = 7;
  string date = 8;
  string reason = 9;
  string owner = 10 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  repeated ComplianceHistoryItem history = 11;
  string programTypeVersion = 12;
  string cDCertificationId = 13;
  string familyId = 14;
  string supportedClusters = 15;
  string compliantPlatformUsed = 16;
  string compliantPlatformVersion = 17;
  string OSVersion = 18;
  string certificationRoute = 19;
  string programType = 20;
  string transport = 21;
  string parentChild = 22;

}

Update sequence of the new flags

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

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

import "compliance/compliance_history_item.proto";
import "cosmos_proto/cosmos.proto";

message ComplianceInfo {
  int32 vid = 1;
  int32 pid = 2;
  uint32 softwareVersion = 3;
  string certificationType = 4;
  string softwareVersionString = 5;
  uint32 cDVersionNumber = 6;
  uint32 softwareVersionCertificationStatus = 7;
  string date = 8;
  string reason = 9;
  string owner = 10 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  repeated ComplianceHistoryItem history = 11;
  string cDCertificationId = 12;
  string certificationRoute = 13;
  string programType = 14;
  string programTypeVersion = 15;
  string compliantPlatformUsed = 16;
  string compliantPlatformVersion = 17;
  string transport = 18;
  string familyId = 19;
  string supportedClusters = 20;
  string OSVersion = 21;
  string parentChild = 22;

}


syntax = "proto3";

package spine.test.tools.validate;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.test.tools.validate";
option java_outer_classname = "EntityProto";
option java_multiple_files = true;

message Project {
    option (entity).kind = ENTITY;

    string id = 1;
}

message Task {
    option (entity).kind = ENTITY;

    string id = 1 [(required) = false];
}

Add docs for test types

syntax = "proto3";

package spine.test.tools.validate;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.test.tools.validate";
option java_outer_classname = "EntityProto";
option java_multiple_files = true;

// An entity type.
//
// By default, `id` is required.
//
message Project {
    option (entity).kind = ENTITY;

    string id = 1;
}

// An entity type with a non-required ID.
//
// The `id` field is explicitly non-required.
//
message Task {
    option (entity).kind = ENTITY;

    string id = 1 [(required) = false];
}