pytest-jsonschema-snapshot 0.2.4__tar.gz → 0.2.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/PKG-INFO +2 -2
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/pyproject.toml +1 -1
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/pytest_jsonschema_snapshot/__init__.py +1 -1
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/pytest_jsonschema_snapshot/core.py +27 -12
- pytest_jsonschema_snapshot-0.2.5/pytest_jsonschema_snapshot/tools/__init__.py +3 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/requirements.txt +1 -1
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/TestDataClass.get_data.first.schema.json +15 -15
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/TestDataClass.get_data.schema.json +15 -15
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/array_formats_test.schema.json +11 -11
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/date_test.schema.json +6 -6
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/datetime_test.schema.json +6 -6
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/email_test.schema.json +8 -8
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/get_data.first.schema.json +15 -15
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/get_data.schema.json +15 -15
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/ipv4_test.schema.json +8 -8
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/mixed_formats_test.schema.json +20 -20
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/regular_strings_test.schema.json +9 -9
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/some_schema.schema.json +72 -103
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/strict_email_validation_test.schema.json +5 -5
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/uri_test.schema.json +8 -8
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/uuid_test.schema.json +6 -6
- pytest_jsonschema_snapshot-0.2.5/tt.py +183 -0
- pytest_jsonschema_snapshot-0.2.5/yy.py +138 -0
- pytest_jsonschema_snapshot-0.2.4/pytest_jsonschema_snapshot/tools/__init__.py +0 -4
- pytest_jsonschema_snapshot-0.2.4/pytest_jsonschema_snapshot/tools/genson_addon/__init__.py +0 -3
- pytest_jsonschema_snapshot-0.2.4/pytest_jsonschema_snapshot/tools/genson_addon/format_detector.py +0 -52
- pytest_jsonschema_snapshot-0.2.4/pytest_jsonschema_snapshot/tools/genson_addon/to_schema_converter.py +0 -100
- pytest_jsonschema_snapshot-0.2.4/tests/tools/genson_addon/test_format_safe.py +0 -82
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.flake8 +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/ISSUE_TEMPLATE/documentation_issue.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/PULL_REQUEST_TEMPLATE/general.md +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/actions/build-docs/action.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/workflows/release.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/workflows/reusable-test.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.github/workflows/test.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/.gitignore +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/LICENSE +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/Makefile +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/README.md +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/assets/logo.png +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/docs/source/_static/logo_day.png +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/docs/source/_static/logo_night.png +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/docs/source/basic/quick_start.rst +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/docs/source/conf.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/docs/source/index.rst +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/pytest_jsonschema_snapshot/plugin.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/pytest_jsonschema_snapshot/py.typed +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/pytest_jsonschema_snapshot/stats.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/pytest_jsonschema_snapshot/tools/name_maker.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/reinstall_plugin.sh +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/test_stats.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/tools/test_name_maker.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/TestDataClass.get_data.first.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/TestDataClass.get_data.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/array_formats_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/date_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/datetime_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/email_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/get_data.first.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/get_data.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/ipv4_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/mixed_formats_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/multi_schema_one.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/multi_schema_three.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/multi_schema_two.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/regular_strings_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/some_schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/strict_email_validation_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/uri_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/__snapshots__/uuid_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/test_base.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/test_base_name_callable.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/test_format_detection.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/test_format_validation.py +0 -0
- {pytest_jsonschema_snapshot-0.2.4 → pytest_jsonschema_snapshot-0.2.5}/tests/usage/test_multiple_schema_creation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytest-jsonschema-snapshot
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: Pytest plugin for automatic JSON Schema generation and validation from examples
|
|
5
5
|
Project-URL: Homepage, https://miskler.github.io/pytest-jsonschema-snapshot/basic/quick_start.html
|
|
6
6
|
Project-URL: Repository, https://github.com/Miskler/pytest-jsonschema-snapshot
|
|
@@ -22,7 +22,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
22
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
23
|
Classifier: Topic :: Utilities
|
|
24
24
|
Requires-Python: >=3.10
|
|
25
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: genschema
|
|
26
26
|
Requires-Dist: jsonschema
|
|
27
27
|
Requires-Dist: jsonschema-diff
|
|
28
28
|
Requires-Dist: pathvalidate
|
|
@@ -13,10 +13,17 @@ if TYPE_CHECKING:
|
|
|
13
13
|
from jsonschema_diff import JsonSchemaDiff
|
|
14
14
|
|
|
15
15
|
import pytest
|
|
16
|
+
from genschema import Converter, PseudoArrayHandler
|
|
17
|
+
from genschema.comparators import (
|
|
18
|
+
DeleteElement,
|
|
19
|
+
FormatComparator,
|
|
20
|
+
RequiredComparator,
|
|
21
|
+
SchemaVersionComparator,
|
|
22
|
+
)
|
|
16
23
|
from jsonschema import FormatChecker, ValidationError, validate
|
|
17
24
|
|
|
18
25
|
from .stats import GLOBAL_STATS
|
|
19
|
-
from .tools import
|
|
26
|
+
from .tools import NameMaker
|
|
20
27
|
|
|
21
28
|
|
|
22
29
|
class SchemaShot:
|
|
@@ -54,6 +61,17 @@ class SchemaShot:
|
|
|
54
61
|
self.snapshot_dir: Path = root_dir / snapshot_dir_name
|
|
55
62
|
self.used_schemas: Set[str] = set()
|
|
56
63
|
|
|
64
|
+
self.conv = Converter(
|
|
65
|
+
pseudo_handler=PseudoArrayHandler(),
|
|
66
|
+
base_of="anyOf",
|
|
67
|
+
)
|
|
68
|
+
self.conv.register(FormatComparator())
|
|
69
|
+
self.conv.register(RequiredComparator())
|
|
70
|
+
# self.conv.register(EmptyComparator())
|
|
71
|
+
self.conv.register(SchemaVersionComparator())
|
|
72
|
+
self.conv.register(DeleteElement())
|
|
73
|
+
self.conv.register(DeleteElement("isPseudoArray"))
|
|
74
|
+
|
|
57
75
|
self.logger = logging.getLogger(__name__)
|
|
58
76
|
# добавляем вывод в stderr
|
|
59
77
|
handler = logging.StreamHandler()
|
|
@@ -144,11 +162,9 @@ class SchemaShot:
|
|
|
144
162
|
|
|
145
163
|
real_name = self._process_name(name)
|
|
146
164
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
builder.add_object(data)
|
|
151
|
-
current_schema = builder.to_schema()
|
|
165
|
+
self.conv.clear_data()
|
|
166
|
+
self.conv.add_schema(data)
|
|
167
|
+
current_schema = self.conv.run()
|
|
152
168
|
|
|
153
169
|
real_name, status = self._base_match(data, current_schema, real_name)
|
|
154
170
|
|
|
@@ -234,12 +250,11 @@ class SchemaShot:
|
|
|
234
250
|
schema_updated = False
|
|
235
251
|
|
|
236
252
|
def merge_schemas(old: dict, new: dict) -> dict:
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
return builder.to_schema()
|
|
253
|
+
self.conv.clear_data()
|
|
254
|
+
self.conv.add_schema(old)
|
|
255
|
+
self.conv.add_schema(new)
|
|
256
|
+
result = self.conv.run()
|
|
257
|
+
return result
|
|
243
258
|
|
|
244
259
|
if existing_schema != current_schema: # есть отличия
|
|
245
260
|
if (self.update_mode or self.reset_mode) and self.update_actions.get("update"):
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"необязательная",
|
|
5
|
+
"обязательная",
|
|
6
|
+
"словарь"
|
|
7
|
+
],
|
|
8
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
9
|
"properties": {
|
|
5
|
-
"обязательная": {
|
|
6
|
-
"type": "string"
|
|
7
|
-
},
|
|
8
10
|
"необязательная": {
|
|
9
11
|
"type": "null"
|
|
10
12
|
},
|
|
13
|
+
"обязательная": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
11
16
|
"словарь": {
|
|
12
17
|
"type": "object",
|
|
18
|
+
"required": [
|
|
19
|
+
"ключ",
|
|
20
|
+
"число"
|
|
21
|
+
],
|
|
13
22
|
"properties": {
|
|
14
23
|
"ключ": {
|
|
15
24
|
"type": "string"
|
|
@@ -17,16 +26,7 @@
|
|
|
17
26
|
"число": {
|
|
18
27
|
"type": "integer"
|
|
19
28
|
}
|
|
20
|
-
}
|
|
21
|
-
"required": [
|
|
22
|
-
"ключ",
|
|
23
|
-
"число"
|
|
24
|
-
]
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
|
-
}
|
|
27
|
-
"required": [
|
|
28
|
-
"необязательная",
|
|
29
|
-
"обязательная",
|
|
30
|
-
"словарь"
|
|
31
|
-
]
|
|
31
|
+
}
|
|
32
32
|
}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"необязательная",
|
|
5
|
+
"обязательная",
|
|
6
|
+
"словарь"
|
|
7
|
+
],
|
|
8
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
9
|
"properties": {
|
|
5
|
-
"обязательная": {
|
|
6
|
-
"type": "string"
|
|
7
|
-
},
|
|
8
10
|
"необязательная": {
|
|
9
11
|
"type": "null"
|
|
10
12
|
},
|
|
13
|
+
"обязательная": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
11
16
|
"словарь": {
|
|
12
17
|
"type": "object",
|
|
18
|
+
"required": [
|
|
19
|
+
"ключ",
|
|
20
|
+
"число"
|
|
21
|
+
],
|
|
13
22
|
"properties": {
|
|
14
23
|
"ключ": {
|
|
15
24
|
"type": "string"
|
|
@@ -17,16 +26,7 @@
|
|
|
17
26
|
"число": {
|
|
18
27
|
"type": "integer"
|
|
19
28
|
}
|
|
20
|
-
}
|
|
21
|
-
"required": [
|
|
22
|
-
"ключ",
|
|
23
|
-
"число"
|
|
24
|
-
]
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
|
-
}
|
|
27
|
-
"required": [
|
|
28
|
-
"необязательная",
|
|
29
|
-
"обязательная",
|
|
30
|
-
"словарь"
|
|
31
|
-
]
|
|
31
|
+
}
|
|
32
32
|
}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"dates",
|
|
5
|
+
"emails",
|
|
6
|
+
"uuids"
|
|
7
|
+
],
|
|
8
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
9
|
"properties": {
|
|
5
|
-
"
|
|
10
|
+
"dates": {
|
|
6
11
|
"type": "array",
|
|
7
12
|
"items": {
|
|
8
13
|
"type": "string",
|
|
9
|
-
"format": "
|
|
14
|
+
"format": "date"
|
|
10
15
|
}
|
|
11
16
|
},
|
|
12
|
-
"
|
|
17
|
+
"emails": {
|
|
13
18
|
"type": "array",
|
|
14
19
|
"items": {
|
|
15
20
|
"type": "string",
|
|
16
|
-
"format": "
|
|
21
|
+
"format": "email"
|
|
17
22
|
}
|
|
18
23
|
},
|
|
19
24
|
"uuids": {
|
|
@@ -23,10 +28,5 @@
|
|
|
23
28
|
"format": "uuid"
|
|
24
29
|
}
|
|
25
30
|
}
|
|
26
|
-
}
|
|
27
|
-
"required": [
|
|
28
|
-
"dates",
|
|
29
|
-
"emails",
|
|
30
|
-
"uuids"
|
|
31
|
-
]
|
|
31
|
+
}
|
|
32
32
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"birth_date",
|
|
5
|
+
"registration_date"
|
|
6
|
+
],
|
|
7
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
8
|
"properties": {
|
|
5
9
|
"birth_date": {
|
|
6
10
|
"type": "string",
|
|
@@ -10,9 +14,5 @@
|
|
|
10
14
|
"type": "string",
|
|
11
15
|
"format": "date"
|
|
12
16
|
}
|
|
13
|
-
}
|
|
14
|
-
"required": [
|
|
15
|
-
"birth_date",
|
|
16
|
-
"registration_date"
|
|
17
|
-
]
|
|
17
|
+
}
|
|
18
18
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"created_at",
|
|
5
|
+
"updated_at"
|
|
6
|
+
],
|
|
7
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
8
|
"properties": {
|
|
5
9
|
"created_at": {
|
|
6
10
|
"type": "string",
|
|
@@ -10,9 +14,5 @@
|
|
|
10
14
|
"type": "string",
|
|
11
15
|
"format": "date-time"
|
|
12
16
|
}
|
|
13
|
-
}
|
|
14
|
-
"required": [
|
|
15
|
-
"created_at",
|
|
16
|
-
"updated_at"
|
|
17
|
-
]
|
|
17
|
+
}
|
|
18
18
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"admin_email",
|
|
5
|
+
"user_email"
|
|
6
|
+
],
|
|
7
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
8
|
"properties": {
|
|
5
|
-
"
|
|
9
|
+
"admin_email": {
|
|
6
10
|
"type": "string",
|
|
7
11
|
"format": "email"
|
|
8
12
|
},
|
|
9
|
-
"
|
|
13
|
+
"user_email": {
|
|
10
14
|
"type": "string",
|
|
11
15
|
"format": "email"
|
|
12
16
|
}
|
|
13
|
-
}
|
|
14
|
-
"required": [
|
|
15
|
-
"admin_email",
|
|
16
|
-
"user_email"
|
|
17
|
-
]
|
|
17
|
+
}
|
|
18
18
|
}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"необязательная",
|
|
5
|
+
"обязательная",
|
|
6
|
+
"словарь"
|
|
7
|
+
],
|
|
8
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
9
|
"properties": {
|
|
5
|
-
"обязательная": {
|
|
6
|
-
"type": "string"
|
|
7
|
-
},
|
|
8
10
|
"необязательная": {
|
|
9
11
|
"type": "null"
|
|
10
12
|
},
|
|
13
|
+
"обязательная": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
11
16
|
"словарь": {
|
|
12
17
|
"type": "object",
|
|
18
|
+
"required": [
|
|
19
|
+
"ключ",
|
|
20
|
+
"число"
|
|
21
|
+
],
|
|
13
22
|
"properties": {
|
|
14
23
|
"ключ": {
|
|
15
24
|
"type": "string"
|
|
@@ -17,16 +26,7 @@
|
|
|
17
26
|
"число": {
|
|
18
27
|
"type": "integer"
|
|
19
28
|
}
|
|
20
|
-
}
|
|
21
|
-
"required": [
|
|
22
|
-
"ключ",
|
|
23
|
-
"число"
|
|
24
|
-
]
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
|
-
}
|
|
27
|
-
"required": [
|
|
28
|
-
"необязательная",
|
|
29
|
-
"обязательная",
|
|
30
|
-
"словарь"
|
|
31
|
-
]
|
|
31
|
+
}
|
|
32
32
|
}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"необязательная",
|
|
5
|
+
"обязательная",
|
|
6
|
+
"словарь"
|
|
7
|
+
],
|
|
8
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
9
|
"properties": {
|
|
5
|
-
"обязательная": {
|
|
6
|
-
"type": "string"
|
|
7
|
-
},
|
|
8
10
|
"необязательная": {
|
|
9
11
|
"type": "null"
|
|
10
12
|
},
|
|
13
|
+
"обязательная": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
11
16
|
"словарь": {
|
|
12
17
|
"type": "object",
|
|
18
|
+
"required": [
|
|
19
|
+
"ключ",
|
|
20
|
+
"число"
|
|
21
|
+
],
|
|
13
22
|
"properties": {
|
|
14
23
|
"ключ": {
|
|
15
24
|
"type": "string"
|
|
@@ -17,16 +26,7 @@
|
|
|
17
26
|
"число": {
|
|
18
27
|
"type": "integer"
|
|
19
28
|
}
|
|
20
|
-
}
|
|
21
|
-
"required": [
|
|
22
|
-
"ключ",
|
|
23
|
-
"число"
|
|
24
|
-
]
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
|
-
}
|
|
27
|
-
"required": [
|
|
28
|
-
"необязательная",
|
|
29
|
-
"обязательная",
|
|
30
|
-
"словарь"
|
|
31
|
-
]
|
|
31
|
+
}
|
|
32
32
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"gateway",
|
|
5
|
+
"server_ip"
|
|
6
|
+
],
|
|
7
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
8
|
"properties": {
|
|
5
|
-
"
|
|
9
|
+
"gateway": {
|
|
6
10
|
"type": "string",
|
|
7
11
|
"format": "ipv4"
|
|
8
12
|
},
|
|
9
|
-
"
|
|
13
|
+
"server_ip": {
|
|
10
14
|
"type": "string",
|
|
11
15
|
"format": "ipv4"
|
|
12
16
|
}
|
|
13
|
-
}
|
|
14
|
-
"required": [
|
|
15
|
-
"gateway",
|
|
16
|
-
"server_ip"
|
|
17
|
-
]
|
|
17
|
+
}
|
|
18
18
|
}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"birth_date",
|
|
5
|
+
"created_at",
|
|
6
|
+
"email",
|
|
7
|
+
"id",
|
|
8
|
+
"ip_address",
|
|
9
|
+
"website"
|
|
10
|
+
],
|
|
11
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
12
|
"properties": {
|
|
5
|
-
"
|
|
6
|
-
"type": "string",
|
|
7
|
-
"format": "uuid"
|
|
8
|
-
},
|
|
9
|
-
"email": {
|
|
13
|
+
"birth_date": {
|
|
10
14
|
"type": "string",
|
|
11
|
-
"format": "
|
|
15
|
+
"format": "date"
|
|
12
16
|
},
|
|
13
17
|
"created_at": {
|
|
14
18
|
"type": "string",
|
|
15
19
|
"format": "date-time"
|
|
16
20
|
},
|
|
17
|
-
"
|
|
21
|
+
"email": {
|
|
18
22
|
"type": "string",
|
|
19
|
-
"format": "
|
|
23
|
+
"format": "email"
|
|
20
24
|
},
|
|
21
|
-
"
|
|
25
|
+
"id": {
|
|
22
26
|
"type": "string",
|
|
23
|
-
"format": "
|
|
27
|
+
"format": "uuid"
|
|
24
28
|
},
|
|
25
29
|
"ip_address": {
|
|
26
30
|
"type": "string",
|
|
27
31
|
"format": "ipv4"
|
|
32
|
+
},
|
|
33
|
+
"website": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"format": "uri"
|
|
28
36
|
}
|
|
29
|
-
}
|
|
30
|
-
"required": [
|
|
31
|
-
"birth_date",
|
|
32
|
-
"created_at",
|
|
33
|
-
"email",
|
|
34
|
-
"id",
|
|
35
|
-
"ip_address",
|
|
36
|
-
"website"
|
|
37
|
-
]
|
|
37
|
+
}
|
|
38
38
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
2
|
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"description",
|
|
5
|
+
"name",
|
|
6
|
+
"status"
|
|
7
|
+
],
|
|
8
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
9
|
"properties": {
|
|
5
|
-
"
|
|
10
|
+
"description": {
|
|
6
11
|
"type": "string"
|
|
7
12
|
},
|
|
8
|
-
"
|
|
13
|
+
"name": {
|
|
9
14
|
"type": "string"
|
|
10
15
|
},
|
|
11
16
|
"status": {
|
|
12
17
|
"type": "string"
|
|
13
18
|
}
|
|
14
|
-
}
|
|
15
|
-
"required": [
|
|
16
|
-
"description",
|
|
17
|
-
"name",
|
|
18
|
-
"status"
|
|
19
|
-
]
|
|
19
|
+
}
|
|
20
20
|
}
|