diff --git a/xos/tosca/custom_types/xos.m4 b/xos/tosca/custom_types/xos.m4
index 629c378..1f48f58 100644
--- a/xos/tosca/custom_types/xos.m4
+++ b/xos/tosca/custom_types/xos.m4
@@ -379,6 +379,19 @@
         capability:
             slice:
                 type: tosca.capabilities.xos.Slice
+        properties:
+            enabled:
+                type: boolean
+                default: true
+            description:
+                type: string
+                required: false
+            slice_url:
+                type: string
+                required: false
+            max_instances:
+                type: integer
+                default: 10
 
     tosca.nodes.Node:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/custom_types/xos.yaml b/xos/tosca/custom_types/xos.yaml
index 6611198..f66dbc6 100644
--- a/xos/tosca/custom_types/xos.yaml
+++ b/xos/tosca/custom_types/xos.yaml
@@ -441,6 +441,19 @@
         capability:
             slice:
                 type: tosca.capabilities.xos.Slice
+        properties:
+            enabled:
+                type: boolean
+                default: true
+            description:
+                type: string
+                required: false
+            slice_url:
+                type: string
+                required: false
+            max_instances:
+                type: integer
+                default: 10
 
     tosca.nodes.Node:
         derived_from: tosca.nodes.Root
diff --git a/xos/tosca/resources/slice.py b/xos/tosca/resources/slice.py
index d9684f2..e4b7ba3 100644
--- a/xos/tosca/resources/slice.py
+++ b/xos/tosca/resources/slice.py
@@ -12,9 +12,10 @@
 class XOSSlice(XOSResource):
     provides = "tosca.nodes.Slice"
     xos_model = Slice
+    copyin_props = ["enabled", "description", "slice_url", "max_instances"]
 
     def get_xos_args(self):
-        args = {"name": self.nodetemplate.name}
+        args = super(XOSSlice, self).get_xos_args()
 
         site_name = self.get_requirement("tosca.relationships.MemberOfSite", throw_exception=True)
         site = self.get_xos_object(Site, login_base=site_name)
diff --git a/xos/tosca/tests/alltests.py b/xos/tosca/tests/alltests.py
index 04c4ade..4ff19fc 100644
--- a/xos/tosca/tests/alltests.py
+++ b/xos/tosca/tests/alltests.py
@@ -7,6 +7,7 @@
 from sitetest import SiteTest
 from deploymenttest import DeploymentTest
 from nodetest import NodeTest
+from slicetest import SliceTest
 
 if __name__ == "__main__":
     SiteTest()
@@ -17,4 +18,5 @@
     CoarseTenancyTest()
     ServiceTest()
     UserTest()
+    SliceTest()
     ComputeTest()
diff --git a/xos/tosca/tests/slicetest.py b/xos/tosca/tests/slicetest.py
new file mode 100644
index 0000000..484d7c8
--- /dev/null
+++ b/xos/tosca/tests/slicetest.py
@@ -0,0 +1,46 @@
+from basetest import BaseToscaTest
+
+from core.models import Slice, Site
+
+class SliceTest(BaseToscaTest):
+    tests = ["create_slice_minimal",
+             "create_slice_maximal",
+             "destroy_slice"]
+
+    def cleanup(self):
+        self.try_to_delete(Slice, name="testsite_testslice")
+        self.try_to_delete(Site, name="testsite")
+
+    def get_base_templates(self):
+        return self.make_nodetemplate("testsite", "tosca.nodes.Site")
+
+    def create_slice_minimal(self):
+        self.assert_noobj(Slice, "testsite_testslice")
+        self.execute(self.get_base_templates() +
+                     self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+                                            reqs=[("testsite", "tosca.relationships.MemberOfSite")]))
+        self.assert_obj(Slice, "testsite_testslice", enabled=True, description="", slice_url="", max_instances=10)
+
+    def create_slice_maximal(self):
+        self.assert_noobj(Slice, "testsite_testslice")
+        self.execute(self.get_base_templates() +
+                     self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+                                             props={"enabled": False, "description": "foo", "slice_url": "http://foo.com/", "max_instances": 11},
+                                             reqs=[("testsite", "tosca.relationships.MemberOfSite")]))
+        self.assert_obj(Slice, "testsite_testslice", enabled=False, description="foo", slice_url="http://foo.com/", max_instances=11)
+
+    def destroy_slice(self):
+        self.assert_noobj(Slice, "testsite_testslice")
+        self.execute(self.get_base_templates() +
+                     self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+                                            reqs=[("testsite", "tosca.relationships.MemberOfSite")]))
+        self.assert_obj(Slice, "testsite_testslice", enabled=True, description="", slice_url="", max_instances=10)
+        self.destroy(self.get_base_templates() +
+                     self.make_nodetemplate("testsite_testslice", "tosca.nodes.Slice",
+                                            reqs=[("testsite", "tosca.relationships.MemberOfSite")]))
+        self.assert_noobj(Slice, "testsite_testslice")
+
+if __name__ == "__main__":
+    SliceTest()
+
+
