121 lines
2.8 KiB
Protocol Buffer
121 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package as411.resolver.v1;
|
|
|
|
option go_package = "github.com/as4-411/api/proto/resolver/v1;resolverv1";
|
|
|
|
// ResolverService provides resolution of identifiers to routing directives.
|
|
// Aligned with REST /v1/resolve and /v1/bulk-resolve; see OpenAPI and route-directive.schema.json.
|
|
service ResolverService {
|
|
rpc Resolve(ResolveRequest) returns (ResolveResponse);
|
|
rpc BulkResolve(BulkResolveRequest) returns (BulkResolveResponse);
|
|
}
|
|
|
|
message ResolveRequest {
|
|
repeated IdentifierInput identifiers = 1;
|
|
ServiceContext service_context = 2;
|
|
ResolveConstraints constraints = 3;
|
|
string tenant = 4;
|
|
repeated string desired_protocols = 5;
|
|
}
|
|
|
|
message IdentifierInput {
|
|
string type = 1; // e.g. as4.partyId, e164, peppol.participantId
|
|
string value = 2;
|
|
string scope = 3; // e.g. BIC, LEI
|
|
}
|
|
|
|
message ServiceContext {
|
|
string service = 1; // e.g. iso20022.fi
|
|
string action = 2; // e.g. credit.transfer
|
|
string process = 3;
|
|
string document_type = 4;
|
|
}
|
|
|
|
message ResolveConstraints {
|
|
string trust_domain = 1;
|
|
string region = 2;
|
|
string jurisdiction = 3;
|
|
int32 max_results = 4;
|
|
string network_brand = 5;
|
|
string tenant_contract = 6;
|
|
string connectivity_group = 7;
|
|
string required_capability = 8;
|
|
string message_type = 9;
|
|
}
|
|
|
|
message ResolveResponse {
|
|
RouteDirective primary = 1;
|
|
repeated DirectiveWithReason alternates = 2;
|
|
repeated RouteDirective directives = 3;
|
|
int32 ttl = 4;
|
|
string trace_id = 5;
|
|
string correlation_id = 6;
|
|
FailurePolicy failure_policy = 7;
|
|
int32 negative_cache_ttl = 8;
|
|
repeated ResolutionTraceEntry resolution_trace = 9;
|
|
}
|
|
|
|
message RouteDirective {
|
|
string target_protocol = 1;
|
|
string target_address = 2;
|
|
string transport_profile = 3; // e.g. as4.fifi.iso20022.v1
|
|
RouteDirectiveSecurity security = 4;
|
|
RouteDirectiveServiceContext service_context = 5;
|
|
RouteDirectiveQos qos = 6;
|
|
int32 ttl_seconds = 7;
|
|
repeated EvidenceItem evidence = 8;
|
|
}
|
|
|
|
message EvidenceItem {
|
|
string source = 1;
|
|
string freshness = 2; // date-time
|
|
double confidence = 3;
|
|
string signature = 4;
|
|
}
|
|
|
|
message RouteDirectiveSecurity {
|
|
bool sign_required = 1;
|
|
bool encrypt_required = 2;
|
|
repeated string key_refs = 3;
|
|
map<string, string> algorithms = 4;
|
|
}
|
|
|
|
message RouteDirectiveServiceContext {
|
|
string service = 1;
|
|
string action = 2;
|
|
string service_indicator = 3;
|
|
}
|
|
|
|
message RouteDirectiveQos {
|
|
int32 retries = 1;
|
|
bool receipts_required = 2;
|
|
string ordering = 3;
|
|
}
|
|
|
|
message DirectiveWithReason {
|
|
RouteDirective directive = 1;
|
|
string reason = 2;
|
|
}
|
|
|
|
message FailurePolicy {
|
|
bool retry = 1;
|
|
string backoff = 2;
|
|
bool circuit_break = 3;
|
|
}
|
|
|
|
message ResolutionTraceEntry {
|
|
string source = 1;
|
|
int32 directive_index = 2;
|
|
string message = 3;
|
|
}
|
|
|
|
message BulkResolveRequest {
|
|
repeated ResolveRequest requests = 1;
|
|
}
|
|
|
|
message BulkResolveResponse {
|
|
repeated ResolveResponse results = 1;
|
|
string trace_id = 2;
|
|
}
|