consul/proto/private/pbdemo/v2/demo.proto

56 lines
1.2 KiB
Protocol Buffer

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
syntax = "proto3";
// This package contains fake resource types, which are useful for working on
// Consul's generic storage APIs.
package hashicorp.consul.internal.demo.v2;
import "pbresource/annotations.proto";
import "pbresource/resource.proto";
message Artist {
option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE};
string name = 1;
Genre genre = 2;
map<string, string> group_members = 3;
}
enum Genre {
GENRE_UNSPECIFIED = 0;
GENRE_JAZZ = 1;
GENRE_FOLK = 2;
GENRE_POP = 3;
GENRE_METAL = 4;
GENRE_PUNK = 5;
GENRE_BLUES = 6;
GENRE_R_AND_B = 7;
GENRE_COUNTRY = 8;
GENRE_DISCO = 9;
GENRE_SKA = 10;
GENRE_HIP_HOP = 11;
GENRE_INDIE = 12;
GENRE_ROCK = 13;
}
message Album {
option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE};
string title = 1;
int32 year_of_release = 2;
bool critically_aclaimed = 3;
repeated string tracks = 4;
}
message Festival {
option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE};
string name = 1;
repeated Genre genres = 2;
repeated Artist artists = 3;
repeated hashicorp.consul.resource.Reference bound_references = 4;
}