"""
Defines mapping of resource types to schema
Generated. Do not edit!
"""
SCHEMA = {'device': {u'$schema': u'http://json-schema.org/draft-04/schema#',
            u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                        u'description': u'Describes the foundations of all NMOS resources',
                        u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                         u'type': u'string'},
                                        u'id': {u'description': u'Globally unique identifier for the resource',
                                                u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                u'type': u'string'},
                                        u'label': {u'description': u'Freeform string label for the resource',
                                                   u'type': u'string'},
                                        u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                  u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                               u'type': u'array'}},
                                                  u'type': u'object'},
                                        u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                     u'pattern': u'^[0-9]+:[0-9]+$',
                                                     u'type': u'string'}},
                        u'required': [u'id',
                                      u'version',
                                      u'label',
                                      u'description',
                                      u'tags'],
                        u'title': u'Base resource',
                        u'type': u'object'},
                       {u'properties': {u'controls': {u'description': u'Control endpoints exposed for the Device',
                                                      u'items': {u'properties': {u'href': {u'description': u'URL to reach a control endpoint, whether http or otherwise',
                                                                                           u'format': u'uri',
                                                                                           u'type': u'string'},
                                                                                 u'type': {u'description': u'URN identifying the control format',
                                                                                           u'format': u'uri',
                                                                                           u'type': u'string'}},
                                                                 u'required': [u'href',
                                                                               u'type'],
                                                                 u'type': u'object'},
                                                      u'type': u'array'},
                                        u'node_id': {u'description': u'Globally unique identifier for the Node which initially created the Device',
                                                     u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                     u'type': u'string'},
                                        u'receivers': {u'description': u'UUIDs of Receivers attached to the Device',
                                                       u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                  u'type': u'string'},
                                                       u'type': u'array'},
                                        u'senders': {u'description': u'UUIDs of Senders attached to the Device',
                                                     u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                u'type': u'string'},
                                                     u'type': u'array'},
                                        u'type': {u'description': u'Device type URN',
                                                  u'format': u'uri',
                                                  u'oneOf': [{u'enum': [u'urn:x-nmos:device:generic',
                                                                        u'urn:x-nmos:device:pipeline']},
                                                             {u'not': {u'pattern': u'^urn:x-nmos:'}}],
                                                  u'type': u'string'}},
                        u'required': [u'type',
                                      u'node_id',
                                      u'senders',
                                      u'receivers',
                                      u'controls'],
                        u'type': u'object'}],
            u'description': u'Describes a Device',
            u'title': u'Device resource',
            u'type': u'object'},
 'flow': {u'$schema': u'http://json-schema.org/draft-04/schema#',
          u'anyOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                  u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                              u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                          u'description': u'Describes the foundations of all NMOS resources',
                                                          u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                           u'type': u'string'},
                                                                          u'id': {u'description': u'Globally unique identifier for the resource',
                                                                                  u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                  u'type': u'string'},
                                                                          u'label': {u'description': u'Freeform string label for the resource',
                                                                                     u'type': u'string'},
                                                                          u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                                    u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                                 u'type': u'array'}},
                                                                                    u'type': u'object'},
                                                                          u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                                       u'pattern': u'^[0-9]+:[0-9]+$',
                                                                                       u'type': u'string'}},
                                                          u'required': [u'id',
                                                                        u'version',
                                                                        u'label',
                                                                        u'description',
                                                                        u'tags'],
                                                          u'title': u'Base resource',
                                                          u'type': u'object'},
                                                         {u'properties': {u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Flow',
                                                                                         u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                         u'type': u'string'},
                                                                          u'grain_rate': {u'description': u'Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only.',
                                                                                          u'properties': {u'denominator': {u'default': 1,
                                                                                                                           u'description': u'Denominator',
                                                                                                                           u'type': u'integer'},
                                                                                                          u'numerator': {u'description': u'Numerator',
                                                                                                                         u'type': u'integer'}},
                                                                                          u'required': [u'numerator'],
                                                                                          u'type': u'object'},
                                                                          u'parents': {u'description': u'Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow)',
                                                                                       u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                                  u'type': u'string'},
                                                                                       u'type': u'array'},
                                                                          u'source_id': {u'description': u'Globally unique identifier for the Source which initially created the Flow',
                                                                                         u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                         u'type': u'string'}},
                                                          u'required': [u'source_id',
                                                                        u'device_id',
                                                                        u'parents'],
                                                          u'type': u'object'}],
                                              u'description': u'Describes a Flow',
                                              u'title': u'Flow resource',
                                              u'type': u'object'},
                                             {u'properties': {u'colorspace': {u'description': u'Colorspace used for the video',
                                                                              u'enum': [u'BT601',
                                                                                        u'BT709',
                                                                                        u'BT2020',
                                                                                        u'BT2100'],
                                                                              u'type': u'string'},
                                                              u'format': {u'description': u'Format of the data coming from the Flow as a URN',
                                                                          u'enum': [u'urn:x-nmos:format:video'],
                                                                          u'format': u'uri',
                                                                          u'type': u'string'},
                                                              u'frame_height': {u'description': u'Height of the picture in pixels',
                                                                                u'type': u'integer'},
                                                              u'frame_width': {u'description': u'Width of the picture in pixels',
                                                                               u'type': u'integer'},
                                                              u'interlace_mode': {u'default': u'progressive',
                                                                                  u'description': u'Interlaced video mode for frames in this Flow',
                                                                                  u'enum': [u'progressive',
                                                                                            u'interlaced_tff',
                                                                                            u'interlaced_bff',
                                                                                            u'interlaced_psf'],
                                                                                  u'type': u'string'},
                                                              u'transfer_characteristic': {u'default': u'SDR',
                                                                                           u'description': u'Transfer characteristic',
                                                                                           u'enum': [u'SDR',
                                                                                                     u'HLG',
                                                                                                     u'PQ'],
                                                                                           u'type': u'string'}},
                                              u'required': [u'format',
                                                            u'frame_width',
                                                            u'frame_height',
                                                            u'colorspace'],
                                              u'type': u'object'}],
                                  u'description': u'Describes a Video Flow',
                                  u'title': u'Video Flow resource',
                                  u'type': u'object'},
                                 {u'properties': {u'components': {u'description': u'Array of objects describing the components',
                                                                  u'items': {u'properties': {u'bit_depth': {u'description': u'Number of bits used to describe each sample',
                                                                                                            u'type': u'integer'},
                                                                                             u'height': {u'description': u'Height of this component in pixels',
                                                                                                         u'type': u'integer'},
                                                                                             u'name': {u'description': u'Name of this component',
                                                                                                       u'enum': [u'Y',
                                                                                                                 u'Cb',
                                                                                                                 u'Cr',
                                                                                                                 u'I',
                                                                                                                 u'Ct',
                                                                                                                 u'Cp',
                                                                                                                 u'A',
                                                                                                                 u'R',
                                                                                                                 u'G',
                                                                                                                 u'B',
                                                                                                                 u'DepthMap'],
                                                                                                       u'type': u'string'},
                                                                                             u'width': {u'description': u'Width of this component in pixels',
                                                                                                        u'type': u'integer'}},
                                                                             u'required': [u'name',
                                                                                           u'width',
                                                                                           u'height',
                                                                                           u'bit_depth'],
                                                                             u'title': u'component',
                                                                             u'type': u'object'},
                                                                  u'minItems': 1,
                                                                  u'type': u'array'},
                                                  u'media_type': {u'description': u'Subclassification of the format using IANA assigned media types',
                                                                  u'enum': [u'video/raw'],
                                                                  u'type': u'string'}},
                                  u'required': [u'media_type',
                                                u'components'],
                                  u'type': u'object'}],
                      u'description': u'Describes a raw Video Flow',
                      u'title': u'Raw Video Flow resource',
                      u'type': u'object'},
                     {u'$schema': u'http://json-schema.org/draft-04/schema#',
                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                  u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                              u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                          u'description': u'Describes the foundations of all NMOS resources',
                                                          u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                           u'type': u'string'},
                                                                          u'id': {u'description': u'Globally unique identifier for the resource',
                                                                                  u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                  u'type': u'string'},
                                                                          u'label': {u'description': u'Freeform string label for the resource',
                                                                                     u'type': u'string'},
                                                                          u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                                    u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                                 u'type': u'array'}},
                                                                                    u'type': u'object'},
                                                                          u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                                       u'pattern': u'^[0-9]+:[0-9]+$',
                                                                                       u'type': u'string'}},
                                                          u'required': [u'id',
                                                                        u'version',
                                                                        u'label',
                                                                        u'description',
                                                                        u'tags'],
                                                          u'title': u'Base resource',
                                                          u'type': u'object'},
                                                         {u'properties': {u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Flow',
                                                                                         u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                         u'type': u'string'},
                                                                          u'grain_rate': {u'description': u'Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only.',
                                                                                          u'properties': {u'denominator': {u'default': 1,
                                                                                                                           u'description': u'Denominator',
                                                                                                                           u'type': u'integer'},
                                                                                                          u'numerator': {u'description': u'Numerator',
                                                                                                                         u'type': u'integer'}},
                                                                                          u'required': [u'numerator'],
                                                                                          u'type': u'object'},
                                                                          u'parents': {u'description': u'Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow)',
                                                                                       u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                                  u'type': u'string'},
                                                                                       u'type': u'array'},
                                                                          u'source_id': {u'description': u'Globally unique identifier for the Source which initially created the Flow',
                                                                                         u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                         u'type': u'string'}},
                                                          u'required': [u'source_id',
                                                                        u'device_id',
                                                                        u'parents'],
                                                          u'type': u'object'}],
                                              u'description': u'Describes a Flow',
                                              u'title': u'Flow resource',
                                              u'type': u'object'},
                                             {u'properties': {u'colorspace': {u'description': u'Colorspace used for the video',
                                                                              u'enum': [u'BT601',
                                                                                        u'BT709',
                                                                                        u'BT2020',
                                                                                        u'BT2100'],
                                                                              u'type': u'string'},
                                                              u'format': {u'description': u'Format of the data coming from the Flow as a URN',
                                                                          u'enum': [u'urn:x-nmos:format:video'],
                                                                          u'format': u'uri',
                                                                          u'type': u'string'},
                                                              u'frame_height': {u'description': u'Height of the picture in pixels',
                                                                                u'type': u'integer'},
                                                              u'frame_width': {u'description': u'Width of the picture in pixels',
                                                                               u'type': u'integer'},
                                                              u'interlace_mode': {u'default': u'progressive',
                                                                                  u'description': u'Interlaced video mode for frames in this Flow',
                                                                                  u'enum': [u'progressive',
                                                                                            u'interlaced_tff',
                                                                                            u'interlaced_bff',
                                                                                            u'interlaced_psf'],
                                                                                  u'type': u'string'},
                                                              u'transfer_characteristic': {u'default': u'SDR',
                                                                                           u'description': u'Transfer characteristic',
                                                                                           u'enum': [u'SDR',
                                                                                                     u'HLG',
                                                                                                     u'PQ'],
                                                                                           u'type': u'string'}},
                                              u'required': [u'format',
                                                            u'frame_width',
                                                            u'frame_height',
                                                            u'colorspace'],
                                              u'type': u'object'}],
                                  u'description': u'Describes a Video Flow',
                                  u'title': u'Video Flow resource',
                                  u'type': u'object'},
                                 {u'properties': {u'media_type': {u'anyOf': [{u'enum': [u'video/H264',
                                                                                        u'video/vc2']},
                                                                             {u'pattern': u'^video\\/[^\\s\\/]+$'}],
                                                                  u'description': u'Subclassification of the format using IANA assigned media types',
                                                                  u'not': {u'enum': [u'video/raw']},
                                                                  u'type': u'string'}},
                                  u'required': [u'media_type'],
                                  u'type': u'object'}],
                      u'description': u'Describes a coded Video Flow',
                      u'title': u'Coded Video Flow resource',
                      u'type': u'object'},
                     {u'$schema': u'http://json-schema.org/draft-04/schema#',
                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                  u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                              u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                          u'description': u'Describes the foundations of all NMOS resources',
                                                          u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                           u'type': u'string'},
                                                                          u'id': {u'description': u'Globally unique identifier for the resource',
                                                                                  u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                  u'type': u'string'},
                                                                          u'label': {u'description': u'Freeform string label for the resource',
                                                                                     u'type': u'string'},
                                                                          u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                                    u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                                 u'type': u'array'}},
                                                                                    u'type': u'object'},
                                                                          u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                                       u'pattern': u'^[0-9]+:[0-9]+$',
                                                                                       u'type': u'string'}},
                                                          u'required': [u'id',
                                                                        u'version',
                                                                        u'label',
                                                                        u'description',
                                                                        u'tags'],
                                                          u'title': u'Base resource',
                                                          u'type': u'object'},
                                                         {u'properties': {u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Flow',
                                                                                         u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                         u'type': u'string'},
                                                                          u'grain_rate': {u'description': u'Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only.',
                                                                                          u'properties': {u'denominator': {u'default': 1,
                                                                                                                           u'description': u'Denominator',
                                                                                                                           u'type': u'integer'},
                                                                                                          u'numerator': {u'description': u'Numerator',
                                                                                                                         u'type': u'integer'}},
                                                                                          u'required': [u'numerator'],
                                                                                          u'type': u'object'},
                                                                          u'parents': {u'description': u'Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow)',
                                                                                       u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                                  u'type': u'string'},
                                                                                       u'type': u'array'},
                                                                          u'source_id': {u'description': u'Globally unique identifier for the Source which initially created the Flow',
                                                                                         u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                         u'type': u'string'}},
                                                          u'required': [u'source_id',
                                                                        u'device_id',
                                                                        u'parents'],
                                                          u'type': u'object'}],
                                              u'description': u'Describes a Flow',
                                              u'title': u'Flow resource',
                                              u'type': u'object'},
                                             {u'properties': {u'format': {u'description': u'Format of the data coming from the Flow as a URN',
                                                                          u'enum': [u'urn:x-nmos:format:audio'],
                                                                          u'format': u'uri',
                                                                          u'type': u'string'},
                                                              u'sample_rate': {u'description': u'Number of audio samples per second for this Flow',
                                                                               u'properties': {u'denominator': {u'default': 1,
                                                                                                                u'description': u'Denominator',
                                                                                                                u'type': u'integer'},
                                                                                               u'numerator': {u'description': u'Numerator',
                                                                                                              u'type': u'integer'}},
                                                                               u'required': [u'numerator'],
                                                                               u'type': u'object'}},
                                              u'required': [u'format',
                                                            u'sample_rate'],
                                              u'type': u'object'}],
                                  u'description': u'Describes an audio Flow',
                                  u'title': u'Audio Flow resource',
                                  u'type': u'object'},
                                 {u'properties': {u'bit_depth': {u'description': u'Bit depth of the audio samples',
                                                                 u'type': u'integer'},
                                                  u'media_type': {u'anyOf': [{u'enum': [u'audio/L24',
                                                                                        u'audio/L20',
                                                                                        u'audio/L16',
                                                                                        u'audio/L8']},
                                                                             {u'pattern': u'^audio\\/[^\\s\\/]+$'}],
                                                                  u'description': u'Subclassification of the format using IANA assigned media types',
                                                                  u'type': u'string'}},
                                  u'required': [u'media_type',
                                                u'bit_depth'],
                                  u'type': u'object'}],
                      u'description': u'Describes a raw audio Flow',
                      u'title': u'Raw Audio Flow resource',
                      u'type': u'object'},
                     {u'$schema': u'http://json-schema.org/draft-04/schema#',
                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                  u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                              u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                          u'description': u'Describes the foundations of all NMOS resources',
                                                          u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                           u'type': u'string'},
                                                                          u'id': {u'description': u'Globally unique identifier for the resource',
                                                                                  u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                  u'type': u'string'},
                                                                          u'label': {u'description': u'Freeform string label for the resource',
                                                                                     u'type': u'string'},
                                                                          u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                                    u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                                 u'type': u'array'}},
                                                                                    u'type': u'object'},
                                                                          u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                                       u'pattern': u'^[0-9]+:[0-9]+$',
                                                                                       u'type': u'string'}},
                                                          u'required': [u'id',
                                                                        u'version',
                                                                        u'label',
                                                                        u'description',
                                                                        u'tags'],
                                                          u'title': u'Base resource',
                                                          u'type': u'object'},
                                                         {u'properties': {u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Flow',
                                                                                         u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                         u'type': u'string'},
                                                                          u'grain_rate': {u'description': u'Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only.',
                                                                                          u'properties': {u'denominator': {u'default': 1,
                                                                                                                           u'description': u'Denominator',
                                                                                                                           u'type': u'integer'},
                                                                                                          u'numerator': {u'description': u'Numerator',
                                                                                                                         u'type': u'integer'}},
                                                                                          u'required': [u'numerator'],
                                                                                          u'type': u'object'},
                                                                          u'parents': {u'description': u'Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow)',
                                                                                       u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                                  u'type': u'string'},
                                                                                       u'type': u'array'},
                                                                          u'source_id': {u'description': u'Globally unique identifier for the Source which initially created the Flow',
                                                                                         u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                         u'type': u'string'}},
                                                          u'required': [u'source_id',
                                                                        u'device_id',
                                                                        u'parents'],
                                                          u'type': u'object'}],
                                              u'description': u'Describes a Flow',
                                              u'title': u'Flow resource',
                                              u'type': u'object'},
                                             {u'properties': {u'format': {u'description': u'Format of the data coming from the Flow as a URN',
                                                                          u'enum': [u'urn:x-nmos:format:audio'],
                                                                          u'format': u'uri',
                                                                          u'type': u'string'},
                                                              u'sample_rate': {u'description': u'Number of audio samples per second for this Flow',
                                                                               u'properties': {u'denominator': {u'default': 1,
                                                                                                                u'description': u'Denominator',
                                                                                                                u'type': u'integer'},
                                                                                               u'numerator': {u'description': u'Numerator',
                                                                                                              u'type': u'integer'}},
                                                                               u'required': [u'numerator'],
                                                                               u'type': u'object'}},
                                              u'required': [u'format',
                                                            u'sample_rate'],
                                              u'type': u'object'}],
                                  u'description': u'Describes an audio Flow',
                                  u'title': u'Audio Flow resource',
                                  u'type': u'object'},
                                 {u'properties': {u'media_type': {u'description': u'Subclassification of the format using IANA assigned media types',
                                                                  u'not': {u'pattern': u'^audio\\/L[0-9]+$'},
                                                                  u'pattern': u'^audio\\/[^\\s\\/]+$',
                                                                  u'type': u'string'}},
                                  u'required': [u'media_type'],
                                  u'type': u'object'}],
                      u'description': u'Describes a coded audio Flow',
                      u'title': u'Coded Audio Flow resource',
                      u'type': u'object'},
                     {u'$schema': u'http://json-schema.org/draft-04/schema#',
                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                  u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                              u'description': u'Describes the foundations of all NMOS resources',
                                              u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                               u'type': u'string'},
                                                              u'id': {u'description': u'Globally unique identifier for the resource',
                                                                      u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                      u'type': u'string'},
                                                              u'label': {u'description': u'Freeform string label for the resource',
                                                                         u'type': u'string'},
                                                              u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                        u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                     u'type': u'array'}},
                                                                        u'type': u'object'},
                                                              u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                           u'pattern': u'^[0-9]+:[0-9]+$',
                                                                           u'type': u'string'}},
                                              u'required': [u'id',
                                                            u'version',
                                                            u'label',
                                                            u'description',
                                                            u'tags'],
                                              u'title': u'Base resource',
                                              u'type': u'object'},
                                             {u'properties': {u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Flow',
                                                                             u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                             u'type': u'string'},
                                                              u'grain_rate': {u'description': u'Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only.',
                                                                              u'properties': {u'denominator': {u'default': 1,
                                                                                                               u'description': u'Denominator',
                                                                                                               u'type': u'integer'},
                                                                                              u'numerator': {u'description': u'Numerator',
                                                                                                             u'type': u'integer'}},
                                                                              u'required': [u'numerator'],
                                                                              u'type': u'object'},
                                                              u'parents': {u'description': u'Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow)',
                                                                           u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                      u'type': u'string'},
                                                                           u'type': u'array'},
                                                              u'source_id': {u'description': u'Globally unique identifier for the Source which initially created the Flow',
                                                                             u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                             u'type': u'string'}},
                                              u'required': [u'source_id',
                                                            u'device_id',
                                                            u'parents'],
                                              u'type': u'object'}],
                                  u'description': u'Describes a Flow',
                                  u'title': u'Flow resource',
                                  u'type': u'object'},
                                 {u'properties': {u'format': {u'description': u'Format of the data coming from the Flow as a URN',
                                                              u'enum': [u'urn:x-nmos:format:data'],
                                                              u'format': u'uri',
                                                              u'type': u'string'},
                                                  u'media_type': {u'description': u'Subclassification of the format using IANA assigned media types',
                                                                  u'not': {u'enum': [u'video/smpte291']},
                                                                  u'pattern': u'^[^\\s\\/]+\\/[^\\s\\/]+$',
                                                                  u'type': u'string'}},
                                  u'required': [u'format', u'media_type'],
                                  u'type': u'object'}],
                      u'description': u'Describes a generic data Flow',
                      u'title': u'Generic data Flow resource',
                      u'type': u'object'},
                     {u'$schema': u'http://json-schema.org/draft-04/schema#',
                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                  u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                              u'description': u'Describes the foundations of all NMOS resources',
                                              u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                               u'type': u'string'},
                                                              u'id': {u'description': u'Globally unique identifier for the resource',
                                                                      u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                      u'type': u'string'},
                                                              u'label': {u'description': u'Freeform string label for the resource',
                                                                         u'type': u'string'},
                                                              u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                        u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                     u'type': u'array'}},
                                                                        u'type': u'object'},
                                                              u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                           u'pattern': u'^[0-9]+:[0-9]+$',
                                                                           u'type': u'string'}},
                                              u'required': [u'id',
                                                            u'version',
                                                            u'label',
                                                            u'description',
                                                            u'tags'],
                                              u'title': u'Base resource',
                                              u'type': u'object'},
                                             {u'properties': {u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Flow',
                                                                             u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                             u'type': u'string'},
                                                              u'grain_rate': {u'description': u'Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only.',
                                                                              u'properties': {u'denominator': {u'default': 1,
                                                                                                               u'description': u'Denominator',
                                                                                                               u'type': u'integer'},
                                                                                              u'numerator': {u'description': u'Numerator',
                                                                                                             u'type': u'integer'}},
                                                                              u'required': [u'numerator'],
                                                                              u'type': u'object'},
                                                              u'parents': {u'description': u'Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow)',
                                                                           u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                      u'type': u'string'},
                                                                           u'type': u'array'},
                                                              u'source_id': {u'description': u'Globally unique identifier for the Source which initially created the Flow',
                                                                             u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                             u'type': u'string'}},
                                              u'required': [u'source_id',
                                                            u'device_id',
                                                            u'parents'],
                                              u'type': u'object'}],
                                  u'description': u'Describes a Flow',
                                  u'title': u'Flow resource',
                                  u'type': u'object'},
                                 {u'properties': {u'DID_SDID': {u'description': u'List of Data identification and Secondary data identification words',
                                                                u'items': {u'properties': {u'DID': {u'description': u'Data identification word',
                                                                                                    u'pattern': u'^0x[0-9a-fA-F]{2}$',
                                                                                                    u'type': u'string'},
                                                                                           u'SDID': {u'description': u'Secondary data identification word',
                                                                                                     u'pattern': u'^0x[0-9a-fA-F]{2}$',
                                                                                                     u'type': u'string'}},
                                                                           u'title': u'entry',
                                                                           u'type': u'object'},
                                                                u'type': u'array'},
                                                  u'format': {u'description': u'Format of the data coming from the Flow as a URN',
                                                              u'enum': [u'urn:x-nmos:format:data'],
                                                              u'format': u'uri',
                                                              u'type': u'string'},
                                                  u'media_type': {u'description': u'Subclassification of the format using IANA assigned media types',
                                                                  u'enum': [u'video/smpte291'],
                                                                  u'type': u'string'}},
                                  u'required': [u'format', u'media_type'],
                                  u'type': u'object'}],
                      u'description': u'Describes an SDI ancillary Flow',
                      u'title': u'SDI ancillary Flow resource',
                      u'type': u'object'},
                     {u'$schema': u'http://json-schema.org/draft-04/schema#',
                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                  u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                              u'description': u'Describes the foundations of all NMOS resources',
                                              u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                               u'type': u'string'},
                                                              u'id': {u'description': u'Globally unique identifier for the resource',
                                                                      u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                      u'type': u'string'},
                                                              u'label': {u'description': u'Freeform string label for the resource',
                                                                         u'type': u'string'},
                                                              u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                        u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                     u'type': u'array'}},
                                                                        u'type': u'object'},
                                                              u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                           u'pattern': u'^[0-9]+:[0-9]+$',
                                                                           u'type': u'string'}},
                                              u'required': [u'id',
                                                            u'version',
                                                            u'label',
                                                            u'description',
                                                            u'tags'],
                                              u'title': u'Base resource',
                                              u'type': u'object'},
                                             {u'properties': {u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Flow',
                                                                             u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                             u'type': u'string'},
                                                              u'grain_rate': {u'description': u'Number of Grains per second for this Flow. Must be an integer division of, or equal to the Grain rate specified by the parent Source. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Flows only.',
                                                                              u'properties': {u'denominator': {u'default': 1,
                                                                                                               u'description': u'Denominator',
                                                                                                               u'type': u'integer'},
                                                                                              u'numerator': {u'description': u'Numerator',
                                                                                                             u'type': u'integer'}},
                                                                              u'required': [u'numerator'],
                                                                              u'type': u'object'},
                                                              u'parents': {u'description': u'Array of UUIDs representing the Flow IDs of Grains which came together to generate this Flow (may change over the lifetime of this Flow)',
                                                                           u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                      u'type': u'string'},
                                                                           u'type': u'array'},
                                                              u'source_id': {u'description': u'Globally unique identifier for the Source which initially created the Flow',
                                                                             u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                             u'type': u'string'}},
                                              u'required': [u'source_id',
                                                            u'device_id',
                                                            u'parents'],
                                              u'type': u'object'}],
                                  u'description': u'Describes a Flow',
                                  u'title': u'Flow resource',
                                  u'type': u'object'},
                                 {u'properties': {u'format': {u'description': u'Format of the data coming from the Flow as a URN',
                                                              u'enum': [u'urn:x-nmos:format:mux'],
                                                              u'format': u'uri',
                                                              u'type': u'string'},
                                                  u'media_type': {u'anyOf': [{u'enum': [u'video/SMPTE2022-6']},
                                                                             {u'pattern': u'^[^\\s\\/]+\\/[^\\s\\/]+$'}],
                                                                  u'description': u'Subclassification of the format using IANA assigned media types',
                                                                  u'type': u'string'}},
                                  u'required': [u'format', u'media_type'],
                                  u'type': u'object'}],
                      u'description': u'Describes a mux Flow',
                      u'title': u'Mux Flow resource',
                      u'type': u'object'}],
          u'description': u'Describes a Flow',
          u'title': u'Flow resource',
          u'type': u'object'},
 'node': {u'$schema': u'http://json-schema.org/draft-04/schema#',
          u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                      u'description': u'Describes the foundations of all NMOS resources',
                      u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                       u'type': u'string'},
                                      u'id': {u'description': u'Globally unique identifier for the resource',
                                              u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                              u'type': u'string'},
                                      u'label': {u'description': u'Freeform string label for the resource',
                                                 u'type': u'string'},
                                      u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                             u'type': u'array'}},
                                                u'type': u'object'},
                                      u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                   u'pattern': u'^[0-9]+:[0-9]+$',
                                                   u'type': u'string'}},
                      u'required': [u'id',
                                    u'version',
                                    u'label',
                                    u'description',
                                    u'tags'],
                      u'title': u'Base resource',
                      u'type': u'object'},
                     {u'properties': {u'api': {u'description': u'URL fragments required to connect to the Node API',
                                               u'properties': {u'endpoints': {u'description': u'Host, port and protocol details required to connect to the API',
                                                                              u'items': {u'properties': {u'host': {u'anyOf': [{u'format': u'hostname'},
                                                                                                                              {u'format': u'ipv4'},
                                                                                                                              {u'format': u'ipv6'}],
                                                                                                                   u'description': u'IP address or hostname which the Node API is running on',
                                                                                                                   u'type': u'string'},
                                                                                                         u'port': {u'description': u'Port number which the Node API is running on',
                                                                                                                   u'maximum': 65535,
                                                                                                                   u'minimum': 1,
                                                                                                                   u'type': u'integer'},
                                                                                                         u'protocol': {u'description': u'Protocol supported by this instance of the Node API',
                                                                                                                       u'enum': [u'http',
                                                                                                                                 u'https'],
                                                                                                                       u'type': u'string'}},
                                                                                         u'required': [u'host',
                                                                                                       u'port',
                                                                                                       u'protocol'],
                                                                                         u'type': u'object'},
                                                                              u'type': u'array'},
                                                               u'versions': {u'description': u'Supported API versions running on this Node',
                                                                             u'items': {u'pattern': u'v[0-9]+.[0-9]+',
                                                                                        u'type': u'string'},
                                                                             u'type': u'array'}},
                                               u'required': [u'versions',
                                                             u'endpoints'],
                                               u'type': u'object'},
                                      u'caps': {u'description': u'Capabilities (not yet defined)',
                                                u'type': u'object'},
                                      u'clocks': {u'description': u'Clocks made available to Devices owned by this Node',
                                                  u'items': {u'anyOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                                         u'description': u'Describes a clock with no external reference',
                                                                         u'properties': {u'name': {u'description': u'Name of this refclock (unique for this set of clocks)',
                                                                                                   u'pattern': u'^clk[0-9]+$',
                                                                                                   u'type': u'string'},
                                                                                         u'ref_type': {u'description': u'Type of external reference used by this clock',
                                                                                                       u'enum': [u'internal'],
                                                                                                       u'type': u'string'}},
                                                                         u'required': [u'name',
                                                                                       u'ref_type'],
                                                                         u'title': u'Clock with no external reference',
                                                                         u'type': u'object'},
                                                                        {u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                                         u'description': u'Describes a clock referenced to PTP',
                                                                         u'properties': {u'gmid': {u'description': u'ID of the PTP reference used by this clock',
                                                                                                   u'pattern': u'^[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}-[0-9a-f]{2}$',
                                                                                                   u'type': u'string'},
                                                                                         u'locked': {u'description': u'Lock state of this clock to the external reference. If true, this device is slaved, otherwise it has no defined relationship to the external reference',
                                                                                                     u'type': u'boolean'},
                                                                                         u'name': {u'description': u'Name of this refclock (unique for this set of clocks)',
                                                                                                   u'pattern': u'^clk[0-9]+$',
                                                                                                   u'type': u'string'},
                                                                                         u'ref_type': {u'description': u'Type of external reference used by this clock',
                                                                                                       u'enum': [u'ptp'],
                                                                                                       u'type': u'string'},
                                                                                         u'traceable': {u'description': u'External refclock is synchronised to International Atomic Time (TAI)',
                                                                                                        u'type': u'boolean'},
                                                                                         u'version': {u'description': u'Version of PTP reference used by this clock',
                                                                                                      u'enum': [u'IEEE1588-2008'],
                                                                                                      u'type': u'string'}},
                                                                         u'required': [u'name',
                                                                                       u'ref_type',
                                                                                       u'traceable',
                                                                                       u'version',
                                                                                       u'gmid',
                                                                                       u'locked'],
                                                                         u'title': u'PTP clock',
                                                                         u'type': u'object'}]},
                                                  u'type': u'array'},
                                      u'hostname': {u'description': u'Node hostname (optional, deprecated)',
                                                    u'format': u'hostname',
                                                    u'type': u'string'},
                                      u'href': {u'description': u"HTTP access href for the Node's API (deprecated)",
                                                u'format': u'uri',
                                                u'type': u'string'},
                                      u'services': {u'description': u'Array of objects containing a URN format type and href',
                                                    u'items': {u'properties': {u'href': {u'description': u'URL to reach a service running on the Node',
                                                                                         u'format': u'uri',
                                                                                         u'type': u'string'},
                                                                               u'type': {u'description': u'URN identifying the type of service',
                                                                                         u'format': u'uri',
                                                                                         u'type': u'string'}},
                                                               u'required': [u'href',
                                                                             u'type'],
                                                               u'type': u'object'},
                                                    u'type': u'array'}},
                      u'required': [u'href',
                                    u'caps',
                                    u'api',
                                    u'services',
                                    u'clocks'],
                      u'type': u'object'}],
          u'description': u'Describes the Node and the services which run on it',
          u'title': u'Node resource',
          u'type': u'object'},
 'receiver': {u'$schema': u'http://json-schema.org/draft-04/schema#',
              u'description': u'Describes a Receiver',
              u'oneOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                          u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                  u'description': u'Describes the foundations of all NMOS resources',
                                                  u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                   u'type': u'string'},
                                                                  u'id': {u'description': u'Globally unique identifier for the resource',
                                                                          u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                          u'type': u'string'},
                                                                  u'label': {u'description': u'Freeform string label for the resource',
                                                                             u'type': u'string'},
                                                                  u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                            u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                         u'type': u'array'}},
                                                                            u'type': u'object'},
                                                                  u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                               u'pattern': u'^[0-9]+:[0-9]+$',
                                                                               u'type': u'string'}},
                                                  u'required': [u'id',
                                                                u'version',
                                                                u'label',
                                                                u'description',
                                                                u'tags'],
                                                  u'title': u'Base resource',
                                                  u'type': u'object'},
                                                 {u'properties': {u'device_id': {u'description': u'Device ID which this Receiver forms part of',
                                                                                 u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                 u'type': u'string'},
                                                                  u'subscription': {u'description': u"Object containing the 'sender_id' currently subscribed to. Sender_id should be null on initialisation.",
                                                                                    u'properties': {u'sender_id': {u'default': None,
                                                                                                                   u'description': u'UUID of the Sender that this Receiver is currently subscribed to',
                                                                                                                   u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                                                   u'type': [u'string',
                                                                                                                             u'null']}},
                                                                                    u'required': [u'sender_id'],
                                                                                    u'type': u'object'},
                                                                  u'transport': {u'description': u'Transport type accepted by the Receiver in URN format',
                                                                                 u'format': u'uri',
                                                                                 u'oneOf': [{u'enum': [u'urn:x-nmos:transport:rtp',
                                                                                                       u'urn:x-nmos:transport:rtp.ucast',
                                                                                                       u'urn:x-nmos:transport:rtp.mcast',
                                                                                                       u'urn:x-nmos:transport:dash']},
                                                                                            {u'not': {u'pattern': u'^urn:x-nmos:'}}],
                                                                                 u'type': u'string'}},
                                                  u'required': [u'device_id',
                                                                u'transport',
                                                                u'subscription'],
                                                  u'type': u'object'}],
                                      u'description': u'Describes a receiver',
                                      u'title': u'Receiver resource',
                                      u'type': u'object'},
                                     {u'properties': {u'caps': {u'description': u'Capabilities',
                                                                u'properties': {u'media_types': {u'description': u'Subclassification of the formats accepted using IANA assigned media types',
                                                                                                 u'items': {u'anyOf': [{u'enum': [u'video/raw',
                                                                                                                                  u'video/H264',
                                                                                                                                  u'video/vc2']},
                                                                                                                       {u'pattern': u'^video\\/[^\\s\\/]+$'}],
                                                                                                            u'type': u'string'},
                                                                                                 u'minItems': 1,
                                                                                                 u'type': u'array'}},
                                                                u'type': u'object'},
                                                      u'format': {u'description': u'Type of Flow accepted by the Receiver as a URN',
                                                                  u'enum': [u'urn:x-nmos:format:video'],
                                                                  u'format': u'uri',
                                                                  u'type': u'string'}},
                                      u'required': [u'format', u'caps'],
                                      u'type': u'object'}],
                          u'description': u'Describes a video Receiver',
                          u'title': u'Video Receiver resource',
                          u'type': u'object'},
                         {u'$schema': u'http://json-schema.org/draft-04/schema#',
                          u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                  u'description': u'Describes the foundations of all NMOS resources',
                                                  u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                   u'type': u'string'},
                                                                  u'id': {u'description': u'Globally unique identifier for the resource',
                                                                          u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                          u'type': u'string'},
                                                                  u'label': {u'description': u'Freeform string label for the resource',
                                                                             u'type': u'string'},
                                                                  u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                            u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                         u'type': u'array'}},
                                                                            u'type': u'object'},
                                                                  u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                               u'pattern': u'^[0-9]+:[0-9]+$',
                                                                               u'type': u'string'}},
                                                  u'required': [u'id',
                                                                u'version',
                                                                u'label',
                                                                u'description',
                                                                u'tags'],
                                                  u'title': u'Base resource',
                                                  u'type': u'object'},
                                                 {u'properties': {u'device_id': {u'description': u'Device ID which this Receiver forms part of',
                                                                                 u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                 u'type': u'string'},
                                                                  u'subscription': {u'description': u"Object containing the 'sender_id' currently subscribed to. Sender_id should be null on initialisation.",
                                                                                    u'properties': {u'sender_id': {u'default': None,
                                                                                                                   u'description': u'UUID of the Sender that this Receiver is currently subscribed to',
                                                                                                                   u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                                                   u'type': [u'string',
                                                                                                                             u'null']}},
                                                                                    u'required': [u'sender_id'],
                                                                                    u'type': u'object'},
                                                                  u'transport': {u'description': u'Transport type accepted by the Receiver in URN format',
                                                                                 u'format': u'uri',
                                                                                 u'oneOf': [{u'enum': [u'urn:x-nmos:transport:rtp',
                                                                                                       u'urn:x-nmos:transport:rtp.ucast',
                                                                                                       u'urn:x-nmos:transport:rtp.mcast',
                                                                                                       u'urn:x-nmos:transport:dash']},
                                                                                            {u'not': {u'pattern': u'^urn:x-nmos:'}}],
                                                                                 u'type': u'string'}},
                                                  u'required': [u'device_id',
                                                                u'transport',
                                                                u'subscription'],
                                                  u'type': u'object'}],
                                      u'description': u'Describes a receiver',
                                      u'title': u'Receiver resource',
                                      u'type': u'object'},
                                     {u'properties': {u'caps': {u'description': u'Capabilities',
                                                                u'properties': {u'media_types': {u'description': u'Subclassification of the formats accepted using IANA assigned media types',
                                                                                                 u'items': {u'anyOf': [{u'enum': [u'audio/L24',
                                                                                                                                  u'audio/L20',
                                                                                                                                  u'audio/L16',
                                                                                                                                  u'audio/L8']},
                                                                                                                       {u'pattern': u'^audio\\/[^\\s\\/]+$'}],
                                                                                                            u'type': u'string'},
                                                                                                 u'minItems': 1,
                                                                                                 u'type': u'array'}},
                                                                u'type': u'object'},
                                                      u'format': {u'description': u'Type of Flow accepted by the Receiver as a URN',
                                                                  u'enum': [u'urn:x-nmos:format:audio'],
                                                                  u'format': u'uri',
                                                                  u'type': u'string'}},
                                      u'required': [u'format', u'caps'],
                                      u'type': u'object'}],
                          u'description': u'Describes an audio Receiver',
                          u'title': u'Audio Receiver resource',
                          u'type': u'object'},
                         {u'$schema': u'http://json-schema.org/draft-04/schema#',
                          u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                  u'description': u'Describes the foundations of all NMOS resources',
                                                  u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                   u'type': u'string'},
                                                                  u'id': {u'description': u'Globally unique identifier for the resource',
                                                                          u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                          u'type': u'string'},
                                                                  u'label': {u'description': u'Freeform string label for the resource',
                                                                             u'type': u'string'},
                                                                  u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                            u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                         u'type': u'array'}},
                                                                            u'type': u'object'},
                                                                  u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                               u'pattern': u'^[0-9]+:[0-9]+$',
                                                                               u'type': u'string'}},
                                                  u'required': [u'id',
                                                                u'version',
                                                                u'label',
                                                                u'description',
                                                                u'tags'],
                                                  u'title': u'Base resource',
                                                  u'type': u'object'},
                                                 {u'properties': {u'device_id': {u'description': u'Device ID which this Receiver forms part of',
                                                                                 u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                 u'type': u'string'},
                                                                  u'subscription': {u'description': u"Object containing the 'sender_id' currently subscribed to. Sender_id should be null on initialisation.",
                                                                                    u'properties': {u'sender_id': {u'default': None,
                                                                                                                   u'description': u'UUID of the Sender that this Receiver is currently subscribed to',
                                                                                                                   u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                                                   u'type': [u'string',
                                                                                                                             u'null']}},
                                                                                    u'required': [u'sender_id'],
                                                                                    u'type': u'object'},
                                                                  u'transport': {u'description': u'Transport type accepted by the Receiver in URN format',
                                                                                 u'format': u'uri',
                                                                                 u'oneOf': [{u'enum': [u'urn:x-nmos:transport:rtp',
                                                                                                       u'urn:x-nmos:transport:rtp.ucast',
                                                                                                       u'urn:x-nmos:transport:rtp.mcast',
                                                                                                       u'urn:x-nmos:transport:dash']},
                                                                                            {u'not': {u'pattern': u'^urn:x-nmos:'}}],
                                                                                 u'type': u'string'}},
                                                  u'required': [u'device_id',
                                                                u'transport',
                                                                u'subscription'],
                                                  u'type': u'object'}],
                                      u'description': u'Describes a receiver',
                                      u'title': u'Receiver resource',
                                      u'type': u'object'},
                                     {u'properties': {u'caps': {u'description': u'Capabilities',
                                                                u'properties': {u'media_types': {u'description': u'Subclassification of the formats accepted using IANA assigned media types',
                                                                                                 u'items': {u'anyOf': [{u'enum': [u'video/smpte291']},
                                                                                                                       {u'pattern': u'^[^\\s\\/]+\\/[^\\s\\/]+$'}],
                                                                                                            u'type': u'string'},
                                                                                                 u'minItems': 1,
                                                                                                 u'type': u'array'}},
                                                                u'type': u'object'},
                                                      u'format': {u'description': u'Type of Flow accepted by the Receiver as a URN',
                                                                  u'enum': [u'urn:x-nmos:format:data'],
                                                                  u'format': u'uri',
                                                                  u'type': u'string'}},
                                      u'required': [u'format', u'caps'],
                                      u'type': u'object'}],
                          u'description': u'Describes a data Receiver',
                          u'title': u'Data Receiver resource',
                          u'type': u'object'},
                         {u'$schema': u'http://json-schema.org/draft-04/schema#',
                          u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                      u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                  u'description': u'Describes the foundations of all NMOS resources',
                                                  u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                   u'type': u'string'},
                                                                  u'id': {u'description': u'Globally unique identifier for the resource',
                                                                          u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                          u'type': u'string'},
                                                                  u'label': {u'description': u'Freeform string label for the resource',
                                                                             u'type': u'string'},
                                                                  u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                            u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                         u'type': u'array'}},
                                                                            u'type': u'object'},
                                                                  u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                               u'pattern': u'^[0-9]+:[0-9]+$',
                                                                               u'type': u'string'}},
                                                  u'required': [u'id',
                                                                u'version',
                                                                u'label',
                                                                u'description',
                                                                u'tags'],
                                                  u'title': u'Base resource',
                                                  u'type': u'object'},
                                                 {u'properties': {u'device_id': {u'description': u'Device ID which this Receiver forms part of',
                                                                                 u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                 u'type': u'string'},
                                                                  u'subscription': {u'description': u"Object containing the 'sender_id' currently subscribed to. Sender_id should be null on initialisation.",
                                                                                    u'properties': {u'sender_id': {u'default': None,
                                                                                                                   u'description': u'UUID of the Sender that this Receiver is currently subscribed to',
                                                                                                                   u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                                                   u'type': [u'string',
                                                                                                                             u'null']}},
                                                                                    u'required': [u'sender_id'],
                                                                                    u'type': u'object'},
                                                                  u'transport': {u'description': u'Transport type accepted by the Receiver in URN format',
                                                                                 u'format': u'uri',
                                                                                 u'oneOf': [{u'enum': [u'urn:x-nmos:transport:rtp',
                                                                                                       u'urn:x-nmos:transport:rtp.ucast',
                                                                                                       u'urn:x-nmos:transport:rtp.mcast',
                                                                                                       u'urn:x-nmos:transport:dash']},
                                                                                            {u'not': {u'pattern': u'^urn:x-nmos:'}}],
                                                                                 u'type': u'string'}},
                                                  u'required': [u'device_id',
                                                                u'transport',
                                                                u'subscription'],
                                                  u'type': u'object'}],
                                      u'description': u'Describes a receiver',
                                      u'title': u'Receiver resource',
                                      u'type': u'object'},
                                     {u'properties': {u'caps': {u'description': u'Capabilities',
                                                                u'properties': {u'media_types': {u'description': u'Subclassification of the formats accepted using IANA assigned media types',
                                                                                                 u'items': {u'anyOf': [{u'enum': [u'video/SMPTE2022-6']},
                                                                                                                       {u'pattern': u'^[^\\s\\/]+\\/[^\\s\\/]+$'}],
                                                                                                            u'type': u'string'},
                                                                                                 u'minItems': 1,
                                                                                                 u'type': u'array'}},
                                                                u'type': u'object'},
                                                      u'format': {u'description': u'Type of Flow accepted by the Receiver as a URN',
                                                                  u'enum': [u'urn:x-nmos:format:mux'],
                                                                  u'format': u'uri',
                                                                  u'type': u'string'}},
                                      u'required': [u'format', u'caps'],
                                      u'type': u'object'}],
                          u'description': u'Describes a mux Receiver',
                          u'title': u'Mux Receiver resource',
                          u'type': u'object'}],
              u'title': u'Receiver resource',
              u'type': u'object'},
 'sender': {u'$schema': u'http://json-schema.org/draft-04/schema#',
            u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                        u'description': u'Describes the foundations of all NMOS resources',
                        u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                         u'type': u'string'},
                                        u'id': {u'description': u'Globally unique identifier for the resource',
                                                u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                u'type': u'string'},
                                        u'label': {u'description': u'Freeform string label for the resource',
                                                   u'type': u'string'},
                                        u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                  u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                               u'type': u'array'}},
                                                  u'type': u'object'},
                                        u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                     u'pattern': u'^[0-9]+:[0-9]+$',
                                                     u'type': u'string'}},
                        u'required': [u'id',
                                      u'version',
                                      u'label',
                                      u'description',
                                      u'tags'],
                        u'title': u'Base resource',
                        u'type': u'object'},
                       {u'properties': {u'device_id': {u'description': u'Device ID which this Sender forms part of',
                                                       u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                       u'type': u'string'},
                                        u'flow_id': {u'default': None,
                                                     u'description': u'ID of the Flow currently passing via this Sender',
                                                     u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                     u'type': [u'string',
                                                               u'null']},
                                        u'manifest_href': {u'description': u'HTTP URL to a file describing how to connect to the Sender (SDP for RTP)',
                                                           u'format': u'uri',
                                                           u'type': u'string'},
                                        u'transport': {u'description': u'Transport type used by the Sender in URN format',
                                                       u'format': u'uri',
                                                       u'oneOf': [{u'enum': [u'urn:x-nmos:transport:rtp',
                                                                             u'urn:x-nmos:transport:rtp.ucast',
                                                                             u'urn:x-nmos:transport:rtp.mcast',
                                                                             u'urn:x-nmos:transport:dash']},
                                                                  {u'not': {u'pattern': u'^urn:x-nmos:'}}],
                                                       u'type': u'string'}},
                        u'required': [u'flow_id',
                                      u'transport',
                                      u'device_id',
                                      u'manifest_href'],
                        u'type': u'object'}],
            u'description': u'Describes a sender',
            u'title': u'Sender resource',
            u'type': u'object'},
 'source': {u'$schema': u'http://json-schema.org/draft-04/schema#',
            u'description': u'Describes a Source',
            u'oneOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                        u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                    u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                u'description': u'Describes the foundations of all NMOS resources',
                                                u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                 u'type': u'string'},
                                                                u'id': {u'description': u'Globally unique identifier for the resource',
                                                                        u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                        u'type': u'string'},
                                                                u'label': {u'description': u'Freeform string label for the resource',
                                                                           u'type': u'string'},
                                                                u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                          u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                       u'type': u'array'}},
                                                                          u'type': u'object'},
                                                                u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                             u'pattern': u'^[0-9]+:[0-9]+$',
                                                                             u'type': u'string'}},
                                                u'required': [u'id',
                                                              u'version',
                                                              u'label',
                                                              u'description',
                                                              u'tags'],
                                                u'title': u'Base resource',
                                                u'type': u'object'},
                                               {u'properties': {u'caps': {u'description': u'Capabilities (not yet defined)',
                                                                          u'type': u'object'},
                                                                u'clock_name': {u'description': u'Reference to clock in the originating Node',
                                                                                u'pattern': u'^clk[0-9]+$',
                                                                                u'type': [u'string',
                                                                                          u'null']},
                                                                u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Source',
                                                                               u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                               u'type': u'string'},
                                                                u'grain_rate': {u'description': u'Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only.',
                                                                                u'properties': {u'denominator': {u'default': 1,
                                                                                                                 u'description': u'Denominator',
                                                                                                                 u'type': u'integer'},
                                                                                                u'numerator': {u'description': u'Numerator',
                                                                                                               u'type': u'integer'}},
                                                                                u'required': [u'numerator'],
                                                                                u'type': u'object'},
                                                                u'parents': {u'description': u'Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source)',
                                                                             u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                        u'type': u'string'},
                                                                             u'type': u'array'}},
                                                u'required': [u'caps',
                                                              u'device_id',
                                                              u'parents',
                                                              u'clock_name'],
                                                u'type': u'object'}],
                                    u'description': u'Describes a Source',
                                    u'title': u'Source resource',
                                    u'type': u'object'},
                                   {u'properties': {u'format': {u'description': u'Format of the data coming from the Source as a URN',
                                                                u'enum': [u'urn:x-nmos:format:video',
                                                                          u'urn:x-nmos:format:data',
                                                                          u'urn:x-nmos:format:mux'],
                                                                u'format': u'uri',
                                                                u'type': u'string'}},
                                    u'required': [u'format'],
                                    u'type': u'object'}],
                        u'description': u'Describes a generic Source',
                        u'title': u'Generic Source resource',
                        u'type': u'object'},
                       {u'$schema': u'http://json-schema.org/draft-04/schema#',
                        u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                    u'allOf': [{u'$schema': u'http://json-schema.org/draft-04/schema#',
                                                u'description': u'Describes the foundations of all NMOS resources',
                                                u'properties': {u'description': {u'description': u'Detailed description of the resource',
                                                                                 u'type': u'string'},
                                                                u'id': {u'description': u'Globally unique identifier for the resource',
                                                                        u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                        u'type': u'string'},
                                                                u'label': {u'description': u'Freeform string label for the resource',
                                                                           u'type': u'string'},
                                                                u'tags': {u'description': u'Key value set of freeform string tags to aid in filtering resources. Values should be represented as an array of strings. Can be empty.',
                                                                          u'patternProperties': {u'': {u'items': {u'type': u'string'},
                                                                                                       u'type': u'array'}},
                                                                          u'type': u'object'},
                                                                u'version': {u'description': u'String formatted TAI timestamp (<seconds>:<nanoseconds>) indicating precisely when an attribute of the resource last changed',
                                                                             u'pattern': u'^[0-9]+:[0-9]+$',
                                                                             u'type': u'string'}},
                                                u'required': [u'id',
                                                              u'version',
                                                              u'label',
                                                              u'description',
                                                              u'tags'],
                                                u'title': u'Base resource',
                                                u'type': u'object'},
                                               {u'properties': {u'caps': {u'description': u'Capabilities (not yet defined)',
                                                                          u'type': u'object'},
                                                                u'clock_name': {u'description': u'Reference to clock in the originating Node',
                                                                                u'pattern': u'^clk[0-9]+$',
                                                                                u'type': [u'string',
                                                                                          u'null']},
                                                                u'device_id': {u'description': u'Globally unique identifier for the Device which initially created the Source',
                                                                               u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                               u'type': u'string'},
                                                                u'grain_rate': {u'description': u'Maximum number of Grains per second for Flows derived from this Source. Corresponding Flow Grain rates may override this attribute. Grain rate matches the frame rate for video (see NMOS Content Model). Specified for periodic Sources only.',
                                                                                u'properties': {u'denominator': {u'default': 1,
                                                                                                                 u'description': u'Denominator',
                                                                                                                 u'type': u'integer'},
                                                                                                u'numerator': {u'description': u'Numerator',
                                                                                                               u'type': u'integer'}},
                                                                                u'required': [u'numerator'],
                                                                                u'type': u'object'},
                                                                u'parents': {u'description': u'Array of UUIDs representing the Source IDs of Grains which came together at the input to this Source (may change over the lifetime of this Source)',
                                                                             u'items': {u'pattern': u'^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$',
                                                                                        u'type': u'string'},
                                                                             u'type': u'array'}},
                                                u'required': [u'caps',
                                                              u'device_id',
                                                              u'parents',
                                                              u'clock_name'],
                                                u'type': u'object'}],
                                    u'description': u'Describes a Source',
                                    u'title': u'Source resource',
                                    u'type': u'object'},
                                   {u'properties': {u'channels': {u'description': u'Array of objects describing the audio channels',
                                                                  u'items': {u'properties': {u'label': {u'description': u'Label for this channel (free text)',
                                                                                                        u'type': u'string'},
                                                                                             u'symbol': {u'description': u'Symbol for this channel (from VSF TR-03 Appendix A)',
                                                                                                         u'oneOf': [{u'enum': [u'L',
                                                                                                                               u'R',
                                                                                                                               u'C',
                                                                                                                               u'LFE',
                                                                                                                               u'Ls',
                                                                                                                               u'Rs',
                                                                                                                               u'Lss',
                                                                                                                               u'Rss',
                                                                                                                               u'Lrs',
                                                                                                                               u'Rrs',
                                                                                                                               u'Lc',
                                                                                                                               u'Rc',
                                                                                                                               u'Cs',
                                                                                                                               u'HI',
                                                                                                                               u'VIN',
                                                                                                                               u'M1',
                                                                                                                               u'M2',
                                                                                                                               u'Lt',
                                                                                                                               u'Rt',
                                                                                                                               u'Lst',
                                                                                                                               u'Rst',
                                                                                                                               u'S']},
                                                                                                                    {u'description': u'Numbered Source Channel',
                                                                                                                     u'pattern': u'NSC(0[0-9]{2}|1[0-1]{1}[0-9]{1}|12[0-7]{1})'},
                                                                                                                    {u'description': u'Undefined channel',
                                                                                                                     u'pattern': u'U(0[1-9]{1}|[1-5]{1}[0-9]{1}|6[0-4]{1})'}],
                                                                                                         u'type': u'string'}},
                                                                             u'required': [u'label'],
                                                                             u'title': u'Component',
                                                                             u'type': u'object'},
                                                                  u'minItems': 1,
                                                                  u'type': u'array'},
                                                    u'format': {u'description': u'Format of the data coming from the Source as a URN',
                                                                u'enum': [u'urn:x-nmos:format:audio'],
                                                                u'format': u'uri',
                                                                u'type': u'string'}},
                                    u'required': [u'format', u'channels'],
                                    u'type': u'object'}],
                        u'description': u'Describes an audio Source',
                        u'title': u'Audio Source resource',
                        u'type': u'object'}],
            u'title': u'Source resource',
            u'type': u'object'}}
None
