// Copyright 2020 The Go 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 google.golang.org;

import "google/protobuf/any.proto";
import "google/protobuf/timestamp.proto";

option go_package = "google.golang.org/protobuf/internal/testprotos/news";

message Article {
	enum Status {
		DRAFT = 0;
		PUBLISHED = 1;
		REVOKED = 2;
	}

	string author = 1;
	google.protobuf.Timestamp date = 2;
	string title = 3;
	string content = 4;
	Status status = 8;
	repeated string tags = 7;
	repeated google.protobuf.Any attachments = 6;
}

message BinaryAttachment {
	string name = 1;
	bytes data = 2;
}

message KeyValueAttachment {
	string name = 1;
	map<string, string> data = 2;
}