syntax = "proto2";

package map_test;

message MapAll {
  message InnerMsg {
    optional string strval = 1;
  }
  enum InnerEnum {
    ONE = 0;
    TWO = 1;
  }
  map<int32,int32> intmap = 1;
  map<int32,string> stringmap = 2;
  map<int32,InnerMsg> msgmap = 3;
  map<int32,InnerEnum> enummap = 4;
}

message MapProto {
  optional string strval = 1;
  map<int32,string> map_field = 2;
  optional int32 intval = 3;
}

message MapMessage {
  message ValMessage {
    optional string strval = 1;
  }
  map<int32,ValMessage> map_field = 1;
}

message MapEnum {
  enum MyEnum {
    ONE = 0;
    TWO = 1;
    THREE = 2;
  }
  optional int32 before = 1;
  map<string,MyEnum> map_field = 2;
  optional int32 after = 3;
}

message NestedMap {
  optional string intval = 1;
  repeated MapProto  subfield = 2;
}

Update nested map testing proto

syntax = "proto2";

package map_test;

message MapAll {
  message InnerMsg {
    optional string strval = 1;
  }
  enum InnerEnum {
    ONE = 0;
    TWO = 1;
  }
  map<int32,int32> intmap = 1;
  map<int32,string> stringmap = 2;
  map<int32,InnerMsg> msgmap = 3;
  map<int32,InnerEnum> enummap = 4;
}

message MapProto {
  optional string strval = 1;
  map<int32,string> map_field = 2;
  optional int32 intval = 3;
}

message MapMessage {
  message ValMessage {
    optional string strval = 1;
  }
  map<int32,ValMessage> map_field = 1;
}

message MapEnum {
  enum MyEnum {
    ONE = 0;
    TWO = 1;
    THREE = 2;
  }
  optional int32 before = 1;
  map<string,MyEnum> map_field = 2;
  optional int32 after = 3;
}

message NestedMap {
  optional string strval = 1;
  optional MapProto subfield = 2;
}


syntax = "proto3";

package oak;

message InitiateComputationRequest {}

message InitiateComputationResponse {}

service OakServer {
  rpc InitiateComputation(InitiateComputationRequest)
      returns (InitiateComputationResponse);
}

Add input fields to proto

syntax = "proto3";

package oak;

message InitiateComputationRequest {
  bytes business_logic = 1;
  string expression = 2;
}

message InitiateComputationResponse {}

service OakServer {
  rpc InitiateComputation(InitiateComputationRequest)
      returns (InitiateComputationResponse);
}


syntax = "proto3";

package tensorflow;

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

// Coordination service configuration parameters.
// The system picks appropriate values for fields that are not set.
message CoordinationServiceConfig {
  // Type of coordination service implementation to enable.
  // For example, setting the service type as "standalone" starts a service
  // instance on the leader task to provide the coordination services such as
  // heartbeats and consistent key-value store.
  string service_type = 1;

  // Address where the coordination service instance is hosted.
  string service_leader = 2;

  // Whether to enable the health check mechanism.
  bool enable_health_check = 3;

  // Maximum wait time for all members in the cluster to be registered.
  int64 cluster_register_timeout_in_ms = 4;

  // Heartbeat timeout, if a worker does not record heartbeat in this time
  // window, it will be considered disconnected.
  int64 heartbeat_timeout_in_ms = 5;
}

Support specifying a list of jobs to be included in the coordination service.

syntax = "proto3";

package tensorflow;

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

// Coordination service configuration parameters.
// The system picks appropriate values for fields that are not set.
message CoordinationServiceConfig {
  // Type of coordination service implementation to enable.
  // For example, setting the service type as "standalone" starts a service
  // instance on the leader task to provide the coordination services such as
  // heartbeats and consistent key-value store.
  string service_type = 1;

  // Address where the coordination service instance is hosted.
  string service_leader = 2;

  // Whether to enable the health check mechanism.
  bool enable_health_check = 3;

  // Maximum wait time for all members in the cluster to be registered.
  int64 cluster_register_timeout_in_ms = 4;

  // Heartbeat timeout, if a worker does not record heartbeat in this time
  // window, it will be considered disconnected.
  int64 heartbeat_timeout_in_ms = 5;

  // The list of jobs that partipate in the coordination service. If empty, all
  // jobs will be included in the coordination service by default.
  repeated string coordinated_jobs = 6;
}


// Copyright 2016 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.

syntax = "proto3";

package istio.mixer.v1;

import "mixer/v1/check.proto";
import "mixer/v1/report.proto";
import "mixer/v1/quota.proto";

// The Istio Mixer API
service Mixer {
  // Checks preconditions before performing an operation.
  // The preconditions enforced depend on the set of supplied attributes
  // and the active configuration.
  rpc Check(stream CheckRequest) returns (stream CheckResponse) {}

  // Reports telemetry, such as logs and metrics.
  // The reported information depends on the set of supplied attributes
  // and the active configuration.
  rpc Report(stream ReportRequest) returns (stream ReportResponse) {}

  // Quota allocates and releases quota.
  rpc Quota(stream QuotaRequest) returns (stream QuotaResponse) {}
}

Fix references to other protos, again...

// Copyright 2016 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.

syntax = "proto3";

package istio.mixer.v1;

import "mixer/api/v1/check.proto";
import "mixer/api/v1/report.proto";
import "mixer/api/v1/quota.proto";

// The Istio Mixer API
service Mixer {
  // Checks preconditions before performing an operation.
  // The preconditions enforced depend on the set of supplied attributes
  // and the active configuration.
  rpc Check(stream CheckRequest) returns (stream CheckResponse) {}

  // Reports telemetry, such as logs and metrics.
  // The reported information depends on the set of supplied attributes
  // and the active configuration.
  rpc Report(stream ReportRequest) returns (stream ReportResponse) {}

  // Quota allocates and releases quota.
  rpc Quota(stream QuotaRequest) returns (stream QuotaResponse) {}
}


message cgroup_dir_entry {
	required string 		path		= 1;
	repeated cgroup_dir_entry	children 	= 4;
}

message cg_controller_entry {
	required uint32			id		= 1;
	repeated string			controllers	= 2;
	repeated cgroup_dir_entry	dirs		= 3;
}

message cg_member_entry {
	required string name	= 1;
	required string path	= 2;
}

message cg_set_entry {
	required uint32			id	= 1;
	repeated cg_member_entry	ctls	= 2;
}

message cgroup_entry {
	repeated cg_set_entry		sets		= 1;
	repeated cg_controller_entry	controllers	= 2;
}

Remove unused id field from controllers message

message cgroup_dir_entry {
	required string 		path		= 1;
	repeated cgroup_dir_entry	children 	= 4;
}

message cg_controller_entry {
	repeated string			controllers	= 1;
	repeated cgroup_dir_entry	dirs		= 2;
}

message cg_member_entry {
	required string name	= 1;
	required string path	= 2;
}

message cg_set_entry {
	required uint32			id	= 1;
	repeated cg_member_entry	ctls	= 2;
}

message cgroup_entry {
	repeated cg_set_entry		sets		= 1;
	repeated cg_controller_entry	controllers	= 2;
}


package chevalier;

// This is a dummy protobuf for testing purposes; the actual update
// interface hasn't yet been defined.

message DataSourceBurst {
        repeated DataSource sources = 1;
}

message DataSource {
        message Tag {
                required string field = 1;
                required string value = 2;
        }
        repeated Tag     source = 1;
}

// vim: set expandtab tabstop=8:

Add error field to Burst protobuf

package chevalier;

// Returned as a response to the chevalier client.
message DataSourceBurst {
        repeated DataSource sources = 1;
        optional string error = 2;
}

message DataSource {
        message Tag {
                required string field = 1;
                required string value = 2;
        }
        repeated Tag     source = 1;
}

// vim: set expandtab tabstop=8:


/*
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * TestService.proto
 * Defines a simple service for testing the RpcChannel
 * Copyright (C) 2005 - 2008 Simon Newton
 */

package ola.rpc;

option py_generic_services = true;

message EchoRequest {
  required string data = 1;
}

message EchoReply {
  required string data = 1;
}

message STREAMING_NO_RESPONSE {

}

service TestService {
  rpc Echo (EchoRequest) returns (EchoReply);
  rpc FailedEcho (EchoRequest) returns (EchoReply);
  rpc Stream (EchoRequest) returns (STREAMING_NO_RESPONSE);
}

Fix the RPC protobuf test

/*
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * TestService.proto
 * Defines a simple service for testing the RpcChannel
 * Copyright (C) 2005 - 2008 Simon Newton
 */

package ola.rpc;

option cc_generic_services = false;
option py_generic_services = true;

message EchoRequest {
  required string data = 1;
}

message EchoReply {
  required string data = 1;
}

message STREAMING_NO_RESPONSE {

}

service TestService {
  rpc Echo (EchoRequest) returns (EchoReply);
  rpc FailedEcho (EchoRequest) returns (EchoReply);
  rpc Stream (EchoRequest) returns (STREAMING_NO_RESPONSE);
}


syntax = "proto2";
enum TentacleMessageTopic {
  config = 0;
  action = 1;
  authentication = 2;
}

enum Action {
  digitalRead       = 0;
  digitalReadPullup = 1;
  digitalWrite      = 2;
  analogRead        = 3;
  analogReadPullup  = 4;
  analogWrite       = 5;
  servoWrite        = 6;
  pwmWrite          = 7;
  i2cWrite          = 8;
  i2cRead           = 9;
  ignore            = 10;
}

message TentacleMessage {
  optional TentacleMessageTopic topic = 1;
  optional bool response = 2;
  repeated Pin pins = 3;
  optional MeshbluAuthentication authentication = 4;
}

message Pin {
  optional uint32 number = 1;
  optional uint32 value = 2;
  optional Action action = 3;
}

message MeshbluAuthentication {
  optional string uuid = 1;
  optional string token = 2;
}

Add version to Tentacle Message format

syntax = "proto2";
enum TentacleMessageTopic {
  config = 0;
  action = 1;
  authentication = 2;
}

enum Action {
  digitalRead       = 0;
  digitalReadPullup = 1;
  digitalWrite      = 2;
  analogRead        = 3;
  analogReadPullup  = 4;
  analogWrite       = 5;
  servoWrite        = 6;
  pwmWrite          = 7;
  i2cWrite          = 8;
  i2cRead           = 9;
  ignore            = 10;
}

message TentacleMessage {
  optional uint32 version = 1;
  optional TentacleMessageTopic topic = 2;
  optional bool response = 3;
  repeated Pin pins = 4;
  optional MeshbluAuthentication authentication = 5;
}

message Pin {
  optional uint32 number = 1;
  optional uint32 value = 2;
  optional Action action = 3;
}

message MeshbluAuthentication {
  optional string uuid = 1;
  optional string token = 2;
}


syntax = "proto3";

package io.intoto;

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

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

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

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

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

Update proto signature comment to use DSSEv1 ASCII PAE encoding

syntax = "proto3";

package io.intoto;

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

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

  // Signature over:
  //     PAE(type, body)
  // Where PAE is defined as:
  // PAE(type, body) = "DSSEv1" + SP + LEN(type) + SP + type + SP + LEN(body) + SP + body
  // +               = concatenation
  // SP              = ASCII space [0x20]
  // "DSSEv1"        = ASCII [0x44, 0x53, 0x53, 0x45, 0x76, 0x31]
  // LEN(s)          = ASCII decimal encoding of the byte length of s, with no leading zeros
  // REQUIRED (length >= 1).
  repeated Signature signatures = 3;
}

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

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


message STSup {
	message Lobby {
		enum ConnectionCommand {
			CONNECT = 0;
			DISCONNECT = 1;
		}

		message Connection {
			optional ConnectionCommand connectionCommand = 1;
			optional String host = 2;
			optional uint32 port = 3;
		}

		optional bool readyState = 1;
		optional Connection connection = 2;
	}

	message RCon {
		optional string command = 1;
	}

	optional Lobby lobby = 1;
	optional RCon rcon = 2;
}

message STSdown {
	// The reset message would ideally just be a tag, but protocol buffers don't seem to do this.
	message Reset {
		optional uint32 reset = 1;
	}

	optional Reset = 1;
}

Fix the syntax so the .proto file is actually valid.

message STSup {
	message Lobby {
		enum ConnectionCommand {
			CONNECT = 0;
			DISCONNECT = 1;
		}

		message Connection {
			optional ConnectionCommand connectionCommand = 1;
			optional string host = 2;
			optional uint32 port = 3;
		}

		optional bool readyState = 1;
		optional Connection connection = 2;
	}

	message RCon {
		optional string command = 1;
	}

	optional Lobby lobby = 1;
	optional RCon rcon = 2;
}

message STSdown {
	// The reset message would ideally just be a tag, but protocol buffers don't seem to do this.
	message Reset {
		optional uint32 reset = 1;
	}

	optional Reset reset = 1;
}


syntax = "proto3";
package core_grpc;

import "github.com/tendermint/abci/types/types.proto";

//----------------------------------------
// Message types

//----------------------------------------
// Request types

message RequestBroadcastTx {
  bytes tx = 1;
}

//----------------------------------------
// Response types

message ResponseBroadcastTx{
  types.ResponseCheckTx check_tx = 1;
  types.ResponseDeliverTx deliver_tx = 2;
}

//----------------------------------------
// Service Definition

service BroadcastAPI {
  rpc BroadcastTx(RequestBroadcastTx) returns (ResponseBroadcastTx) ;
}

Fix broken reference to ABCI

syntax = "proto3";
package core_grpc;

import "github.com/tendermint/abci/blob/master/types/types.proto";

//----------------------------------------
// Message types

//----------------------------------------
// Request types

message RequestBroadcastTx {
  bytes tx = 1;
}

//----------------------------------------
// Response types

message ResponseBroadcastTx{
  types.ResponseCheckTx check_tx = 1;
  types.ResponseDeliverTx deliver_tx = 2;
}

//----------------------------------------
// Service Definition

service BroadcastAPI {
  rpc BroadcastTx(RequestBroadcastTx) returns (ResponseBroadcastTx) ;
}


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

syntax = "proto3";

package kythe.proto;
option java_package = "com.google.devtools.kythe.proto";

// Java-specific details used in a CompilationUnit.
// Its type is "kythe.io/proto/kythe.proto.JavaDetails".
message JavaDetails {
  // List of classpaths used in the compilation.
  repeated string classpath = 1;

  // List of sourcepaths used in the compilation.
  repeated string sourcepath = 2;
}

Add JavaC flags and bootclasspath to JavaDetails.

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

syntax = "proto3";

package kythe.proto;
option java_package = "com.google.devtools.kythe.proto";

// Java-specific details used in a CompilationUnit.
// Its type is "kythe.io/proto/kythe.proto.JavaDetails".
message JavaDetails {
  // List of classpaths used in the compilation.
  repeated string classpath = 1;

  // List of sourcepaths used in the compilation.
  repeated string sourcepath = 2;

  // List of bootclasspaths used in the compilation.
  repeated string bootclasspath = 3;

  // List of additional JavaC arguments identified by the extractor as
  // necessary for analysis, but not included in the argument list.
  repeated string extra_javacopts = 10;
}


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

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

message RejectedNode {
  string owner = 1;
  repeated string approvals = 2;

}

Add a new entity RejectedNode

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

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

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

message RejectedNode {
  string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  string creator = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
  repeated Grant approvals = 3;
  repeated Grant rejectApprovals = 4;
}


syntax = "proto2";

import "google/protobuf/any.proto";
import "google/protobuf/api.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/source_context.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/type.proto";
import "google/protobuf/wrappers.proto";

message UsesWellKnownTypes {
    optional .google.protobuf.NullValue null_value = 3;
    // remaining types are covered by `unittest_well_known_types.proto`
}

Test well known types are compatible with accessors

syntax = "proto2";

import "google/protobuf/any.proto";
import "google/protobuf/api.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/source_context.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/type.proto";
import "google/protobuf/wrappers.proto";

// generate accessors to make sure accessors are generated correctly
import "rustproto.proto";
option (rustproto.generate_accessors_all) = true;

message UsesWellKnownTypes {
    optional .google.protobuf.NullValue null_value = 3;
    // remaining types are covered by `unittest_well_known_types.proto`
}


syntax = "proto2";

import "position_controller_config.proto";

message ConstantHeadingDepthControllerConfig {
  /**
  * @brief Gain to convert radial position error to velocity
  */
  optional double radial_gain = 1 [ default = 0.1 ];
  /**
  * @brief Gain to convert tangential position error to velocity
  */
  optional double tangential_gain = 2 [ default = 0.1 ];
  /**
  * @brief Gain to convert yaw error to yaw rate
  */
  optional double yaw_gain = 3 [ default = 0.1 ];
  /**
  * @brief Maximum velocity to be commanded in m/s
  */
  optional double max_velocity = 4 [ default = 1 ];
  /**
  * @brief Maximum yaw rate to be commanded in rad/s
  */
  optional double max_yaw_rate = 5 [ default = 0.1 ];
  /**
  * @brief Config about position tolerance, yaw tolerance
  */
  optional PositionControllerConfig position_controller_config = 6;
}

Add min velocity to proto

syntax = "proto2";

import "position_controller_config.proto";

message ConstantHeadingDepthControllerConfig {
  /**
  * @brief Gain to convert radial position error to velocity
  */
  optional double radial_gain = 1 [ default = 0.1 ];
  /**
  * @brief Gain to convert tangential position error to velocity
  */
  optional double tangential_gain = 2 [ default = 0.1 ];
  /**
  * @brief Gain to convert yaw error to yaw rate
  */
  optional double yaw_gain = 3 [ default = 0.1 ];
  /**
  * @brief Maximum velocity to be commanded in m/s
  */
  optional double max_velocity = 4 [ default = 1 ];
  /**
  * @brief Minimum velocity to be commanded in m/s
  */
  optional double min_velocity = 5 [ default = 0.0 ];
  /**
  * @brief Maximum yaw rate to be commanded in rad/s
  */
  optional double max_yaw_rate = 6 [ default = 0.1 ];
  /**
  * @brief Config about position tolerance, yaw tolerance
  */
  optional PositionControllerConfig position_controller_config = 7;
}


//
// The report.proto file defines the protocol buffer messages used for reporting
// nodes to a server.
//
syntax = "proto3";

package report;

import "google/protobuf/timestamp.proto";

// Set some options necessary to generate .java classes from the .proto.
option java_multiple_files = true;
option java_package = "me.hkjn.prototest.report";
option java_outer_classname = "Report";

// The request message.
message Request {
  string name = 1;
	google.protobuf.Timestamp ts = 2;
	map<string, string> info = 3;
}

// The response message.
message Response {
  string message = 1;
}

// The Report service definition.
service Report {
  // Send report to server.
  rpc Send (Request) returns (Response) {}
}

Add experimental Info() API (not recompiled)

//
// The report.proto file defines the protocol buffer messages used for reporting
// nodes to a server.
//
syntax = "proto3";

package report;

import "google/protobuf/timestamp.proto";

// Set some options necessary to generate .java classes from the .proto.
option java_multiple_files = true;
option java_package = "me.hkjn.prototest.report";
option java_outer_classname = "Report";

// ReportRequest describes the request to report in from a client.
message ReportRequest {
	string name = 1;
	google.protobuf.Timestamp ts = 2;
	map<string, string> info = 3;
}

// ReportResponse describes the response from the server when a client reports in.
message ReportResponse {
	string message = 1;
}

// InfoRequest describes a request to look up info on known clients.
message InfoRequest {}

// InfoResponse describes a response for info on known clients.
message InfoResponse {
       // The info field describes each known client and their info.
       map<string<map<string, string>> = 1;
}

// The Report service definition.
service Report {
	// Send report to server.
	rpc Send(ReportRequest) returns (ReportResponse) {}
	// Query for info on known clients.
	rpc Info(InfoRequest) returns (InfoResponse) {}
}


// gRPC service definition for a "string database", with string key/value pairs
// kept on the server.
//
// Eli Bendersky [http://eli.thegreenplace.net]
// This code is in the public domain.
syntax = "proto3";

package stringdb;

service StringDb {
  // Get the value stored on the server for a given key
  rpc GetValue (GetValueRequest) returns (GetValueReply) {}

  // Set the server's value for a given key
  rpc SetValue (SetValueRequest) returns (SetValueReply) {}

  // Count the size of the server's value for a given key
  rpc CountValue (CountValueRequest) returns (CountValueReply) {}
}

message GetValueRequest {
  string key = 1;
}

message GetValueReply {
  // Empty string returned when key not found on the server.
  string value = 1;
}

message SetValueRequest {
  string key = 1;
  string value = 2;
}

message SetValueReply {
  // Returns the value.
  string value = 1;
}

message CountValueRequest {
  string key = 1;
}

message CountValueReply {
  // Returns the size of the value, in bytes. If key isn't found on the server,
  // returns -1.
  int64 count = 1;
}

Add option for go package path for generated code

// gRPC service definition for a "string database", with string key/value pairs
// kept on the server.
//
// Eli Bendersky [http://eli.thegreenplace.net]
// This code is in the public domain.
syntax = "proto3";

package stringdb;

// Set Go package path
option go_package = "grpc-stringdb-sample/stringdb";

service StringDb {
  // Get the value stored on the server for a given key
  rpc GetValue (GetValueRequest) returns (GetValueReply) {}

  // Set the server's value for a given key
  rpc SetValue (SetValueRequest) returns (SetValueReply) {}

  // Count the size of the server's value for a given key
  rpc CountValue (CountValueRequest) returns (CountValueReply) {}
}

message GetValueRequest {
  string key = 1;
}

message GetValueReply {
  // Empty string returned when key not found on the server.
  string value = 1;
}

message SetValueRequest {
  string key = 1;
  string value = 2;
}

message SetValueReply {
  // Returns the value.
  string value = 1;
}

message CountValueRequest {
  string key = 1;
}

message CountValueReply {
  // Returns the size of the value, in bytes. If key isn't found on the server,
  // returns -1.
  int64 count = 1;
}


// Copyright 2016 The Bazel 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 blaze;

// option java_api_version = 2;
option java_package = "com.google.devtools.build.lib.rules.android.deployinfo";

message Artifact {
  // This path is relative to "bazel info execution_root"
  string exec_root_path = 1;
}

// Information about how to deploy and launch the result of an android build
message AndroidDeployInfo {
  // The merged manifest in the resource APK
  Artifact merged_manifest = 1;

  // Merged manifests of dependencies
  repeated Artifact additional_merged_manifests = 2;

  // If the build supports an external deploy, this will have the APKs.
  // mobile-install does its own deployment, so this list will be empty
  repeated Artifact apks_to_deploy = 3;

  // Unused
  repeated Artifact data_to_deploy = 4;
}

Add additional fields to android deploy info to support mobile-install usage.

// Copyright 2016 The Bazel 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 blaze;

// option java_api_version = 2;
option java_package = "com.google.devtools.build.lib.rules.android.deployinfo";

message Artifact {
  // This path is relative to "bazel info execution_root"
  string exec_root_path = 1;

  // Points to a globally valid URI whenever possible.
  // See BuildEventStreamOptions.java
  string canonical_uri = 2;
}

// Information about how to deploy and launch the result of an android build
message AndroidDeployInfo {
  // The merged manifest in the resource APK
  Artifact merged_manifest = 1;

  // Merged manifests of dependencies
  repeated Artifact additional_merged_manifests = 2;

  // If the build supports an external deploy, this will have the APKs.
  // mobile-install does its own deployment, so this list will be empty
  repeated Artifact apks_to_deploy = 3;

  // Unused
  repeated Artifact data_to_deploy = 4;

  // Used by mobile-install
  string manifest_package_name = 5;
}


option java_package = "io.riemann.riemann";
option java_outer_classname = "Proto";

// Deprecated; state was used by early versions of the protocol, but not any
// more.
message State {
  optional int64 time = 1;
  optional string state = 2;
  optional string service = 3;
  optional string host = 4;
  optional string description = 5;
  optional bool once = 6;
  repeated string tags = 7;
  optional float ttl = 8;
}

message Event {
  optional int64 time = 1;
  optional string state = 2;
  optional string service = 3;
  optional string host = 4;
  optional string description = 5;
  repeated string tags = 7;
  optional float ttl = 8;
  repeated Attribute attributes = 9;

  optional sint64 metric_sint64 = 13;
  optional double metric_d = 14;
  optional float metric_f = 15;
}

message Query {
  optional string string = 1;
}

message Msg {
  optional bool ok = 2;
  optional string error = 3;
  repeated State states = 4;
  optional Query query = 5;
  repeated Event events = 6;
}

message Attribute {
  required string key = 1;
  optional string value = 2;
}

Add time_micros field in Event

option java_package = "io.riemann.riemann";
option java_outer_classname = "Proto";

// Deprecated; state was used by early versions of the protocol, but not any
// more.
message State {
  optional int64 time = 1;
  optional string state = 2;
  optional string service = 3;
  optional string host = 4;
  optional string description = 5;
  optional bool once = 6;
  repeated string tags = 7;
  optional float ttl = 8;
}

message Event {
  optional int64 time = 1;
  optional string state = 2;
  optional string service = 3;
  optional string host = 4;
  optional string description = 5;
  repeated string tags = 7;
  optional float ttl = 8;
  repeated Attribute attributes = 9;

  optional int64 time_micros = 10;
  optional sint64 metric_sint64 = 13;
  optional double metric_d = 14;
  optional float metric_f = 15;
}

message Query {
  optional string string = 1;
}

message Msg {
  optional bool ok = 2;
  optional string error = 3;
  repeated State states = 4;
  optional Query query = 5;
  repeated Event events = 6;
}

message Attribute {
  required string key = 1;
  optional string value = 2;
}


package orwell.com;

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

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

message sample_message {
	required string login = 1;
}

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

Optimize building for mobile devices

option optimize_for = LITE_RUNTIME;

package orwell.com;

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

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

message sample_message {
	required string login = 1;
}

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


// Copyright (c) 2020 The Orbit Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package orbit_vulkan_capture_protos;

message LayerConfig {
  CaptureServiceArguments capture_service_arguments = 1;

  LayerOptions layer_options = 2;
}

message CaptureServiceArguments {
  repeated string functions = 1; // Functions to hook to the capture
  string file_directory = 2;     // Path to locate .orbit file. By default it is /var/game/
  string log_directory = 3;      // Path to locate debug file. By default it is /var/game/
  uint32 sampling_rate = 4;      // Frequency of callstack sampling in samples per second. By default it is 1000
}

message LayerOptions {
  float frame_time_threshold_ms = 1; // 16.66ms by default
  uint32 capture_length_s = 2;       // 10s by default
}

Fix clang-format issue in proto

// Copyright (c) 2020 The Orbit Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package orbit_vulkan_capture_protos;

message LayerConfig {
  CaptureServiceArguments capture_service_arguments = 1;

  LayerOptions layer_options = 2;
}

message CaptureServiceArguments {
  repeated string functions = 1;  // Functions to hook to the capture

  string file_directory =
      2;  // Path to locate .orbit file. By default it is /var/game/

  string log_directory =
      3;  // Path to locate debug file. By default it is /var/game/

  uint32 sampling_rate = 4;  // Frequency of callstack sampling in samples per
                             // second. By default it is 1000
}

message LayerOptions {
  float frame_time_threshold_ms = 1;  // 16.66ms by default

  uint32 capture_length_s = 2;  // 10s by default
}


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

import "spine/options.proto";

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

import "spine/base/error.proto";
import "spine/core/command.proto";
import "spine/core/diagnostics.proto";
import "spine/core/event.proto";

message Propagation {

    core.MessageId target_entity = 1  [(required) = true, (validate) = true];

    repeated PropagationOutcome outcome = 2 [(required) = true, (validate) = true];

    bool successful = 3;
}

message PropagationOutcome {

    core.MessageId propagated_signal = 1 [(required) = true, (validate) = true];

    oneof result {

        Success success = 2 [(validate) = true];

        base.Error error = 3 [(validate) = true];

        Interruption interrupted = 4 [(validate) = true];
    }
}

message Success {

    repeated core.Event produced_event = 1 [(required) = false, (validate) = true];
}

message Interruption {

    core.MessageId stopped_at = 1 [(required) = true, (validate) = true];
}


syntax = "proto3";
option java_package = "org.onosproject.grpc.core.models";

package core;

// Corresponds to org.onosproject.core.ApplicationId.
message ApplicationIdProto {
    uint32 id = 1;
    string name = 2;
}


Define test domain for mirror projections.

syntax = "proto3";

package spine.test.system.server;

import "spine/options.proto";

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

import "spine/net/url.proto";

message PhotoId {

    string uuid = 1;
}

message VideoId {

    string uuid = 1;
}

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

    PhotoId id = 1;

    spine.net.Url full_size_url = 2 [(valid) = true];

    spine.net.Url thumbnail_url = 3 [(valid) = true, (required) = false];

    string alt_text = 4;
}

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

    VideoId id = 1;

    PhotoId title_shot = 2 [(valid) = true];

    spine.net.Url file_url = 3 [(valid) = true];

    map<string, spine.net.Url> soundtrack_url = 4 [(valid) = true, (required) = false];

    map<string, spine.net.Url> subtitles_url = 5 [(valid) = true, (required) = false];
}

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

    VideoId id = 1;

    PhotoId title_shot = 2 [(valid) = true];

    spine.net.Url file_url = 3 [(valid) = true];

    spine.net.Url sound_track_url = 4 [(valid) = true, (required) = false];

    spine.net.Url subtitles_url = 5 [(valid) = true, (required) = false];
}

// This aggregate type is not finished, so the `(entity)` option is absent.
message UncompleteAudio {

    string id = 1;

    spine.net.Url url = 2;

    reserved 3 to 42;
}


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

package spine.tools.query;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.tools.query";
option java_outer_classname = "CarSaleProto";
option java_multiple_files = true;

import "google/protobuf/timestamp.proto";

// An identifier of the car manufacturer.
message ManufacturerId {
    string uuid = 1 [(required) = true];
}

// A type of a legal entity a car manufacturer is.
enum LegalEntityType {

    LET_UNKNOWN = 0;

    PRIVATELY_OWNED = 1;

    PUBLIC_JOINT_STOCK = 2;

    LIMITED_PARTNERSHIP = 3;
}

// An international securities identification number.
//
// See https://en.wikipedia.org/wiki/International_Securities_Identification_Number
//
message Isin {
    string value = 1 [(required) = true];
}

// A symbol used to identify a company on a stock market.
message TradeStockSymbol {
    string value = 1 [(required) = true];
}

// Describes a car manufacturer as a company.
message Manufacturer {

    ManufacturerId id = 1 [(required) = true, (validate) = true];

    // ISIN value.
    Isin isin = 2 [(required) = true, (validate) = true];

    // When the company was founded.
    google.protobuf.Timestamp when_founded = 3 [(required) = true];

    // How many employees works in the company.
    int32 number_of_employees = 4 [(min).value = "1"];

    // The type of the company as a legal entity.
    LegalEntityType type = 5;

    // If traded, which stock symbols the company uses.
    repeated TradeStockSymbol stock_symbol = 6;
}


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

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

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

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

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

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

Use spaces instead of tabs


Add ProtoBuf definition required for saving states during setMinOpenSegmentId.

/* Copyright (c) 2010-2011 Stanford University
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR(S) DISCLAIM ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL AUTHORS BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

package RAMCloud.ProtoBuf;

// The information appended to LogCabin by the Coordinator
// to store its state during various operations.
message StateSetMinOpenSegmentId {
    /// Opcode for this function.
    required string opcode = 1;
    /// Whether the operation had completed doing the external state changes.
    required bool done = 2;
    /// TODO(ankitak)
    required uint64 server_id = 3;
    /// TODO(ankitak)
    required uint64 segment_id = 4;
}


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

// Author: jmaessen@google.com (Jan-Willem Maessen)

syntax = "proto2";

package net_instaweb;

// Labeling of the DOM.  Reflects the ids injected as JavaScript constants on
// the page.
message MobilizeLabeling {
  // Next available Id: 5
  repeated string navigational_ids = 1;
  repeated string header_ids = 2;
  repeated string content_ids = 3;
  repeated string marginal_ids = 4;
}


Add Riak 2.0 PBC messages (Yokozuna, Bucket Types, CRDTs, Permissioning)

/* -------------------------------------------------------------------
**
** riak_yokozuna.proto: Protocol buffers for Yokozuna
**
** Copyright (c) 2013 Basho Technologies, Inc.  All Rights Reserved.
**
** This file is provided 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.
**
** -------------------------------------------------------------------
*/

/*
** Revision: 2.0
*/

// java package specifiers
option java_package = "com.basho.riak.protobuf";
option java_outer_classname = "RiakYokozunaPB";

// Index queries

message RpbYokozunaIndex {
    required bytes name   =  1;  // Index name
    optional bytes schema =  2;  // Schema name
}

// GET request - If a name is given, return matching index, else return all
message RpbYokozunaIndexGetReq {
    optional bytes name  =  1;  // Index name
}

message RpbYokozunaIndexGetResp {
    repeated RpbYokozunaIndex index  =  1;
}

// PUT request - Create a new index
message RpbYokozunaIndexPutReq {
    required RpbYokozunaIndex index  =  1;
}

// DELETE request - Remove an index
message RpbYokozunaIndexDeleteReq {
    required bytes name  =  1;  // Index name
}

// Schema queries

message RpbYokozunaSchema {
    required bytes name    =  1;  // Index name
    optional bytes content =  2;  // Schema data
}

// PUT request - create or potentially update a new schema
message RpbYokozunaSchemaPutReq {
    required RpbYokozunaSchema schema =  1;
}

// GET request - Return matching schema by name
message RpbYokozunaSchemaGetReq {
    required bytes name  =  1;  // Schema name
}

message RpbYokozunaSchemaGetResp {
  required RpbYokozunaSchema schema =  1;
}


syntax = "proto3";
option java_package = "org.onosproject.grpc.app.models";

package app;

enum ApplicationStateProto {
    // Indicates that application has been installed, but is not running.
    INSTALLED = 0;
    // Indicates that application is active.
    ACTIVE = 1;
}

Add ApplicationRole enum type in protobuf model

syntax = "proto3";
option java_package = "org.onosproject.grpc.app.models";

package app;

enum ApplicationStateProto {
    // Indicates that application has been installed, but is not running.
    INSTALLED = 0;
    // Indicates that application is active.
    ACTIVE = 1;
}

enum ApplicationRoleProto {
    // Indicates that an application has an ADMIN role.
    ADMIN = 0;
    // Indicates that an application has a USER role.
    USER = 1;
    // Indicates that an application role has not been specified.
    UNSPECIFIED = 2;

    // More useful roles may be defined...
}


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 = "NameClashProto";
option java_multiple_files = true;

// There are no test cases behind these definitions.
//
// The code generated for this file must compile. This ensures that the name of the private class
// created for message validation does not clash with names of other inner classes in a message
// class.

message Nesting {

    message Validator {
    }
}


Add ApplicationState enum type in protobuf model

syntax = "proto3";
option java_package = "org.onosproject.grpc.app.models";

package app;

enum ApplicationStateProto {
    // Indicates that application has been installed, but is not running.
    INSTALLED = 0;
    // Indicates that application is active.
    ACTIVE = 1;
}


Add Permission message type in protobuf model

syntax = "proto3";
option java_package = "org.onosproject.grpc.security.models";

package security;

// Corresponds to org.onosproject.security.Permission.
message PermissionProto {
    string classname = 1;
    string name = 2;
    string actions = 3;
}


syntax = "proto3";

package syft.grid.messages;

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

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

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


Add the naïve definition of `IdPredicate` for sharding.

//
// Copyright 2018, 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.server.sharding;

import "spine/options.proto";

option (type_url_prefix) = "type.spine.io";
option (SPI_all) = true;
option java_package = "io.spine.server.sharding";
option java_multiple_files = true;
option java_outer_classname = "ShardingProto";
option java_generate_equals_and_hash = true;

message IdPredicate {

    oneof predicate {

        bool all_ids = 1;

        UniformByIdHash uniform_by_ids = 2;
    }
}

message UniformByIdHash {

    int32 divisor = 1 [(required) = true];

    int32 remainder = 2 [(required) = true];
}


package hydrad;

message request_version {
}

message response_version {
  required string version = 1;
}

message request_stats {
}

message response_stats {
  message requests_counters {
    required string total_count = 1;
    required string failed_count = 2;
    required string error_count = 3;
  }
  required requests_counters requests = 1;
}


syntax = "proto3";

package ProtobufBenchmarks.Message;

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

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

    string number = 1;
    PhoneType type = 2;
  }

  repeated PhoneNumber phone = 4;

  message PidgeonPost {
    string destination = 1;
    string origination = 2;
    int32 timestamp = 3;
  }

  message Semaphore {
    string destination = 1;
    string origination = 2;
    int32 timestamp = 3;
    string type = 4;
  }

  oneof contact_preference {
    string preferred_email = 5;
    PhoneNumber preferred_phone = 6;
    string facsimile = 7;
    PidgeonPost pidgeon = 8;
    Semaphore semaphore_line = 9;
  }
}


Add basic collision avoidance protobuf file

package amber.collision_avoidance_proto;
option java_package = "pl.edu.agh.amber.collisionavoidance.proto";
option java_outer_classname = "CollisionAvoidanceProto";

import "drivermsg.proto";

extend amber.DriverMsg {
    optional bool setSpeed = 90;
    optional bool getSpeed = 91;
    optional bool getSpeedAndScan = 92;
    optional bool getScan = 93;
    optional MotorsSpeed motorsSpeed = 94;
    optional Scan scan = 95;
}

message MotorsSpeed {
    optional int32 frontLeftSpeed = 1;
    optional int32 frontRightSpeed = 2;
    optional int32 rearLeftSpeed = 3;
    optional int32 rearRightSpeed = 4;
}

message Scan {
    repeated double angles = 1 [packed = true];
    repeated int32 distances = 2 [packed = true];
}


Add plugin representation protos used for the RPC service and data between language servers.

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

// Data representation of a tsunami plugin definition passed between language servers.
syntax = "proto3";

package tsunami.proto;

option java_multiple_files = true;
option java_outer_classname = "PluginRepresentationProtos";
option java_package = "com.google.tsunami.proto";
option go_package = "github.com/google/tsunami-security-scanner/proto";

// Represents a PluginDefinition placeholder.
message PluginDefinition {
  // PluginInfo of this definition.
  PluginInfo info = 1;

  // The name of the target service.
  TargetServiceName target_service_name = 2;

  // The name of the target software.
  TargetSoftware target_software = 3;

  // If the definition is for a web service or not.
  bool for_web_service = 4;
}

// Represents a PluginInfo annotation placeholder used by the PluginDefinition proto above.
message PluginInfo {
  enum PluginType {
    // Plugin is an unspecified type.
    PLUGIN_TYPE_UNSPECIFIED = 0;
    // Plugin is a port scanner.
    PORT_SCAN = 1;
    // Plugin is a service fingerprinter.
    SERVICE_FINGERPRINT = 2;
    // Plugin is a vulnerability detector.
    VULN_DETECTION = 3;
  }

  // Type of plugin.
  PluginType type = 1;

  // Name of the plugin.
  string name = 2;

  // Version of the plugin
  string version = 3;

  // Description of the plugin.
  string description = 4;

  // Author of the plugin.
  string author = 5;
}

// Represents a ForServiceName annotation placeholder used by the PluginDefinition proto above.
message TargetServiceName {
  // The value of the name of the target.
  repeated string value = 1;
}

// Represents a ForSoftware annotation placeholder used by the PluginDefinition proto above.
message TargetSoftware {
  // The name of the target software, case insensitive.
  string name = 1;

  // Array of versions and version ranges of the target software.
  repeated string value = 2;
}


Copy message definition from server-game (and correcting a typo).

package orwell.com;

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

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

message sample_message {
	required string login = 1;
}


syntax = "proto3";

package syft.core.node.common.service;

import "proto/syft_assets/common_object.proto";
import "proto/syft_assets/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;
}


syntax = "proto3";

package syft.core.node.common.service;

import "proto/syft_assets/common_object.proto";
import "proto/syft_assets/io/address.proto";

// CREATE USER
message CreateUserMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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

// GET USER
message GetUserMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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

// GET ALL USERS
message GetAllUserMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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

// SEARCH USER
message SearchUserMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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

// UPDATE USER
message UpdateUserMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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


syntax = "proto2";
package dv360_excel_plugin;

// Reporting query parameter proto.
message ReportingQueryParameter {

  message Metadata {
    // required
    optional string title = 1;

    /* required
     * Range of report data.
     */
    optional string dataRange = 2;

    /* required
     * Format of the generated report.
     */
    optional string format = 3;
  }

  /* required
   * Query metadata
   */
  optional Metadata metadata = 1;

  message Params {
    // Metrics to include as columns in the report.
    repeated string metrics = 1;

    // Data is grouped by the filters listed in this field.
    repeated string groupBys = 2;

    message Filters {
      // required
      optional string type = 1;

      // required
      optional string value = 2;
    }

    // Filters used to match traffic data in the report.
    repeated Filters filters = 3;
  }

  /* required
   * Query parameters
   */
  optional Params params = 2;
}


Add initial entities protocol-buffer schema.

message Vector3 {
  optional float x = 1;
  optional float y = 1;
  optional float z = 3;
}

message Quaternion {
  optional float x = 1;
  optional float y = 2;
  optional float z = 3;
  optional float w = 4;
}

message Ship {
  optional Vector3 position = 1;
  optional Quaternion quaternion = 2;
}

message Bullet {
  optional Vector3 position = 1;
  optional Vector3 velocity = 2;
}


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

syntax = "proto3";

package google.gapic.metadata;

// Metadata about a GAPIC library for a specific combination of API, version, and
// computer language.
message GapicMetadata {
  // Schema version of this proto. Current value: 1.0
  string schema = 1;

  // Any human-readable comments to be included in this file.
  string comment = 2;

  // Computer language of this generated language. This must be
  // spelled out as it spoken in English, with no capitalization or
  // separators (e.g. "csharp", "nodejs").
  string language = 3;

  // The proto package containing the API definition for which this
  // GAPIC library was generated.
  string proto_package = 4;

  // The language-specific library package for this GAPIC library.
  string library_package = 5;

  // A map from each proto-defined service to ServiceForTransports,
  // which allows listing information about transport-specific
  // implementations of the service.
  //
  // The key is the name of the service as it appears in the .proto
  // file.
  map<string, ServiceForTransport> services = 6;

  // A map from a transport name to ServiceAsClient, which allows
  // listing information about the client objects that implement the
  // parent RPC service for the specified transport.
  //
  // The key name is the transport, lower-cased with no separators
  // (e.g. "grpc", "rest").
  message ServiceForTransport {
    map<string, ServiceAsClient> clients = 1;
  }

  // Information about a specific client implementing a proto-defined service.
  message ServiceAsClient {
    // The name of the library client formatted as it appears in the source code
    string library_client = 1;

    // A mapping from each proto-defined RPC name to the the list of
    // methods in library_client that implement it. There can be more
    // than one library_client method for each RPC. RPCs with no
    // library_client methods need not be included.
    //
    // The key name is the name of the RPC as defined and formated in
    // the proto file.
    map<string, MethodList> rpcs = 2;
  }

  // List of GAPIC client methods implementing the proto-defined RPC
  // for the transport and service specified in the containing
  // structures.
  message MethodList {
    // List of methods for a specific proto-service client in the
    // GAPIC. These names should be formatted as they appear in the
    // source code.
    repeated string methods = 1;
  }

}


syntax = "proto3";

package spine.net;

option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_package = "org.spine3.net";
option java_outer_classname = "UrlProto";

message Url {
    oneof value {
        string raw = 1;
        Record record = 2;
    }

    // Structurized record
    message Record {

        // Application layer protocol
        Protocol protocol = 1;

        // User's email and password (both optional)
        Authorization auth = 2;

        // Domain name
        string host = 3;

        // Server's port (e.g. :8080)
        int32 port = 4;

        // Single part of the path too desired resourse (e.g. "/index")
        repeated string path = 5;

        // Single key - value pair (?key1=value1&key2=value2)
        repeated string query = 6;

        // Sub-resource (e.g. "#article")
        string fragment = 7;

        // Application layer protocol
        message Protocol {
            oneof protocol {
                // Most often used schemas
                Schema schema = 1;

                // Some other protocol
                string name = 2;
            }
        }

        // Most often used application layer procotols.
        enum Schema {
            UNDEFINED = 0;
            HTTP = 1;
            HTTPS = 2;
            FTP = 3;
            SSL = 4;
            SSH = 5;
            DNS = 6;
            SOAP = 7;
            RTP = 8;
        }

        // Pair of the username (email commonly) and password (optional) (e.g. "user:password@")
        message Authorization {

            // User name
            string user = 1;

            // Corresponding password
            string password = 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.base;

option (type_url_prefix) = "type.spine3.org";
option java_package = "org.spine3.base";
option java_outer_classname = "VersionProto";
option java_multiple_files = true;
option java_generate_equals_and_hash = true;

import "google/protobuf/timestamp.proto";

import "spine/annotations.proto";

// A version number with timestamp of the version creation.
message Version {

    // A zero-based version number.
    //
    // When numbering versions of entities the zero value is reserved for
    // the “pre-initialization” version of an entity.
    //
    int32 number = 1;

    // A moment in time when the new version was created.
    google.protobuf.Timestamp timestamp = 2;
}


// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for experimental feature flags.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option retain_unknown_fields = true;

package sync_pb;

// A flag to enable support for keystore encryption.
message KeystoreEncryptionFlags {
  optional bool enabled = 1;
}

// Contains one flag or set of related flags.  Each node of the experiments type
// will have a unique_client_tag identifying which flags it contains.  By
// convention, the tag name should match the sub-message name.
message ExperimentsSpecifics {
  optional KeystoreEncryptionFlags keystore_encryption = 1;
}

Add experiment for history delete directives.

// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for experimental feature flags.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option retain_unknown_fields = true;

package sync_pb;

// A flag to enable support for keystore encryption.
message KeystoreEncryptionFlags {
  optional bool enabled = 1;
}

// Whether history delete directives are enabled.
message HistoryDeleteDirectives {
  optional bool enabled = 1;
}

// Contains one flag or set of related flags.  Each node of the experiments type
// will have a unique_client_tag identifying which flags it contains.  By
// convention, the tag name should match the sub-message name.
message ExperimentsSpecifics {
  optional KeystoreEncryptionFlags keystore_encryption = 1;
  optional HistoryDeleteDirectives history_delete_directives = 2;
}


/*
 * Copyright 2020, 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.messaging.pubsub;

import "spine/options.proto";

option java_outer_classname = "PubsubPushProto";
option java_package = "io.spine.pubsub";
option java_multiple_files = true;
option java_generate_equals_and_hash = true;

import "google/pubsub/v1/pubsub.proto";

// The definition of the Pub/Sub push request message
// that is sent by the Pub/Sub service when used with push subscriptions.
//
// The push request looks like the example below in its canonical form.
//
// ```
// {
//   "message": {
//     "attributes": {
//       "key": "value"
//     },
//     "data": "U3BpbmUgbG92ZXMgUHViL1N1YiE=",
//     "messageId": "136969346945",
//     "publishTime": "2020-06-24T13:05:36.021Z"
//   },
//   "subscription": "projects/myproject/subscriptions/mysubscription"
// }
// ```
//
// See
// receiving messages using Push for more information.
//
message PubsubPushRequest {

    // The Pub/Sub message payload of the push request.
    google.pubsub.v1.PubsubMessage message = 1 [(required) = true];

    // The name of the Pub/Sub subscription that pushed the current request.
    //
    // Format is `projects/{project}/subscriptions/{subscription}`.
    //
    string subscription = 2 [(required) = true, (pattern).regex = "projects/.+/subscriptions/.+"];
}


package opencog.pai;
// Specify the package name to generate correct namespace in cpp.
// In this example, a namespace like:
//      namespace opencog { namespace pai {} }
// will be generated.

message MapInfo {
    message Vector3 {
        required float x = 1 [default = 0];
        required float y = 2 [default = 0];
        required float z = 3 [default = 0];
    }

    message Rotation {
        required float pitch = 1 [default = 0];
        required float roll = 2 [default = 0];
        required float yaw = 3 [default = 0];
    }

    // unique id
    required string id = 1;
    // object name
    required string name = 2;
    // object type
    required string type = 3;

    // position
    required Vector3 position = 4;

    // velocity
    optional Vector3 velocity = 5;

    // rotation
    required Rotation rotation = 6;

    // size
    required float length = 7;
    required float width = 8;
    required float height = 9;

    //enum VisibilityStatus {
    //    VISIBLE = 0;
    //    INVISIBLE = 1;
    //    UNKNOWN = 2;
    //}

    message OCProperty {
        required string key = 1;
        optional string value = 2;
    }

    // A list
    repeated OCProperty properties = 10;
}

// Map info sequence containing the entity data from virtual world.
message MapInfoSeq {
    repeated MapInfo mapinfos = 1;
}

// Map info sequence containing the block data of minecraft-like world.
message Chunk {
    repeated MapInfo blocks = 1;
}


syntax = "proto3";

package spine.work;

option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_package = "org.spine3.work";
option java_outer_classname = "WorkProto";

// Represents the amount of work done in minutes.
message Work {
    int32 minutes = 1;
}


Add cloud scheduler event initial data schema

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

syntax = "proto3";

package google.events.cloud.scheduler.v1;

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

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

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

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

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

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


Add Application message type in protobuf model

syntax = "proto3";
option java_package = "org.onosproject.grpc.core.models";

package core;

import "core/ApplicationIdProto.proto";
import "app/ApplicationEnumsProto.proto";
import "security/PermissionProto.proto";

// Corresponds to org.onosproject.core.Application.
message ApplicationProto {
    core.ApplicationIdProto app_id = 1;
    string version = 2;
    string title = 3;
    string description = 4;
    string category = 5;
    string url = 6;
    string readme = 7;

    // tag id 8 is reserved for app icon
    reserved 8;

    string origin = 9;
    app.ApplicationRoleProto role = 10;
    repeated security.PermissionProto permissions = 11;

    // tag id 12 is reserved for features repo
    // optional type will be added later
    reserved 12;
    repeated string features = 13;
    repeated string required_apps = 14;
}


Add copy of proto2 extensions to google/protobuf/

// Copyright 2012-2020 Google LLC
//
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.

// extensions to descriptor.proto to support lisp-specific extensions
// in proto definitions

syntax = "proto2";

import "google/protobuf/descriptor.proto";

enum LispContainer {
  LIST = 0;
  VECTOR = 1;
}

extend google.protobuf.FileOptions {
  optional string lisp_package = 195801;
}

extend google.protobuf.MessageOptions {
  // Note those are only for Messages.
  // Cannot specify for other declarations like enums.
  optional string lisp_name = 195802;
  optional string lisp_alias = 195803;
  optional string lisp_class = 195805;
}

extend google.protobuf.FieldOptions {
  optional string lisp_type = 195804;
  optional string lisp_slot = 195806;
  // Only meaningful for repeated fields.
  // Allow use vector-of instead of list-of.
  optional LispContainer lisp_container = 195807;
}


syntax = "proto3";

import "coprocess_mini_request_object.proto";
import "coprocess_session_state.proto";
import "coprocess_common.proto";

package coprocess;

message Object {
  HookType hook_type = 1;
  string hook_name = 2;
  MiniRequestObject request = 3;
  SessionState session = 4;
  map<string, string> metadata = 5;
  map<string, string> spec = 6;
}

service Dispatcher {
  rpc Dispatch (Object) returns (Object) {}
}

Update gRPC service definition to include DispatchEvent.

syntax = "proto3";

import "coprocess_mini_request_object.proto";
import "coprocess_session_state.proto";
import "coprocess_common.proto";

package coprocess;

message Object {
  HookType hook_type = 1;
  string hook_name = 2;
  MiniRequestObject request = 3;
  SessionState session = 4;
  map<string, string> metadata = 5;
  map<string, string> spec = 6;
}

message Event {
  string payload = 1;
}

message EventReply {}

service Dispatcher {
  rpc Dispatch (Object) returns (Object) {}
  rpc DispatchEvent (Event) returns (EventReply) {}
}


Add protobuf file for sending RGB values.

syntax = "proto3";

service LEDServer {
    rpc Set(stream LED) returns (None);
}

message LED {
    uint32 index = 1;
    fixed32 rgb = 2;
}

message None {
}


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

syntax = "proto2";

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

// The overall collection of Experiments known to the user.
// Next Tag: 2
message ExperimentLibrary {
  repeated SyncExperiment syncExperiment = 1;
}

// A single experiment to be synced to Drive.
// Next Tag: 7
message SyncExperiment {
  // The Drive fileId.
  optional string fileId = 1;

  // The experimentId from the experiment.
  optional string experimentId = 2;

  // The timestamp of the last time the experiment was opened.
  optional int64 lastOpened = 3;

  // The timestamp of the last time the experiment was modified.
  optional int64 lastModified = 4;

  // Whether the experiment has been deleted.
  optional bool deleted = 5;

  // Whether the experiment has been archived.
  optional bool archived = 6;
}


Add protobuf source file for Cast Channels

// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package extensions.api.cast_channel;

message CastMessage {
  // Always pass a version of the protocol for future compatibility
  // requirements.
  enum ProtocolVersion {
    CASTV2_1_0 = 0;
  }
  required ProtocolVersion protocol_version = 1;

  // source and destination ids identify the origin and destination of the
  // message.  They are used to route messages between endpoints that share a
  // device-to-device channel.
  //
  // For messages between applications:
  //   - The sender application id is a unique identifier generated on behalf of
  //     the sender application.
  //   - The receiver id is always the the session id for the application.
  //
  // For messages to or from the sender or receiver platform, the special ids
  // 'sender-0' and 'receiver-0' can be used.
  //
  // For messages intended for all endpoints using a given channel, the
  // wildcard destination_id '*' can be used.
  required string source_id = 2;
  required string destination_id = 3;

  // This is the core multiplexing key.  All messages are sent on a namespace
  // and endpoints sharing a channel listen on one or more namespaces.  The
  // namespace defines the protocol and semantics of the message.
  required string namespace = 4;

  // Encoding and payload info follows.

  // What type of data do we have in this message.
  enum PayloadType {
    STRING = 0;
    BINARY = 1;
  }
  required PayloadType payload_type = 5;

  // Depending on payload_type, exactly one of the following optional fields
  // will always be set.
  optional string payload_utf8 = 6;
  optional bytes payload_binary = 7;
}

// Messages for authentication protocol between a sender and a receiver.
message AuthChallenge {
}

message AuthResponse {
  required bytes signature = 1;
  required bytes client_auth_certificate = 2;
}

message AuthError {
  enum ErrorType {
    INTERNAL_ERROR = 0;
    NO_TLS = 1;  // The underlying connection is not TLS
  }
  required ErrorType error_type = 1;
}

message DeviceAuthMessage {
  // Request fields
  optional AuthChallenge challenge = 1;
  // Response fields
  optional AuthResponse response = 2;
  optional AuthError error = 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.validation;

import "spine/options.proto";

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

import "google/protobuf/timestamp.proto";

// Messages for "goes" option tests.

// A scheduled payment which `id` and `timestamp` fields are filled as soon as the payment is
// processed.
message Payment {

    PaymentId id = 1 [(goes).with = "timestamp"];

    string description = 2;

    google.protobuf.Timestamp timestamp = 3 [(goes).with = "id"];
}

message PaymentId {

    string uuid = 1;
}


Add draft proto for the rtpproxy's responses.

enum rtpc_result {
    RTPC_SUCCESS = 1;
    RTPC_FAILURE = 2;
}

enum address_families {
    AF_INET = 1;
    AF_INET6 = 2;
}

message ip_address {
    required int32 port = 1;
    required string ip = 2;
    required address_families af = 3;
}

message rtpp_response {
    required rtpc_result result = 1;
    optional ip_address local_addr = 2;
}


Move DaggerBuildStatistics from JavaBuilder's codebase into Dagger's codebase.

syntax = "proto2";

package dagger.internal.codegen.proto;
option java_package = "dagger.internal.codegen.proto";

import "google/protobuf/duration.proto";

message DaggerBuildStatistics {
  optional google.protobuf.Duration total_processing_time = 1;
}


// Copyright 2016 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.

syntax = "proto3";

package istio.mixer.v1.config.descriptor;

// An object that describes the schema of a 'MonitoredResource'
// using a name and a set of attributes.
message MonitoredResourceDescriptor {
  // The name of this descriptor
  string name = 1;

  // An optional detailed description of the monitored resource descriptor that might
  // be used in documentation.
  string description = 2;

  // The set of attributes that are necessary to describe a specific instance of a monitored resource.
  repeated string attributes = 3;
}

Add detailed documentation for monitored resource.

// Copyright 2016 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.

syntax = "proto3";

package istio.mixer.v1.config.descriptor;

// An object that describes the schema of a `MonitoredResource`. A
// `MonitoredResource` is used to define a type of resources for
// monitoring purpose. For example, the monitored resource "VM refers
// to virtual machines, which requires 3 attributes "owner", "zone",
// "name" to uniquely identify a specific instance. When reporting
// a metric against a monitored resource, the metric attributes will
// be used to associate the right value with the right instance,
// such as memory usage of a VM.
message MonitoredResourceDescriptor {
  // The name of this descriptor
  string name = 1;

  // An optional detailed description of the monitored resource descriptor that might
  // be used in documentation.
  string description = 2;

  // The set of attributes that are necessary to describe a specific instance of a monitored resource.
  repeated string attributes = 3;
}


syntax = "proto3";

package syft.grid.messages;

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

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

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

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

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


syntax = "proto2";

import "caffe2/proto/caffe2.proto";

package caffe2;

message ModelInfo {
  optional string project = 1;
  optional string modelClass = 2;
  optional string version = 3;
  optional string predictorType = 4 [ default = "SINGLE_PREDICTOR" ];
  optional string modelId = 5;
}

message BlobsMap {
  required string key = 1;
  repeated string value = 2;
}

message NetsMap {
  required string key = 1;
  required NetDef value = 2;
}

message PlansMap {
  required string key = 1;
  required PlanDef value = 2;
}

message StringMap {
  required string key = 1;
  required string value = 2;
}

message MetaNetDef {
  repeated BlobsMap blobs = 1;
  // Text-format serialized NetDefs.
  repeated NetsMap nets = 2;
  // Info about where the model comes from. Possible use cases:
  // 1) sanity check or diagnose
  // 2) provide info for evaluation.
  optional ModelInfo modelInfo = 3;
  repeated PlansMap plans = 4;
  repeated StringMap applicationSpecificInfo = 5;
}


syntax = "proto3";

package tensorflow.data;

import "tensorflow/core/framework/graph.proto";
import "tensorflow/core/framework/types.proto";

message DatasetDef {
  // We represent datasets as tensorflow GraphDefs which define the operations
  // needed to create a tf.data dataset.
  GraphDef graph = 1;
}

message TaskDef {
  // The dataset to iterate over.
  // TODO(aaudibert): load the dataset from disk instead of passing it here.
  DatasetDef dataset = 1;
  int64 dataset_id = 2;
  int64 task_id = 3;
  int64 job_id = 4;
}

Remove an unused proto include

syntax = "proto3";

package tensorflow.data;

import "tensorflow/core/framework/graph.proto";

message DatasetDef {
  // We represent datasets as tensorflow GraphDefs which define the operations
  // needed to create a tf.data dataset.
  GraphDef graph = 1;
}

message TaskDef {
  // The dataset to iterate over.
  // TODO(aaudibert): load the dataset from disk instead of passing it here.
  DatasetDef dataset = 1;
  int64 dataset_id = 2;
  int64 task_id = 3;
  int64 job_id = 4;
}


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

syntax = "proto3";

package kythe.proto;
option java_package = "com.google.devtools.kythe.proto";

// A binary blob with a type tag.
message Any {
  // The URI for this message type (eg, kythe.io/proto/kythe.proto.CxxDetails)
  string type_uri = 1;
  // The message payload.
  bytes value = 2;
}

Add a TODO about Any.

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

syntax = "proto3";

package kythe.proto;
option java_package = "com.google.devtools.kythe.proto";

// A binary blob with a type tag.
// TOOD(zarko): Swap this out with the official version once it appears in
// proto3.
message Any {
  // The URI for this message type (eg, kythe.io/proto/kythe.proto.CxxDetails)
  string type_uri = 1;
  // The message payload.
  bytes value = 2;
}


syntax = "proto3";

package syft.core.node.common.service;

import "proto/syft_assets/common_object.proto";
import "proto/syft_assets/io/address.proto";

// CREATE GROUP
message CreateGroupMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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

// GET Group
message GetGroupMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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

// GET ALL Groups
message GetAllGroupMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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

// SEARCH Group
message SearchGroupMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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

// UPDATE Group
message UpdateGroupMessage {
  syft.core.common.UID msg_id = 1;
  syft.core.io.Address address = 2;
  syft.core.io.Address reply_to = 4;
}

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


syntax = "proto3";

package tensorflow.profiler;

import "tensorflow/core/profiler/protobuf/op_metrics.proto";

// Operator Statistics.
message OpStats {
  // The database for the op metrics collected from the host over the entire
  // profiling session including incomplete steps.
  OpMetricsDb host_op_metrics_db = 1;
  // The database for the op metrics collected from the device over the entire
  // profiling session including incomplete steps.
  OpMetricsDb device_op_metrics_db = 2;
}

Add performance environment to OpStats.

syntax = "proto3";

package tensorflow.profiler;

import "tensorflow/core/profiler/protobuf/op_metrics.proto";

// Performance environment, e.g the peak performance capabilities of the device.
message PerfEnv {
  // Peak performance of a TPU core or a GPU in TFLOP/s.
  double peak_tera_flops_per_second = 1;
  // Peak memory bandwidth of a TPU core or a GPU in GiBs/s.
  double peak_hbm_bw_giga_bytes_per_second = 2;
  // The ridge point of roofline model in FLOP/Byte. (i.e., minimum operational
  // intensity required to achieve maximum performance).
  double ridge_point = 3;
}

// Operator Statistics.
message OpStats {
  // The database for the op metrics collected from the host over the entire
  // profiling session including incomplete steps.
  OpMetricsDb host_op_metrics_db = 1;
  // The database for the op metrics collected from the device over the entire
  // profiling session including incomplete steps.
  OpMetricsDb device_op_metrics_db = 2;
  // Performance environment of the op metrics collected.
  PerfEnv perf_env = 3;
}


Introduce proto definitions of message handlers.

syntax = "proto3";

package spine.server.model;

import "spine/options.proto";

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

option (internal_all) = true;

import "google/protobuf/any.proto";

import "spine/base/field_path.proto";

// A message handler token.
//
// All the message handlers of an entity must have distinct tokens.
//
message HandlerToken {

    string message_type = 1 [(required) = true];

    string origin_type = 2;

    MessageFilter filter = 3 [(required) = false, (valid) = true];
}

// A filter to apply to a handled message.
//
message MessageFilter {

    // The path to the field.
    base.FieldPath field = 1 [(valid) = true];

    // The expected value of the field.
    google.protobuf.Any value = 2 [(valid) = true];
}


tests
testBuildFromAttributesCompartments2
	|model|
	model := KEModel new.
	model buildFromAttributes: #(#status #region)
			compartments: {
				#(#	S #Sud)->999.
				#(#I #Sud)->1.
				#(#R #Sud)->0.
				#(#S #North)->1000.
				#(#I #North)->0.
				#(#R #North)->0 }.
	self assert: (model population compartments isDictionary) equals: true

Remove a small space that broke the loading in Pharo 5.0

tests
testBuildFromAttributesCompartments2
	|model|
	model := KEModel new.
	model buildFromAttributes: #(#status #region)
			compartments: {
				#(#S #Sud)->999.
				#(#I #Sud)->1.
				#(#R #Sud)->0.
				#(#S #North)->1000.
				#(#I #North)->0.
				#(#R #North)->0 }.
	self assert: (model population compartments isDictionary) equals: true


Class {
	#name : #RoassalSpecTest,
	#superclass : #RSTest,
	#category : #'Roassal3-Spec-Tests'
}

{ #category : #tests }
RoassalSpecTest >> testBasic [
	| spec value window |
	"comment"
	spec := Smalltalk globals at: #SpRoassalPresenter
		ifPresent: [:cls | cls new]
		ifAbsent: [^ self ].
	self assert: spec class equals: SpRoassalPresenter.
	window := spec open.
	value := 0.

	spec script: [ :view | view addShape: RSBox new. value := value + 1 ].
	self assert: value equals: 1.
	spec script: [ :view | view addShape: RSBox new. value := 0 ].
	self assert: value equals: 0.
	window close.
]

Fix roassal3 test for pharo9 and pharo10

Class {
	#name : #RoassalSpecTest,
	#superclass : #RSTest,
	#category : #'Roassal3-Spec-Tests'
}

{ #category : #tests }
RoassalSpecTest >> testBasic [
	| spec value window |
	"comment"
	spec := Smalltalk globals at: #SpRoassalPresenter
		ifPresent: [:cls | cls new]
		ifAbsent: [^ self ].
	self assert: spec class equals: SpRoassalPresenter.
	window := spec asWindow open.
	value := 0.

	spec script: [ :view | view addShape: RSBox new. value := value + 1 ].
	self assert: value equals: 1.
	spec script: [ :view | view addShape: RSBox new. value := 0 ].
	self assert: value equals: 0.
	window close.
]