فهرست منبع

Add regions API to api-refs

Daniel Vincze 5 سال پیش
والد
کامیت
d7708061cf

+ 7 - 0
coriolis/api-refs/api_samples/region/region-create-req.json

@@ -0,0 +1,7 @@
+{
+    "region": {
+        "name": "region1",
+        "description": "First test region.",
+        "enabled": true
+    }
+}

+ 14 - 0
coriolis/api-refs/api_samples/region/region-create-resp.json

@@ -0,0 +1,14 @@
+{
+    "region": {
+        "created_at": "2021-02-01T10:02:54.000000",
+        "updated_at": null,
+        "deleted_at": null,
+        "deleted": "0",
+        "id": "fc46cadb-5141-4d14-83e1-afe170be0e4c",
+        "name": "region1",
+        "description": "First test region.",
+        "enabled": true,
+        "mapped_services": [],
+        "mapped_endpoints": []
+    }
+}

+ 30 - 0
coriolis/api-refs/api_samples/region/region-list-resp.json

@@ -0,0 +1,30 @@
+{
+    "regions": [
+        {
+            "created_at": "2021-01-28T16:22:34.000000",
+            "updated_at": null,
+            "deleted_at": null,
+            "deleted": "0",
+            "id": "5e31066c-3512-4e8d-9e68-0a5de3d35c5f",
+            "name": "Public",
+            "description": "Default Coriolis Region created by coriolis-docker.",
+            "enabled": true,
+            "mapped_services": [
+                "15194e7e-8d91-406a-a02c-8032ff1fe623"
+            ],
+            "mapped_endpoints": []
+        },
+        {
+            "created_at": "2021-02-01T10:02:54.000000",
+            "updated_at": null,
+            "deleted_at": null,
+            "deleted": "0",
+            "id": "fc46cadb-5141-4d14-83e1-afe170be0e4c",
+            "name": "region1",
+            "description": "First test region.",
+            "enabled": true,
+            "mapped_services": [],
+            "mapped_endpoints": []
+        }
+    ]
+}

+ 16 - 0
coriolis/api-refs/api_samples/region/region-show-resp.json

@@ -0,0 +1,16 @@
+{
+    "region": {
+        "created_at": "2021-01-28T16:22:34.000000",
+        "updated_at": null,
+        "deleted_at": null,
+        "deleted": "0",
+        "id": "5e31066c-3512-4e8d-9e68-0a5de3d35c5f",
+        "name": "Public",
+        "description": "Default Coriolis Region created by coriolis-docker.",
+        "enabled": true,
+        "mapped_services": [
+            "15194e7e-8d91-406a-a02c-8032ff1fe623"
+        ],
+        "mapped_endpoints": []
+    }
+}

+ 7 - 0
coriolis/api-refs/api_samples/region/region-update-req.json

@@ -0,0 +1,7 @@
+{
+    "region": {
+        "name": "Region-1",
+        "description": "Region Update Example.",
+        "enabled": false
+    }
+}

+ 14 - 0
coriolis/api-refs/api_samples/region/region-update-resp.json

@@ -0,0 +1,14 @@
+{
+    "region": {
+        "created_at": "2021-02-01T10:02:54.000000",
+        "updated_at": "2021-02-01T10:20:58.000000",
+        "deleted_at": null,
+        "deleted": "0",
+        "id": "fc46cadb-5141-4d14-83e1-afe170be0e4c",
+        "name": "Region-1",
+        "description": "Region Update Example.",
+        "enabled": false,
+        "mapped_services": [],
+        "mapped_endpoints": []
+    }
+}

+ 1 - 0
coriolis/api-refs/source/index.rst

@@ -11,4 +11,5 @@ This is a reference for the Coriolis API.
 .. include:: migration.inc
 .. include:: minion_pool.inc
 .. include:: provider.inc
+.. include:: region.inc
 .. include:: replica.inc

+ 78 - 0
coriolis/api-refs/source/parameters.yaml

@@ -41,6 +41,12 @@ provider_id:
   in: path
   type: integer
   required: true
+region_id_path:
+  description: |
+    The ID of the region.
+  in: path
+  type: uuid
+  required: true
 replica_id_path:
   description: |
     The id of the replica.
@@ -687,6 +693,78 @@ providers:
   in: body
   type: array
   required: true
+region_created_at:
+  description: |
+    Timestamp of region creation.
+  in: body
+  type: string
+  required: true
+region_deleted:
+  description: |
+    Value representing whether the region is deleted or not.
+  in: body
+  type: integer
+  required: true
+region_deleted_at:
+  description: |
+    Timestamp of region deletion.
+  in: body
+  type: string
+  required: true
+region_description:
+  description: |
+    Details about the region.
+  in: body
+  type: string
+  required: false
+region_enabled:
+  description: |
+    Boolean value representing whether the region is enabled or not.
+  in: body
+  type: boolean
+  required: true
+region_id:
+  description: |
+    The ID of the region.
+  in: body
+  type: uuid
+  required: true
+region_mapped_endpoints:
+  description: |
+    Array of cloud endpoint IDs that are mapped to this region.
+  in: body
+  type: array
+  required: true
+region_mapped_services:
+  description: |
+    Array of service IDs that are mapped to this region.
+  in: body
+  type: array
+  required: true
+region_name:
+  description: |
+    The name of the region.
+  in: body
+  type: string
+  required: true
+region_object:
+  description: |
+    Object containing details about a region.
+  in: body
+  type: object
+  required: true
+region_updated_at:
+  description: |
+    Timestamp of last region update.
+  in: body
+  type: string
+  required: true
+regions_array:
+  description: |
+    Array of region objects.
+  in: body
+  type: array
+  required: true
 replica_action_id:
   description: |
     Id of the replica excution.

+ 216 - 0
coriolis/api-refs/source/region.inc

@@ -0,0 +1,216 @@
+.. -*- rst -*-
+
+=======
+Regions
+=======
+
+Lists, creates, updates, shows details for, and deletes regions.
+
+
+List Regions
+============
+
+.. rest_method:: GET /regions
+
+Lists all regions.
+
+Normal response codes: 200
+
+Error response codes:   unauthorized(401),
+forbidden(403)
+
+Response
+--------
+
+.. rest_parameters:: parameters.yaml
+
+    - regions : regions_array
+    - created_at : region_created_at
+    - updated_at : region_updated_at
+    - deleted_at : region_deleted_at
+    - deleted : region_deleted
+    - id : region_id
+    - name : region_name
+    - description : region_description
+    - enabled : region_enabled
+    - mapped_services : region_mapped_services
+    - mapped_endpoints : region_mapped_endpoints
+
+**Example of Region List Response**
+
+    .. literalinclude:: ../api_samples/region/region-list-resp.json
+        :language: javascript
+
+Show Region
+===========
+
+.. rest_method:: GET /regions/{region_id}
+
+Shows details about a region.
+
+**Preconditions**
+
+The region must exist.
+
+Normal response codes: 200
+
+Error response codes: unauthorized(401),
+forbidden(403), itemNotFound(404)
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+    - region_id : region_id_path
+
+Response
+--------
+.. rest_parameters:: parameters.yaml
+
+    - region: region_object
+    - created_at : region_created_at
+    - updated_at : region_updated_at
+    - deleted_at : region_deleted_at
+    - deleted : region_deleted
+    - id : region_id
+    - name : region_name
+    - description : region_description
+    - enabled : region_enabled
+    - mapped_services : region_mapped_services
+    - mapped_endpoints : region_mapped_endpoints
+
+**Example of Region Show Response**
+
+    .. literalinclude:: ../api_samples/region/region-show-resp.json
+        :language: javascript
+
+Create Region
+=============
+
+.. rest_method:: POST /regions
+
+Creates a region.
+
+Normal response codes: 200
+
+Error response codes: unauthorized(401), forbidden(403)
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+    - region : region_object
+    - name : region_name
+    - description : region_description
+    - enabled : region_enabled
+
+**Example of Region Create Request**
+
+    .. literalinclude:: ../api_samples/region/region-create-req.json
+        :language: javascript
+
+Response
+--------
+
+.. rest_parameters:: parameters.yaml
+
+    - region: region_object
+    - created_at : region_created_at
+    - updated_at : region_updated_at
+    - deleted_at : region_deleted_at
+    - deleted : region_deleted
+    - id : region_id
+    - name : region_name
+    - description : region_description
+    - enabled : region_enabled
+    - mapped_services : region_mapped_services
+    - mapped_endpoints : region_mapped_endpoints
+
+**Example of Region Create Response**
+
+    .. literalinclude:: ../api_samples/region/region-create-resp.json
+        :language: javascript
+
+Update Region
+=============
+
+.. rest_method:: PUT /regions/{region_id}
+
+Updates the already existing region, modifying its name, description or availability.
+
+**Preconditions**
+
+The region must exist.
+
+Normal Response Codes: 200
+
+Error response codes:   unauthorized(401),
+forbidden(403), itemNotFound(404)
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+    - region_id : region_id_path
+    - region : region_object
+    - name : region_name
+    - description : region_description
+    - enabled : region_enabled
+
+**Example of Region Update Request**
+
+    .. literalinclude:: ../api_samples/region/region-update-req.json
+        :language: javascript
+
+Response
+--------
+
+.. rest_parameters:: parameters.yaml
+
+    - region: region_object
+    - created_at : region_created_at
+    - updated_at : region_updated_at
+    - deleted_at : region_deleted_at
+    - deleted : region_deleted
+    - id : region_id
+    - name : region_name
+    - description : region_description
+    - enabled : region_enabled
+    - mapped_services : region_mapped_services
+    - mapped_endpoints : region_mapped_endpoints
+
+**Example of Region Update Response**
+
+    .. literalinclude:: ../api_samples/region/region-update-resp.json
+        :language: javascript
+
+Delete Region
+=============
+
+.. rest_method:: DELETE /regions/{region_id}
+
+Deletes a region.
+
+**Preconditions**
+
+The region must exist.
+
+Normal response codes: 204
+
+Error response codes: itemNotFound(404),unauthorized(401),
+forbidden(403)
+
+Request
+-------
+
+.. rest_parameters:: parameters.yaml
+
+    - region_id : region_id_path
+
+Response
+--------
+
+There is no response body for a successful deletion of a region.