| 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: system |
| description: Operations related to quorum client which are not useful to clients |
| - name: login |
| description: Operations related to username password based authentication |
| - name: domain |
| description: Operations related to Secret Domains |
| - name: secret |
| description: Operations related to Secrets |
| schemes: |
| - https |
| paths: |
| /login: |
| post: |
| tags: |
| - login |
| summary: Login with username and password |
| description: Operations related to logging in via username and Password |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| parameters: |
| - name: body |
| in: body |
| required: true |
| schema: |
| $ref: '#/definitions/Credential' |
| responses: |
| '200': |
| description: Successful Login returns a token |
| schema: |
| type: object |
| properties: |
| token: |
| type: string |
| ttl: |
| type: integer |
| description: ttl of returned token in seconds |
| '404': |
| description: Invalid Username or Password |
| /status: |
| get: |
| tags: |
| - system |
| description: Gets current backend status. This API is used only by quorum clients |
| summary: Get backend status |
| produces: |
| - application/json |
| responses: |
| '200': |
| description: Successful operation |
| schema: |
| type: object |
| properties: |
| sealstatus: |
| type: string |
| description: seal status of backend |
| '404': |
| description: Invalid Path or Path not found |
| /unseal: |
| post: |
| tags: |
| - system |
| description: Sends unseal shard to unseal if backend is sealed |
| summary: Unseal backend |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| parameters: |
| - in: body |
| name: body |
| required: true |
| schema: |
| type: object |
| properties: |
| unsealshard: |
| type: string |
| description: >- |
| Unseal shard that will be used along with other shards to |
| unseal backend |
| responses: |
| '201': |
| description: Submitted unseal key |
| '404': |
| description: Invalid Path or Path not found |
| /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' |