Skip to content

Commit 5db9fe6

Browse files
authored
Merge pull request #187 from iamharisali/feature-master/IST-3550-config-api
IST-3350 Docs added for config API
2 parents a3db29f + 0da74a2 commit 5db9fe6

File tree

12 files changed

+215
-0
lines changed

12 files changed

+215
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
name: configName
2+
in: path
3+
required: true
4+
description: The unique name/key of the configuration setting
5+
schema:
6+
type: string
7+
example: site_name
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
description: Bulk configuration update request
2+
required: true
3+
content:
4+
application/json:
5+
schema:
6+
$ref: ../schemas/config-bulk-request.yaml
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
description: Configuration update request
2+
required: true
3+
content:
4+
application/json:
5+
schema:
6+
$ref: ../schemas/config-update.yaml
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
description: Bulk configuration update response
2+
content:
3+
application/json:
4+
schema:
5+
$ref: ../schemas/config-bulk-response.yaml
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
description: Configuration item response
2+
content:
3+
application/json:
4+
schema:
5+
$ref: ../schemas/config-item.yaml
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
type: object
2+
required:
3+
- configs
4+
properties:
5+
configs:
6+
type: array
7+
description: Array of configuration updates to process
8+
items:
9+
type: object
10+
required:
11+
- name
12+
- value
13+
properties:
14+
name:
15+
type: string
16+
description: The unique name/key of the configuration setting
17+
example: "site_name"
18+
value:
19+
oneOf:
20+
- type: string
21+
- type: number
22+
- type: boolean
23+
- type: object
24+
- type: array
25+
description: The new configuration value
26+
example: "Updated School Name"
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
type: object
2+
required:
3+
- results
4+
- errors
5+
- total_processed
6+
- successful
7+
- failed
8+
properties:
9+
results:
10+
type: array
11+
description: Array of results for each config update attempt
12+
items:
13+
oneOf:
14+
- allOf:
15+
- $ref: ./config-item.yaml
16+
- type: object
17+
required:
18+
- status
19+
properties:
20+
status:
21+
type: string
22+
enum: ["success"]
23+
example: "success"
24+
- type: object
25+
required:
26+
- name
27+
- status
28+
- error
29+
properties:
30+
name:
31+
type: string
32+
description: The config name that failed to update
33+
example: "invalid_config"
34+
status:
35+
type: string
36+
enum: ["failed"]
37+
example: "failed"
38+
error:
39+
type: string
40+
description: Error message explaining why the update failed
41+
example: "Config 'invalid_config' not found"
42+
errors:
43+
type: array
44+
items:
45+
type: string
46+
description: Array of error messages for failed updates
47+
example: ["Config 'invalid_config' not found"]
48+
total_processed:
49+
type: integer
50+
description: Total number of config updates attempted
51+
example: 5
52+
successful:
53+
type: integer
54+
description: Number of config updates that succeeded
55+
example: 4
56+
failed:
57+
type: integer
58+
description: Number of config updates that failed
59+
example: 1
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
type: object
2+
required:
3+
- name
4+
- value
5+
properties:
6+
name:
7+
type: string
8+
description: The unique name/key of the configuration setting
9+
example: "site_name"
10+
value:
11+
oneOf:
12+
- type: string
13+
- type: number
14+
- type: boolean
15+
- type: object
16+
- type: array
17+
description: The configuration value. Can be any valid JSON type depending on the config setting.
18+
example: "My School"
19+
description:
20+
type: string
21+
description: Optional description of what this configuration setting controls
22+
example: "The name of the school displayed in the header"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
type: object
2+
required:
3+
- value
4+
properties:
5+
value:
6+
oneOf:
7+
- type: string
8+
- type: number
9+
- type: boolean
10+
- type: object
11+
- type: array
12+
description: The new configuration value. Can be any valid JSON type depending on the config setting.
13+
example: "Updated School Name"

openapi/openapi.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ tags:
5858
description: |
5959
Create and manage calendar events.
6060
61+
- name: config
62+
x-displayName: Configuration
63+
description: |
64+
Get and update system configuration values.
65+
6166
- name: discussion
6267
x-displayName: Discussions
6368
description: |
@@ -297,6 +302,12 @@ paths:
297302
/api/search/folder/{id}:
298303
$ref: 'paths/api@search@folder@{id}.yaml'
299304

305+
/api/config:
306+
$ref: 'paths/api@config.yaml'
307+
308+
/api/config/{configName}:
309+
$ref: 'paths/api@config@{configName}.yaml'
310+
300311
/group/getData/{id}:
301312
$ref: 'paths/group@getData@{id}.yaml'
302313

0 commit comments

Comments
 (0)