All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eedm.rooms_room-availability.v10.0.rooms_room-availability.json Maven / Gradle / Ivy

{
  "title" : "Rooms Room Availability",
  "description" : "A list of rooms that are available with given parameters.",
  "type" : "object",
  "properties" : {
    "recurrence" : {
      "title" : "Recurrence",
      "description" : "",
      "oneOf" : [ {
        "type" : "object",
        "format" : "recurrence",
        "properties" : {
          "timePeriod" : {
            "title" : "Time Period",
            "description" : "The period of time to be repeated.",
            "type" : "object",
            "properties" : {
              "startOn" : {
                "title" : "Start On",
                "description" : "The beginning of the time period being repeated.",
                "type" : "string",
                "format" : "date-time",
                "pattern" : "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?$"
              },
              "endOn" : {
                "title" : "End On",
                "description" : "The end of the time period being repeated.",
                "oneOf" : [ {
                  "type" : "string",
                  "format" : "date-time",
                  "pattern" : "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?$"
                }, {
                  "type" : "string",
                  "maxLength" : 0
                } ]
              }
            },
            "additionalProperties" : false,
            "required" : [ "startOn" ]
          },
          "repeatRule" : {
            "title" : "Repeat Rule",
            "description" : "The rule that describes how to repeat the time period.",
            "oneOf" : [ {
              "title" : "Daily",
              "description" : "Rules for repeating on a daily basis.",
              "type" : "object",
              "properties" : {
                "type" : {
                  "title" : "Type",
                  "description" : "",
                  "enum" : [ "daily" ],
                  "type" : "string"
                },
                "interval" : {
                  "title" : "Interval",
                  "description" : "Number of days between each repetition.",
                  "oneOf" : [ {
                    "type" : "integer"
                  }, {
                    "type" : "null"
                  } ]
                },
                "ends" : {
                  "title" : "Ends",
                  "description" : "When to end the daily repetitions.",
                  "oneOf" : [ {
                    "title" : "One Of-1",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "repetitions" : {
                        "title" : "Repetitions",
                        "description" : "Number of times to repeat, then stop.",
                        "type" : "integer"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "repetitions" ]
                  }, {
                    "title" : "One Of-2",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "date" : {
                        "title" : "Date",
                        "description" : "The date after which to stop repeating.",
                        "type" : "string",
                        "format" : "date",
                        "pattern" : "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])$"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "date" ]
                  }, {
                    "type" : "object",
                    "maxProperties" : 0
                  } ]
                }
              },
              "additionalProperties" : false,
              "required" : [ "type" ]
            }, {
              "title" : "Weekly",
              "description" : "Rules for repeating on a weekly basis.",
              "type" : "object",
              "properties" : {
                "type" : {
                  "title" : "Type",
                  "description" : "",
                  "enum" : [ "weekly" ],
                  "type" : "string"
                },
                "interval" : {
                  "title" : "Interval",
                  "description" : "Number of weeks between each repetition.",
                  "oneOf" : [ {
                    "type" : "integer"
                  }, {
                    "type" : "null"
                  } ]
                },
                "daysOfWeek" : {
                  "title" : "Days of Week",
                  "description" : "The days of the week on which to repeat the event.",
                  "type" : "array",
                  "items" : {
                    "enum" : [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ],
                    "type" : "string"
                  }
                },
                "ends" : {
                  "title" : "Ends",
                  "description" : "When to end the weekly repetitions.",
                  "oneOf" : [ {
                    "title" : "One Of-1",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "repetitions" : {
                        "title" : "Repetitions",
                        "description" : "Number of times to repeat, then stop.",
                        "type" : "integer"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "repetitions" ]
                  }, {
                    "title" : "One Of-2",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "date" : {
                        "title" : "Date",
                        "description" : "The date after which to stop repeating.",
                        "type" : "string",
                        "format" : "date",
                        "pattern" : "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])$"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "date" ]
                  }, {
                    "type" : "object",
                    "maxProperties" : 0
                  } ]
                }
              },
              "additionalProperties" : false,
              "required" : [ "type" ]
            }, {
              "title" : "Monthly",
              "description" : "Rules for repeating on a monthly basis.",
              "type" : "object",
              "properties" : {
                "type" : {
                  "title" : "Type",
                  "description" : "",
                  "enum" : [ "monthly" ],
                  "type" : "string"
                },
                "interval" : {
                  "title" : "Interval",
                  "description" : "Number of months between each repetition.",
                  "oneOf" : [ {
                    "type" : "integer"
                  }, {
                    "type" : "null"
                  } ]
                },
                "repeatBy" : {
                  "title" : "Repeat By",
                  "description" : "How to calculate the day of the month on which to start repeating.",
                  "oneOf" : [ {
                    "title" : "One Of-1",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "dayOfMonth" : {
                        "title" : "Day of Month",
                        "description" : "The number of the day in the month on which to repeat. Use a positive number to count from the start of the month (e.g., 1 = first day of the month, 2 = second day of the month), and a negative number to count from the end of the month (e.g. -1 = last day of the month, -2 = second to last day of the month, etc.).",
                        "type" : "integer"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "dayOfMonth" ]
                  }, {
                    "title" : "One Of-2",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "dayOfWeek" : {
                        "title" : "Day of Week",
                        "description" : "The cardinal day of the week (e.g., the first Tuesday, the last Friday, etc.) in the month on which to start repeating.",
                        "type" : "object",
                        "properties" : {
                          "occurrence" : {
                            "title" : "Occurrence",
                            "description" : "The nth occurrence of the day of the week in the month. Use a positive number to count from the start of the month (e.g., 1 = first in the month, 2 = second in the month), and a negative number to count from the end of the month (e.g. -1 = last in the month, -2 = second from last, etc.).",
                            "type" : "integer"
                          },
                          "day" : {
                            "title" : "Day of Week",
                            "description" : "A day in a week.",
                            "enum" : [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ],
                            "type" : "string"
                          }
                        },
                        "additionalProperties" : false,
                        "required" : [ "occurrence", "day" ]
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "dayOfWeek" ]
                  } ]
                },
                "ends" : {
                  "title" : "Ends",
                  "description" : "When to end the monthly repetitions.",
                  "oneOf" : [ {
                    "title" : "One Of-1",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "repetitions" : {
                        "title" : "Repetitions",
                        "description" : "Number of times to repeat, then stop.",
                        "type" : "integer"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "repetitions" ]
                  }, {
                    "title" : "One Of-2",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "date" : {
                        "title" : "Date",
                        "description" : "The date after which to stop repeating.",
                        "type" : "string",
                        "format" : "date",
                        "pattern" : "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])$"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "date" ]
                  }, {
                    "type" : "object",
                    "maxProperties" : 0
                  } ]
                }
              },
              "additionalProperties" : false,
              "required" : [ "type", "repeatBy" ]
            }, {
              "title" : "Yearly",
              "description" : "Rules for repeating on an annual basis.",
              "type" : "object",
              "properties" : {
                "type" : {
                  "title" : "Type",
                  "description" : "",
                  "enum" : [ "yearly" ],
                  "type" : "string"
                },
                "interval" : {
                  "title" : "Interval",
                  "description" : "Number of years between each repetition.",
                  "oneOf" : [ {
                    "type" : "integer"
                  }, {
                    "type" : "null"
                  } ]
                },
                "ends" : {
                  "title" : "Ends",
                  "description" : "When to end the yearly repetitions.",
                  "oneOf" : [ {
                    "title" : "One Of-1",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "repetitions" : {
                        "title" : "Repetitions",
                        "description" : "Number of times to repeat, then stop.",
                        "type" : "integer"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "repetitions" ]
                  }, {
                    "title" : "One Of-2",
                    "description" : "",
                    "type" : "object",
                    "properties" : {
                      "date" : {
                        "title" : "Date",
                        "description" : "The date after which to stop repeating.",
                        "type" : "string",
                        "format" : "date",
                        "pattern" : "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])$"
                      }
                    },
                    "additionalProperties" : false,
                    "required" : [ "date" ]
                  }, {
                    "type" : "object",
                    "maxProperties" : 0
                  } ]
                }
              },
              "additionalProperties" : false,
              "required" : [ "type" ]
            } ]
          }
        },
        "additionalProperties" : false,
        "required" : [ "timePeriod", "repeatRule" ]
      }, {
        "type" : "object",
        "maxProperties" : 0
      } ]
    },
    "site" : {
      "title" : "Site",
      "description" : "The institution's site.",
      "oneOf" : [ {
        "type" : "object",
        "properties" : {
          "id" : {
            "title" : "ID",
            "description" : "The global identifier of the institution's site.",
            "type" : "string",
            "format" : "guid",
            "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
          }
        },
        "additionalProperties" : false,
        "required" : [ "id" ]
      }, {
        "type" : "object",
        "maxProperties" : 0
      } ]
    },
    "building" : {
      "title" : "Building",
      "description" : "The building at the selected site.",
      "oneOf" : [ {
        "type" : "object",
        "properties" : {
          "id" : {
            "title" : "ID",
            "description" : "The global identifier of a building.",
            "type" : "string",
            "format" : "guid",
            "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
          }
        },
        "additionalProperties" : false,
        "required" : [ "id" ]
      }, {
        "type" : "object",
        "maxProperties" : 0
      } ]
    },
    "occupancies" : {
      "title" : "Occupancy",
      "description" : "For rooms with multiple layout, this can be used. For example, a gymnasium can be used for a seminar or a conference, with different maximum occupancies. For rooms with single occupancy type, \"Default\" can be used.",
      "type" : "array",
      "items" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "title" : "Room Layout",
            "description" : "For rooms with multiple layout, this can be used. For example, a gymnasium can be used for a seminar or a conference, with different maximum occupancies. For rooms with single occupancy type, \"Default\" can be used.",
            "enum" : [ "banquet", "conference", "sportsevent", "graduationceremony", "seminar", "boardmeeting", "performance", "convention", "convocation", "pressmeet", "workshops", "exam", "classroom", "laboratory", "default" ],
            "type" : "string"
          },
          "maxOccupancy" : {
            "title" : "Maximum Occupancy",
            "description" : "The maximum number of persons who may occupy a room arranged in a given layout.",
            "type" : "number"
          }
        },
        "additionalProperties" : false,
        "required" : [ "type", "maxOccupancy" ]
      }
    },
    "roomTypes" : {
      "title" : "Room Types",
      "description" : "The type or style of a of room's layout. For example, \"Classroom\" or \"Lecture Hall\" style. A room may support multiple types of layouts.",
      "type" : "array",
      "items" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "title" : "Room Type",
            "description" : "The type or style of a of room's layout. For example, \"Classroom\" or \"Lecture Hall\" style.",
            "enum" : [ "residencehallroom", "residentialsingleroom", "residentialdoubleroom", "residentialtripleroom", "residentialsuiteroom", "apartment", "house", "classroom", "lecturehall", "seminarroom", "conferenceroom", "sciencelaboratory", "computerlaboratory", "mechanicsboratory", "audiovisualboratory", "artstudio", "musicroom", "performingartsstudio", "ballroom", "office", "studyfacility", "clinic", "animalquarters", "greenhouse", "specialusefacility", "generalusefacility", "foodfacility", "daycare", "lounge", "merchandisingroom", "supportfacility", "healthcarefacility", "atrium", "amphitheater", "auditorium", "booth", "other" ],
            "type" : "string"
          },
          "detail" : {
            "title" : "Detail",
            "description" : "The type or style of a of room's layout. For example, \"Classroom\"  or \"Lecture Hall\" style.",
            "oneOf" : [ {
              "type" : "object",
              "properties" : {
                "id" : {
                  "title" : "ID",
                  "description" : "The global identifier for the Detail.",
                  "type" : "string",
                  "format" : "guid",
                  "pattern" : "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
                }
              },
              "links" : [ {
                "rel" : "self",
                "href" : "/room-types/{id}",
                "targetSchema" : {
                  "$ref" : "room-types.json#"
                }
              } ],
              "additionalProperties" : false,
              "required" : [ "id" ]
            }, {
              "type" : "object",
              "maxProperties" : 0
            } ]
          }
        },
        "additionalProperties" : false,
        "required" : [ "type" ]
      }
    },
    "metadata" : {
      "$ref" : "resource:/eedm/metadata.json"
    }
  },
  "additionalProperties" : false
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy