models and admin for ServiceClass and ServiceResource
diff --git a/planetstack/core/models/__init__.py b/planetstack/core/models/__init__.py
index 4d9387b..0fe5e47 100644
--- a/planetstack/core/models/__init__.py
+++ b/planetstack/core/models/__init__.py
@@ -11,4 +11,6 @@
 from .slice import SliceMembership
 from .sliver import Sliver
 from .subnet import Subnet
+from .serviceclass import ServiceClass
+from .serviceresource import ServiceResource
 
diff --git a/planetstack/core/models/serviceclass.py b/planetstack/core/models/serviceclass.py
new file mode 100644
index 0000000..8e7d21f
--- /dev/null
+++ b/planetstack/core/models/serviceclass.py
@@ -0,0 +1,19 @@
+import os
+from django.db import models
+from core.models import PlCoreBase
+from core.models import Site
+from core.models import DeploymentNetwork
+
+# Create your models here.
+
+class ServiceClass(PlCoreBase):
+    name = models.CharField(max_length=32)
+    description = models.CharField(max_length=255)
+    commitment = models.IntegerField(default=365)
+    membershipFee = models.IntegerField(default=0)
+    membershipFeeMonths = models.IntegerField(default=12)
+    upgradeRequiresApproval = models.BooleanField(default=False)
+    upgradeFrom = models.ManyToManyField('self', blank=True, null=True)
+
+    def __unicode__(self):  return u'%s' % (self.name)
+
diff --git a/planetstack/core/models/serviceresource.py b/planetstack/core/models/serviceresource.py
new file mode 100644
index 0000000..3b25ffe
--- /dev/null
+++ b/planetstack/core/models/serviceresource.py
@@ -0,0 +1,21 @@
+import os
+from django.db import models
+from core.models import PlCoreBase
+from core.models import Site
+from core.models import DeploymentNetwork
+from core.models import ServiceClass
+
+# Create your models here.
+
+class ServiceResource(PlCoreBase):
+    serviceClass = models.ForeignKey(ServiceClass, related_name = "resources")
+    name = models.CharField(max_length=32)
+    maxUnitsDeployment = models.IntegerField(default=1)
+    maxUnitsNode = models.IntegerField(default=1)
+    maxDuration = models.IntegerField(default=1)
+    bucketInRate = models.IntegerField(default=0)
+    bucketMaxSize = models.IntegerField(default=0)
+    cost = models.IntegerField(default=0)
+    calendarReservable = models.BooleanField(default=True)
+
+    def __unicode__(self):  return u'%s' % (self.name)