|
29 | 29 | Required("serial"): str, |
30 | 30 | "prefix": Any(str, None), |
31 | 31 | Required("name"): str, |
32 | | - "model": str, |
| 32 | + "model": Any(str, None), |
33 | 33 | Required("secret_key"): str, |
34 | 34 | "purchased_at": Any(str, None), |
35 | 35 | "linked_at": Any(str, None), |
36 | 36 | Required("traits"): list, |
37 | 37 | # Everything below this line is not documented, but still present |
38 | | - "firmware": str, |
39 | | - "timezone": str, |
| 38 | + "firmware": Any(str, None), |
| 39 | + "timezone": Any(str, None), |
40 | 40 | Required("nucleo_url"): Url, |
41 | | - "mac_address": str, |
42 | | - "created_at": str, |
| 41 | + "mac_address": Any(str, None), |
| 42 | + "created_at": Any(str, None), |
43 | 43 | }, |
44 | 44 | extra=ALLOW_EXTRA, |
45 | 45 | ) |
46 | 46 | MAP_SCHEMA = Schema( |
47 | 47 | { |
48 | | - "version": int, |
| 48 | + "version": Any(int, None), |
49 | 49 | Required("id"): str, |
50 | 50 | Required("url"): Url, |
51 | | - "url_valid_for_seconds": int, |
52 | | - Optional("run_id"): str, # documented, but not present |
53 | | - "status": Any("complete", "incomplete", "canceled"), |
54 | | - "launched_from": Any("robot", "schedule", "app"), |
| 51 | + "url_valid_for_seconds": Any(int, None), |
| 52 | + Optional("run_id"): str, # documented, but not present |
| 53 | + "status": Any(str, None), |
| 54 | + "launched_from": Any(str, None), |
55 | 55 | "error": Any(str, None), |
56 | | - "category": int, |
57 | | - "mode": int, |
58 | | - "modifier": int, |
59 | | - "start_at": str, |
60 | | - "end_at": str, |
| 56 | + "category": Any(int, None), |
| 57 | + "mode": Any(int, None), |
| 58 | + "modifier": Any(int, None), |
| 59 | + "start_at": Any(str, None), |
| 60 | + "end_at": Any(str, None), |
61 | 61 | "end_orientation_relative_degrees": All(int, Range(min=0, max=360)), |
62 | 62 | "run_charge_at_start": All(int, Range(min=0, max=100)), |
63 | 63 | "run_charge_at_end": All(int, Range(min=0, max=100)), |
64 | | - "suspended_cleaning_charging_count": int, |
65 | | - "time_in_suspended_cleaning": int, |
66 | | - "time_in_error": int, |
67 | | - "time_in_pause": int, |
68 | | - "cleaned_area": float, |
69 | | - "base_count": int, |
70 | | - "is_docked": bool, |
71 | | - "delocalized": bool, |
| 64 | + "suspended_cleaning_charging_count": Any(int, None), |
| 65 | + "time_in_suspended_cleaning": Any(int, None), |
| 66 | + "time_in_error": Any(int, None), |
| 67 | + "time_in_pause": Any(int, None), |
| 68 | + "cleaned_area": Any(float, None), |
| 69 | + "base_count": Any(int, None), |
| 70 | + "is_docked": Any(bool, None), |
| 71 | + "delocalized": Any(bool, None), |
72 | 72 | # Everything below this line is not documented, but still present |
73 | | - "generated_at": str, |
| 73 | + "generated_at": Any(str, None), |
74 | 74 | "persistent_map_id": Any(str, None), |
75 | 75 | "cleaned_with_persistent_map_id": Any(str, None), |
76 | | - "valid_as_persistent_map": bool, |
77 | | - "navigation_mode": int, |
| 76 | + "valid_as_persistent_map": Any(bool, None), |
| 77 | + "navigation_mode": Any(int, None), |
78 | 78 | }, |
79 | 79 | extra=ALLOW_EXTRA, |
80 | 80 | ) |
|
87 | 87 | Required("id"): str, |
88 | 88 | Required("name"): str, |
89 | 89 | Required("url"): Url, |
90 | | - "raw_floor_map_url": Url, |
91 | | - "url_valid_for_seconds": int, |
| 90 | + "raw_floor_map_url": Any(Url, None), |
| 91 | + "url_valid_for_seconds": Any(int, None), |
92 | 92 | }, |
93 | 93 | extra=ALLOW_EXTRA, |
94 | 94 | ) |
|
0 commit comments