diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/CheckInDatabaseData.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/CheckInDatabaseData.kt
index 2797a59ee206d546406dc7f7e460bb2839dfe756..32f3d6094ea2ed0c44d94baa5f7afd7059bddef4 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/CheckInDatabaseData.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/CheckInDatabaseData.kt
@@ -1,7 +1,7 @@
 package de.rki.coronawarnapp.eventregistration.storage
 
-import de.rki.coronawarnapp.eventregistration.events.TraceLocation
 import de.rki.coronawarnapp.eventregistration.storage.entity.TraceLocationCheckInEntity
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass
 import org.joda.time.Instant
 
 object CheckInDatabaseData {
@@ -9,7 +9,7 @@ object CheckInDatabaseData {
     val testCheckIn = TraceLocationCheckInEntity(
         guid = "testGuid1",
         version = 1,
-        type = TraceLocation.Type.TEMPORARY_OTHER.value,
+        type = TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER.number,
         description = "testDescription1",
         address = "testAddress1",
         traceLocationStart = Instant.parse("2021-01-01T12:00:00.000Z"),
@@ -25,7 +25,7 @@ object CheckInDatabaseData {
     val testCheckInWithoutCheckOutTime = TraceLocationCheckInEntity(
         guid = "testGuid2",
         version = 1,
-        type = TraceLocation.Type.TEMPORARY_OTHER.value,
+        type = TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER.number,
         description = "testDescription2",
         address = "testAddress2",
         traceLocationStart = null,
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/TraceLocationDatabaseData.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/TraceLocationDatabaseData.kt
index 3891b6bdfd0e2d397f6208a0381a67b9ae360cce..8386bf1db927397aa9f0de44607d24edd63f8b7d 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/TraceLocationDatabaseData.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/TraceLocationDatabaseData.kt
@@ -1,7 +1,8 @@
 package de.rki.coronawarnapp.eventregistration.storage
 
-import de.rki.coronawarnapp.eventregistration.events.TraceLocation
 import de.rki.coronawarnapp.eventregistration.storage.entity.TraceLocationEntity
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER
 import org.joda.time.Instant
 
 object TraceLocationDatabaseData {
@@ -9,7 +10,7 @@ object TraceLocationDatabaseData {
     val testTraceLocation1 = TraceLocationEntity(
         guid = "TestGuid1",
         version = 1,
-        type = TraceLocation.Type.TEMPORARY_OTHER,
+        type = LOCATION_TYPE_TEMPORARY_OTHER,
         description = "TestTraceLocation1",
         address = "TestTraceLocationAddress1",
         startDate = Instant.parse("2021-01-01T12:00:00.000Z"),
@@ -21,7 +22,7 @@ object TraceLocationDatabaseData {
     val testTraceLocation2 = TraceLocationEntity(
         guid = "TestGuid2",
         version = 1,
-        type = TraceLocation.Type.PERMANENT_OTHER,
+        type = LOCATION_TYPE_PERMANENT_OTHER,
         description = "TestTraceLocation2",
         address = "TestTraceLocationAddress2",
         startDate = null,
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/eventregistration/ui/createevent/CreateEventTestViewModel.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/eventregistration/ui/createevent/CreateEventTestViewModel.kt
index 3668a469297caae2efb4ecde3da605eb74d23d8e..69ad6c5879e0293b1f5b46ff85e67f8249e5b35f 100644
--- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/eventregistration/ui/createevent/CreateEventTestViewModel.kt
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/eventregistration/ui/createevent/CreateEventTestViewModel.kt
@@ -6,6 +6,7 @@ import dagger.assisted.AssistedInject
 import de.rki.coronawarnapp.eventregistration.events.DefaultTraceLocation
 import de.rki.coronawarnapp.eventregistration.events.TraceLocation
 import de.rki.coronawarnapp.eventregistration.storage.repo.TraceLocationRepository
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass
 import de.rki.coronawarnapp.util.TimeAndDateExtensions.seconds
 import de.rki.coronawarnapp.util.coroutine.DispatcherProvider
 import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
@@ -47,7 +48,8 @@ class CreateEventTestViewModel @AssistedInject constructor(
             val endTimeStampSeconds = endDate?.toInstant()?.seconds ?: 0
 
             val traceLocationType =
-                if (type == "Event") TraceLocation.Type.TEMPORARY_OTHER else TraceLocation.Type.PERMANENT_OTHER
+                if (type == "Event") TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER
+                else TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER
 
             val traceLocation = DefaultTraceLocation(
                 UUID.randomUUID().toString(), // will be provided by the server when the endpoint is ready
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocation.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocation.kt
index f792ebf9ea52339be007226803ba26598b307ce8..53ef445b2c13687ce84671945100b8ce9320aad5 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocation.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocation.kt
@@ -1,13 +1,14 @@
 package de.rki.coronawarnapp.eventregistration.events
 
 import de.rki.coronawarnapp.eventregistration.storage.entity.TraceLocationEntity
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass
 import org.joda.time.Instant
 
 const val TRACE_LOCATION_VERSION = 1
 
 data class DefaultTraceLocation(
     override val guid: String,
-    override val type: TraceLocation.Type,
+    override val type: TraceLocationOuterClass.TraceLocationType,
     override val description: String,
     override val address: String,
     override val startDate: Instant?,
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/TraceLocation.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/TraceLocation.kt
index 1316ea7996b67e139cf70ffe404017bf91c1e23c..3eac8e92ce12020549651f9c1c39de050e020d17 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/TraceLocation.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/TraceLocation.kt
@@ -1,21 +1,16 @@
 package de.rki.coronawarnapp.eventregistration.events
 
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass
 import org.joda.time.Instant
 
 interface TraceLocation {
     val guid: String
     val version: Int
-    val type: Type
+    val type: TraceLocationOuterClass.TraceLocationType
     val description: String
     val address: String
     val startDate: Instant?
     val endDate: Instant?
     val defaultCheckInLengthInMinutes: Int?
     val signature: String
-
-    enum class Type(val value: Int) {
-        UNSPECIFIED(0),
-        PERMANENT_OTHER(1),
-        TEMPORARY_OTHER(2)
-    }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConverters.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConverters.kt
index 89546329e0ea2ac472ad58100bb89d733ec818dd..2f547dd177d8e3988401930858dd01c073ac11f1 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConverters.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConverters.kt
@@ -1,13 +1,14 @@
 package de.rki.coronawarnapp.eventregistration.storage.entity
 
 import androidx.room.TypeConverter
-import de.rki.coronawarnapp.eventregistration.events.TraceLocation
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass
 
 class TraceLocationConverters {
 
     @TypeConverter
-    fun toTraceLocationType(value: Int) = enumValues<TraceLocation.Type>().single { it.value == value }
+    fun toTraceLocationType(value: Int): TraceLocationOuterClass.TraceLocationType =
+        TraceLocationOuterClass.TraceLocationType.forNumber(value)!!
 
     @TypeConverter
-    fun fromTraceLocationType(type: TraceLocation.Type) = type.value
+    fun fromTraceLocationType(type: TraceLocationOuterClass.TraceLocationType): Int = type.number
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntity.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntity.kt
index c681d3a92acf6c123ba70af40d17a86447ae178b..052257f6bc75ebab5cccdb82ed8bd4d1f01b6de5 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntity.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntity.kt
@@ -4,6 +4,7 @@ import androidx.room.ColumnInfo
 import androidx.room.Entity
 import androidx.room.PrimaryKey
 import de.rki.coronawarnapp.eventregistration.events.TraceLocation
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass
 import org.joda.time.Instant
 
 @Entity(tableName = "traceLocations")
@@ -11,7 +12,7 @@ data class TraceLocationEntity(
 
     @PrimaryKey @ColumnInfo(name = "guid") val guid: String,
     @ColumnInfo(name = "version") val version: Int,
-    @ColumnInfo(name = "type") val type: TraceLocation.Type,
+    @ColumnInfo(name = "type") val type: TraceLocationOuterClass.TraceLocationType,
     @ColumnInfo(name = "description") val description: String,
     @ColumnInfo(name = "address") val address: String,
     @ColumnInfo(name = "startDate") val startDate: Instant?,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocationKtTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocationKtTest.kt
index 4b624abcb3af1eed4f04e9e9fca798b4243d013d..9afe5214bd2b2105da2dc2ff5e00a5f4212293f2 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocationKtTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocationKtTest.kt
@@ -1,6 +1,8 @@
 package de.rki.coronawarnapp.eventregistration.events
 
 import de.rki.coronawarnapp.eventregistration.storage.entity.TraceLocationEntity
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER
 import io.kotest.matchers.shouldBe
 import org.joda.time.Instant
 import org.junit.jupiter.api.Test
@@ -13,7 +15,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() {
         TraceLocationEntity(
             guid = "TestGuid",
             version = 1,
-            type = TraceLocation.Type.TEMPORARY_OTHER,
+            type = LOCATION_TYPE_PERMANENT_OTHER,
             description = "TestTraceLocation",
             address = "TestTraceLocationAddress",
             startDate = Instant.parse("2021-01-01T12:00:00.000Z"),
@@ -23,7 +25,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() {
         ).toTraceLocation() shouldBe DefaultTraceLocation(
             guid = "TestGuid",
             version = 1,
-            type = TraceLocation.Type.TEMPORARY_OTHER,
+            type = LOCATION_TYPE_PERMANENT_OTHER,
             description = "TestTraceLocation",
             address = "TestTraceLocationAddress",
             startDate = Instant.parse("2021-01-01T12:00:00.000Z"),
@@ -38,7 +40,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() {
         TraceLocationEntity(
             guid = "TestGuid",
             version = 1,
-            type = TraceLocation.Type.PERMANENT_OTHER,
+            type = LOCATION_TYPE_PERMANENT_OTHER,
             description = "TestTraceLocation",
             address = "TestTraceLocationAddress",
             startDate = null,
@@ -48,7 +50,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() {
         ).toTraceLocation() shouldBe DefaultTraceLocation(
             guid = "TestGuid",
             version = 1,
-            type = TraceLocation.Type.PERMANENT_OTHER,
+            type = LOCATION_TYPE_PERMANENT_OTHER,
             description = "TestTraceLocation",
             address = "TestTraceLocationAddress",
             startDate = null,
@@ -64,7 +66,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() {
             TraceLocationEntity(
                 guid = "TestGuid1",
                 version = 1,
-                type = TraceLocation.Type.TEMPORARY_OTHER,
+                type = LOCATION_TYPE_TEMPORARY_OTHER,
                 description = "TestTraceLocation1",
                 address = "TestTraceLocationAddress1",
                 startDate = Instant.parse("2021-01-01T12:00:00.000Z"),
@@ -75,7 +77,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() {
             TraceLocationEntity(
                 guid = "TestGuid2",
                 version = 1,
-                type = TraceLocation.Type.PERMANENT_OTHER,
+                type = LOCATION_TYPE_PERMANENT_OTHER,
                 description = "TestTraceLocation2",
                 address = "TestTraceLocationAddress2",
                 startDate = null,
@@ -87,7 +89,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() {
             DefaultTraceLocation(
                 guid = "TestGuid1",
                 version = 1,
-                type = TraceLocation.Type.TEMPORARY_OTHER,
+                type = LOCATION_TYPE_TEMPORARY_OTHER,
                 description = "TestTraceLocation1",
                 address = "TestTraceLocationAddress1",
                 startDate = Instant.parse("2021-01-01T12:00:00.000Z"),
@@ -98,7 +100,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() {
             DefaultTraceLocation(
                 guid = "TestGuid2",
                 version = 1,
-                type = TraceLocation.Type.PERMANENT_OTHER,
+                type = LOCATION_TYPE_PERMANENT_OTHER,
                 description = "TestTraceLocation2",
                 address = "TestTraceLocationAddress2",
                 startDate = null,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConvertersTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConvertersTest.kt
index 24260f9a924bae6c6602020ddf8eeb42149b3b8f..203b7762c3423f2564a5e5c32bdb8046cc95d622 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConvertersTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConvertersTest.kt
@@ -1,6 +1,6 @@
 package de.rki.coronawarnapp.eventregistration.storage.entity
 
-import de.rki.coronawarnapp.eventregistration.events.TraceLocation
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass
 import io.kotest.matchers.shouldBe
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -12,18 +12,18 @@ internal class TraceLocationConvertersTest : BaseTest() {
     @Test
     fun `toTraceLocationType() should convert different integer values to correct TraceLocation Types`() {
         with(converter) {
-            toTraceLocationType(0) shouldBe TraceLocation.Type.UNSPECIFIED
-            toTraceLocationType(1) shouldBe TraceLocation.Type.PERMANENT_OTHER
-            toTraceLocationType(2) shouldBe TraceLocation.Type.TEMPORARY_OTHER
+            toTraceLocationType(0) shouldBe TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_UNSPECIFIED
+            toTraceLocationType(1) shouldBe TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER
+            toTraceLocationType(2) shouldBe TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER
         }
     }
 
     @Test
     fun `fromTraceLocationType() should convert TraceLocation Types to correct integer values`() {
         with(converter) {
-            fromTraceLocationType(TraceLocation.Type.UNSPECIFIED) shouldBe 0
-            fromTraceLocationType(TraceLocation.Type.PERMANENT_OTHER) shouldBe 1
-            fromTraceLocationType(TraceLocation.Type.TEMPORARY_OTHER) shouldBe 2
+            fromTraceLocationType(TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_UNSPECIFIED) shouldBe 0
+            fromTraceLocationType(TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER) shouldBe 1
+            fromTraceLocationType(TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER) shouldBe 2
         }
     }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntityTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntityTest.kt
index df49201e4cd8a9d5d4bcacce5e02e345f94c3462..6ab4817ec29e9e95ca0cc85cd0c59186f2265448 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntityTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntityTest.kt
@@ -1,7 +1,8 @@
 package de.rki.coronawarnapp.eventregistration.storage.entity
 
 import de.rki.coronawarnapp.eventregistration.events.DefaultTraceLocation
-import de.rki.coronawarnapp.eventregistration.events.TraceLocation
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER
+import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER
 import io.kotest.matchers.shouldBe
 import org.joda.time.Instant
 import org.junit.jupiter.api.Test
@@ -14,7 +15,7 @@ internal class TraceLocationEntityTest : BaseTest() {
         DefaultTraceLocation(
             guid = "TestGuid",
             version = 1,
-            type = TraceLocation.Type.TEMPORARY_OTHER,
+            type = LOCATION_TYPE_TEMPORARY_OTHER,
             description = "TestTraceLocation",
             address = "TestTraceLocationAddress",
             startDate = Instant.parse("2021-01-01T12:00:00.000Z"),
@@ -24,7 +25,7 @@ internal class TraceLocationEntityTest : BaseTest() {
         ).toTraceLocationEntity() shouldBe TraceLocationEntity(
             guid = "TestGuid",
             version = 1,
-            type = TraceLocation.Type.TEMPORARY_OTHER,
+            type = LOCATION_TYPE_TEMPORARY_OTHER,
             description = "TestTraceLocation",
             address = "TestTraceLocationAddress",
             startDate = Instant.parse("2021-01-01T12:00:00.000Z"),
@@ -39,7 +40,7 @@ internal class TraceLocationEntityTest : BaseTest() {
         DefaultTraceLocation(
             guid = "TestGuid",
             version = 1,
-            type = TraceLocation.Type.PERMANENT_OTHER,
+            type = LOCATION_TYPE_PERMANENT_OTHER,
             description = "TestTraceLocation",
             address = "TestTraceLocationAddress",
             startDate = null,
@@ -49,7 +50,7 @@ internal class TraceLocationEntityTest : BaseTest() {
         ).toTraceLocationEntity() shouldBe TraceLocationEntity(
             guid = "TestGuid",
             version = 1,
-            type = TraceLocation.Type.PERMANENT_OTHER,
+            type = LOCATION_TYPE_PERMANENT_OTHER,
             description = "TestTraceLocation",
             address = "TestTraceLocationAddress",
             startDate = null,