From c41b781fb2a98ab2617e100e5d804c100792ada6 Mon Sep 17 00:00:00 2001 From: BMItter <Berndus@gmx.de> Date: Mon, 2 Nov 2020 20:44:39 +0100 Subject: [PATCH] temporary Params from current ENFv2 Draft - neccassary to work, but will be overwritten later --- .../internal/v2/app_config_android.proto | 50 +++++++++++++++ .../main/proto/internal/v2/app_features.proto | 11 ++++ .../v2/exposure_detection_parameters.proto | 14 +++++ .../internal/v2/key_download_parameters.proto | 31 +++++++++ .../v2/risk_calculation_parameters.proto | 63 +++++++++++++++++++ .../proto/internal/v2/semantic_version.proto | 8 +++ 6 files changed, 177 insertions(+) create mode 100644 Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_android.proto create mode 100644 Server-Protocol-Buffer/src/main/proto/internal/v2/app_features.proto create mode 100644 Server-Protocol-Buffer/src/main/proto/internal/v2/exposure_detection_parameters.proto create mode 100644 Server-Protocol-Buffer/src/main/proto/internal/v2/key_download_parameters.proto create mode 100644 Server-Protocol-Buffer/src/main/proto/internal/v2/risk_calculation_parameters.proto create mode 100644 Server-Protocol-Buffer/src/main/proto/internal/v2/semantic_version.proto diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_android.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_android.proto new file mode 100644 index 000000000..6f6d21c22 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/app_config_android.proto @@ -0,0 +1,50 @@ +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.v2; +import "internal/v2/app_features.proto"; +import "internal/v2/risk_calculation_parameters.proto"; +import "internal/v2/key_download_parameters.proto"; +import "internal/v2/exposure_detection_parameters.proto"; + +message ApplicationConfigurationAndroid { + + // Android apps are versioned by Version Code and not by Semantic Versioning + int64 minVersionCode = 1; + int64 latestVersionCode = 2; + + AppFeatures appFeatures = 3; + + repeated string supportedCountries = 4; + + KeyDownloadParametersAndroid keyDownloadParameters = 5; + + ExposureDetectionParametersAndroid exposureDetectionParameters = 6; + + RiskCalculationParameters riskCalculationParameters = 7; + + DiagnosisKeysDataMapping diagnosisKeysDataMapping = 8; + DailySummariesConfig dailySummariesConfig = 9; +} + +message DiagnosisKeysDataMapping { + + map<int32, int32> daysSinceOnsetToInfectiousness = 1; + + int32 infectiousnessWhenDaysSinceOnsetMissing = 2; + + int32 reportTypeWhenMissing = 3; +} + +message DailySummariesConfig { + + repeated int32 attenuationBucketThresholdDb = 1; + + repeated double attenuationBucketWeights = 2; + + int32 daysSinceExposureThreshold = 3; + + map<int32, double> infectiousnessWeights = 4; + + double minimumWindowScore = 5; + + map<int32, double> reportTypeWeights = 6; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/app_features.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/app_features.proto new file mode 100644 index 000000000..f53be3812 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/app_features.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.v2; + +message AppFeatures { + repeated AppFeature appFeatures = 1; +} + +message AppFeature { + string label = 1; + int32 value = 2; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/exposure_detection_parameters.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/exposure_detection_parameters.proto new file mode 100644 index 000000000..754bd769a --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/exposure_detection_parameters.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.v2; + +message ExpsureDetectionParametersIOS { + + int32 maxExposureDetectionsPerInterval = 1; +} + +message ExposureDetectionParametersAndroid { + + int32 maxExposureDetectionsPerInterval = 1; + + int32 overallTimeoutInSeconds = 2; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/key_download_parameters.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/key_download_parameters.proto new file mode 100644 index 000000000..4cf97b977 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/key_download_parameters.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.v2; + +message KeyDownloadParametersIOS { + + repeated DayPackageMetadata cachedDayPackagesToUpdateOnETagMismatch = 1; + repeated HourPackageMetadata cachedHourPackagesToUpdateOnETagMismatch = 2; +} + +message KeyDownloadParametersAndroid { + + repeated DayPackageMetadata cachedDayPackagesToUpdateOnETagMismatch = 1; + repeated HourPackageMetadata cachedHourPackagesToUpdateOnETagMismatch = 2; + + int32 downloadTimeoutInSeconds = 3; + + int32 overallTimeoutInSeconds = 4; +} + +message DayPackageMetadata { + string region = 1; + string date = 2; + string etag = 3; +} + +message HourPackageMetadata { + string region = 1; + string date = 2; + int32 hour = 3; + string etag = 4; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/risk_calculation_parameters.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/risk_calculation_parameters.proto new file mode 100644 index 000000000..2618917a0 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/risk_calculation_parameters.proto @@ -0,0 +1,63 @@ +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.v2; + +message RiskCalculationParameters { + + repeated MinutesAtAttenuationFilter minutesAtAttenuationFilters = 1; + + repeated TrlFilter trlFilters = 2; + + repeated MinutesAtAttenuationWeight minutesAtAttenuationWeights = 3; + + repeated NormalizedTimeToRiskLevelMapping normalizedTimePerEWToRiskLevelMapping = 4; + + repeated NormalizedTimeToRiskLevelMapping normalizedTimePerDayToRiskLevelMapping = 5; + + TransmissionRiskLevelEncoding trlEncoding = 6; + + double transmissionRiskLevelMultiplier = 7; +} + +message Range { + // The lower limit of the range + double min = 1; + // True if `min` is not part of the range, false otherwise + bool minExclusive = 2; + // The upper limit of the range + double max = 3; + // True if `max` is not part of the range, false otherwise + bool maxExclusive = 4; +} + +message MinutesAtAttenuationFilter { + Range attenuationRange = 1; + Range dropIfMinutesInRange = 2; +} + +message TrlFilter { + Range dropIfTrlInRange = 1; +} + +message MinutesAtAttenuationWeight { + Range attenuationRange = 1; + double weight = 2; +} + +message NormalizedTimeToRiskLevelMapping { + Range normalizedTimeRange = 1; + enum RiskLevel { + UNSPECIFIED = 0; + LOW = 1; + HIGH = 2; + } + RiskLevel riskLevel = 2; +} + +message TransmissionRiskLevelEncoding { + int32 infectiousnessOffsetStandard = 1; + int32 infectiousnessOffsetHigh = 2; + int32 reportTypeOffsetRecursive = 3; + int32 reportTypeOffsetSelfReport = 4; + int32 reportTypeOffsetConfirmedClinicalDiagnosis = 5; + int32 reportTypeOffsetConfirmedTest = 6; +} \ No newline at end of file diff --git a/Server-Protocol-Buffer/src/main/proto/internal/v2/semantic_version.proto b/Server-Protocol-Buffer/src/main/proto/internal/v2/semantic_version.proto new file mode 100644 index 000000000..a5950c844 --- /dev/null +++ b/Server-Protocol-Buffer/src/main/proto/internal/v2/semantic_version.proto @@ -0,0 +1,8 @@ +syntax = "proto3"; +package de.rki.coronawarnapp.server.protocols.internal.v2; + +message SemanticVersion { + uint32 major = 1; + uint32 minor = 2; + uint32 patch = 3; +} \ No newline at end of file -- GitLab