blob: e35c6e8fcb7bd928d8eeb9de690a6710d413a0f5 [file] [log] [blame]
SMS 1.0.0 API
===============================
.. toctree::
:maxdepth: 3
Description
~~~~~~~~~~~
This is a service that provides secret management facilities
Contact Information
~~~~~~~~~~~~~~~~~~~
kiran.k.kamineni@intel.com
License
~~~~~~~
`Apache 2.0 <http://www.apache.org/licenses/LICENSE-2.0.html>`_
Base URL
~~~~~~~~
https://aaf.onap.org:10443/v1/sms/
Security
~~~~~~~~
.. _securities_token:
token (API Key)
---------------
**Name:** token
**Located in:** header
DOMAIN
~~~~~~
Operations related to Secret Domains
DELETE ``/domain/{domainName}``
-------------------------------
Summary
+++++++
Deletes a domain by name
Description
+++++++++++
.. raw:: html
Deletes a domain with provided name
Parameters
++++++++++
.. csv-table::
:delim: |
:header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 15, 10, 10, 10, 20, 30
domainName | path | Yes | string | | | Name of the domain
Request
+++++++
Responses
+++++++++
**204**
^^^^^^^
Successful Deletion
**404**
^^^^^^^
Invalid Path or Path not found
POST ``/domain``
----------------
Summary
+++++++
Add a new domain
Request
+++++++
.. _d_c7bdcff9aff0692da98e588abdbc895b:
Body
^^^^
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
name | No | string | | | Name of the secret domain under which all secrets will be stored
uuid | No | string | | | Optional value provided by user. If user does not provide, server will auto generate
.. code-block:: javascript
{
"name": "somestring",
"uuid": "somestring"
}
Responses
+++++++++
**201**
^^^^^^^
Successful Creation
Type: :ref:`Domain <d_c7bdcff9aff0692da98e588abdbc895b>`
**Example:**
.. code-block:: javascript
{
"name": "somestring",
"uuid": "somestring"
}
**400**
^^^^^^^
Invalid input
**500**
^^^^^^^
Internal Server Error
LOGIN
~~~~~
Operations related to username password based authentication
POST ``/login``
---------------
Summary
+++++++
Login with username and password
Description
+++++++++++
.. raw:: html
Operations related to logging in via username and Password
Request
+++++++
.. _d_8e36d758bad367e4538a291a5dd5355f:
Body
^^^^
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
password | No | string | | |
username | No | string | | |
.. code-block:: javascript
{
"password": "somestring",
"username": "somestring"
}
Responses
+++++++++
**200**
^^^^^^^
Successful Login returns a token
.. _i_bbceffdf8441c1c476ca77c42ad12f85:
**Response Schema:**
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
token | No | string | | |
ttl | No | integer | | | ttl of returned token in seconds
**Example:**
.. code-block:: javascript
{
"token": "somestring",
"ttl": 1
}
**404**
^^^^^^^
Invalid Username or Password
SECRET
~~~~~~
Operations related to Secrets
DELETE ``/domain/{domainName}/secret/{secretName}``
---------------------------------------------------
Summary
+++++++
Deletes a Secret
Parameters
++++++++++
.. csv-table::
:delim: |
:header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 15, 10, 10, 10, 20, 30
secretName | path | Yes | string | | | Name of Secret to Delete
domainName | path | Yes | string | | | Path to the SecretDomain which contains the Secret
Request
+++++++
Responses
+++++++++
**204**
^^^^^^^
Successful Deletion
**404**
^^^^^^^
Invalid Path or Path not found
GET ``/domain/{domainName}/secret``
-----------------------------------
Summary
+++++++
List secret Names in this domain
Description
+++++++++++
.. raw:: html
Gets all secret names in this domain
Parameters
++++++++++
.. csv-table::
:delim: |
:header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 15, 10, 10, 10, 20, 30
domainName | path | Yes | string | | | Name of the domain in which to look at
Request
+++++++
Responses
+++++++++
**200**
^^^^^^^
Successful operation
.. _i_1dcddfd6f11cba3fb2516d3a61cd1b77:
**Response Schema:**
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
secretnames | No | array of string | | | Array of strings referencing the secret names
**Example:**
.. code-block:: javascript
{
"secretnames": [
"secretname1",
"secretname2",
"secretname3"
]
}
**404**
^^^^^^^
Invalid Path or Path not found
GET ``/domain/{domainName}/secret/{secretName}``
------------------------------------------------
Summary
+++++++
Find Secret by Name
Description
+++++++++++
.. raw:: html
Returns a single secret
Parameters
++++++++++
.. csv-table::
:delim: |
:header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 15, 10, 10, 10, 20, 30
domainName | path | Yes | string | | | Name of the domain in which to look at
secretName | path | Yes | string | | | Name of the secret which is needed
Request
+++++++
Responses
+++++++++
**200**
^^^^^^^
successful operation
Type: :ref:`Secret <d_5e5fddd9ede6eb091e8496a9c55b84c3>`
**Example:**
.. code-block:: javascript
{
"name": "somestring",
"values": {
"Age": 40,
"admin": true,
"name": "john"
}
}
**404**
^^^^^^^
Invalid Path or Path not found
POST ``/domain/{domainName}/secret``
------------------------------------
Summary
+++++++
Add a new secret
Parameters
++++++++++
.. csv-table::
:delim: |
:header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 15, 10, 10, 10, 20, 30
domainName | path | Yes | string | | | Name of the domain
Request
+++++++
.. _d_5e5fddd9ede6eb091e8496a9c55b84c3:
Body
^^^^
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
name | No | string | | | Name of the secret
values | No | :ref:`values <i_a9213c9639162b77082e257e19cca0d0>` | | | Map of key value pairs that constitute the secret
.. _i_a9213c9639162b77082e257e19cca0d0:
**Values schema:**
Map of key value pairs that constitute the secret
Map of {"key":":ref:`values-mapped <m_4d863967ef9a9d9efdadd1b250c76bd6>`"}
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
.. code-block:: javascript
{
"name": "somestring",
"values": {
"Age": 40,
"admin": true,
"name": "john"
}
}
Responses
+++++++++
**201**
^^^^^^^
Successful Creation
**404**
^^^^^^^
Invalid Path or Path not found
SYSTEM
~~~~~~
Operations related to quorum client which are not useful to clients
GET ``/status``
---------------
Summary
+++++++
Get backend status
Description
+++++++++++
.. raw:: html
Gets current backend status. This API is used only by quorum clients
Request
+++++++
Responses
+++++++++
**200**
^^^^^^^
Successful operation
.. _i_ac1bc8e82eadbd8c03f852e15be4d03b:
**Response Schema:**
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
sealstatus | No | string | | | seal status of backend
**Example:**
.. code-block:: javascript
{
"sealstatus": "somestring"
}
**404**
^^^^^^^
Invalid Path or Path not found
POST ``/unseal``
----------------
Summary
+++++++
Unseal backend
Description
+++++++++++
.. raw:: html
Sends unseal shard to unseal if backend is sealed
Request
+++++++
.. _i_9d32e021ba68855cbb6e633520b7cd2d:
Body
^^^^
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
unsealshard | No | string | | | Unseal shard that will be used along with other shards to unseal backend
.. code-block:: javascript
{
"unsealshard": "somestring"
}
Responses
+++++++++
**201**
^^^^^^^
Submitted unseal key
**404**
^^^^^^^
Invalid Path or Path not found
Data Structures
~~~~~~~~~~~~~~~
.. _d_8e36d758bad367e4538a291a5dd5355f:
Credential Model Structure
--------------------------
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
password | No | string | | |
username | No | string | | |
.. _d_c7bdcff9aff0692da98e588abdbc895b:
Domain Model Structure
----------------------
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
name | No | string | | | Name of the secret domain under which all secrets will be stored
uuid | No | string | | | Optional value provided by user. If user does not provide, server will auto generate
.. _d_5e5fddd9ede6eb091e8496a9c55b84c3:
Secret Model Structure
----------------------
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25
name | No | string | | | Name of the secret
values | No | :ref:`values <i_a9213c9639162b77082e257e19cca0d0>` | | | Map of key value pairs that constitute the secret
.. _i_a9213c9639162b77082e257e19cca0d0:
**Values schema:**
Map of key value pairs that constitute the secret
Map of {"key":":ref:`values-mapped <m_4d863967ef9a9d9efdadd1b250c76bd6>`"}
.. csv-table::
:delim: |
:header: "Name", "Required", "Type", "Format", "Properties", "Description"
:widths: 20, 10, 15, 15, 30, 25