summaryrefslogtreecommitdiffstats
path: root/docs/api_swagger.json
diff options
context:
space:
mode:
Diffstat (limited to 'docs/api_swagger.json')
-rw-r--r--docs/api_swagger.json317
1 files changed, 317 insertions, 0 deletions
diff --git a/docs/api_swagger.json b/docs/api_swagger.json
new file mode 100644
index 0000000..6d06878
--- /dev/null
+++ b/docs/api_swagger.json
@@ -0,0 +1,317 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "description": "This is a service that provides secret management facilities",
+ "version": "1.0.0",
+ "title": "Secret Management Service",
+ "contact": {
+ "email": "kiran.k.kamineni@intel.com"
+ },
+ "license": {
+ "name": "Apache 2.0",
+ "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
+ }
+ },
+ "host": "aaf.onap.org:10443",
+ "basePath": "/v1/sms/",
+ "tags": [
+ {
+ "name": "domain",
+ "description": "Operations related to Secret Domains"
+ },
+ {
+ "name": "secret",
+ "description": "Operations related to Secrets"
+ }
+ ],
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/domain": {
+ "post": {
+ "tags": [
+ "domain"
+ ],
+ "summary": "Add a new domain",
+ "description": "",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Domain"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Successful Creation",
+ "schema": {
+ "$ref": "#/definitions/Domain"
+ }
+ },
+ "400": {
+ "description": "Invalid input"
+ },
+ "500": {
+ "description": "Internal Server Error"
+ }
+ }
+ }
+ },
+ "/domain/{domainName}": {
+ "delete": {
+ "tags": [
+ "domain"
+ ],
+ "description": "Deletes a domain with provided name",
+ "summary": "Deletes a domain by name",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "domainName",
+ "in": "path",
+ "description": "Name of the domain",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Successful Deletion"
+ },
+ "404": {
+ "description": "Invalid Path or Path not found"
+ }
+ }
+ }
+ },
+ "/domain/{domainName}/secret": {
+ "post": {
+ "tags": [
+ "secret"
+ ],
+ "summary": "Add a new secret",
+ "description": "",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "domainName",
+ "in": "path",
+ "description": "Name of the domain",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "body",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Secret"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Successful Creation"
+ },
+ "404": {
+ "description": "Invalid Path or Path not found"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "secret"
+ ],
+ "description": "Gets all secret names in this domain",
+ "summary": "List secret Names in this domain",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "domainName",
+ "in": "path",
+ "description": "Name of the domain in which to look at",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "schema": {
+ "type": "object",
+ "properties": {
+ "secretnames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Array of strings referencing the secret names"
+ }
+ },
+ "example": {
+ "secretnames": [
+ "secretname1",
+ "secretname2",
+ "secretname3"
+ ]
+ }
+ }
+ },
+ "404": {
+ "description": "Invalid Path or Path not found"
+ }
+ }
+ }
+ },
+ "/domain/{domainName}/secret/{secretName}": {
+ "get": {
+ "tags": [
+ "secret"
+ ],
+ "summary": "Find Secret by Name",
+ "description": "Returns a single secret",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "domainName",
+ "in": "path",
+ "description": "Name of the domain in which to look at",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "secretName",
+ "in": "path",
+ "description": "Name of the secret which is needed",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "schema": {
+ "$ref": "#/definitions/Secret"
+ }
+ },
+ "404": {
+ "description": "Invalid Path or Path not found"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "secret"
+ ],
+ "summary": "Deletes a Secret",
+ "description": "",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "secretName",
+ "in": "path",
+ "description": "Name of Secret to Delete",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "domainName",
+ "in": "path",
+ "required": true,
+ "description": "Path to the SecretDomain which contains the Secret",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Successful Deletion"
+ },
+ "404": {
+ "description": "Invalid Path or Path not found"
+ }
+ }
+ }
+ }
+ },
+ "securityDefinitions": {
+ "token": {
+ "type": "apiKey",
+ "name": "token",
+ "in": "header"
+ }
+ },
+ "definitions": {
+ "Credential": {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ }
+ }
+ },
+ "Domain": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "description": "Optional value provided by user. If user does not provide, server will auto generate"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the secret domain under which all secrets will be stored"
+ }
+ }
+ },
+ "Secret": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the secret"
+ },
+ "values": {
+ "description": "Map of key value pairs that constitute the secret",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "name": "john",
+ "Age": 40,
+ "admin": true
+ }
+ }
+ }
+ }
+ },
+ "externalDocs": {
+ "description": "Find out more about Swagger",
+ "url": "http://swagger.io"
+ }
+} \ No newline at end of file