const React = require('react'); const BaseObject = { uuid: React.PropTypes.string, id: React.PropTypes.string, name: React.PropTypes.string }; const Account = React.PropTypes.shape({ ...BaseObject }); const Link = React.PropTypes.shape({ name: React.PropTypes.string, pathname: React.PropTypes.string }); const Org = React.PropTypes.shape({ ...BaseObject, owner: React.PropTypes.string }); const Project = React.PropTypes.shape({ ...BaseObject }); const Service = React.PropTypes.shape({ ...BaseObject }); const Instance = React.PropTypes.shape({ ...BaseObject, datacenter: React.PropTypes.string, service: React.PropTypes.string, project: React.PropTypes.string }); const Metric = React.PropTypes.shape({ ...BaseObject }); const MetricType = React.PropTypes.shape({ ...BaseObject }); const Dataset = React.PropTypes.shape({ uuid: React.PropTypes.string, type: React.PropTypes.string, data: React.PropTypes.arrayOf( React.PropTypes.shape({ firstQuartile: React.PropTypes.number, thirdQuartile: React.PropTypes.number, median: React.PropTypes.number, max: React.PropTypes.number, min: React.PropTypes.number }) ) }); const Sections = React.PropTypes.arrayOf( React.PropTypes.string ); module.exports = { account: Account, link: Link, org: Org, project: Project, sections: Sections, service: Service, instance: Instance, metric: Metric, metricType: MetricType, dataset: Dataset };