"""Json schema to validate timed release PUT request.""" from timed_release.constants import field_const schema = { '$schema': 'http://json-schema.org/draft-04/schema#', 'title': 'Validation schema of timed relase PUT request', 'type': 'object', 'properties': { field_const.TIMED: { 'type': ['array', 'null'], 'items': { 'type': 'object', 'properties': { field_const.SALE_DATE_TIME: { 'type': 'string', 'format': 'date-time' }, field_const.DELIVERY_STORE: { 'type': 'object', 'properties': { field_const.ID: { 'type': 'integer' } }, 'required': [ field_const.ID ] } }, 'required': [ field_const.SALE_DATE_TIME, field_const.DELIVERY_STORE ] } }, field_const.STAGGERED: { 'type': ['array', 'null'], 'items': { 'type': 'object', 'properties': { field_const.SALE_DATE: { 'type': 'string', 'anyOf': [ { 'format': 'date-time' }, { 'format': 'date' } ] }, field_const.DELIVERY_STORE: { 'type': 'object', 'properties': { field_const.ID: { 'type': 'integer' } }, 'required': [ field_const.ID ] } }, 'required': [ field_const.SALE_DATE, field_const.DELIVERY_STORE ] } }, field_const.UNSUPPORTED_TIMED: { 'type': ['array', 'null'], 'items': { 'type': 'object', 'properties': { field_const.SALE_DATE_TIME: { 'type': 'string', 'format': 'date-time' }, field_const.DELIVERY_STORE: { 'type': 'object', 'properties': { field_const.ID: { 'type': 'integer' } }, 'required': [ field_const.ID ] }, field_const.TIME_OFFSET: { 'type': 'string', 'pattern': r'^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$' } }, 'required': [ field_const.SALE_DATE_TIME, field_const.DELIVERY_STORE, field_const.TIME_OFFSET ] } }, }, 'additionalProperties': False }