@dmdata/telegram-json-types 1.2.1 → 1.2.3

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.
Files changed (51) hide show
  1. package/.github/workflows/release.yml +33 -0
  2. package/LICENSE +21 -21
  3. package/README.md +79 -79
  4. package/dist/jschema/forecast-weathermap_1.0.0.json +1 -1
  5. package/dist/jschema/weather-warning-timeseries_1.0.0.json +1 -1
  6. package/index.d.ts +2 -2
  7. package/package.json +30 -32
  8. package/test/sample-schema-check.test.ts +68 -68
  9. package/tsconfig.json +25 -25
  10. package/types/component/coordinate.d.ts +27 -27
  11. package/types/component/earthquake.d.ts +77 -77
  12. package/types/component/index.d.ts +17 -17
  13. package/types/component/unit-value.d.ts +13 -13
  14. package/types/component/util.d.ts +20 -20
  15. package/types/index.d.ts +84 -84
  16. package/types/schema/earthquake-counts/1.0.0.d.ts +69 -69
  17. package/types/schema/earthquake-explanation/1.0.0.d.ts +57 -57
  18. package/types/schema/earthquake-hypocenter-update/1.0.0.d.ts +53 -53
  19. package/types/schema/earthquake-information/1.0.0.d.ts +158 -158
  20. package/types/schema/earthquake-information/1.1.0.d.ts +224 -224
  21. package/types/schema/earthquake-information/index.d.ts +9 -9
  22. package/types/schema/earthquake-nankai/1.0.0.d.ts +101 -101
  23. package/types/schema/eew-information/1.0.0.d.ts +221 -221
  24. package/types/schema/eew-information/index.d.ts +7 -7
  25. package/types/schema/forecast-2week-temperature/1.0.0.d.ts +110 -110
  26. package/types/schema/forecast-prefecture/1.0.0.d.ts +537 -537
  27. package/types/schema/forecast-season/1.0.0.d.ts +169 -169
  28. package/types/schema/forecast-warning-possibility/1.0.0.d.ts +388 -388
  29. package/types/schema/forecast-warning-possibility/1.1.0.d.ts +129 -129
  30. package/types/schema/forecast-warning-possibility/index.d.ts +9 -9
  31. package/types/schema/forecast-weathermap/1.0.0.d.ts +206 -194
  32. package/types/schema/tsunami-information/1.0.0.d.ts +261 -261
  33. package/types/schema/tsunami-information/1.1.0.d.ts +298 -298
  34. package/types/schema/tsunami-information/index.d.ts +9 -9
  35. package/types/schema/volcano-information/1.0.0.d.ts +450 -450
  36. package/types/schema/weather-commentary/1.0.0.d.ts +984 -984
  37. package/types/schema/weather-commentary/index.d.ts +7 -7
  38. package/types/schema/weather-early/1.0.0.d.ts +111 -111
  39. package/types/schema/weather-impact-society/1.0.0.d.ts +143 -143
  40. package/types/schema/weather-impact-society/1.0.1.d.ts +118 -118
  41. package/types/schema/weather-information/1.0.0.d.ts +67 -67
  42. package/types/schema/weather-landslide/1.0.0.d.ts +51 -51
  43. package/types/schema/weather-river-flood/1.0.0.d.ts +192 -192
  44. package/types/schema/weather-tornado/1.0.0.d.ts +55 -55
  45. package/types/schema/weather-typhoon/1.0.0.d.ts +146 -146
  46. package/types/schema/weather-typhoon/index.d.ts +7 -7
  47. package/types/schema/weather-warning/1.0.0.d.ts +213 -213
  48. package/types/schema/weather-warning/1.1.0.d.ts +469 -469
  49. package/types/schema/weather-warning/index.d.ts +9 -9
  50. package/types/schema/weather-warning-timeseries/1.0.0.d.ts +357 -385
  51. package/types/schema/weather-warning-timeseries/index.d.ts +7 -7
@@ -1,450 +1,450 @@
1
- import { TelegramJSONMain } from '../../main';
2
- import { Components } from '../../component';
3
-
4
- export namespace VolcanoInformation {
5
- export interface Schema {
6
- type: 'volcano-information';
7
- version: '1.0.0';
8
- }
9
-
10
- export type VolcanoCoordinate = Required<Components.Coordinate>;
11
- export type Direction8 = '北' | '北東' | '東' | '南東' | '南' | '南西' | '西' | '北西';
12
-
13
- export interface TargetCrater {
14
- name: string | null;
15
- coordinate?: VolcanoCoordinate;
16
- }
17
-
18
- export interface TargetKind {
19
- code: string;
20
- name: string;
21
- }
22
-
23
- export interface TargetKindEWF extends TargetKind {
24
- formalName?: string;
25
- condition: string;
26
- lastKind: {
27
- code: string;
28
- name: string;
29
- };
30
- }
31
-
32
- export interface Target {
33
- code: string;
34
- name: string;
35
- coordinate: VolcanoCoordinate;
36
- areaFromMark?: string;
37
- crater?: TargetCrater;
38
- kind: TargetKind;
39
- }
40
-
41
- export interface TargetVFVO56 {
42
- code: string;
43
- name: string;
44
- kind: TargetKind;
45
- }
46
-
47
- export interface TargetEWF extends Target {
48
- crater?: never;
49
- kind: TargetKindEWF;
50
- }
51
-
52
- export interface CityKind {
53
- code: string;
54
- name: string;
55
- }
56
-
57
- export interface CityKindVFVO50 extends CityKind {
58
- condition: string;
59
- lastKind: {
60
- name: string;
61
- code: string;
62
- };
63
- }
64
-
65
- export interface City {
66
- code: string;
67
- name: string;
68
- kinds: CityKind[];
69
- }
70
-
71
- export interface CityVFVO50 extends City {
72
- kinds: [CityKindVFVO50];
73
- }
74
-
75
- export interface CityVFVO56 extends City {
76
- kinds: [CityKind];
77
- }
78
-
79
- export interface OceanZoneKind {
80
- code: string;
81
- name: string;
82
- condition: string;
83
- lastKind: {
84
- name: string;
85
- code: string;
86
- };
87
- }
88
-
89
- export interface OceanZone {
90
- code: string;
91
- name: string;
92
- kinds: [OceanZoneKind];
93
- }
94
-
95
- export interface DisasterPreventionKind {
96
- code: string;
97
- name: string;
98
- condition: string;
99
- lastKind: {
100
- name: string;
101
- code: string;
102
- };
103
- }
104
-
105
- export interface DisasterPrevention {
106
- code: string;
107
- name: string;
108
- kinds: [DisasterPreventionKind];
109
- }
110
-
111
- export interface Comments {
112
- headline?: string;
113
- activity?: string;
114
- prevention?: string;
115
- nextAdvisor?: string;
116
- otherInfo?: string;
117
- appendix?: string;
118
- text?: string;
119
- }
120
-
121
- export interface EruptionEventDateTime {
122
- value: string;
123
- validFormat: string;
124
- dubious?: '頃';
125
- }
126
-
127
- export type EruptionPlumeHeightAboveCrater = {
128
- type: '火口上噴煙高度' | '海面上噴煙高度';
129
- unit: 'm';
130
- } & ({
131
- value: string;
132
- condition?: string;
133
- } | {
134
- value: null;
135
- condition?: '噴煙なし' | '不明';
136
- })
137
-
138
- export type EruptionPlumeHeightSeaLevel = {
139
- type: '海抜噴煙高度';
140
- unit: 'ft';
141
- } & ({
142
- value: string;
143
- condition?: string;
144
- } | {
145
- value: null;
146
- condition?: '噴煙なし' | '不明';
147
- })
148
-
149
- export type EruptionPlumeDirection = {
150
- type: '噴煙の流向';
151
- unit: '漢字';
152
- } & ({
153
- value: Direction8 | '直上' | '流向不明';
154
- condition?: never;
155
- } | {
156
- value: null;
157
- condition: '噴煙なし';
158
- })
159
-
160
- export interface EruptionPlume {
161
- heightAboveCrater?: EruptionPlumeHeightAboveCrater;
162
- heightSeaLevel?: EruptionPlumeHeightSeaLevel;
163
- direction?: EruptionPlumeDirection;
164
- comment?: string;
165
- }
166
-
167
- export interface Eruption {
168
- eventDateTime?: EruptionEventDateTime;
169
- colorPlume?: EruptionPlume;
170
- whitePlume?: EruptionPlume;
171
- appendix?: string;
172
- otherObservation?: string;
173
- }
174
-
175
- export type AshForecastItemSize = {
176
- type: '降灰量';
177
- unit: 'g/m2';
178
- value: string;
179
- } | {
180
- type: '降灰の厚さ';
181
- unit: 'mm';
182
- value: string;
183
- } | {
184
- type: '小さな噴石の大きさ';
185
- unit: 'cm';
186
- value: string;
187
- }
188
-
189
- export interface AshForecastItemDirection {
190
- type: '降灰の方向' | '小さな噴石の落下方向';
191
- unit: '漢字';
192
- value: Direction8 | '火口近傍' | '方向不定';
193
- }
194
-
195
- export interface AshForecastItemDistance {
196
- type: '降灰の到達距離' | '小さな噴石の到達距離';
197
- unit: 'km';
198
- value: string;
199
- }
200
-
201
- export interface AshForecastItemCity {
202
- code: string;
203
- name: string;
204
- }
205
-
206
- export interface AshForecastItem {
207
- code: string;
208
- name: string;
209
- polygons: [number, number][][];
210
- size?: AshForecastItemSize;
211
- direction: AshForecastItemDirection;
212
- distance: AshForecastItemDistance;
213
- remake?: string;
214
- cities: AshForecastItemCity[];
215
- }
216
-
217
- export interface AshForecast {
218
- type: '予報';
219
- elapsedTime: string;
220
- startTime: string;
221
- endTime: string;
222
- items: AshForecastItem[];
223
- }
224
-
225
- export interface Ash {
226
- forecasts: AshForecast[];
227
- }
228
-
229
- export interface PublicBodyVFVO50 {
230
- notice?: string;
231
- target: TargetEWF;
232
- cities: CityVFVO50[];
233
- disasterPreventions: DisasterPrevention[];
234
- comments: Comments;
235
- text?: string;
236
- }
237
-
238
- export interface PublicBodyVFVO51 {
239
- notice?: string;
240
- targets: TargetEWF[];
241
- comments: Comments;
242
- text?: string;
243
- }
244
-
245
- export interface PublicBodyVFVO52 {
246
- notice?: string;
247
- target: Target;
248
- eruption: Eruption;
249
- text?: string;
250
- }
251
-
252
- export interface PublicBodyVFVO53 {
253
- notice?: string;
254
- target: Target;
255
- cities: City[];
256
- comments: Comments;
257
- ash: Ash;
258
- text?: string;
259
- }
260
-
261
- export interface PublicBodyVFVO54 {
262
- notice?: string;
263
- target: Target;
264
- cities: City[];
265
- eruption: Eruption;
266
- comments: Comments;
267
- ash: Ash;
268
- text?: string;
269
- }
270
-
271
- export interface PublicBodyVFVO55 extends PublicBodyVFVO54 {
272
- }
273
-
274
- export interface PublicBodyVFVO56 {
275
- notice?: string;
276
- target: TargetVFVO56;
277
- cities: CityVFVO56[];
278
- eruption: Pick<Eruption, 'eventDateTime'>;
279
- comments: Comments;
280
- text?: string;
281
- }
282
-
283
- export interface PublicBodyVFSVii {
284
- notice?: string;
285
- target: TargetEWF;
286
- oceanZones: OceanZone[];
287
- comments: Comments;
288
- text?: string;
289
- }
290
-
291
- export interface PublicBodyVZVO40 {
292
- text: string;
293
- }
294
-
295
- export interface CancelBody {
296
- text: string;
297
- }
298
-
299
- export interface PublicVFVO50 extends TelegramJSONMain {
300
- _schema: Schema;
301
- type: '噴火警報・予報';
302
- title: string;
303
- infoType: '発表' | '訂正';
304
- targetDateTimeDubious?: never;
305
- targetDuration?: never;
306
- validDateTime?: never;
307
- eventId: string;
308
- serialNo: null;
309
- infoKind: '噴火警報・予報';
310
- body: PublicBodyVFVO50;
311
- }
312
-
313
- export interface PublicVFVO51 extends TelegramJSONMain {
314
- _schema: Schema;
315
- type: '火山の状況に関する解説情報';
316
- title: string;
317
- infoType: '発表' | '訂正';
318
- targetDateTimeDubious?: never;
319
- targetDuration?: never;
320
- validDateTime?: never;
321
- eventId: string;
322
- serialNo: string;
323
- infoKind: '火山の状況に関する解説情報';
324
- body: PublicBodyVFVO51;
325
- }
326
-
327
- export interface PublicVFVO52 extends Omit<TelegramJSONMain, 'targetDateTime'> {
328
- _schema: Schema;
329
- type: '噴火に関する火山観測報';
330
- title: string;
331
- infoType: '発表' | '訂正';
332
- targetDateTime: string | null;
333
- targetDateTimeDubious?: '年頃' | '月頃' | '日頃' | '時頃' | '分頃' | '秒頃' | '頃';
334
- targetDuration?: never;
335
- validDateTime?: never;
336
- eventId: string;
337
- serialNo: string;
338
- infoKind: '噴火に関する火山観測報';
339
- body: PublicBodyVFVO52;
340
- }
341
-
342
- export interface PublicVFVO53 extends TelegramJSONMain {
343
- _schema: Schema;
344
- type: '降灰予報(定時)';
345
- title: string;
346
- infoType: '発表' | '訂正';
347
- targetDateTimeDubious?: never;
348
- targetDuration?: never;
349
- validDateTime: string;
350
- eventId: string;
351
- serialNo: string;
352
- infoKind: '降灰予報';
353
- body: PublicBodyVFVO53;
354
- }
355
-
356
- export interface PublicVFVO54 extends TelegramJSONMain {
357
- _schema: Schema;
358
- type: '降灰予報(速報)';
359
- title: string;
360
- infoType: '発表' | '訂正';
361
- targetDateTimeDubious?: never;
362
- targetDuration?: never;
363
- validDateTime: string;
364
- eventId: string;
365
- serialNo: string;
366
- infoKind: '降灰予報';
367
- body: PublicBodyVFVO54;
368
- }
369
-
370
- export interface PublicVFVO55 extends TelegramJSONMain {
371
- _schema: Schema;
372
- type: '降灰予報(詳細)';
373
- title: string;
374
- infoType: '発表' | '訂正';
375
- targetDateTimeDubious?: never;
376
- targetDuration?: never;
377
- validDateTime: string;
378
- eventId: string;
379
- serialNo: string;
380
- infoKind: '降灰予報';
381
- body: PublicBodyVFVO55;
382
- }
383
-
384
- export interface PublicVFVO56 extends TelegramJSONMain {
385
- _schema: Schema;
386
- type: '噴火速報';
387
- title: string;
388
- infoType: '発表' | '訂正';
389
- targetDateTimeDubious?: '年頃' | '月頃' | '日頃' | '時頃' | '分頃' | '秒頃' | '頃';
390
- targetDuration?: never;
391
- validDateTime?: never;
392
- eventId: string;
393
- serialNo: null;
394
- infoKind: '噴火速報';
395
- body: PublicBodyVFVO56;
396
- }
397
-
398
- export interface PublicVFSVii extends TelegramJSONMain {
399
- _schema: Schema;
400
- type: '火山現象に関する海上警報・海上予報';
401
- title: string;
402
- infoType: '発表' | '訂正';
403
- targetDateTimeDubious?: never;
404
- targetDuration?: never;
405
- validDateTime?: never;
406
- eventId: string;
407
- serialNo: null;
408
- infoKind: '火山現象に関する海上警報・海上予報';
409
- body: PublicBodyVFSVii;
410
- }
411
-
412
- export interface PublicVZVO40 extends TelegramJSONMain {
413
- _schema: Schema;
414
- type: '火山に関するお知らせ';
415
- title: string;
416
- infoType: '発表' | '訂正';
417
- targetDateTimeDubious?: never;
418
- targetDuration?: never;
419
- validDateTime?: never;
420
- eventId: string;
421
- serialNo: null;
422
- infoKind: '火山に関するお知らせ';
423
- body: PublicBodyVZVO40;
424
- }
425
-
426
- export interface Cancel extends TelegramJSONMain {
427
- _schema: Schema;
428
- type: '噴火警報・予報' | '火山の状況に関する解説情報' | '噴火に関する火山観測報' | '降灰予報(定時)' | '降灰予報(速報)' | '降灰予報(詳細)' | '噴火速報' | '火山現象に関する海上警報・海上予報' | '火山に関するお知らせ';
429
- title: string;
430
- infoType: '取消';
431
- targetDateTimeDubious?: '年頃' | '月頃' | '日頃' | '時頃' | '分頃' | '秒頃' | '頃';
432
- targetDuration?: never;
433
- validDateTime?: string;
434
- eventId: string;
435
- infoKind: '噴火警報・予報' | '火山の状況に関する解説情報' | '噴火に関する火山観測報' | '降灰予報' | '噴火速報' | '火山現象に関する海上警報・海上予報' | '火山に関するお知らせ';
436
- body: CancelBody;
437
- }
438
-
439
- export type Main =
440
- PublicVFVO50
441
- | PublicVFVO51
442
- | PublicVFVO52
443
- | PublicVFVO53
444
- | PublicVFVO54
445
- | PublicVFVO55
446
- | PublicVFVO56
447
- | PublicVFSVii
448
- | PublicVZVO40
449
- | Cancel;
450
- }
1
+ import { TelegramJSONMain } from '../../main';
2
+ import { Components } from '../../component';
3
+
4
+ export namespace VolcanoInformation {
5
+ export interface Schema {
6
+ type: 'volcano-information';
7
+ version: '1.0.0';
8
+ }
9
+
10
+ export type VolcanoCoordinate = Required<Components.Coordinate>;
11
+ export type Direction8 = '北' | '北東' | '東' | '南東' | '南' | '南西' | '西' | '北西';
12
+
13
+ export interface TargetCrater {
14
+ name: string | null;
15
+ coordinate?: VolcanoCoordinate;
16
+ }
17
+
18
+ export interface TargetKind {
19
+ code: string;
20
+ name: string;
21
+ }
22
+
23
+ export interface TargetKindEWF extends TargetKind {
24
+ formalName?: string;
25
+ condition: string;
26
+ lastKind: {
27
+ code: string;
28
+ name: string;
29
+ };
30
+ }
31
+
32
+ export interface Target {
33
+ code: string;
34
+ name: string;
35
+ coordinate: VolcanoCoordinate;
36
+ areaFromMark?: string;
37
+ crater?: TargetCrater;
38
+ kind: TargetKind;
39
+ }
40
+
41
+ export interface TargetVFVO56 {
42
+ code: string;
43
+ name: string;
44
+ kind: TargetKind;
45
+ }
46
+
47
+ export interface TargetEWF extends Target {
48
+ crater?: never;
49
+ kind: TargetKindEWF;
50
+ }
51
+
52
+ export interface CityKind {
53
+ code: string;
54
+ name: string;
55
+ }
56
+
57
+ export interface CityKindVFVO50 extends CityKind {
58
+ condition: string;
59
+ lastKind: {
60
+ name: string;
61
+ code: string;
62
+ };
63
+ }
64
+
65
+ export interface City {
66
+ code: string;
67
+ name: string;
68
+ kinds: CityKind[];
69
+ }
70
+
71
+ export interface CityVFVO50 extends City {
72
+ kinds: [CityKindVFVO50];
73
+ }
74
+
75
+ export interface CityVFVO56 extends City {
76
+ kinds: [CityKind];
77
+ }
78
+
79
+ export interface OceanZoneKind {
80
+ code: string;
81
+ name: string;
82
+ condition: string;
83
+ lastKind: {
84
+ name: string;
85
+ code: string;
86
+ };
87
+ }
88
+
89
+ export interface OceanZone {
90
+ code: string;
91
+ name: string;
92
+ kinds: [OceanZoneKind];
93
+ }
94
+
95
+ export interface DisasterPreventionKind {
96
+ code: string;
97
+ name: string;
98
+ condition: string;
99
+ lastKind: {
100
+ name: string;
101
+ code: string;
102
+ };
103
+ }
104
+
105
+ export interface DisasterPrevention {
106
+ code: string;
107
+ name: string;
108
+ kinds: [DisasterPreventionKind];
109
+ }
110
+
111
+ export interface Comments {
112
+ headline?: string;
113
+ activity?: string;
114
+ prevention?: string;
115
+ nextAdvisor?: string;
116
+ otherInfo?: string;
117
+ appendix?: string;
118
+ text?: string;
119
+ }
120
+
121
+ export interface EruptionEventDateTime {
122
+ value: string;
123
+ validFormat: string;
124
+ dubious?: '頃';
125
+ }
126
+
127
+ export type EruptionPlumeHeightAboveCrater = {
128
+ type: '火口上噴煙高度' | '海面上噴煙高度';
129
+ unit: 'm';
130
+ } & ({
131
+ value: string;
132
+ condition?: string;
133
+ } | {
134
+ value: null;
135
+ condition?: '噴煙なし' | '不明';
136
+ })
137
+
138
+ export type EruptionPlumeHeightSeaLevel = {
139
+ type: '海抜噴煙高度';
140
+ unit: 'ft';
141
+ } & ({
142
+ value: string;
143
+ condition?: string;
144
+ } | {
145
+ value: null;
146
+ condition?: '噴煙なし' | '不明';
147
+ })
148
+
149
+ export type EruptionPlumeDirection = {
150
+ type: '噴煙の流向';
151
+ unit: '漢字';
152
+ } & ({
153
+ value: Direction8 | '直上' | '流向不明';
154
+ condition?: never;
155
+ } | {
156
+ value: null;
157
+ condition: '噴煙なし';
158
+ })
159
+
160
+ export interface EruptionPlume {
161
+ heightAboveCrater?: EruptionPlumeHeightAboveCrater;
162
+ heightSeaLevel?: EruptionPlumeHeightSeaLevel;
163
+ direction?: EruptionPlumeDirection;
164
+ comment?: string;
165
+ }
166
+
167
+ export interface Eruption {
168
+ eventDateTime?: EruptionEventDateTime;
169
+ colorPlume?: EruptionPlume;
170
+ whitePlume?: EruptionPlume;
171
+ appendix?: string;
172
+ otherObservation?: string;
173
+ }
174
+
175
+ export type AshForecastItemSize = {
176
+ type: '降灰量';
177
+ unit: 'g/m2';
178
+ value: string;
179
+ } | {
180
+ type: '降灰の厚さ';
181
+ unit: 'mm';
182
+ value: string;
183
+ } | {
184
+ type: '小さな噴石の大きさ';
185
+ unit: 'cm';
186
+ value: string;
187
+ }
188
+
189
+ export interface AshForecastItemDirection {
190
+ type: '降灰の方向' | '小さな噴石の落下方向';
191
+ unit: '漢字';
192
+ value: Direction8 | '火口近傍' | '方向不定';
193
+ }
194
+
195
+ export interface AshForecastItemDistance {
196
+ type: '降灰の到達距離' | '小さな噴石の到達距離';
197
+ unit: 'km';
198
+ value: string;
199
+ }
200
+
201
+ export interface AshForecastItemCity {
202
+ code: string;
203
+ name: string;
204
+ }
205
+
206
+ export interface AshForecastItem {
207
+ code: string;
208
+ name: string;
209
+ polygons: [number, number][][];
210
+ size?: AshForecastItemSize;
211
+ direction: AshForecastItemDirection;
212
+ distance: AshForecastItemDistance;
213
+ remake?: string;
214
+ cities: AshForecastItemCity[];
215
+ }
216
+
217
+ export interface AshForecast {
218
+ type: '予報';
219
+ elapsedTime: string;
220
+ startTime: string;
221
+ endTime: string;
222
+ items: AshForecastItem[];
223
+ }
224
+
225
+ export interface Ash {
226
+ forecasts: AshForecast[];
227
+ }
228
+
229
+ export interface PublicBodyVFVO50 {
230
+ notice?: string;
231
+ target: TargetEWF;
232
+ cities: CityVFVO50[];
233
+ disasterPreventions: DisasterPrevention[];
234
+ comments: Comments;
235
+ text?: string;
236
+ }
237
+
238
+ export interface PublicBodyVFVO51 {
239
+ notice?: string;
240
+ targets: TargetEWF[];
241
+ comments: Comments;
242
+ text?: string;
243
+ }
244
+
245
+ export interface PublicBodyVFVO52 {
246
+ notice?: string;
247
+ target: Target;
248
+ eruption: Eruption;
249
+ text?: string;
250
+ }
251
+
252
+ export interface PublicBodyVFVO53 {
253
+ notice?: string;
254
+ target: Target;
255
+ cities: City[];
256
+ comments: Comments;
257
+ ash: Ash;
258
+ text?: string;
259
+ }
260
+
261
+ export interface PublicBodyVFVO54 {
262
+ notice?: string;
263
+ target: Target;
264
+ cities: City[];
265
+ eruption: Eruption;
266
+ comments: Comments;
267
+ ash: Ash;
268
+ text?: string;
269
+ }
270
+
271
+ export interface PublicBodyVFVO55 extends PublicBodyVFVO54 {
272
+ }
273
+
274
+ export interface PublicBodyVFVO56 {
275
+ notice?: string;
276
+ target: TargetVFVO56;
277
+ cities: CityVFVO56[];
278
+ eruption: Pick<Eruption, 'eventDateTime'>;
279
+ comments: Comments;
280
+ text?: string;
281
+ }
282
+
283
+ export interface PublicBodyVFSVii {
284
+ notice?: string;
285
+ target: TargetEWF;
286
+ oceanZones: OceanZone[];
287
+ comments: Comments;
288
+ text?: string;
289
+ }
290
+
291
+ export interface PublicBodyVZVO40 {
292
+ text: string;
293
+ }
294
+
295
+ export interface CancelBody {
296
+ text: string;
297
+ }
298
+
299
+ export interface PublicVFVO50 extends TelegramJSONMain {
300
+ _schema: Schema;
301
+ type: '噴火警報・予報';
302
+ title: string;
303
+ infoType: '発表' | '訂正';
304
+ targetDateTimeDubious?: never;
305
+ targetDuration?: never;
306
+ validDateTime?: never;
307
+ eventId: string;
308
+ serialNo: null;
309
+ infoKind: '噴火警報・予報';
310
+ body: PublicBodyVFVO50;
311
+ }
312
+
313
+ export interface PublicVFVO51 extends TelegramJSONMain {
314
+ _schema: Schema;
315
+ type: '火山の状況に関する解説情報';
316
+ title: string;
317
+ infoType: '発表' | '訂正';
318
+ targetDateTimeDubious?: never;
319
+ targetDuration?: never;
320
+ validDateTime?: never;
321
+ eventId: string;
322
+ serialNo: string;
323
+ infoKind: '火山の状況に関する解説情報';
324
+ body: PublicBodyVFVO51;
325
+ }
326
+
327
+ export interface PublicVFVO52 extends Omit<TelegramJSONMain, 'targetDateTime'> {
328
+ _schema: Schema;
329
+ type: '噴火に関する火山観測報';
330
+ title: string;
331
+ infoType: '発表' | '訂正';
332
+ targetDateTime: string | null;
333
+ targetDateTimeDubious?: '年頃' | '月頃' | '日頃' | '時頃' | '分頃' | '秒頃' | '頃';
334
+ targetDuration?: never;
335
+ validDateTime?: never;
336
+ eventId: string;
337
+ serialNo: string;
338
+ infoKind: '噴火に関する火山観測報';
339
+ body: PublicBodyVFVO52;
340
+ }
341
+
342
+ export interface PublicVFVO53 extends TelegramJSONMain {
343
+ _schema: Schema;
344
+ type: '降灰予報(定時)';
345
+ title: string;
346
+ infoType: '発表' | '訂正';
347
+ targetDateTimeDubious?: never;
348
+ targetDuration?: never;
349
+ validDateTime: string;
350
+ eventId: string;
351
+ serialNo: string;
352
+ infoKind: '降灰予報';
353
+ body: PublicBodyVFVO53;
354
+ }
355
+
356
+ export interface PublicVFVO54 extends TelegramJSONMain {
357
+ _schema: Schema;
358
+ type: '降灰予報(速報)';
359
+ title: string;
360
+ infoType: '発表' | '訂正';
361
+ targetDateTimeDubious?: never;
362
+ targetDuration?: never;
363
+ validDateTime: string;
364
+ eventId: string;
365
+ serialNo: string;
366
+ infoKind: '降灰予報';
367
+ body: PublicBodyVFVO54;
368
+ }
369
+
370
+ export interface PublicVFVO55 extends TelegramJSONMain {
371
+ _schema: Schema;
372
+ type: '降灰予報(詳細)';
373
+ title: string;
374
+ infoType: '発表' | '訂正';
375
+ targetDateTimeDubious?: never;
376
+ targetDuration?: never;
377
+ validDateTime: string;
378
+ eventId: string;
379
+ serialNo: string;
380
+ infoKind: '降灰予報';
381
+ body: PublicBodyVFVO55;
382
+ }
383
+
384
+ export interface PublicVFVO56 extends TelegramJSONMain {
385
+ _schema: Schema;
386
+ type: '噴火速報';
387
+ title: string;
388
+ infoType: '発表' | '訂正';
389
+ targetDateTimeDubious?: '年頃' | '月頃' | '日頃' | '時頃' | '分頃' | '秒頃' | '頃';
390
+ targetDuration?: never;
391
+ validDateTime?: never;
392
+ eventId: string;
393
+ serialNo: null;
394
+ infoKind: '噴火速報';
395
+ body: PublicBodyVFVO56;
396
+ }
397
+
398
+ export interface PublicVFSVii extends TelegramJSONMain {
399
+ _schema: Schema;
400
+ type: '火山現象に関する海上警報・海上予報';
401
+ title: string;
402
+ infoType: '発表' | '訂正';
403
+ targetDateTimeDubious?: never;
404
+ targetDuration?: never;
405
+ validDateTime?: never;
406
+ eventId: string;
407
+ serialNo: null;
408
+ infoKind: '火山現象に関する海上警報・海上予報';
409
+ body: PublicBodyVFSVii;
410
+ }
411
+
412
+ export interface PublicVZVO40 extends TelegramJSONMain {
413
+ _schema: Schema;
414
+ type: '火山に関するお知らせ';
415
+ title: string;
416
+ infoType: '発表' | '訂正';
417
+ targetDateTimeDubious?: never;
418
+ targetDuration?: never;
419
+ validDateTime?: never;
420
+ eventId: string;
421
+ serialNo: null;
422
+ infoKind: '火山に関するお知らせ';
423
+ body: PublicBodyVZVO40;
424
+ }
425
+
426
+ export interface Cancel extends TelegramJSONMain {
427
+ _schema: Schema;
428
+ type: '噴火警報・予報' | '火山の状況に関する解説情報' | '噴火に関する火山観測報' | '降灰予報(定時)' | '降灰予報(速報)' | '降灰予報(詳細)' | '噴火速報' | '火山現象に関する海上警報・海上予報' | '火山に関するお知らせ';
429
+ title: string;
430
+ infoType: '取消';
431
+ targetDateTimeDubious?: '年頃' | '月頃' | '日頃' | '時頃' | '分頃' | '秒頃' | '頃';
432
+ targetDuration?: never;
433
+ validDateTime?: string;
434
+ eventId: string;
435
+ infoKind: '噴火警報・予報' | '火山の状況に関する解説情報' | '噴火に関する火山観測報' | '降灰予報' | '噴火速報' | '火山現象に関する海上警報・海上予報' | '火山に関するお知らせ';
436
+ body: CancelBody;
437
+ }
438
+
439
+ export type Main =
440
+ PublicVFVO50
441
+ | PublicVFVO51
442
+ | PublicVFVO52
443
+ | PublicVFVO53
444
+ | PublicVFVO54
445
+ | PublicVFVO55
446
+ | PublicVFVO56
447
+ | PublicVFSVii
448
+ | PublicVZVO40
449
+ | Cancel;
450
+ }