joyent-portal/frontend/src/prop-types.js
2017-01-16 19:45:56 +00:00

76 lines
1.5 KiB
JavaScript

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
};