@fivenet-app/gen 2026.5.0 → 2026.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/clients.ts +6 -0
- package/codegen/perms/perms.ts +74 -40
- package/codegen/sanitizer/sanitizer.ts +6 -0
- package/google/protobuf/descriptor.ts +11 -3
- package/google/protobuf/timestamp.ts +7 -6
- package/package.json +1 -1
- package/perms.ts +387 -41
- package/resources/access/access.ts +481 -0
- package/resources/accounts/accounts.ts +41 -30
- package/resources/audit/audit.ts +5 -1
- package/resources/calendar/access/access.ts +0 -330
- package/resources/calendar/calendar.ts +307 -25
- package/resources/calendar/entries/entries.ts +204 -11
- package/resources/centrum/units/access/access.ts +0 -373
- package/resources/centrum/units/units.ts +20 -8
- package/resources/citizens/labels/access.ts +0 -191
- package/resources/citizens/labels/labels.ts +20 -8
- package/resources/common/content/diff_activity.ts +1 -1
- package/resources/cron/cron.ts +1 -1
- package/resources/documents/access/access.ts +0 -329
- package/resources/documents/activity/activity.ts +49 -45
- package/resources/documents/documents.ts +1 -1
- package/resources/documents/requests/requests.ts +1 -1
- package/resources/documents/stamps/stamp.ts +40 -210
- package/resources/documents/templates/templates.ts +158 -318
- package/resources/jobs/colleagues/activity/activity.ts +2 -2
- package/resources/jobs/conduct/conduct.ts +2 -2
- package/resources/jobs/jobs.ts +22 -0
- package/resources/jobs/labels/labels.ts +9 -9
- package/resources/laws/laws.ts +96 -50
- package/resources/livemap/markers/marker_marker.ts +311 -4
- package/resources/mailer/access/access.ts +0 -457
- package/resources/mailer/emails/email.ts +4 -4
- package/resources/notifications/events/events.ts +18 -1
- package/resources/permissions/attributes/attributes.ts +51 -39
- package/resources/permissions/permissions/permissions.ts +46 -34
- package/resources/qualifications/access/access.ts +0 -248
- package/resources/qualifications/qualifications.ts +9 -9
- package/resources/settings/config.ts +53 -5
- package/resources/settings/data.ts +1 -1
- package/resources/stats/stats.ts +32 -20
- package/resources/sync/data/data.ts +22 -10
- package/resources/userinfo/userinfo.ts +202 -51
- package/resources/users/activity/activity.ts +70 -77
- package/resources/wiki/access/access.ts +0 -330
- package/resources/wiki/activity/activity.ts +45 -45
- package/resources/wiki/page.ts +9 -9
- package/services/auth/auth.ts +1 -1
- package/services/calendar/calendar.ts +1 -1
- package/services/calendar/entries.ts +13 -2
- package/services/centrum/dispatches.ts +32 -12
- package/services/centrum/units.client.ts +15 -2
- package/services/centrum/units.ts +237 -129
- package/services/citizens/citizens.ts +1 -1
- package/services/citizens/labels.client.ts +13 -0
- package/services/citizens/labels.ts +135 -4
- package/services/completor/completor.client.ts +0 -13
- package/services/completor/completor.ts +2 -116
- package/services/documents/approval.ts +20 -9
- package/services/documents/categories.ts +1 -1
- package/services/documents/collab.ts +1 -1
- package/services/documents/comments.ts +4 -4
- package/services/documents/documents.ts +38 -38
- package/services/documents/stats.ts +14 -2
- package/services/documents/templates.ts +1 -1
- package/services/filestore/filestore.ts +4 -4
- package/services/jobs/colleagues.ts +4 -4
- package/services/jobs/conduct.ts +2 -2
- package/services/jobs/groups.client.ts +22 -0
- package/services/jobs/groups.ts +9 -0
- package/services/jobs/timeclock.ts +2 -2
- package/services/mailer/settings.ts +1 -1
- package/services/mailer/thread.ts +3 -3
- package/services/qualifications/exam.ts +5 -5
- package/services/qualifications/qualifications.ts +52 -34
- package/services/settings/accounts.ts +19 -6
- package/services/settings/config.ts +2 -2
- package/services/settings/cron.ts +2 -2
- package/services/settings/laws.client.ts +44 -5
- package/services/settings/laws.ts +357 -4
- package/services/settings/system.ts +6 -6
- package/services/sync/sync.client.ts +42 -14
- package/services/sync/sync.ts +162 -13
- package/services/wiki/collab.ts +1 -1
- package/services/wiki/wiki.client.ts +15 -2
- package/services/wiki/wiki.ts +122 -0
- package/svcs.ts +19 -1
package/clients.ts
CHANGED
|
@@ -128,6 +128,12 @@ export async function getJobsConductClient() {
|
|
|
128
128
|
return new ConductServiceClient(useGRPCTransport());
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
+
// Factory for jobs.groups client.
|
|
132
|
+
export async function getJobsGroupsClient() {
|
|
133
|
+
const { GroupsServiceClient } = await import('~~/gen/ts/services/jobs/groups.client');
|
|
134
|
+
return new GroupsServiceClient(useGRPCTransport());
|
|
135
|
+
}
|
|
136
|
+
|
|
131
137
|
// Factory for jobs.jobs client.
|
|
132
138
|
export async function getJobsJobsClient() {
|
|
133
139
|
const { JobsServiceClient } = await import('~~/gen/ts/services/jobs/jobs.client');
|
package/codegen/perms/perms.ts
CHANGED
|
@@ -21,25 +21,33 @@ export interface PermsOptions {
|
|
|
21
21
|
*/
|
|
22
22
|
enabled: boolean;
|
|
23
23
|
/**
|
|
24
|
-
* @generated from protobuf field: optional string
|
|
24
|
+
* @generated from protobuf field: optional string namespace = 2
|
|
25
|
+
*/
|
|
26
|
+
namespace?: string;
|
|
27
|
+
/**
|
|
28
|
+
* @generated from protobuf field: optional string service = 3
|
|
25
29
|
*/
|
|
26
30
|
service?: string;
|
|
27
31
|
/**
|
|
28
|
-
* @generated from protobuf field: optional string name =
|
|
32
|
+
* @generated from protobuf field: optional string name = 4
|
|
29
33
|
*/
|
|
30
34
|
name?: string;
|
|
31
35
|
/**
|
|
32
|
-
* @generated from protobuf field: repeated string names =
|
|
36
|
+
* @generated from protobuf field: repeated string names = 5
|
|
33
37
|
*/
|
|
34
38
|
names: string[];
|
|
35
39
|
/**
|
|
36
|
-
* @generated from protobuf field: int32 order =
|
|
40
|
+
* @generated from protobuf field: int32 order = 6
|
|
37
41
|
*/
|
|
38
42
|
order: number;
|
|
39
43
|
/**
|
|
40
|
-
* @generated from protobuf field: repeated codegen.perms.Attr attrs =
|
|
44
|
+
* @generated from protobuf field: repeated codegen.perms.Attr attrs = 7
|
|
41
45
|
*/
|
|
42
46
|
attrs: Attr[];
|
|
47
|
+
/**
|
|
48
|
+
* @generated from protobuf field: bool internal = 8
|
|
49
|
+
*/
|
|
50
|
+
internal: boolean;
|
|
43
51
|
}
|
|
44
52
|
/**
|
|
45
53
|
* @generated from protobuf message codegen.perms.Attr
|
|
@@ -75,11 +83,15 @@ export interface ServiceOptions {
|
|
|
75
83
|
*/
|
|
76
84
|
icon?: string;
|
|
77
85
|
/**
|
|
78
|
-
* @generated from protobuf field: optional string
|
|
86
|
+
* @generated from protobuf field: optional string namespace = 3
|
|
79
87
|
*/
|
|
80
|
-
|
|
88
|
+
namespace?: string;
|
|
81
89
|
/**
|
|
82
|
-
* @generated from protobuf field:
|
|
90
|
+
* @generated from protobuf field: optional string service = 4
|
|
91
|
+
*/
|
|
92
|
+
service?: string;
|
|
93
|
+
/**
|
|
94
|
+
* @generated from protobuf field: repeated codegen.perms.AdditionalServicePerm additional_perms = 5
|
|
83
95
|
*/
|
|
84
96
|
additionalPerms: AdditionalServicePerm[];
|
|
85
97
|
}
|
|
@@ -105,11 +117,13 @@ class PermsOptions$Type extends MessageType<PermsOptions> {
|
|
|
105
117
|
constructor() {
|
|
106
118
|
super("codegen.perms.PermsOptions", [
|
|
107
119
|
{ no: 1, name: "enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
|
108
|
-
{ no: 2, name: "
|
|
109
|
-
{ no: 3, name: "
|
|
110
|
-
{ no:
|
|
111
|
-
{ no:
|
|
112
|
-
{ no:
|
|
120
|
+
{ no: 2, name: "namespace", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
121
|
+
{ no: 3, name: "service", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
122
|
+
{ no: 4, name: "name", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
123
|
+
{ no: 5, name: "names", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
|
|
124
|
+
{ no: 6, name: "order", kind: "scalar", T: 5 /*ScalarType.INT32*/ },
|
|
125
|
+
{ no: 7, name: "attrs", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Attr },
|
|
126
|
+
{ no: 8, name: "internal", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
|
|
113
127
|
]);
|
|
114
128
|
}
|
|
115
129
|
create(value?: PartialMessage<PermsOptions>): PermsOptions {
|
|
@@ -118,6 +132,7 @@ class PermsOptions$Type extends MessageType<PermsOptions> {
|
|
|
118
132
|
message.names = [];
|
|
119
133
|
message.order = 0;
|
|
120
134
|
message.attrs = [];
|
|
135
|
+
message.internal = false;
|
|
121
136
|
if (value !== undefined)
|
|
122
137
|
reflectionMergePartial<PermsOptions>(this, message, value);
|
|
123
138
|
return message;
|
|
@@ -130,21 +145,27 @@ class PermsOptions$Type extends MessageType<PermsOptions> {
|
|
|
130
145
|
case /* bool enabled */ 1:
|
|
131
146
|
message.enabled = reader.bool();
|
|
132
147
|
break;
|
|
133
|
-
case /* optional string
|
|
148
|
+
case /* optional string namespace */ 2:
|
|
149
|
+
message.namespace = reader.string();
|
|
150
|
+
break;
|
|
151
|
+
case /* optional string service */ 3:
|
|
134
152
|
message.service = reader.string();
|
|
135
153
|
break;
|
|
136
|
-
case /* optional string name */
|
|
154
|
+
case /* optional string name */ 4:
|
|
137
155
|
message.name = reader.string();
|
|
138
156
|
break;
|
|
139
|
-
case /* repeated string names */
|
|
157
|
+
case /* repeated string names */ 5:
|
|
140
158
|
message.names.push(reader.string());
|
|
141
159
|
break;
|
|
142
|
-
case /* int32 order */
|
|
160
|
+
case /* int32 order */ 6:
|
|
143
161
|
message.order = reader.int32();
|
|
144
162
|
break;
|
|
145
|
-
case /* repeated codegen.perms.Attr attrs */
|
|
163
|
+
case /* repeated codegen.perms.Attr attrs */ 7:
|
|
146
164
|
message.attrs.push(Attr.internalBinaryRead(reader, reader.uint32(), options));
|
|
147
165
|
break;
|
|
166
|
+
case /* bool internal */ 8:
|
|
167
|
+
message.internal = reader.bool();
|
|
168
|
+
break;
|
|
148
169
|
default:
|
|
149
170
|
let u = options.readUnknownField;
|
|
150
171
|
if (u === "throw")
|
|
@@ -160,21 +181,27 @@ class PermsOptions$Type extends MessageType<PermsOptions> {
|
|
|
160
181
|
/* bool enabled = 1; */
|
|
161
182
|
if (message.enabled !== false)
|
|
162
183
|
writer.tag(1, WireType.Varint).bool(message.enabled);
|
|
163
|
-
/* optional string
|
|
184
|
+
/* optional string namespace = 2; */
|
|
185
|
+
if (message.namespace !== undefined)
|
|
186
|
+
writer.tag(2, WireType.LengthDelimited).string(message.namespace);
|
|
187
|
+
/* optional string service = 3; */
|
|
164
188
|
if (message.service !== undefined)
|
|
165
|
-
writer.tag(
|
|
166
|
-
/* optional string name =
|
|
189
|
+
writer.tag(3, WireType.LengthDelimited).string(message.service);
|
|
190
|
+
/* optional string name = 4; */
|
|
167
191
|
if (message.name !== undefined)
|
|
168
|
-
writer.tag(
|
|
169
|
-
/*
|
|
192
|
+
writer.tag(4, WireType.LengthDelimited).string(message.name);
|
|
193
|
+
/* repeated string names = 5; */
|
|
194
|
+
for (let i = 0; i < message.names.length; i++)
|
|
195
|
+
writer.tag(5, WireType.LengthDelimited).string(message.names[i]);
|
|
196
|
+
/* int32 order = 6; */
|
|
170
197
|
if (message.order !== 0)
|
|
171
|
-
writer.tag(
|
|
172
|
-
/* repeated codegen.perms.Attr attrs =
|
|
198
|
+
writer.tag(6, WireType.Varint).int32(message.order);
|
|
199
|
+
/* repeated codegen.perms.Attr attrs = 7; */
|
|
173
200
|
for (let i = 0; i < message.attrs.length; i++)
|
|
174
|
-
Attr.internalBinaryWrite(message.attrs[i], writer.tag(
|
|
175
|
-
/*
|
|
176
|
-
|
|
177
|
-
writer.tag(
|
|
201
|
+
Attr.internalBinaryWrite(message.attrs[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();
|
|
202
|
+
/* bool internal = 8; */
|
|
203
|
+
if (message.internal !== false)
|
|
204
|
+
writer.tag(8, WireType.Varint).bool(message.internal);
|
|
178
205
|
let u = options.writeUnknownFields;
|
|
179
206
|
if (u !== false)
|
|
180
207
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -191,7 +218,7 @@ class Attr$Type extends MessageType<Attr> {
|
|
|
191
218
|
super("codegen.perms.Attr", [
|
|
192
219
|
{ no: 1, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
193
220
|
{ no: 2, name: "value", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
194
|
-
{ no: 3, name: "type", kind: "enum", T: () => ["resources.permissions.attributes.AttributeType", AttributeType, "ATTRIBUTE_TYPE_"] },
|
|
221
|
+
{ no: 3, name: "type", kind: "enum", T: () => ["resources.permissions.attributes.AttributeType", AttributeType, "ATTRIBUTE_TYPE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
|
|
195
222
|
{ no: 4, name: "valid_string_list", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
|
|
196
223
|
]);
|
|
197
224
|
}
|
|
@@ -262,8 +289,9 @@ class ServiceOptions$Type extends MessageType<ServiceOptions> {
|
|
|
262
289
|
super("codegen.perms.ServiceOptions", [
|
|
263
290
|
{ no: 1, name: "order", kind: "scalar", T: 5 /*ScalarType.INT32*/ },
|
|
264
291
|
{ no: 2, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
265
|
-
{ no:
|
|
266
|
-
{ no:
|
|
292
|
+
{ no: 3, name: "namespace", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
293
|
+
{ no: 4, name: "service", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
294
|
+
{ no: 5, name: "additional_perms", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => AdditionalServicePerm }
|
|
267
295
|
]);
|
|
268
296
|
}
|
|
269
297
|
create(value?: PartialMessage<ServiceOptions>): ServiceOptions {
|
|
@@ -285,10 +313,13 @@ class ServiceOptions$Type extends MessageType<ServiceOptions> {
|
|
|
285
313
|
case /* optional string icon */ 2:
|
|
286
314
|
message.icon = reader.string();
|
|
287
315
|
break;
|
|
288
|
-
case /* optional string
|
|
289
|
-
message.
|
|
316
|
+
case /* optional string namespace */ 3:
|
|
317
|
+
message.namespace = reader.string();
|
|
318
|
+
break;
|
|
319
|
+
case /* optional string service */ 4:
|
|
320
|
+
message.service = reader.string();
|
|
290
321
|
break;
|
|
291
|
-
case /* repeated codegen.perms.AdditionalServicePerm additional_perms */
|
|
322
|
+
case /* repeated codegen.perms.AdditionalServicePerm additional_perms */ 5:
|
|
292
323
|
message.additionalPerms.push(AdditionalServicePerm.internalBinaryRead(reader, reader.uint32(), options));
|
|
293
324
|
break;
|
|
294
325
|
default:
|
|
@@ -309,12 +340,15 @@ class ServiceOptions$Type extends MessageType<ServiceOptions> {
|
|
|
309
340
|
/* optional string icon = 2; */
|
|
310
341
|
if (message.icon !== undefined)
|
|
311
342
|
writer.tag(2, WireType.LengthDelimited).string(message.icon);
|
|
312
|
-
/*
|
|
343
|
+
/* optional string namespace = 3; */
|
|
344
|
+
if (message.namespace !== undefined)
|
|
345
|
+
writer.tag(3, WireType.LengthDelimited).string(message.namespace);
|
|
346
|
+
/* optional string service = 4; */
|
|
347
|
+
if (message.service !== undefined)
|
|
348
|
+
writer.tag(4, WireType.LengthDelimited).string(message.service);
|
|
349
|
+
/* repeated codegen.perms.AdditionalServicePerm additional_perms = 5; */
|
|
313
350
|
for (let i = 0; i < message.additionalPerms.length; i++)
|
|
314
|
-
AdditionalServicePerm.internalBinaryWrite(message.additionalPerms[i], writer.tag(
|
|
315
|
-
/* optional string name = 4; */
|
|
316
|
-
if (message.name !== undefined)
|
|
317
|
-
writer.tag(4, WireType.LengthDelimited).string(message.name);
|
|
351
|
+
AdditionalServicePerm.internalBinaryWrite(message.additionalPerms[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();
|
|
318
352
|
let u = options.writeUnknownFields;
|
|
319
353
|
if (u !== false)
|
|
320
354
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -16,6 +16,8 @@ import { MessageType } from "@protobuf-ts/runtime";
|
|
|
16
16
|
*/
|
|
17
17
|
export interface FieldOptions {
|
|
18
18
|
/**
|
|
19
|
+
* Default false
|
|
20
|
+
*
|
|
19
21
|
* @generated from protobuf field: bool enabled = 1
|
|
20
22
|
*/
|
|
21
23
|
enabled: boolean;
|
|
@@ -24,10 +26,14 @@ export interface FieldOptions {
|
|
|
24
26
|
*/
|
|
25
27
|
method?: string;
|
|
26
28
|
/**
|
|
29
|
+
* Default false
|
|
30
|
+
*
|
|
27
31
|
* @generated from protobuf field: optional bool strip_html_tags = 3
|
|
28
32
|
*/
|
|
29
33
|
stripHtmlTags?: boolean;
|
|
30
34
|
/**
|
|
35
|
+
* Default false
|
|
36
|
+
*
|
|
31
37
|
* @generated from protobuf field: optional bool tiptap_json = 4
|
|
32
38
|
*/
|
|
33
39
|
tiptapJson?: boolean;
|
|
@@ -1150,9 +1150,11 @@ export interface FieldOptions {
|
|
|
1150
1150
|
*/
|
|
1151
1151
|
deprecated?: boolean;
|
|
1152
1152
|
/**
|
|
1153
|
+
* DEPRECATED. DO NOT USE!
|
|
1153
1154
|
* For Google-internal migration only. Do not use.
|
|
1154
1155
|
*
|
|
1155
|
-
* @
|
|
1156
|
+
* @deprecated
|
|
1157
|
+
* @generated from protobuf field: optional bool weak = 10 [default = false, deprecated = true]
|
|
1156
1158
|
*/
|
|
1157
1159
|
weak?: boolean;
|
|
1158
1160
|
/**
|
|
@@ -2180,6 +2182,12 @@ export enum Edition {
|
|
|
2180
2182
|
* @generated from protobuf enum value: EDITION_2024 = 1001;
|
|
2181
2183
|
*/
|
|
2182
2184
|
EDITION_2024 = 1001,
|
|
2185
|
+
/**
|
|
2186
|
+
* A placeholder edition for developing and testing unscheduled features.
|
|
2187
|
+
*
|
|
2188
|
+
* @generated from protobuf enum value: EDITION_UNSTABLE = 9999;
|
|
2189
|
+
*/
|
|
2190
|
+
EDITION_UNSTABLE = 9999,
|
|
2183
2191
|
/**
|
|
2184
2192
|
* Placeholder editions for testing feature resolution. These should not be
|
|
2185
2193
|
* used or relied on outside of tests.
|
|
@@ -3651,7 +3659,7 @@ class FieldOptions$Type extends MessageType<FieldOptions> {
|
|
|
3651
3659
|
case /* optional bool deprecated = 3 [default = false] */ 3:
|
|
3652
3660
|
message.deprecated = reader.bool();
|
|
3653
3661
|
break;
|
|
3654
|
-
case /* optional bool weak = 10 [default = false] */ 10:
|
|
3662
|
+
case /* optional bool weak = 10 [default = false, deprecated = true] */ 10:
|
|
3655
3663
|
message.weak = reader.bool();
|
|
3656
3664
|
break;
|
|
3657
3665
|
case /* optional bool debug_redact = 16 [default = false] */ 16:
|
|
@@ -3706,7 +3714,7 @@ class FieldOptions$Type extends MessageType<FieldOptions> {
|
|
|
3706
3714
|
/* optional google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL]; */
|
|
3707
3715
|
if (message.jstype !== undefined)
|
|
3708
3716
|
writer.tag(6, WireType.Varint).int32(message.jstype);
|
|
3709
|
-
/* optional bool weak = 10 [default = false]; */
|
|
3717
|
+
/* optional bool weak = 10 [default = false, deprecated = true]; */
|
|
3710
3718
|
if (message.weak !== undefined)
|
|
3711
3719
|
writer.tag(10, WireType.Varint).bool(message.weak);
|
|
3712
3720
|
/* optional bool unverified_lazy = 15 [default = false]; */
|
|
@@ -143,17 +143,18 @@ import { MessageType } from "@protobuf-ts/runtime";
|
|
|
143
143
|
*/
|
|
144
144
|
export interface Timestamp {
|
|
145
145
|
/**
|
|
146
|
-
* Represents seconds of UTC time since Unix epoch
|
|
147
|
-
*
|
|
148
|
-
* 9999-12-31T23:59:59Z
|
|
146
|
+
* Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
|
|
147
|
+
* be between -315576000000 and 315576000000 inclusive (which corresponds to
|
|
148
|
+
* 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
|
|
149
149
|
*
|
|
150
150
|
* @generated from protobuf field: int64 seconds = 1
|
|
151
151
|
*/
|
|
152
152
|
seconds: number;
|
|
153
153
|
/**
|
|
154
|
-
* Non-negative fractions of a second at nanosecond resolution.
|
|
155
|
-
*
|
|
156
|
-
*
|
|
154
|
+
* Non-negative fractions of a second at nanosecond resolution. This field is
|
|
155
|
+
* the nanosecond portion of the duration, not an alternative to seconds.
|
|
156
|
+
* Negative second values with fractions must still have non-negative nanos
|
|
157
|
+
* values that count forward in time. Must be between 0 and 999,999,999
|
|
157
158
|
* inclusive.
|
|
158
159
|
*
|
|
159
160
|
* @generated from protobuf field: int32 nanos = 2
|