commit 8d815e67859a953240549083056c6756fa2627e0 Author: Bas Kloosterman Date: Wed Sep 14 13:07:40 2022 +0200 Initial commit diff --git a/okap.proto b/okap.proto new file mode 100644 index 0000000..bfc6ca6 --- /dev/null +++ b/okap.proto @@ -0,0 +1,189 @@ +syntax = "proto3"; +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 configuration = 2; +} + +// Errors is meta met bovenliggende GRPC error INVALID_ARGUMENT err +// Enum met door ons gedefinieerde codes + +// enum ErrorCode { +// +//} + +// message Error { +// ErrorCode code = 1; +// string message = 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 config = 2; + ProtocolAuthConfiguration auth = 3; +} + +message ConfigureCallbackRequest { + string service = 1; + bool enabled = 2; + CallbackConfig fetch = 3; + CallbackConfig push = 4; +} + +message ConfigureCallbackResponse { + string service = 1; + bool enabled = 2; + CallbackConfig fetch = 3; + CallbackConfig push = 4; +} + +message ListServicesRequest { +} + +message ServiceConfiguration { + string service = 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 extra = 12; +} + +message PatientRegistrationData { + PatientMeta subject = 1; + bool registered = 2; + map callbackProtocolMeta = 3; +} + +message PatientRegistrationError { + int32 index = 1; + int32 code = 2; + string message = 3; +} + +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; +}