Compare commits
3 Commits
75d9ba198c
...
3a080d84a0
Author | SHA1 | Date |
---|---|---|
Bas Kloosterman | 3a080d84a0 | 2 years ago |
Bas Kloosterman | 63ab85bdc3 | 2 years ago |
Bas Kloosterman | 5bc626687b | 2 years ago |
@ -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,34 @@ |
||||
syntax = "proto3"; |
||||
import "google/protobuf/struct.proto"; |
||||
option go_package = "whiteboxsystems.nl/okapi"; |
||||
|
||||
message Event { |
||||
uint64 timestamp = 1; |
||||
string type = 2; |
||||
string serviceId = 3; |
||||
string patientId = 4; |
||||
google.protobuf.Struct payload = 5; |
||||
} |
||||
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; |
||||
} |
@ -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 callbackProtocolData = 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,78 @@ |
||||
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; |
||||
} |
||||
|
||||
message ListServiceConfigurationsRequest {} |
||||
|
||||
message ListServiceConfigurationsResponse { |
||||
repeated ServiceConfiguration configurations = 2; |
||||
} |
@ -0,0 +1,26 @@ |
||||
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 ListServiceConfigurations (ListServiceConfigurationsRequest) returns (ListServiceConfigurationsResponse) {} |
||||
|
||||
rpc UpdatePatientRegistration (UpdatePatientRegistrationRequest) returns (UpdatePatientRegistrationResponse) {} |
||||
rpc ListPatientRegistration (ListPatientRegistrationRequest) returns (ListPatientRegistrationResponse) {} |
||||
|
||||
// Events |
||||
rpc GetEvents (GetEventsRequest) returns (GetEventsResponse) {} |
||||
rpc GetEventsStream (GetEventsStreamRequest) returns (stream Event) {} |
||||
} |
||||
|
Loading…
Reference in new issue