diff --git a/docs/swagger-schema.yaml b/docs/swagger-schema.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e1a6d30ea0c93900d80f382b76b7d30edb90bd18
--- /dev/null
+++ b/docs/swagger-schema.yaml
@@ -0,0 +1,257 @@
+swagger: "2.0"
+info:
+  description: "Capability service for the SSA Workspaces project"
+  version: "1.0.0"
+  title: "Capability Service"
+  contact:
+    email: "dms-ssa@nrao.edu"
+host: "shipman.aoc.nrao.edu"
+tags:
+  - name: "capabilities"
+    description: "Access capabilities and create requests"
+  - name: "requests"
+    description: "Access to and submit capability requests"
+schemes:
+  - "http"
+paths:
+  /capability/{name}:
+    get:
+      tags:
+        - "capabilities"
+      summary: "View the named capability"
+      description: ""
+      operationId: "view_capability"
+      consumes:
+        - "application/json"
+      produces:
+        - "application/json"
+      parameters:
+        - name: "name"
+          in: "path"
+          description: "name of capability to view"
+          required: true
+          type: "string"
+      responses:
+        "400":
+          description: "Invalid name supplied"
+        "404":
+          description: "Capability not found"
+        "200":
+          description: "successful operation"
+          schema:
+            $ref: "#/definitions/Capability"
+    post:
+      tags:
+        - "capabilities"
+      summary: "Update an existing capability"
+      description: ""
+      operationId: "edit_capability"
+      consumes:
+        - "application/json"
+      produces:
+        - "application/json"
+      parameters:
+        - name: "name"
+          in: "path"
+          description: "name of capability to update"
+          required: true
+          type: "string"
+        - in: "body"
+          name: "body"
+          description: "Capability object that needs to be added to the system"
+          required: true
+          schema:
+            $ref: "#/definitions/Capability"
+      responses:
+        "400":
+          description: "Invalid name supplied"
+        "404":
+          description: "Capability not found"
+        "200":
+          description: "successful operation"
+          schema:
+            $ref: "#/definitions/Capability"
+  /capability/{name}/enable:
+    post:
+      tags:
+        - "capabilities"
+      summary: "Enable a capability"
+      operationId: "enable_capability"
+      consumes:
+        - "application/json"
+      produces:
+        - "application/json"
+      parameters:
+        - name: "name"
+          in: "path"
+          description: "name of capability to enable"
+          required: true
+          type: "string"
+      responses:
+        "400":
+          description: "Invalid name supplied"
+        "404":
+          description: "Capability not found"
+  /capability/{name}/disable:
+    post:
+      tags:
+        - "capabilities"
+      summary: "Disable a capability"
+      operationId: "disable_capability"
+      consumes:
+        - "application/json"
+      produces:
+        - "application/json"
+      parameters:
+        - name: "name"
+          in: "path"
+          description: "name of capability to disable"
+          required: true
+          type: "string"
+      responses:
+        "400":
+          description: "Invalid name supplied"
+        "404":
+          description: "Capability not found"
+  /capability/{name}/requests/{id}:
+    get:
+      tags:
+        - "requests"
+      summary: "View the identified capability request"
+      description: ""
+      operationId: "view_capability_request"
+      consumes:
+        - "application/json"
+      produces:
+        - "application/json"
+      parameters:
+        - name: "name"
+          in: "path"
+          description: "name of capability this request belongs to"
+          required: true
+          type: "string"
+        - name: "id"
+          in: "path"
+          description: "ID of capability request"
+          required: true
+          type: "integer"
+          format: "int64"
+      responses:
+        "400":
+          description: "Invalid capability name or request ID supplied"
+        "404":
+          description: "Capability request not found"
+        "200":
+          description: "successful operation"
+          schema:
+            $ref: "#/definitions/CapabilityRequest"
+    post:
+      tags:
+        - "requests"
+      summary: "Update an existing capability request"
+      description: ""
+      operationId: "edit_capability_request"
+      consumes:
+        - "application/json"
+      produces:
+        - "application/json"
+      parameters:
+        - name: "name"
+          in: "path"
+          description: "name of capability this request belongs to"
+          required: true
+          type: "string"
+        - name: "id"
+          in: "path"
+          description: "ID of capability request"
+          required: true
+          type: "integer"
+          format: "int64"
+        - in: "body"
+          name: "body"
+          description: "Capability object that needs to be added to the system"
+          required: true
+          schema:
+            $ref: "#/definitions/Capability"
+      responses:
+        "400":
+          description: "Invalid name supplied"
+        "404":
+          description: "Capability not found"
+    delete:
+      tags:
+        - "requests"
+      summary: "Delete a capability request"
+      description: ""
+      operationId: "delete_capability_request"
+      consumes:
+        - "application/json"
+      produces:
+        - "application/json"
+      parameters:
+        - name: "name"
+          in: "path"
+          description: "name of capability this request belongs to"
+          required: true
+          type: "string"
+        - name: "id"
+          in: "path"
+          description: "ID of capability request"
+          required: true
+          type: "integer"
+          format: "int64"
+      responses:
+        "400":
+          description: "Invalid name supplied"
+        "403":
+          description: "Permission denied; capability request already executed"
+        "404":
+          description: "Capability not found"
+  /capability/{name}/requests/{id}/submit:
+    post:
+      tags:
+        - "requests"
+      summary: "Submit a capability request for execution"
+      description: ""
+      operationId: "submit_capability_request"
+      consumes:
+        - "application/json"
+      produces:
+        - "application/json"
+      parameters:
+        - name: "name"
+          in: "path"
+          description: "name of capability this request belongs to"
+          required: true
+          type: "string"
+        - name: "id"
+          in: "path"
+          description: "ID of capability request"
+          required: true
+          type: "integer"
+          format: "int64"
+      responses:
+        "400":
+          description: "Invalid name supplied"
+        "404":
+          description: "Capability not found"
+
+definitions:
+  Capability:
+    type: "object"
+    properties:
+      name:
+        type: "string"
+      steps:
+        type: "string"
+      max_jobs:
+        type: "integer"
+        format: "int64"
+  CapabilityRequest:
+    type: "object"
+    properties:
+      body:
+        type: "object"
+externalDocs:
+  description: "More about the capability service"
+  url: "http://builder.aoc.nrao.edu/ssa/architecture/workspaces"
\ No newline at end of file