xref: /aosp_15_r20/external/golang-protobuf/cmd/protoc-gen-go/testdata/retention/retention.proto (revision 1c12ee1efe575feb122dbf939ff15148a3b3e8f2)
1*1c12ee1eSDan Willemsen// Copyright 2020 The Go Authors. All rights reserved.
2*1c12ee1eSDan Willemsen// Use of this source code is governed by a BSD-style
3*1c12ee1eSDan Willemsen// license that can be found in the LICENSE file.
4*1c12ee1eSDan Willemsen
5*1c12ee1eSDan Willemsensyntax = "proto2";
6*1c12ee1eSDan Willemsen
7*1c12ee1eSDan Willemsenpackage testretention;
8*1c12ee1eSDan Willemsen
9*1c12ee1eSDan Willemsenimport "cmd/protoc-gen-go/testdata/retention/options_message.proto";
10*1c12ee1eSDan Willemsenimport "google/protobuf/descriptor.proto";
11*1c12ee1eSDan Willemsen
12*1c12ee1eSDan Willemsenoption go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/retention";
13*1c12ee1eSDan Willemsen
14*1c12ee1eSDan Willemsenoption (imported_plain_option) = 1;
15*1c12ee1eSDan Willemsenoption (imported_runtime_retention_option) = 2;
16*1c12ee1eSDan Willemsenoption (imported_source_retention_option) = 3;
17*1c12ee1eSDan Willemsen
18*1c12ee1eSDan Willemsen// Retention attributes set directly on custom options
19*1c12ee1eSDan Willemsenextend google.protobuf.FileOptions {
20*1c12ee1eSDan Willemsen  optional int32 plain_option = 505092806;
21*1c12ee1eSDan Willemsen  optional int32 runtime_retention_option = 505039132
22*1c12ee1eSDan Willemsen      [retention = RETENTION_RUNTIME];
23*1c12ee1eSDan Willemsen  optional int32 source_retention_option = 504878676
24*1c12ee1eSDan Willemsen      [retention = RETENTION_SOURCE];
25*1c12ee1eSDan Willemsen}
26*1c12ee1eSDan Willemsen
27*1c12ee1eSDan Willemsenoption (plain_option) = 1;
28*1c12ee1eSDan Willemsenoption (runtime_retention_option) = 2;
29*1c12ee1eSDan Willemsenoption (source_retention_option) = 3;
30*1c12ee1eSDan Willemsen
31*1c12ee1eSDan Willemsenoption (file_option) = {
32*1c12ee1eSDan Willemsen  plain_field: 1
33*1c12ee1eSDan Willemsen  runtime_retention_field: 2
34*1c12ee1eSDan Willemsen  source_retention_field: 3
35*1c12ee1eSDan Willemsen};
36*1c12ee1eSDan Willemsen
37*1c12ee1eSDan Willemsen// Retention attribute nested inside a repeated message field
38*1c12ee1eSDan Willemsenextend google.protobuf.FileOptions {
39*1c12ee1eSDan Willemsen  repeated OptionsMessage repeated_options = 504823570;
40*1c12ee1eSDan Willemsen}
41*1c12ee1eSDan Willemsen
42*1c12ee1eSDan Willemsenoption (repeated_options) = {
43*1c12ee1eSDan Willemsen  plain_field: 1
44*1c12ee1eSDan Willemsen  runtime_retention_field: 2
45*1c12ee1eSDan Willemsen  source_retention_field: 3
46*1c12ee1eSDan Willemsen};
47*1c12ee1eSDan Willemsen
48*1c12ee1eSDan Willemsenextend google.protobuf.ExtensionRangeOptions {
49*1c12ee1eSDan Willemsen  optional OptionsMessage extension_range_option = 504822148;
50*1c12ee1eSDan Willemsen}
51*1c12ee1eSDan Willemsen
52*1c12ee1eSDan Willemsenextend google.protobuf.MessageOptions {
53*1c12ee1eSDan Willemsen  optional OptionsMessage message_option = 504820819;
54*1c12ee1eSDan Willemsen}
55*1c12ee1eSDan Willemsen
56*1c12ee1eSDan Willemsenextend google.protobuf.FieldOptions {
57*1c12ee1eSDan Willemsen  optional OptionsMessage field_option = 504589219;
58*1c12ee1eSDan Willemsen}
59*1c12ee1eSDan Willemsen
60*1c12ee1eSDan Willemsenextend google.protobuf.OneofOptions {
61*1c12ee1eSDan Willemsen  optional OptionsMessage oneof_option = 504479153;
62*1c12ee1eSDan Willemsen}
63*1c12ee1eSDan Willemsen
64*1c12ee1eSDan Willemsenextend google.protobuf.EnumOptions {
65*1c12ee1eSDan Willemsen  optional OptionsMessage enum_option = 504451567;
66*1c12ee1eSDan Willemsen}
67*1c12ee1eSDan Willemsen
68*1c12ee1eSDan Willemsenextend google.protobuf.EnumValueOptions {
69*1c12ee1eSDan Willemsen  optional OptionsMessage enum_entry_option = 504450522;
70*1c12ee1eSDan Willemsen}
71*1c12ee1eSDan Willemsen
72*1c12ee1eSDan Willemsenextend google.protobuf.ServiceOptions {
73*1c12ee1eSDan Willemsen  optional OptionsMessage service_option = 504387709;
74*1c12ee1eSDan Willemsen}
75*1c12ee1eSDan Willemsen
76*1c12ee1eSDan Willemsenextend google.protobuf.MethodOptions {
77*1c12ee1eSDan Willemsen  optional OptionsMessage method_option = 504349420;
78*1c12ee1eSDan Willemsen}
79*1c12ee1eSDan Willemsen
80*1c12ee1eSDan Willemsenmessage Extendee {
81*1c12ee1eSDan Willemsen  extensions 1, 2;
82*1c12ee1eSDan Willemsen}
83*1c12ee1eSDan Willemsen
84*1c12ee1eSDan Willemsenextend Extendee {
85*1c12ee1eSDan Willemsen  optional int32 i = 1 [(field_option) = {
86*1c12ee1eSDan Willemsen    plain_field: 1
87*1c12ee1eSDan Willemsen    runtime_retention_field: 2
88*1c12ee1eSDan Willemsen    source_retention_field: 3
89*1c12ee1eSDan Willemsen  }];
90*1c12ee1eSDan Willemsen}
91*1c12ee1eSDan Willemsen
92*1c12ee1eSDan Willemsenmessage TopLevelMessage {
93*1c12ee1eSDan Willemsen  option (message_option) = {
94*1c12ee1eSDan Willemsen    plain_field: 1
95*1c12ee1eSDan Willemsen    runtime_retention_field: 2
96*1c12ee1eSDan Willemsen    source_retention_field: 3
97*1c12ee1eSDan Willemsen  };
98*1c12ee1eSDan Willemsen
99*1c12ee1eSDan Willemsen  message NestedMessage {
100*1c12ee1eSDan Willemsen    option (message_option) = {
101*1c12ee1eSDan Willemsen      plain_field: 1
102*1c12ee1eSDan Willemsen      runtime_retention_field: 2
103*1c12ee1eSDan Willemsen      source_retention_field: 3
104*1c12ee1eSDan Willemsen    };
105*1c12ee1eSDan Willemsen  }
106*1c12ee1eSDan Willemsen
107*1c12ee1eSDan Willemsen  enum NestedEnum {
108*1c12ee1eSDan Willemsen    option (enum_option) = {
109*1c12ee1eSDan Willemsen      plain_field: 1
110*1c12ee1eSDan Willemsen      runtime_retention_field: 2
111*1c12ee1eSDan Willemsen      source_retention_field: 3
112*1c12ee1eSDan Willemsen    };
113*1c12ee1eSDan Willemsen
114*1c12ee1eSDan Willemsen    NESTED_UNKNOWN = 0;
115*1c12ee1eSDan Willemsen  }
116*1c12ee1eSDan Willemsen
117*1c12ee1eSDan Willemsen  optional float f = 1 [(field_option) = {
118*1c12ee1eSDan Willemsen    plain_field: 1
119*1c12ee1eSDan Willemsen    runtime_retention_field: 2
120*1c12ee1eSDan Willemsen    source_retention_field: 3
121*1c12ee1eSDan Willemsen  }];
122*1c12ee1eSDan Willemsen
123*1c12ee1eSDan Willemsen  oneof o {
124*1c12ee1eSDan Willemsen    option (oneof_option) = {
125*1c12ee1eSDan Willemsen      plain_field: 1
126*1c12ee1eSDan Willemsen      runtime_retention_field: 2
127*1c12ee1eSDan Willemsen      source_retention_field: 3
128*1c12ee1eSDan Willemsen    };
129*1c12ee1eSDan Willemsen
130*1c12ee1eSDan Willemsen    int64 i = 2;
131*1c12ee1eSDan Willemsen  }
132*1c12ee1eSDan Willemsen
133*1c12ee1eSDan Willemsen  extensions 10 to 100 [(extension_range_option) = {
134*1c12ee1eSDan Willemsen    plain_field: 1
135*1c12ee1eSDan Willemsen    runtime_retention_field: 2
136*1c12ee1eSDan Willemsen    source_retention_field: 3
137*1c12ee1eSDan Willemsen  }];
138*1c12ee1eSDan Willemsen
139*1c12ee1eSDan Willemsen  extend Extendee {
140*1c12ee1eSDan Willemsen    optional string s = 2 [(field_option) = {
141*1c12ee1eSDan Willemsen      plain_field: 1
142*1c12ee1eSDan Willemsen      runtime_retention_field: 2
143*1c12ee1eSDan Willemsen      source_retention_field: 3
144*1c12ee1eSDan Willemsen    }];
145*1c12ee1eSDan Willemsen  }
146*1c12ee1eSDan Willemsen}
147*1c12ee1eSDan Willemsen
148*1c12ee1eSDan Willemsenenum TopLevelEnum {
149*1c12ee1eSDan Willemsen  option (enum_option) = {
150*1c12ee1eSDan Willemsen    plain_field: 1
151*1c12ee1eSDan Willemsen    runtime_retention_field: 2
152*1c12ee1eSDan Willemsen    source_retention_field: 3
153*1c12ee1eSDan Willemsen  };
154*1c12ee1eSDan Willemsen
155*1c12ee1eSDan Willemsen  TOP_LEVEL_UNKNOWN = 0 [(enum_entry_option) = {
156*1c12ee1eSDan Willemsen    plain_field: 1
157*1c12ee1eSDan Willemsen    runtime_retention_field: 2
158*1c12ee1eSDan Willemsen    source_retention_field: 3
159*1c12ee1eSDan Willemsen  }];
160*1c12ee1eSDan Willemsen}
161*1c12ee1eSDan Willemsen
162*1c12ee1eSDan Willemsenservice Service {
163*1c12ee1eSDan Willemsen  option (service_option) = {
164*1c12ee1eSDan Willemsen    plain_field: 1
165*1c12ee1eSDan Willemsen    runtime_retention_field: 2
166*1c12ee1eSDan Willemsen    source_retention_field: 3
167*1c12ee1eSDan Willemsen  };
168*1c12ee1eSDan Willemsen
169*1c12ee1eSDan Willemsen  rpc DoStuff(TopLevelMessage) returns (TopLevelMessage) {
170*1c12ee1eSDan Willemsen    option (method_option) = {
171*1c12ee1eSDan Willemsen      plain_field: 1
172*1c12ee1eSDan Willemsen      runtime_retention_field: 2
173*1c12ee1eSDan Willemsen      source_retention_field: 3
174*1c12ee1eSDan Willemsen    };
175*1c12ee1eSDan Willemsen  }
176*1c12ee1eSDan Willemsen}