-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathmessage-schema.json
138 lines (138 loc) · 5.53 KB
/
message-schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.wmo.int/wis2/broker/message/4.0.0/schema.yml",
"title": "WMO WIS 2.0 broker data notification schema",
"description": "WMO WIS 2.0 broker data notification schema",
"type": "object",
"allOf": [
{
"$ref": "https://raw.githubusercontent.com/opengeospatial/ogcapi-features/master/core/openapi/schemas/featureGeoJSON.yaml"
}
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for the data notification.",
"examples": ["31e9d66a-cd83-4174-9429-b932f1abe1be"]
},
"version": {
"type": "string",
"description": "Version of the data notification specification format.",
"const": "4.0.0"
},
"geometry": {
"$ref":"#/definitions/PointOrPolygon",
"nullable": true,
"examples": [{"type": "Point", "coordinates": [6.146255135536194, 46.223296618227444]}, null]
},
"properties": {
"type": "object",
"properties": {
"instance_identifier": {
"type": "string",
"title": "Identifier of the data instance",
"description": "Identifier of the current instance (of the instance whose availability this notification announces). \nCan be a file name or some other, preferably unique, identifier.",
"examples": ["gfs.t00z.pgrb2.0p25.f003", "A_IEDX02EUMP270634_C_EDZW_20220427072332_84196486.bufr", "d64b8d25-4fd0-42b2-91b3-ba29f215fbfc"]
},
"publication_datetime": {
"type": "string",
"format": "date-time",
"description": "Identifies the date/time of when the notification was posted/published, in ISO8601/RFC3339 format.\n\nThe publication date/time is critical for subscribers to prevent message loss by knowing\ntheir lag (how far behind the publisher they are).\n",
"examples": ["20220427T072332.314854383Z", "2022-04-27T07:23:32.314854383Z"]
},
"instance_datetime": {
"type": "string",
"format": "date-time",
"description": "TBD, Identifies the date/time that characterizes the data instance being published, \ne.g. observation time, model run, etc. - typically rounded to a multiple of data production interval. ISO8601/RFC3339 format.",
"examples": ["20220427T063000Z", "2022-04-27T06:30:00Z"]
},
"data_start_datetime": {
"type": "string",
"format": "date-time",
"description": "TBD, Identifies the start date/time date of the data being published, in ISO8601/RFC3339 format."
},
"data_end_datetime": {
"type": "string",
"format": "date-time",
"description": "TBD, Identifies the end date/time date of the data being published, in ISO8601/RFC3339 format."
},
"integrity": {
"type": "object",
"description": "Specifies a way to verify integrity and/or uniqueness of the data instance.",
"properties": {
"method": {
"type": "string",
"description": "A specific set of methods for calculating the checksum algorithms:\n* ``sha512``: the Secure Hash Algorithm 512 bits, value is base64 encoded.\n* ``arbitrary``: an arbitrary string is used to identify the value.\n* ``md5``: the Message Digest 5 hash (obsolete, perhaps will be rejected)\n",
"enum": ["sha256", "sha512", "md5", "remove", "link", "cod", "arbitrary", "md5name", "random"]
},
"value": {
"type": "string",
"description": "Base 64 encoded checksum or digital signature",
"examples": ["N2Y4M2IxNjU3ZmYxZmM1M2I5MmRjMTgxNDhhMWQ2NWRmYzJkNGIxZmEzZDY3NzI4NGFkZGQyMDAxMjZkOTA2OSAqYWEuanNvbgo="]
}
},
"required": [
"method",
"value"
]
},
"hierarchy": {
"type": "string",
"description": "WIS 2.0 data hierarchical category identifier.",
"examples": ["EUE/eumetsat_darmstadt/observation/global/", "CAN/eccc-msc/data/core/weather/surface-based-obs/landFixed"]
},
"size": {
"type": "integer",
"description": "Size of the data instance in bytes/octets, if known.",
"examples": [12345]
},
"content": {
"type": "object",
"description": "Used to embed small instances/products inline within the notification.",
"properties": {
"encoding": {
"type": "string",
"description": "Encoding of content. Note that if gzip compression is used the result is base64 encoded too.",
"enum": ["utf-8", "base64", "gzip"]
},
"value": {
"type": "string",
"description": "The in-lined content of the file.",
"examples": ["Hello World!"]
}
},
"required": [
"encoding",
"value"
]
}
},
"required": [
"publication_datetime",
"integrity",
"hierarchy"
]
}
},
"definitions":
{
"PointOrPolygon": {
"oneOf": [
{
"$ref": "https://raw.githubusercontent.com/opengeospatial/ogcapi-features/master/core/openapi/schemas/pointGeoJSON.yaml"
},
{
"$ref": "https://raw.githubusercontent.com/opengeospatial/ogcapi-features/master/core/openapi/schemas/polygonGeoJSON.yaml"
}
]
}
},
"required": [
"id",
"type",
"geometry",
"properties",
"links"
]
}