parent
75d9ba198c
commit
5bc626687b
@ -1,177 +0,0 @@ |
|||||||
syntax = "proto3"; |
|
||||||
import "okap-errors.proto"; |
|
||||||
option go_package = "whiteboxsystems.nl/okap"; |
|
||||||
|
|
||||||
service OKAP { |
|
||||||
// Onboarding |
|
||||||
rpc GetMetadata (GetMetadataRequest) returns (GetMetadataResponse) {} |
|
||||||
rpc Register (RegisterRequest) returns (RegisterResponse) {} |
|
||||||
rpc CompleteRegistration (CompleteRegistrationRequest) returns (CompleteRegistrationResponse) {} |
|
||||||
|
|
||||||
// Configuration |
|
||||||
rpc ConfigureCallback (ConfigureCallbackRequest) returns (ConfigureCallbackResponse) {} |
|
||||||
rpc ListServices (ListServicesRequest) returns (ListServicesResponse) {} |
|
||||||
|
|
||||||
rpc UpdatePatientRegistration (UpdatePatientRegistrationRequest) returns (UpdatePatientRegistrationResponse) {} |
|
||||||
rpc ListPatientRegistration (ListPatientRegistrationRequest) returns (ListPatientRegistrationResponse) {} |
|
||||||
} |
|
||||||
|
|
||||||
enum XISAuthMethod { |
|
||||||
mTLS = 0; |
|
||||||
BearerToken = 1; |
|
||||||
} |
|
||||||
|
|
||||||
message MTLSConfigurationParams { |
|
||||||
string publicKey = 1; |
|
||||||
} |
|
||||||
|
|
||||||
message BearerTokenConfigurationParams { |
|
||||||
string token = 1; |
|
||||||
} |
|
||||||
|
|
||||||
message XISAuthConfiguration { |
|
||||||
XISAuthMethod method = 1; |
|
||||||
oneof config { |
|
||||||
MTLSConfigurationParams mtlsConfig = 2; |
|
||||||
BearerTokenConfigurationParams apiTokenConfig = 3; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
message ProtocolAuthConfiguration { |
|
||||||
string method = 1; |
|
||||||
map<string, string> configuration = 2; |
|
||||||
} |
|
||||||
|
|
||||||
enum SubscriptionPolicy { |
|
||||||
subnone = 0; |
|
||||||
optin = 1; |
|
||||||
optout = 2; |
|
||||||
} |
|
||||||
|
|
||||||
enum ConsentPolicy { |
|
||||||
consentnone = 0; |
|
||||||
explicit = 1; |
|
||||||
presumed = 2; |
|
||||||
} |
|
||||||
|
|
||||||
message ProtocolDefinition { |
|
||||||
string protocol = 1; |
|
||||||
repeated string authMethods = 2; |
|
||||||
} |
|
||||||
|
|
||||||
message ServiceDefinition { |
|
||||||
string id = 1; |
|
||||||
string name = 2; |
|
||||||
string description = 3; |
|
||||||
SubscriptionPolicy subscriptionPolicy = 4; |
|
||||||
ConsentPolicy consentPolicy = 5; |
|
||||||
repeated ProtocolDefinition fetchProtocols = 6; |
|
||||||
repeated ProtocolDefinition pushProtocols = 7; |
|
||||||
} |
|
||||||
|
|
||||||
message GetMetadataRequest {} |
|
||||||
|
|
||||||
message GetMetadataResponse { |
|
||||||
string supplierFormalName = 1; |
|
||||||
string supplierDisplayName = 2; |
|
||||||
string productName = 3; |
|
||||||
string version = 4; |
|
||||||
} |
|
||||||
|
|
||||||
message RegisterRequest { |
|
||||||
string organisationFormalName = 1; |
|
||||||
string organisationDisplayName = 2; |
|
||||||
string organisationIdentifier = 3; |
|
||||||
string organisationIdentifierType = 4; // Type bijv. AGB, BIG registratie of KvK |
|
||||||
XISAuthConfiguration auth = 5; |
|
||||||
} |
|
||||||
|
|
||||||
message RegisterResponse { |
|
||||||
string reference = 1; |
|
||||||
} |
|
||||||
|
|
||||||
message CompleteRegistrationRequest { |
|
||||||
string reference = 1; |
|
||||||
string registrationToken = 2; |
|
||||||
} |
|
||||||
|
|
||||||
message CompleteRegistrationResponse {} |
|
||||||
|
|
||||||
message CallbackConfig { |
|
||||||
string protocol = 1; |
|
||||||
map<string,string> config = 2; |
|
||||||
ProtocolAuthConfiguration auth = 3; |
|
||||||
} |
|
||||||
|
|
||||||
message ConfigureCallbackRequest { |
|
||||||
string serviceId = 1; |
|
||||||
bool enabled = 2; |
|
||||||
CallbackConfig fetch = 3; |
|
||||||
CallbackConfig push = 4; |
|
||||||
} |
|
||||||
|
|
||||||
message ConfigureCallbackResponse { |
|
||||||
string serviceId = 1; |
|
||||||
bool enabled = 2; |
|
||||||
CallbackConfig fetch = 3; |
|
||||||
CallbackConfig push = 4; |
|
||||||
} |
|
||||||
|
|
||||||
message ListServicesRequest { |
|
||||||
} |
|
||||||
|
|
||||||
message ServiceConfiguration { |
|
||||||
string serviceId = 1; |
|
||||||
bool enabled = 2; |
|
||||||
CallbackConfig fetch = 3; |
|
||||||
CallbackConfig push = 4; |
|
||||||
} |
|
||||||
|
|
||||||
message ListServicesResponse { |
|
||||||
repeated ServiceDefinition availableServices = 1; |
|
||||||
repeated ServiceConfiguration configurations = 2; |
|
||||||
} |
|
||||||
|
|
||||||
message PatientMeta { |
|
||||||
string identifier = 1; |
|
||||||
string identifierType = 2; |
|
||||||
string firstname = 3; |
|
||||||
string surname = 4; |
|
||||||
string birthdate = 5; |
|
||||||
string street = 6; |
|
||||||
string streetNumber = 7; |
|
||||||
string streetNumberExtension = 8; |
|
||||||
string postalCode = 9; |
|
||||||
string city = 10; |
|
||||||
string country = 11; |
|
||||||
map<string, string> extra = 12; |
|
||||||
} |
|
||||||
|
|
||||||
message PatientRegistrationData { |
|
||||||
PatientMeta subject = 1; |
|
||||||
bool registered = 2; |
|
||||||
map<string, string> callbackProtocolMeta = 3; |
|
||||||
} |
|
||||||
|
|
||||||
message PatientRegistrationError { |
|
||||||
int32 index = 1; |
|
||||||
OKAPError error = 2; |
|
||||||
} |
|
||||||
|
|
||||||
message UpdatePatientRegistrationRequest { |
|
||||||
string serviceId = 1; |
|
||||||
repeated PatientRegistrationData PatientRegistrationData = 2; |
|
||||||
bool atomicUpdate = 3; |
|
||||||
} |
|
||||||
|
|
||||||
message UpdatePatientRegistrationResponse { |
|
||||||
repeated PatientRegistrationError errors = 2; |
|
||||||
} |
|
||||||
|
|
||||||
message ListPatientRegistrationRequest { |
|
||||||
string serviceId = 1; |
|
||||||
} |
|
||||||
|
|
||||||
message ListPatientRegistrationResponse { |
|
||||||
repeated PatientRegistrationData PatientRegistrationData = 2; |
|
||||||
} |
|
@ -0,0 +1,65 @@ |
|||||||
|
syntax = "proto3"; |
||||||
|
import "google/protobuf/struct.proto"; |
||||||
|
option go_package = "whiteboxsystems.nl/okapi"; |
||||||
|
|
||||||
|
// idea: |
||||||
|
// query: |
||||||
|
// /:type[/:subtype+]/:service/:patient with wildcard |
||||||
|
|
||||||
|
// Should events payloads be documented by for example json schema? |
||||||
|
message Event { |
||||||
|
uint64 timestamp = 1; |
||||||
|
string type = 2; |
||||||
|
string serviceId = 3; |
||||||
|
string patientId = 4; |
||||||
|
google.protobuf.Struct payload = 5; |
||||||
|
// string schema = 6; // ? do we need a schema in the event itself |
||||||
|
} |
||||||
|
message Query { |
||||||
|
uint64 start = 1; |
||||||
|
uint64 end = 2; |
||||||
|
string type = 3; |
||||||
|
string serviceId = 4; |
||||||
|
string patientId = 5; |
||||||
|
} |
||||||
|
|
||||||
|
message GetEventsRequest { |
||||||
|
int32 page = 2; |
||||||
|
int32 perPage = 3; |
||||||
|
repeated Query query = 4; |
||||||
|
} |
||||||
|
|
||||||
|
message GetEventsResponse { |
||||||
|
int32 page = 2; |
||||||
|
int32 perPage = 3; |
||||||
|
repeated Event events = 4; |
||||||
|
} |
||||||
|
|
||||||
|
message GetEventsStreamRequest { |
||||||
|
repeated Query query = 2; |
||||||
|
} |
||||||
|
|
||||||
|
// enum EventCallbackMethod { |
||||||
|
// none = 0; |
||||||
|
// webhook = 1; |
||||||
|
// } |
||||||
|
|
||||||
|
// message EventCallback { |
||||||
|
// string id = 1; // who fills this |
||||||
|
// bool active = 2; |
||||||
|
// EventCallbackMethod method = 3; |
||||||
|
// repeated Query query = 4; |
||||||
|
// } |
||||||
|
|
||||||
|
// message RegisterEventCallbackRequest { |
||||||
|
// repeated EventCallback callbacks = 1; |
||||||
|
// } |
||||||
|
|
||||||
|
// message RegisterEventCallbackResponse {} |
||||||
|
|
||||||
|
// message ListEventCallbacksRequest { |
||||||
|
// } |
||||||
|
|
||||||
|
// message ListEventCallbacksResponse { |
||||||
|
// repeated EventCallback callbacks = 1; |
||||||
|
// } |
@ -0,0 +1,51 @@ |
|||||||
|
syntax = "proto3"; |
||||||
|
option go_package = "whiteboxsystems.nl/okapi"; |
||||||
|
|
||||||
|
enum XISAuthMethod { |
||||||
|
mTLS = 0; |
||||||
|
BearerToken = 1; |
||||||
|
} |
||||||
|
|
||||||
|
message MTLSConfigurationParams { |
||||||
|
string publicKey = 1; |
||||||
|
} |
||||||
|
|
||||||
|
message BearerTokenConfigurationParams { |
||||||
|
string token = 1; |
||||||
|
} |
||||||
|
|
||||||
|
message XISAuthConfiguration { |
||||||
|
XISAuthMethod method = 1; |
||||||
|
oneof configuration { |
||||||
|
MTLSConfigurationParams mtlsConfiguration = 2; |
||||||
|
BearerTokenConfigurationParams apiTokenConfiguration = 3; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
message GetMetadataRequest {} |
||||||
|
|
||||||
|
message GetMetadataResponse { |
||||||
|
string supplierFormalName = 1; |
||||||
|
string supplierDisplayName = 2; |
||||||
|
string productName = 3; |
||||||
|
string version = 4; |
||||||
|
} |
||||||
|
|
||||||
|
message RegisterRequest { |
||||||
|
string organisationFormalName = 1; |
||||||
|
string organisationDisplayName = 2; |
||||||
|
string organisationIdentifier = 3; |
||||||
|
string organisationIdentifierType = 4; // Type bijv. AGB, BIG registratie of KvK |
||||||
|
XISAuthConfiguration auth = 5; |
||||||
|
} |
||||||
|
|
||||||
|
message RegisterResponse { |
||||||
|
string reference = 1; |
||||||
|
} |
||||||
|
|
||||||
|
message CompleteRegistrationRequest { |
||||||
|
string reference = 1; |
||||||
|
string authorisationToken = 2; |
||||||
|
} |
||||||
|
|
||||||
|
message CompleteRegistrationResponse {} |
@ -0,0 +1,56 @@ |
|||||||
|
syntax = "proto3"; |
||||||
|
import "google/protobuf/struct.proto"; |
||||||
|
import "okapi-errors.proto"; |
||||||
|
option go_package = "whiteboxsystems.nl/okapi"; |
||||||
|
|
||||||
|
message Identifier { |
||||||
|
string type = 1; |
||||||
|
string value = 2; |
||||||
|
} |
||||||
|
|
||||||
|
message PatientRegistrationData { |
||||||
|
PatientMeta subject = 1; |
||||||
|
bool registered = 2; |
||||||
|
string id = 3; |
||||||
|
google.protobuf.Struct callbackProtocolMeta = 4; |
||||||
|
} |
||||||
|
|
||||||
|
message PatientMeta { |
||||||
|
repeated Identifier identifier = 1; |
||||||
|
string firstname = 2; |
||||||
|
string surname = 3; |
||||||
|
string surnamePrefix = 4; |
||||||
|
string birthdate = 5; |
||||||
|
string street = 6; |
||||||
|
string streetNumber = 7; |
||||||
|
string streetNumberExtension = 8; |
||||||
|
string postalCode = 9; |
||||||
|
string city = 10; |
||||||
|
string country = 11; |
||||||
|
google.protobuf.Struct extra = 12; |
||||||
|
} |
||||||
|
|
||||||
|
message PatientRegistrationError { |
||||||
|
int32 index = 1; |
||||||
|
OkAPIError error = 2; |
||||||
|
} |
||||||
|
|
||||||
|
// Probably do this steaming (also)? |
||||||
|
|
||||||
|
message UpdatePatientRegistrationRequest { |
||||||
|
string serviceId = 1; |
||||||
|
repeated PatientRegistrationData PatientRegistrationData = 2; |
||||||
|
bool atomicUpdate = 3; |
||||||
|
} |
||||||
|
|
||||||
|
message UpdatePatientRegistrationResponse { |
||||||
|
repeated PatientRegistrationError errors = 1; |
||||||
|
} |
||||||
|
|
||||||
|
message ListPatientRegistrationRequest { |
||||||
|
string serviceId = 1; |
||||||
|
} |
||||||
|
|
||||||
|
message ListPatientRegistrationResponse { |
||||||
|
repeated PatientRegistrationData PatientRegistrationData = 1; |
||||||
|
} |
@ -0,0 +1,74 @@ |
|||||||
|
syntax = "proto3"; |
||||||
|
import "google/protobuf/struct.proto"; |
||||||
|
option go_package = "whiteboxsystems.nl/okapi"; |
||||||
|
|
||||||
|
// ConfigureCallback |
||||||
|
|
||||||
|
message ProtocolAuthConfiguration { |
||||||
|
string method = 1; |
||||||
|
google.protobuf.Struct configuration = 2; |
||||||
|
} |
||||||
|
|
||||||
|
enum SubscriptionPolicy { |
||||||
|
subnone = 0; |
||||||
|
optin = 1; |
||||||
|
optout = 2; |
||||||
|
} |
||||||
|
|
||||||
|
enum ConsentPolicy { |
||||||
|
consentnone = 0; |
||||||
|
explicit = 1; |
||||||
|
presumed = 2; |
||||||
|
} |
||||||
|
|
||||||
|
message ProtocolDefinition { |
||||||
|
string protocol = 1; |
||||||
|
repeated string authMethods = 2; |
||||||
|
} |
||||||
|
|
||||||
|
message ServiceDefinition { |
||||||
|
string id = 1; |
||||||
|
string name = 2; |
||||||
|
string description = 3; |
||||||
|
SubscriptionPolicy subscriptionPolicy = 4; |
||||||
|
ConsentPolicy consentPolicy = 5; |
||||||
|
repeated ProtocolDefinition fetchProtocols = 6; |
||||||
|
repeated ProtocolDefinition pushProtocols = 7; |
||||||
|
} |
||||||
|
|
||||||
|
message CallbackConfiguration { |
||||||
|
string protocol = 1; |
||||||
|
google.protobuf.Struct configuration = 2; |
||||||
|
ProtocolAuthConfiguration auth = 3; |
||||||
|
} |
||||||
|
|
||||||
|
message ConfigureCallbackRequest { |
||||||
|
string serviceId = 1; |
||||||
|
bool enabled = 2; |
||||||
|
CallbackConfiguration fetch = 3; |
||||||
|
CallbackConfiguration push = 4; |
||||||
|
} |
||||||
|
|
||||||
|
message ConfigureCallbackResponse { |
||||||
|
string serviceId = 1; |
||||||
|
bool enabled = 2; |
||||||
|
CallbackConfiguration fetch = 3; |
||||||
|
CallbackConfiguration push = 4; |
||||||
|
} |
||||||
|
|
||||||
|
// ListServices |
||||||
|
|
||||||
|
message ServiceConfiguration { |
||||||
|
string serviceId = 1; |
||||||
|
bool enabled = 2; |
||||||
|
CallbackConfiguration fetch = 3; |
||||||
|
CallbackConfiguration push = 4; |
||||||
|
} |
||||||
|
|
||||||
|
message ListServicesRequest { |
||||||
|
} |
||||||
|
|
||||||
|
message ListServicesResponse { |
||||||
|
repeated ServiceDefinition availableServices = 1; |
||||||
|
repeated ServiceConfiguration configurations = 2; |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
syntax = "proto3"; |
||||||
|
import "okapi-onboarding.proto"; |
||||||
|
import "okapi-service-config.proto"; |
||||||
|
import "okapi-patient-registration.proto"; |
||||||
|
import "okapi-events.proto"; |
||||||
|
option go_package = "whiteboxsystems.nl/okapi"; |
||||||
|
|
||||||
|
service OkAPI { |
||||||
|
// Onboarding |
||||||
|
rpc GetMetadata (GetMetadataRequest) returns (GetMetadataResponse) {} |
||||||
|
rpc Register (RegisterRequest) returns (RegisterResponse) {} |
||||||
|
rpc CompleteRegistration (CompleteRegistrationRequest) returns (CompleteRegistrationResponse) {} |
||||||
|
|
||||||
|
// Configuration |
||||||
|
rpc ConfigureCallback (ConfigureCallbackRequest) returns (ConfigureCallbackResponse) {} |
||||||
|
rpc ListServices (ListServicesRequest) returns (ListServicesResponse) {} |
||||||
|
|
||||||
|
rpc UpdatePatientRegistration (UpdatePatientRegistrationRequest) returns (UpdatePatientRegistrationResponse) {} |
||||||
|
rpc ListPatientRegistration (ListPatientRegistrationRequest) returns (ListPatientRegistrationResponse) {} |
||||||
|
|
||||||
|
// Events |
||||||
|
rpc GetEvents (GetEventsRequest) returns (GetEventsResponse) {} |
||||||
|
rpc GetEventsStream (GetEventsStreamRequest) returns (stream Event) {} |
||||||
|
// rpc RegisterEventCallback (RegisterEventCallbackRequest) returns (RegisterEventCallbackResponse) {} |
||||||
|
// rpc ListEventCallbacks (ListEventCallbacksRequest) returns (ListEventCallbacksResponse) {} |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue