@arcforges/api-client 1.0.0-ci.25.1 → 1.0.0-ci.258.1

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.
Files changed (49) hide show
  1. package/NOTICE +57 -5
  2. package/README.md +9 -2
  3. package/build-identity.json +221 -0
  4. package/contracts.binpb +0 -0
  5. package/dist/gen/http.d.ts +10 -0
  6. package/dist/gen/http.js +13 -0
  7. package/dist/index.d.ts +10 -1
  8. package/dist/index.js +20 -2
  9. package/dist/shapes/gen/AndroidUpdate.d.ts +41 -0
  10. package/dist/shapes/gen/AndroidUpdate.js +620 -0
  11. package/dist/shapes/gen/CatalogIndex.d.ts +49 -0
  12. package/dist/shapes/gen/CatalogIndex.js +703 -0
  13. package/dist/shapes/gen/CatalogRevocations.d.ts +46 -0
  14. package/dist/shapes/gen/CatalogRevocations.js +647 -0
  15. package/dist/shapes/gen/DeclarativePanel.d.ts +154 -0
  16. package/dist/shapes/gen/DeclarativePanel.js +2988 -0
  17. package/dist/shapes/gen/ExtensionManifest.d.ts +278 -0
  18. package/dist/shapes/gen/ExtensionManifest.js +3974 -0
  19. package/dist/shapes/gen/ExtensionWorkflow.d.ts +151 -0
  20. package/dist/shapes/gen/ExtensionWorkflow.js +2251 -0
  21. package/dist/shapes/gen/PackageInventory.d.ts +24 -0
  22. package/dist/shapes/gen/PackageInventory.js +327 -0
  23. package/dist/shapes/gen/PartReceipt.d.ts +21 -0
  24. package/dist/shapes/gen/PartReceipt.js +290 -0
  25. package/dist/shapes/gen/PolicyBody.d.ts +269 -0
  26. package/dist/shapes/gen/PolicyBody.js +4188 -0
  27. package/dist/shapes/gen/RealmDescriptor.d.ts +39 -0
  28. package/dist/shapes/gen/RealmDescriptor.js +627 -0
  29. package/package.json +15 -7
  30. package/sbom.cdx.json +17 -17
  31. package/schemas/public/http/v1/inventory.schema.json +49 -0
  32. package/schemas/public/http/v1/manifest.schema.json +1459 -0
  33. package/schemas/public/http/v1/panel.schema.json +963 -0
  34. package/schemas/public/http/v1/policy-body.schema.json +1376 -0
  35. package/schemas/public/http/v1/schema.json +30 -0
  36. package/schemas/public/http/v1/signed-formats.schema.json +748 -0
  37. package/schemas/public/http/v1/workflow.schema.json +715 -0
  38. package/schemas/public/proto/arcforges/catalog/v1/catalog.proto +204 -0
  39. package/schemas/public/proto/arcforges/events/v1/events.proto +14 -0
  40. package/schemas/public/proto/arcforges/foundation/v1/foundation.proto +384 -0
  41. package/schemas/public/proto/arcforges/hello/v1/hello.proto +23 -0
  42. package/schemas/public/proto/arcforges/publicapi/v1/chat.proto +1507 -0
  43. package/schemas/public/proto/arcforges/publicapi/v1/commerce.proto +542 -0
  44. package/schemas/public/proto/arcforges/publicapi/v1/content.proto +774 -0
  45. package/schemas/public/proto/arcforges/publicapi/v1/descriptors.proto +27 -0
  46. package/schemas/public/proto/arcforges/publicapi/v1/inprocess-values.proto +134 -0
  47. package/schemas/public/proto/arcforges/publicapi/v1/sync.proto +459 -0
  48. package/schemas/public/proto/arcforges/publicapi/v1/transfer.proto +190 -0
  49. package/source.json +41 -10
@@ -0,0 +1,204 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ syntax = "proto3";
3
+ package arcforges.catalog.v1;
4
+ option csharp_namespace = "ArcForges.Contracts.Catalog.V1";
5
+ option java_package = "io.github.arcforges.contracts.catalog.v1";
6
+ option java_multiple_files = true;
7
+ option java_outer_classname = "CatalogProto";
8
+ import "arcforges/foundation/v1/foundation.proto";
9
+
10
+ // Registry04 package catalog. Operator reviews and revocations are a separate service.
11
+ service CatalogService {
12
+ rpc Search(CatalogServiceSearchRequest) returns (CatalogServiceSearchResponse);
13
+ rpc GetPackage(CatalogServiceGetPackageRequest) returns (CatalogServiceGetPackageResponse);
14
+ rpc ListVersions(CatalogServiceListVersionsRequest) returns (CatalogServiceListVersionsResponse);
15
+ rpc RegisterPublisher(CatalogServiceRegisterPublisherRequest) returns (CatalogServiceRegisterPublisherResponse);
16
+ rpc VerifyPublisher(CatalogServiceVerifyPublisherRequest) returns (CatalogServiceVerifyPublisherResponse);
17
+ rpc SubmitVersion(CatalogServiceSubmitVersionRequest) returns (CatalogServiceSubmitVersionResponse);
18
+ rpc GetSubmission(CatalogServiceGetSubmissionRequest) returns (CatalogServiceGetSubmissionResponse);
19
+ }
20
+
21
+ // Only owner projections may include the challenge. DNS and ownership checks are server responsibilities.
22
+ message PublisherView {
23
+ arcforges.foundation.v1.Id publisher_id = 1 [json_name = "publisherId"];
24
+ optional string domain = 2 [json_name = "domain"];
25
+ optional string state = 3 [json_name = "state"];
26
+ optional string dns_name = 4 [json_name = "dnsName"];
27
+ optional string challenge = 5 [json_name = "challenge"];
28
+ arcforges.foundation.v1.Instant expires_at = 6 [json_name = "expiresAt"];
29
+ arcforges.foundation.v1.Revision revision = 7 [json_name = "revision"];
30
+ }
31
+ message CatalogPackageView {
32
+ optional string package_id = 1 [json_name = "packageId"];
33
+ arcforges.foundation.v1.Id publisher_id = 2 [json_name = "publisherId"];
34
+ optional string name = 3 [json_name = "name"];
35
+ optional string summary = 4 [json_name = "summary"];
36
+ optional string kind = 5 [json_name = "kind"];
37
+ optional string latest_version = 6 [json_name = "latestVersion"];
38
+ arcforges.foundation.v1.Revision revision = 7 [json_name = "revision"];
39
+ }
40
+ message CatalogVersionView {
41
+ optional string package_id = 1 [json_name = "packageId"];
42
+ optional string version = 2 [json_name = "version"];
43
+ arcforges.foundation.v1.ResourceVersionRef archive = 3 [json_name = "archive"];
44
+ optional string digest = 4 [json_name = "digest"];
45
+ optional string manifest_hash = 5 [json_name = "manifestHash"];
46
+ optional string state = 6 [json_name = "state"];
47
+ arcforges.foundation.v1.Instant published_at = 7 [json_name = "publishedAt"];
48
+ arcforges.foundation.v1.Revision revision = 8 [json_name = "revision"];
49
+ }
50
+ message CatalogSubmissionView {
51
+ arcforges.foundation.v1.Id submission_id = 1 [json_name = "submissionId"];
52
+ CatalogVersionView version = 2 [json_name = "version"];
53
+ optional string reason = 3 [json_name = "reason"];
54
+ arcforges.foundation.v1.Revision revision = 4 [json_name = "revision"];
55
+ }
56
+ // Operator-only decisions; zero is never a known mutation value.
57
+ enum CatalogReviewDecision {
58
+ CATALOG_REVIEW_DECISION_UNSPECIFIED = 0;
59
+ CATALOG_REVIEW_DECISION_APPROVE = 1;
60
+ CATALOG_REVIEW_DECISION_REJECT = 2;
61
+ }
62
+ message CatalogServiceSearchRequest {
63
+ arcforges.foundation.v1.RequestMeta meta = 1;
64
+ reserved 2 to 9;
65
+ optional string query = 10;
66
+ optional string kind = 11;
67
+ arcforges.foundation.v1.PageRequest page = 12;
68
+ }
69
+ message CatalogServiceSearchValue {
70
+ repeated CatalogPackageView items = 10;
71
+ arcforges.foundation.v1.PageState page = 11;
72
+ }
73
+ message CatalogServiceSearchResponse {
74
+ arcforges.foundation.v1.ResponseMeta meta = 1;
75
+ oneof outcome {
76
+ CatalogServiceSearchValue value = 2;
77
+ arcforges.foundation.v1.ArcError error = 3;
78
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
79
+ }
80
+
81
+ reserved 5 to 9;
82
+ }
83
+
84
+ message CatalogServiceGetPackageRequest {
85
+ arcforges.foundation.v1.RequestMeta meta = 1;
86
+ reserved 2 to 9;
87
+ optional string package_id = 10 [json_name = "packageId"];
88
+ }
89
+ message CatalogServiceGetPackageValue {
90
+ CatalogPackageView package = 10;
91
+ }
92
+ message CatalogServiceGetPackageResponse {
93
+ arcforges.foundation.v1.ResponseMeta meta = 1;
94
+ oneof outcome {
95
+ CatalogServiceGetPackageValue value = 2;
96
+ arcforges.foundation.v1.ArcError error = 3;
97
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
98
+ }
99
+
100
+ reserved 5 to 9;
101
+ }
102
+
103
+ message CatalogServiceListVersionsRequest {
104
+ arcforges.foundation.v1.RequestMeta meta = 1;
105
+ reserved 2 to 9;
106
+ optional string package_id = 10 [json_name = "packageId"];
107
+ arcforges.foundation.v1.PageRequest page = 11;
108
+ }
109
+ message CatalogServiceListVersionsValue {
110
+ repeated CatalogVersionView items = 10;
111
+ arcforges.foundation.v1.PageState page = 11;
112
+ }
113
+ message CatalogServiceListVersionsResponse {
114
+ arcforges.foundation.v1.ResponseMeta meta = 1;
115
+ oneof outcome {
116
+ CatalogServiceListVersionsValue value = 2;
117
+ arcforges.foundation.v1.ArcError error = 3;
118
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
119
+ }
120
+
121
+ reserved 5 to 9;
122
+ }
123
+
124
+ message CatalogServiceRegisterPublisherRequest {
125
+ arcforges.foundation.v1.RequestMeta meta = 1;
126
+ reserved 2 to 9;
127
+ arcforges.foundation.v1.Id publisher_id = 10 [json_name = "publisherId"];
128
+ optional string domain = 11;
129
+ }
130
+ message CatalogServiceRegisterPublisherValue {
131
+ PublisherView publisher = 10;
132
+ }
133
+ message CatalogServiceRegisterPublisherResponse {
134
+ arcforges.foundation.v1.ResponseMeta meta = 1;
135
+ oneof outcome {
136
+ CatalogServiceRegisterPublisherValue value = 2;
137
+ arcforges.foundation.v1.ArcError error = 3;
138
+
139
+ }
140
+ reserved 4;
141
+ reserved 5 to 9;
142
+ }
143
+
144
+ message CatalogServiceVerifyPublisherRequest {
145
+ arcforges.foundation.v1.RequestMeta meta = 1;
146
+ reserved 2 to 9;
147
+ arcforges.foundation.v1.Id publisher_id = 10 [json_name = "publisherId"];
148
+ }
149
+ message CatalogServiceVerifyPublisherValue {
150
+ PublisherView publisher = 10;
151
+ }
152
+ message CatalogServiceVerifyPublisherResponse {
153
+ arcforges.foundation.v1.ResponseMeta meta = 1;
154
+ oneof outcome {
155
+ CatalogServiceVerifyPublisherValue value = 2;
156
+ arcforges.foundation.v1.ArcError error = 3;
157
+
158
+ }
159
+ reserved 4;
160
+ reserved 5 to 9;
161
+ }
162
+
163
+ message CatalogServiceSubmitVersionRequest {
164
+ arcforges.foundation.v1.RequestMeta meta = 1;
165
+ reserved 2 to 9;
166
+ arcforges.foundation.v1.Id submission_id = 10 [json_name = "submissionId"];
167
+ arcforges.foundation.v1.Id publisher_id = 11 [json_name = "publisherId"];
168
+ optional string package_id = 12 [json_name = "packageId"];
169
+ optional string version = 13;
170
+ arcforges.foundation.v1.ResourceVersionRef archive = 14;
171
+ optional string manifest_hash = 15 [json_name = "manifestHash"];
172
+ }
173
+ message CatalogServiceSubmitVersionValue {
174
+ CatalogSubmissionView submission = 10;
175
+ }
176
+ message CatalogServiceSubmitVersionResponse {
177
+ arcforges.foundation.v1.ResponseMeta meta = 1;
178
+ oneof outcome {
179
+ CatalogServiceSubmitVersionValue value = 2;
180
+ arcforges.foundation.v1.ArcError error = 3;
181
+
182
+ }
183
+ reserved 4;
184
+ reserved 5 to 9;
185
+ }
186
+
187
+ message CatalogServiceGetSubmissionRequest {
188
+ arcforges.foundation.v1.RequestMeta meta = 1;
189
+ reserved 2 to 9;
190
+ arcforges.foundation.v1.Id submission_id = 10 [json_name = "submissionId"];
191
+ }
192
+ message CatalogServiceGetSubmissionValue {
193
+ CatalogSubmissionView submission = 10;
194
+ }
195
+ message CatalogServiceGetSubmissionResponse {
196
+ arcforges.foundation.v1.ResponseMeta meta = 1;
197
+ oneof outcome {
198
+ CatalogServiceGetSubmissionValue value = 2;
199
+ arcforges.foundation.v1.ArcError error = 3;
200
+ arcforges.foundation.v1.EncodedBodyRef encoded_body = 4 [json_name = "encodedBody"];
201
+ }
202
+
203
+ reserved 5 to 9;
204
+ }
@@ -0,0 +1,14 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ syntax = "proto3";
3
+
4
+ package arcforges.events.v1;
5
+
6
+ option csharp_namespace = "ArcForges.Contracts.Events.V1";
7
+ option java_package = "io.github.arcforges.contracts.events.v1";
8
+ option java_multiple_files = true;
9
+ option java_outer_classname = "EventsProto";
10
+
11
+ // The complete entitlement.changed hint payload; not the full Event envelope.
12
+ message EntitlementChanged {
13
+ optional int64 entitlement_version = 1 [json_name = "entitlementVersion"];
14
+ }
@@ -0,0 +1,384 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ syntax = "proto3";
3
+
4
+ package arcforges.foundation.v1;
5
+
6
+ option csharp_namespace = "ArcForges.Contracts.Foundation.V1";
7
+ option java_package = "io.github.arcforges.contracts.foundation.v1";
8
+ option java_multiple_files = true;
9
+ option java_outer_classname = "FoundationProto";
10
+
11
+ // Registry04 descriptors describe compiled bindings; they never grant authority.
12
+ enum ToolLocality {
13
+ TOOL_LOCALITY_UNSPECIFIED = 0;
14
+ TOOL_LOCALITY_CLOUD = 1;
15
+ TOOL_LOCALITY_DEVICE = 2;
16
+ }
17
+ enum ExecutionLocus {
18
+ EXECUTION_LOCUS_UNSPECIFIED = 0;
19
+ EXECUTION_LOCUS_CLOUD = 1;
20
+ EXECUTION_LOCUS_DEVICE = 2;
21
+ EXECUTION_LOCUS_EITHER = 3;
22
+ }
23
+ enum EffectKind {
24
+ EFFECT_KIND_UNSPECIFIED = 0;
25
+ EFFECT_KIND_PURE_READ = 1;
26
+ EFFECT_KIND_LOCAL_WRITE = 2;
27
+ EFFECT_KIND_CLOUD_WRITE = 3;
28
+ EFFECT_KIND_EXTERNAL_WRITE = 4;
29
+ }
30
+ enum BindingProtocol {
31
+ BINDING_PROTOCOL_UNSPECIFIED = 0;
32
+ BINDING_PROTOCOL_PUBLIC_GRPC = 1;
33
+ BINDING_PROTOCOL_LOCAL_GRPC = 2;
34
+ BINDING_PROTOCOL_EXTENSION_GRPC = 3;
35
+ BINDING_PROTOCOL_PROVIDER_HTTP = 4;
36
+ BINDING_PROTOCOL_MACHINE_TOOL = 5;
37
+ BINDING_PROTOCOL_IN_PROCESS = 6;
38
+ }
39
+ enum InstanceHealth {
40
+ INSTANCE_HEALTH_UNSPECIFIED = 0;
41
+ INSTANCE_HEALTH_READY = 1;
42
+ INSTANCE_HEALTH_BUSY = 2;
43
+ INSTANCE_HEALTH_DEGRADED = 3;
44
+ INSTANCE_HEALTH_DRAINING = 4;
45
+ }
46
+ message OperationBinding {
47
+ optional string operation_id = 1 [json_name = "operationId"];
48
+ optional BindingProtocol protocol = 2 [json_name = "protocol"];
49
+ optional string service = 3 [json_name = "service"];
50
+ optional string method = 4 [json_name = "method"];
51
+ optional uint32 contract_major = 5 [json_name = "contractMajor"];
52
+ }
53
+ message CancelSupport {
54
+ optional bool accepted = 1 [json_name = "accepted"];
55
+ optional bool before_dispatch_only = 2 [json_name = "beforeDispatchOnly"];
56
+ optional string status_operation = 3 [json_name = "statusOperation"];
57
+ }
58
+ message CapabilityLimits {
59
+ optional uint64 max_input_bytes = 1 [json_name = "maxInputBytes"];
60
+ optional uint64 max_output_bytes = 2 [json_name = "maxOutputBytes"];
61
+ optional uint64 max_duration_ms = 3 [json_name = "maxDurationMs"];
62
+ optional uint32 max_concurrency = 4 [json_name = "maxConcurrency"];
63
+ optional uint32 max_context_items = 5 [json_name = "maxContextItems"];
64
+ }
65
+ message CapabilityDescriptor {
66
+ optional string key = 1 [json_name = "key"];
67
+ optional string version = 2 [json_name = "version"];
68
+ optional string request_schema = 3 [json_name = "requestSchema"];
69
+ optional string response_schema = 4 [json_name = "responseSchema"];
70
+ optional string risk = 5 [json_name = "risk"];
71
+ optional ToolLocality locality = 6 [json_name = "locality"];
72
+ optional string idempotency = 7 [json_name = "idempotency"];
73
+ optional string status_operation = 8 [json_name = "statusOperation"];
74
+ repeated string reads = 9 [json_name = "reads"];
75
+ repeated string writes = 10 [json_name = "writes"];
76
+ optional bool exclusive = 11 [json_name = "exclusive"];
77
+ optional string egress = 12 [json_name = "egress"];
78
+ optional string approval = 13 [json_name = "approval"];
79
+ OperationBinding binding = 14 [json_name = "binding"];
80
+ optional ExecutionLocus execution = 15 [json_name = "execution"];
81
+ optional EffectKind effect = 16 [json_name = "effect"];
82
+ optional RetryMode retry = 17 [json_name = "retry"];
83
+ CancelSupport cancel = 18 [json_name = "cancel"];
84
+ OperationBinding preview = 19 [json_name = "preview"];
85
+ OperationBinding compensation = 20 [json_name = "compensation"];
86
+ optional bool checkpoint = 21 [json_name = "checkpoint"];
87
+ CapabilityLimits limits = 22 [json_name = "limits"];
88
+ repeated string accepted_context = 23 [json_name = "acceptedContext"];
89
+ }
90
+ message ActionDescriptor {
91
+ optional string key = 1 [json_name = "key"];
92
+ optional string title_key = 2 [json_name = "titleKey"];
93
+ optional string description_key = 3 [json_name = "descriptionKey"];
94
+ repeated string accepted_context = 4 [json_name = "acceptedContext"];
95
+ repeated string capabilities = 5 [json_name = "capabilities"];
96
+ optional string availability_rule = 6 [json_name = "availabilityRule"];
97
+ }
98
+ message ContractVersion {
99
+ optional string key = 1 [json_name = "key"];
100
+ optional string version = 2 [json_name = "version"];
101
+ }
102
+ message ContractCompatibility {
103
+ ContractVersion contract = 1 [json_name = "contract"];
104
+ optional string min_readable = 2 [json_name = "minReadable"];
105
+ optional string min_writable = 3 [json_name = "minWritable"];
106
+ }
107
+ message FeatureSet { repeated string features = 1 [json_name = "features"]; }
108
+ message CompatibilityDescriptor {
109
+ ContractCompatibility foundation = 1 [json_name = "foundation"];
110
+ repeated ContractCompatibility contracts = 2 [json_name = "contracts"];
111
+ repeated ContractCompatibility capabilities = 3 [json_name = "capabilities"];
112
+ FeatureSet features = 4 [json_name = "features"];
113
+ }
114
+ message InstanceReadiness {
115
+ optional bool accepts_work = 1 [json_name = "acceptsWork"];
116
+ repeated string reasons = 2 [json_name = "reasons"];
117
+ }
118
+ message HealthSnapshot {
119
+ Id instance_id = 1 [json_name = "instanceId"];
120
+ Instant observed_at = 2 [json_name = "observedAt"];
121
+ optional InstanceHealth health = 3 [json_name = "health"];
122
+ InstanceReadiness readiness = 4 [json_name = "readiness"];
123
+ }
124
+ message EncodedBodyRef {
125
+ ResourceVersionRef resource = 1 [json_name = "resource"];
126
+ optional string message_type = 2 [json_name = "messageType"];
127
+ optional string descriptor_hash = 3 [json_name = "descriptorHash"];
128
+ optional uint64 byte_length = 4 [json_name = "byteLength"];
129
+ optional string snapshot_token = 5 [json_name = "snapshotToken"];
130
+ Instant expires_at = 6 [json_name = "expiresAt"];
131
+ }
132
+
133
+ // Complete selected registry04 records; shape constraints are owned beside this schema.
134
+ message Id { optional bytes value = 1 [json_name = "value"]; }
135
+ message Revision { optional int64 value = 1 [json_name = "value"]; }
136
+
137
+ message NativeContentRev { optional uint64 value = 1 [json_name = "value"]; }
138
+ message Instant {
139
+ optional sint64 unix_seconds = 1 [json_name = "unixSeconds"];
140
+ optional uint32 nanos = 2 [json_name = "nanos"];
141
+ }
142
+ message Decimal { optional string value = 1 [json_name = "value"]; }
143
+ message AggregateRef {
144
+ optional string kind = 1 [json_name = "kind"];
145
+ Id id = 2 [json_name = "id"];
146
+ }
147
+ message VersionedRef {
148
+ AggregateRef root = 1 [json_name = "root"];
149
+ Revision revision = 2 [json_name = "revision"];
150
+ optional string sha256 = 3 [json_name = "sha256"];
151
+ }
152
+ enum EffectCertainty {
153
+ EFFECT_CERTAINTY_UNSPECIFIED = 0;
154
+ EFFECT_CERTAINTY_DID_NOT_HAPPEN = 1;
155
+ EFFECT_CERTAINTY_HAPPENED = 2;
156
+ EFFECT_CERTAINTY_UNKNOWN = 3;
157
+ }
158
+ enum RetryMode {
159
+ RETRY_MODE_UNSPECIFIED = 0;
160
+ RETRY_MODE_NEVER = 1;
161
+ RETRY_MODE_SAME_COMMAND = 2;
162
+ RETRY_MODE_AFTER_TIME = 3;
163
+ RETRY_MODE_RECONCILE = 4;
164
+ }
165
+ enum ErrorCategory {
166
+ ERROR_CATEGORY_UNSPECIFIED = 0;
167
+ ERROR_CATEGORY_VALIDATION = 1;
168
+ ERROR_CATEGORY_AUTHENTICATION = 2;
169
+ ERROR_CATEGORY_AUTHORIZATION = 3;
170
+ ERROR_CATEGORY_ENTITLEMENT = 4;
171
+ ERROR_CATEGORY_CONFLICT = 5;
172
+ ERROR_CATEGORY_STATE = 6;
173
+ ERROR_CATEGORY_RESOURCE = 7;
174
+ ERROR_CATEGORY_EXECUTION = 8;
175
+ ERROR_CATEGORY_INTERNAL = 9;
176
+ }
177
+ message Receipt {
178
+ Id command_id = 1 [json_name = "commandId"];
179
+ Revision result_revision = 2 [json_name = "resultRevision"];
180
+ optional EffectCertainty effect = 3 [json_name = "effect"];
181
+ }
182
+ message ApplicationScope {
183
+ optional string product_id = 1 [json_name = "productId"];
184
+ Id installation_id = 2 [json_name = "installationId"];
185
+ }
186
+ message RequestMeta {
187
+ Id command_id = 1 [json_name = "commandId"];
188
+ Revision expected_rev = 2 [json_name = "expectedRev"];
189
+ Id correlation_id = 3 [json_name = "correlationId"];
190
+ Id workspace_id = 4 [json_name = "workspaceId"];
191
+ NativeContentRev expected_native = 6 [json_name = "expectedNative"];
192
+ optional uint64 recovery_generation = 7 [json_name = "recoveryGeneration"];
193
+ ApplicationScope application_scope = 8 [json_name = "applicationScope"];
194
+
195
+ reserved 5;
196
+ reserved "expected_local";
197
+ }
198
+ message ResponseMeta {
199
+ Revision result_rev = 1 [json_name = "resultRev"];
200
+ optional int64 entitlement_version = 2 [json_name = "entitlementVersion"];
201
+ repeated string warnings = 3 [json_name = "warnings"];
202
+ Id correlation_id = 4 [json_name = "correlationId"];
203
+ optional uint64 recovery_generation = 5 [json_name = "recoveryGeneration"];
204
+ }
205
+ message ArcError {
206
+ optional string code = 1 [json_name = "code"];
207
+ optional ErrorCategory category = 2 [json_name = "category"];
208
+ optional string message_key = 3 [json_name = "messageKey"];
209
+ RetryAdvice retry = 4 [json_name = "retry"];
210
+ optional EffectCertainty effect = 5 [json_name = "effect"];
211
+ Id correlation_id = 6 [json_name = "correlationId"];
212
+ ErrorDetails details = 7 [json_name = "details"];
213
+ }
214
+ message RetryAdvice {
215
+ optional RetryMode mode = 1 [json_name = "mode"];
216
+ Instant retry_at = 2 [json_name = "retryAt"];
217
+ optional string reconciliation_operation = 3 [json_name = "reconciliationOperation"];
218
+ }
219
+ message ErrorDetails {
220
+ oneof detail {
221
+ RevisionConflict revision = 1 [json_name = "revision"];
222
+ LimitFailure limit = 2 [json_name = "limit"];
223
+ VersionFailure upgrade = 3 [json_name = "upgrade"];
224
+ StateFailure state = 4 [json_name = "state"];
225
+ }
226
+ }
227
+ message RevisionConflict {
228
+ Revision expected = 1 [json_name = "expected"];
229
+ Revision actual = 2 [json_name = "actual"];
230
+ Id conflict_id = 3 [json_name = "conflictId"];
231
+ }
232
+ message LimitFailure {
233
+ optional string limit_name = 1 [json_name = "limitName"];
234
+ Decimal maximum = 2 [json_name = "maximum"];
235
+ Decimal available = 3 [json_name = "available"];
236
+ Instant recovery_at = 4 [json_name = "recoveryAt"];
237
+ }
238
+ message VersionFailure {
239
+ optional string min_readable = 1 [json_name = "minReadable"];
240
+ optional string min_writable = 2 [json_name = "minWritable"];
241
+ optional string received = 3 [json_name = "received"];
242
+ }
243
+ message StateFailure {
244
+ optional string state = 1 [json_name = "state"];
245
+ optional string reason = 2 [json_name = "reason"];
246
+ AggregateRef resource = 3 [json_name = "resource"];
247
+ NativeContentRev native = 5 [json_name = "native"];
248
+
249
+ reserved 4;
250
+ reserved "local";
251
+ }
252
+
253
+ enum ResourceAvailability {
254
+ RESOURCE_AVAILABILITY_UNSPECIFIED = 0;
255
+ RESOURCE_AVAILABILITY_ALWAYS_KEEP = 1;
256
+ RESOURCE_AVAILABILITY_AVAILABLE_OFFLINE = 2;
257
+ RESOURCE_AVAILABILITY_ON_DEMAND = 3;
258
+ RESOURCE_AVAILABILITY_CLOUD_ONLY = 4;
259
+ RESOURCE_AVAILABILITY_MISSING_EXTERNAL = 5;
260
+ }
261
+
262
+ // registry04: ActorChain; complete selected WP03.01 projection.
263
+ message ActorChain {
264
+ Id initiator = 1 [json_name = "initiator"];
265
+ Id owner = 2 [json_name = "owner"];
266
+ optional string actor_kind = 3 [json_name = "actorKind"];
267
+ Id delegation_id = 4 [json_name = "delegationId"];
268
+ Id device_id = 5 [json_name = "deviceId"];
269
+ }
270
+
271
+ // registry04: ArtifactRef; complete selected WP03.01 projection.
272
+ message ArtifactRef {
273
+ Id artifact_id = 1 [json_name = "artifactId"];
274
+ optional string kind = 2 [json_name = "kind"];
275
+ AggregateRef owner = 3 [json_name = "owner"];
276
+ ResourceRef resource = 4 [json_name = "resource"];
277
+ Id job_id = 5 [json_name = "jobId"];
278
+ ContentOrigin origin = 6 [json_name = "origin"];
279
+ Id producing_task_id = 7 [json_name = "producingTaskId"];
280
+ Id producing_run_id = 8 [json_name = "producingRunId"];
281
+ ActorChain actor = 9 [json_name = "actor"];
282
+ Instant created_at = 10 [json_name = "createdAt"];
283
+ optional string availability = 11 [json_name = "availability"];
284
+ repeated VersionedRef provenance = 12 [json_name = "provenance"];
285
+ }
286
+
287
+ // registry04: BlobRef; complete selected WP03.01 projection.
288
+ message BlobRef {
289
+ Id blob_id = 1 [json_name = "blobId"];
290
+ optional string content_hash = 2 [json_name = "contentHash"];
291
+ optional uint64 size_bytes = 3 [json_name = "sizeBytes"];
292
+ }
293
+
294
+ // registry04: ByteRange; complete selected WP03.01 projection.
295
+ message ByteRange {
296
+ optional uint64 offset = 1 [json_name = "offset"];
297
+ optional uint64 length = 2 [json_name = "length"];
298
+ }
299
+
300
+ // registry04: ContentOrigin; complete selected WP03.01 projection.
301
+ message ContentOrigin {
302
+ optional string profile = 1 [json_name = "profile"];
303
+ Id origin_id = 2 [json_name = "originId"];
304
+ Id content_unit_id = 3 [json_name = "contentUnitId"];
305
+ repeated string kinds = 4 [json_name = "kinds"];
306
+ optional string payload_sha256 = 5 [json_name = "payloadSha256"];
307
+ optional string producer_kind = 6 [json_name = "producerKind"];
308
+ Instant created_at = 7 [json_name = "createdAt"];
309
+ repeated Id parent_origin_ids = 8 [json_name = "parentOriginIds"];
310
+ optional uint32 omitted_parent_count = 9 [json_name = "omittedParentCount"];
311
+ }
312
+
313
+ // registry04: MediaRange; complete selected WP03.01 projection.
314
+ message MediaRange {
315
+ MediaTime start = 1 [json_name = "start"];
316
+ MediaTime duration = 2 [json_name = "duration"];
317
+ }
318
+
319
+ // registry04: MediaTime; complete selected WP03.01 projection.
320
+ message MediaTime {
321
+ optional sint64 ticks = 1 [json_name = "ticks"];
322
+ Rational rate = 2 [json_name = "rate"];
323
+ }
324
+
325
+ // registry04: PageRequest; complete selected WP03.01 projection.
326
+ message PageRequest {
327
+ optional string cursor = 1 [json_name = "cursor"];
328
+ optional int32 limit = 2 [json_name = "limit"];
329
+ }
330
+
331
+ // registry04: PageState; complete selected WP03.01 projection.
332
+ message PageState {
333
+ optional string next_cursor = 1 [json_name = "nextCursor"];
334
+ optional bool has_more = 2 [json_name = "hasMore"];
335
+ }
336
+
337
+ // registry04: Rational; complete selected WP03.01 projection.
338
+ message Rational {
339
+ optional sint64 numerator = 1 [json_name = "numerator"];
340
+ optional uint64 denominator = 2 [json_name = "denominator"];
341
+ }
342
+
343
+ // registry04: ResourceRef; complete selected WP03.01 projection.
344
+ message ResourceRef {
345
+ Id realm_id = 1 [json_name = "realmId"];
346
+ Id workspace_id = 2 [json_name = "workspaceId"];
347
+ optional string owner_app_id = 3 [json_name = "ownerAppId"];
348
+ optional string resource_kind = 4 [json_name = "resourceKind"];
349
+ Id resource_id = 5 [json_name = "resourceId"];
350
+ optional string display_hint = 6 [json_name = "displayHint"];
351
+ optional ResourceAvailability availability = 7 [json_name = "availability"];
352
+ Id holding_device_id = 8 [json_name = "holdingDeviceId"];
353
+ }
354
+
355
+ // registry04: ResourceVersionRef; complete selected WP03.01 projection.
356
+ message ResourceVersionRef {
357
+ ResourceRef resource = 1 [json_name = "resource"];
358
+ optional string content_hash = 5 [json_name = "contentHash"];
359
+ BlobRef blob = 6 [json_name = "blob"];
360
+ oneof revision {
361
+ Revision cloud = 2 [json_name = "cloud"];
362
+ NativeContentRev native = 3 [json_name = "native"];
363
+ }
364
+
365
+ reserved 4;
366
+ reserved "local";
367
+ }
368
+
369
+ // registry04: TimeRangeUtc; complete selected WP03.01 projection.
370
+ message TimeRangeUtc {
371
+ Instant from = 1 [json_name = "from"];
372
+ Instant until = 2 [json_name = "until"];
373
+ }
374
+
375
+ // registry04: opaque object-facade route, bound to the current session and
376
+ // allowed verb. This public value never contains storage credentials.
377
+ message TransferTicket {
378
+ Id ticket_id = 1 [json_name = "ticketId"];
379
+ optional string url = 2 [json_name = "url"];
380
+ Instant expires_at = 3 [json_name = "expiresAt"];
381
+ Id resource_id = 4 [json_name = "resourceId"];
382
+ ByteRange range = 5 [json_name = "range"];
383
+ optional uint32 max_part_bytes = 6 [json_name = "maxPartBytes"];
384
+ }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ syntax = "proto3";
3
+
4
+ package arcforges.hello.v1;
5
+
6
+ option csharp_namespace = "ArcForges.Contracts.Hello.V1";
7
+ option java_package = "io.github.arcforges.contracts.hello.v1";
8
+ option java_multiple_files = true;
9
+ option java_outer_classname = "HelloProto";
10
+
11
+ // Packaging and transport demonstration, not a product API.
12
+ service HelloService {
13
+ // Returns "Hello, <name>!". An empty name returns INVALID_ARGUMENT.
14
+ rpc SayHello(SayHelloRequest) returns (SayHelloResponse);
15
+ }
16
+
17
+ message SayHelloRequest {
18
+ string name = 1;
19
+ }
20
+
21
+ message SayHelloResponse {
22
+ string message = 1;
23
+ }