diff --git a/openecomp-bdd/config.json b/openecomp-bdd/config.json
index 3806355..e1907a2 100644
--- a/openecomp-bdd/config.json
+++ b/openecomp-bdd/config.json
@@ -11,6 +11,6 @@
   },
   "activity_spec" : {
     "port" : 8080,
-    "prefix" : "sdc1/feProxy/activityspec-api/v1"
+    "prefix" : "activity-spec-api/v1.0"
   }
 }
\ No newline at end of file
diff --git a/openecomp-bdd/features/ActivitySpec/TestCreate.feature b/openecomp-bdd/features/ActivitySpec/TestCreate.feature
new file mode 100644
index 0000000..accae6a
--- /dev/null
+++ b/openecomp-bdd/features/ActivitySpec/TestCreate.feature
@@ -0,0 +1,70 @@
+#Feature: ActivitySpec Flow - Test Create Activity Spec
+#
+#Given Default prefix "activity_spec"
+#
+#  # SDC-6350
+#  Scenario: Test Create Activity Spec functionality
+#    #Create ActivitySpec
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with a random value
+#    When I want to create an ActivitySpec
+#    #Check id and versionId returned in response
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #List ActivitySpec
+#    And I want to list ActivitySpecs with status "Draft"
+#    And I want to check property "listCount" exists
+#
+#    #Get ActivitySpec and verify its status
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Draft"
+#
+#    #Certify and Get ActivitySpec and verify its status
+#    And I want to call action "CERTIFY" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Certified"
+#
+#    #Deprecate and Get ActivitySpec and verify its status
+#    And I want to call action "DEPRECATE" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Deprecated"
+#
+#    #Delete and Get ActivitySpec and verify its status
+#    And I want to call action "DELETE" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Deleted"
+#
+#    #Pass Invalid Id to Get and verify error code
+#    Then I want to set property "item.id" to value "invalidId"
+#    Then I want the following to fail with error code "ACTIVITYSPEC_NOT_FOUND"
+#    And I want to get the ActivitySpec for the current item
+#
+#  # SDC-6353
+#  Scenario: Test Create Activity Spec With Duplicate Name
+#    #Create ActivitySpec with name "test"
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test"
+#    When I want to create an ActivitySpec
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #Again Create ActivitySpec with name "test" and verify error code
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test"
+#    Then I want the following to fail with error code "UNIQUE_VALUE_VIOLATION"
+#    When I want to create an ActivitySpec
+#
+#  # SDC-6354
+#  Scenario: Test Create Activity Spec With Invalid Name Format
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test!@"
+#    Then I want the following to fail with error code "FIELD_VALIDATION_ERROR_ERR_ID"
+#    When I want to create an ActivitySpec
+#
+#  # SDC-6355
+#  Scenario: Test Create Activity Spec With Null/Blank Name
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value ""
+#    Then I want the following to fail with error code "FIELD_VALIDATION_ERROR_ERR_ID"
+#    When I want to create an ActivitySpec
\ No newline at end of file
diff --git a/openecomp-bdd/features/ActivitySpec/TestInvalidStatusTransition.feature b/openecomp-bdd/features/ActivitySpec/TestInvalidStatusTransition.feature
new file mode 100644
index 0000000..1a94635
--- /dev/null
+++ b/openecomp-bdd/features/ActivitySpec/TestInvalidStatusTransition.feature
@@ -0,0 +1,29 @@
+#Feature: ActivitySpec Flow
+#
+#Given Default prefix "activity_spec"
+#
+#  Scenario: Test Invalid Status Transition for Activity Spec
+#    #Create Activity Spec
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with a random value
+#    When I want to create an ActivitySpec
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #Get Activity Spec and verify status
+#    When I want to get the ActivitySpec for the current item
+#    Then I want to check property "status" for value "Draft"
+#
+#    #Deprecate "Draft" activity status and verify error code
+#    Then I want the following to fail with error code "STATUS_NOT_CERTIFIED"
+#    When I want to call action "DEPRECATE" on this ActivitySpec item
+#
+#    #Delete "Draft" activity spec and verify error code
+#    Then I want the following to fail with error code "STATUS_NOT_DEPRECATED"
+#    When I want to call action "DELETE" on this ActivitySpec item
+#
+#    #Certify activity spec
+#    When I want to call action "CERTIFY" on this ActivitySpec item
+#    #Certify "certified" activity spec and verify error code
+#    Then I want the following to fail with error code "STATUS_NOT_DRAFT"
+#    When I want to call action "CERTIFY" on this ActivitySpec item
diff --git a/openecomp-bdd/resources/json/createActivitySpec.json b/openecomp-bdd/resources/json/createActivitySpec.json
new file mode 100644
index 0000000..8d5fc16
--- /dev/null
+++ b/openecomp-bdd/resources/json/createActivitySpec.json
@@ -0,0 +1,17 @@
+{
+  "name": "RANDOM",
+  "description": "Start Server",
+  "categoryList": [
+    "Server"
+  ],
+  "inputParameters": [{
+    "name": "host",
+    "type": "string",
+    "value": "10.1.2.3"
+  }],
+  "outputParameters": [{
+    "name": "status",
+    "type": "string",
+    "value": "started"
+  }]
+}
\ No newline at end of file
diff --git a/openecomp-bdd/stepDefinitions/ActivitySpec_steps.js b/openecomp-bdd/stepDefinitions/ActivitySpec_steps.js
new file mode 100644
index 0000000..7fe8ddf
--- /dev/null
+++ b/openecomp-bdd/stepDefinitions/ActivitySpec_steps.js
@@ -0,0 +1,47 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+const _ = require('lodash');
+
+When('I want to create an ActivitySpec', function () {
+  let path = '/activity-spec';
+  return util.request(this.context, 'POST', path, this.context.inputData, false, 'activity_spec').then((result)=> {
+    this.context.item = {id : result.data.id, versionId: result.data.versionId};
+    this.context.activityspec = {id : result.data.id, versionId: result.data.versionId};
+  });
+});
+
+When('I want to list ActivitySpecs with status {string}', function (string) {
+  let path = '/activity-spec?status='+string;
+  return util.request(this.context, 'GET', path, null, false, 'activity_spec').then((result)=> {
+    this.context.listCount = result.data.listCount;
+  });
+});
+
+When('I want to get the ActivitySpec for the current item', function () {
+  let path = '/activity-spec/'+ this.context.item.id+'/versions/'+this.context.item.versionId ;
+  return util.request(this.context, 'GET', path, null, false, 'activity_spec').then((result)=> {
+  });
+});
+
+Then('I want to call action {string} on this ActivitySpec item', function(string)  {
+  let path = '/activity-spec/'+ this.context.item.id+'/versions/'+this.context.item.versionId+'/actions' ;
+  let inputData = JSON.parse('{"action" : "' +string+ '"}');
+  return util.request(this.context, 'PUT', path, inputData, false, 'activity_spec')
+});
\ No newline at end of file
