diff --git a/openapi-internal.yaml b/openapi-internal.yaml
index 9040e92..155efe4 100644
--- a/openapi-internal.yaml
+++ b/openapi-internal.yaml
@@ -48,12 +48,14 @@ paths:
           schema:
             type: integer
             format: int64
+            minimum: 0
         - name: ValidatedModelVersion
           in: query
           required: true
           schema:
             type: integer
             format: int64
+            minimum: 0
       responses:
         "204":
           description: Successful response
@@ -184,12 +186,14 @@ paths:
           schema:
             type: integer
             format: int64
+            minimum: 0
         - name: ValidatedModelVersion
           in: query
           required: true
           schema:
             type: integer
             format: int64
+            minimum: 0
       responses:
         "204":
           description: Successful response
@@ -254,6 +258,7 @@ paths:
           schema:
             type: integer
             format: int64
+            minimum: 0
       responses:
         "204":
           description: Successful response
@@ -283,11 +288,13 @@ paths:
         schema:
           type: integer
           format: int64
+          minimum: 0
       - name: Policy
         in: query
         schema:
           type: integer
           format: int32
+          minimum: 0
       responses:
         "200":
           description: Successful response
@@ -357,11 +364,13 @@ paths:
         schema:
           type: integer
           format: int32
+          minimum: 0
       - name: ResourceID
         in: query
         schema:
           type: integer
           format: int64
+          minimum: 0
       responses:
         "200":
           description: Successful response
@@ -432,6 +441,7 @@ components:
       schema:
         type: integer
         format: int64
+        minimum: 0
     OperationID:
       name: OperationID
       in: path
@@ -440,6 +450,7 @@ components:
       schema:
         type: integer
         format: int32
+        minimum: 0
     SubmissionID:
       name: SubmissionID
       in: path
@@ -448,6 +459,7 @@ components:
       schema:
         type: integer
         format: int64
+        minimum: 0
     ScriptID:
       name: ScriptID
       in: path
@@ -456,6 +468,7 @@ components:
       schema:
         type: integer
         format: int64
+        minimum: 0
     Page:
       name: Page
       in: query
@@ -482,6 +495,7 @@ components:
         MapfixID:
           type: integer
           format: int64
+          minimum: 0
     SubmissionID:
       required:
       - SubmissionID
@@ -490,6 +504,7 @@ components:
         SubmissionID:
           type: integer
           format: int64
+          minimum: 0
     ScriptID:
       required:
       - ScriptID
@@ -498,6 +513,7 @@ components:
         ScriptID:
           type: integer
           format: int64
+          minimum: 0
     ScriptPolicyID:
       required:
       - ScriptPolicyID
@@ -506,6 +522,7 @@ components:
         ScriptPolicyID:
           type: integer
           format: int64
+          minimum: 0
     MapfixCreate:
       required:
       - OperationID
@@ -521,9 +538,11 @@ components:
         OperationID:
           type: integer
           format: int32
+          minimum: 0
         AssetOwner:
           type: integer
           format: int64
+          minimum: 0
         DisplayName:
           type: string
           maxLength: 128
@@ -533,15 +552,19 @@ components:
         GameID:
           type: integer
           format: int32
+          minimum: 0
         AssetID:
           type: integer
           format: int64
+          minimum: 0
         AssetVersion:
           type: integer
           format: int64
+          minimum: 0
         TargetAssetID:
           type: integer
           format: int64
+          minimum: 0
     SubmissionCreate:
       required:
       - OperationID
@@ -556,9 +579,11 @@ components:
         OperationID:
           type: integer
           format: int32
+          minimum: 0
         AssetOwner:
           type: integer
           format: int64
+          minimum: 0
         DisplayName:
           type: string
           maxLength: 128
@@ -568,12 +593,15 @@ components:
         GameID:
           type: integer
           format: int32
+          minimum: 0
         AssetID:
           type: integer
           format: int64
+          minimum: 0
         AssetVersion:
           type: integer
           format: int64
+          minimum: 0
     Script:
       required:
       - ID
@@ -587,6 +615,7 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         Name:
           type: string
           maxLength: 128
@@ -600,9 +629,11 @@ components:
         ResourceType:
           type: integer
           format: int32
+          minimum: 0
         ResourceID:
           type: integer
           format: int64
+          minimum: 0
     ScriptCreate:
       required:
       - Name
@@ -620,9 +651,11 @@ components:
         ResourceType:
           type: integer
           format: int32
+          minimum: 0
         ResourceID:
           type: integer
           format: int64
+          minimum: 0
     ScriptPolicy:
       required:
       - ID
@@ -634,6 +667,7 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         FromScriptHash:
           type: string
           minLength: 16
@@ -641,9 +675,11 @@ components:
         ToScriptID:
           type: integer
           format: int64
+          minimum: 0
         Policy:
           type: integer
           format: int32
+          minimum: 0
     ScriptPolicyCreate:
       required:
       - FromScriptID
@@ -654,12 +690,15 @@ components:
         FromScriptID:
           type: integer
           format: int64
+          minimum: 0
         ToScriptID:
           type: integer
           format: int64
+          minimum: 0
         Policy:
           type: integer
           format: int32
+          minimum: 0
     Error:
       description: Represents error object
       type: object
@@ -667,6 +706,7 @@ components:
         code:
           type: integer
           format: int64
+          minimum: 0
         message:
           type: string
       required:
diff --git a/openapi.yaml b/openapi.yaml
index 5878d51..ab8b71e 100644
--- a/openapi.yaml
+++ b/openapi.yaml
@@ -105,11 +105,15 @@ paths:
         schema:
           type: integer
           format: int32
+          minimum: 1
+          maximum: 5
       - name: Sort
         in: query
         schema:
           type: integer
           format: int32
+          minimum: 0
+          maximum: 4
       responses:
         "200":
           description: Successful response
@@ -172,11 +176,15 @@ paths:
         schema:
           type: integer
           format: int32
+          minimum: 1
+          maximum: 5
       - name: Sort
         in: query
         schema:
           type: integer
           format: int32
+          minimum: 0
+          maximum: 4
       responses:
         "200":
           description: Successful response
@@ -252,12 +260,14 @@ paths:
           schema:
             type: integer
             format: int64
+            minimum: 0
         - name: ModelVersion
           in: query
           required: true
           schema:
             type: integer
             format: int64
+            minimum: 0
       responses:
         "204":
           description: Successful response
@@ -483,11 +493,15 @@ paths:
         schema:
           type: integer
           format: int32
+          minimum: 1
+          maximum: 5
       - name: Sort
         in: query
         schema:
           type: integer
           format: int32
+          minimum: 0
+          maximum: 4
       responses:
         "200":
           description: Successful response
@@ -563,12 +577,14 @@ paths:
           schema:
             type: integer
             format: int64
+            minimum: 0
         - name: ModelVersion
           in: query
           required: true
           schema:
             type: integer
             format: int64
+            minimum: 0
       responses:
         "204":
           description: Successful response
@@ -794,11 +810,13 @@ paths:
         schema:
           type: integer
           format: int64
+          minimum: 0
       - name: Policy
         in: query
         schema:
           type: integer
           format: int32
+          minimum: 0
       responses:
         "200":
           description: Successful response
@@ -929,11 +947,13 @@ paths:
         schema:
           type: integer
           format: int32
+          minimum: 0
       - name: ResourceID
         in: query
         schema:
           type: integer
           format: int64
+          minimum: 0
       responses:
         "200":
           description: Successful response
@@ -1048,6 +1068,7 @@ components:
       schema:
         type: integer
         format: int64
+        minimum: 0
     MapfixID:
       name: MapfixID
       in: path
@@ -1056,6 +1077,7 @@ components:
       schema:
         type: integer
         format: int64
+        minimum: 0
     OperationID:
       name: OperationID
       in: path
@@ -1064,6 +1086,7 @@ components:
       schema:
         type: integer
         format: int32
+        minimum: 0
     SubmissionID:
       name: SubmissionID
       in: path
@@ -1072,6 +1095,7 @@ components:
       schema:
         type: integer
         format: int64
+        minimum: 0
     ScriptID:
       name: ScriptID
       in: path
@@ -1080,6 +1104,7 @@ components:
       schema:
         type: integer
         format: int64
+        minimum: 0
     ScriptPolicyID:
       name: ScriptPolicyID
       in: path
@@ -1088,6 +1113,7 @@ components:
       schema:
         type: integer
         format: int64
+        minimum: 0
     Page:
       name: Page
       in: query
@@ -1114,6 +1140,7 @@ components:
         OperationID:
           type: integer
           format: int32
+          minimum: 0
     ScriptID:
       required:
       - ScriptID
@@ -1122,6 +1149,7 @@ components:
         ScriptID:
           type: integer
           format: int64
+          minimum: 0
     ScriptPolicyID:
       required:
       - ScriptPolicyID
@@ -1130,6 +1158,7 @@ components:
         ScriptPolicyID:
           type: integer
           format: int64
+          minimum: 0
     Roles:
       required:
       - Roles
@@ -1138,6 +1167,7 @@ components:
         Roles:
           type: integer
           format: int32
+          minimum: 0
     User:
       required:
       - UserID
@@ -1148,6 +1178,7 @@ components:
         UserID:
           type: integer
           format: int64
+          minimum: 0
         Username:
           type: string
           maxLength: 128
@@ -1166,6 +1197,7 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         DisplayName:
           type: string
           maxLength: 128
@@ -1175,9 +1207,11 @@ components:
         GameID:
           type: integer
           format: int32
+          minimum: 0
         Date:
           type: integer
           format: int64
+          minimum: 0
     Mapfix:
       required:
       - ID
@@ -1198,6 +1232,7 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         DisplayName:
           type: string
           maxLength: 128
@@ -1207,29 +1242,37 @@ components:
         GameID:
           type: integer
           format: int32
+          minimum: 0
         CreatedAt:
           type: integer
           format: int64
+          minimum: 0
         UpdatedAt:
           type: integer
           format: int64
+          minimum: 0
         Submitter:
           type: integer
           format: int64
+          minimum: 0
         AssetID:
           type: integer
           format: int64
+          minimum: 0
         AssetVersion:
           type: integer
           format: int64
+          minimum: 0
         Completed:
           type: boolean
         TargetAssetID:
           type: integer
           format: int64
+          minimum: 0
         StatusID:
           type: integer
           format: int32
+          minimum: 0
         StatusMessage:
           type: string
           maxLength: 256
@@ -1242,9 +1285,11 @@ components:
         AssetID:
           type: integer
           format: int64
+          minimum: 0
         TargetAssetID:
           type: integer
           format: int64
+          minimum: 0
     Operation:
       required:
       - OperationID
@@ -1258,15 +1303,19 @@ components:
         OperationID:
           type: integer
           format: int32
+          minimum: 0
         Date:
           type: integer
           format: int64
+          minimum: 0
         Owner:
           type: integer
           format: int64
+          minimum: 0
         Status:
           type: integer
           format: int32
+          minimum: 0
         StatusMessage:
           type: string
           maxLength: 256
@@ -1295,6 +1344,7 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         DisplayName:
           type: string
           maxLength: 128
@@ -1304,35 +1354,45 @@ components:
         GameID:
           type: integer
           format: int32
+          minimum: 0
         CreatedAt:
           type: integer
           format: int64
+          minimum: 0
         UpdatedAt:
           type: integer
           format: int64
+          minimum: 0
         Submitter:
           type: integer
           format: int64
+          minimum: 0
         AssetID:
           type: integer
           format: int64
+          minimum: 0
         AssetVersion:
           type: integer
           format: int64
+          minimum: 0
         ValidatedAssetID:
           type: integer
           format: int64
+          minimum: 0
         ValidatedAssetVersion:
           type: integer
           format: int64
+          minimum: 0
         Completed:
           type: boolean
         UploadedAssetID:
           type: integer
           format: int64
+          minimum: 0
         StatusID:
           type: integer
           format: int32
+          minimum: 0
         StatusMessage:
           type: string
           maxLength: 256
@@ -1344,6 +1404,7 @@ components:
         AssetID:
           type: integer
           format: int64
+          minimum: 0
     ReleaseInfo:
       required:
       - SubmissionID
@@ -1353,6 +1414,7 @@ components:
         SubmissionID:
           type: integer
           format: int64
+          minimum: 0
         Date:
           type: string
           format: date-time
@@ -1369,6 +1431,7 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         Name:
           type: string
           maxLength: 128
@@ -1382,9 +1445,11 @@ components:
         ResourceType:
           type: integer
           format: int32
+          minimum: 0
         ResourceID:
           type: integer
           format: int64
+          minimum: 0
     ScriptCreate:
       required:
       - Name
@@ -1402,9 +1467,11 @@ components:
         ResourceType:
           type: integer
           format: int32
+          minimum: 0
         ResourceID:
           type: integer
           format: int64
+          minimum: 0
     ScriptUpdate:
       required:
       - ID
@@ -1413,6 +1480,7 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         Name:
           type: string
           maxLength: 128
@@ -1422,9 +1490,11 @@ components:
         ResourceType:
           type: integer
           format: int32
+          minimum: 0
         ResourceID:
           type: integer
           format: int64
+          minimum: 0
     ScriptPolicy:
       required:
       - ID
@@ -1436,6 +1506,7 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         FromScriptHash:
           type: string
           minLength: 16
@@ -1443,9 +1514,11 @@ components:
         ToScriptID:
           type: integer
           format: int64
+          minimum: 0
         Policy:
           type: integer
           format: int32
+          minimum: 0
     ScriptPolicyCreate:
       required:
       - FromScriptID
@@ -1456,12 +1529,15 @@ components:
         FromScriptID:
           type: integer
           format: int64
+          minimum: 0
         ToScriptID:
           type: integer
           format: int64
+          minimum: 0
         Policy:
           type: integer
           format: int32
+          minimum: 0
     ScriptPolicyUpdate:
       required:
       - ID
@@ -1470,15 +1546,19 @@ components:
         ID:
           type: integer
           format: int64
+          minimum: 0
         FromScriptID:
           type: integer
           format: int64
+          minimum: 0
         ToScriptID:
           type: integer
           format: int64
+          minimum: 0
         Policy:
           type: integer
           format: int32
+          minimum: 0
     Error:
       description: Represents error object
       type: object
@@ -1486,6 +1566,7 @@ components:
         code:
           type: integer
           format: int64
+          minimum: 0
         message:
           type: string
       required: