-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgroups.yml
176 lines (172 loc) · 4.94 KB
/
groups.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
openapi: 3.0.3
paths:
/groups:
parameters:
- $ref: './common.yml#/components/parameters/x-request'
get:
tags:
- group
summary: Get groups
operationId: get_all_groups
parameters:
- $ref: './common.yml#/components/parameters/page'
- $ref: './common.yml#/components/parameters/size'
responses:
200:
description: "Successful operation, return all groups."
content:
application/json:
schema:
$ref: "./identification.yml#/components/schemas/GroupPage"
400:
$ref: "./common.yml#/components/responses/BadRequest"
post:
tags:
- group
summary: Create group
operationId: create_group
requestBody:
description: "Request body for the group to create."
required: true
content:
application/json:
schema:
$ref: "./identification.yml#/components/schemas/GroupToCreate"
responses:
201:
$ref: "#/components/responses/SuccessGroup"
400:
$ref: "./common.yml#/components/responses/BadRequest"
/groups/{groupId}:
parameters:
- $ref: '#/components/parameters/groupId'
- $ref: './common.yml#/components/parameters/x-request'
get:
tags:
- group
summary: Get group
operationId: get_group
responses:
200:
$ref: "#/components/responses/SuccessGroup"
400:
$ref: "./common.yml#/components/responses/BadRequest"
404:
$ref: "#/components/responses/GroupNotFound"
put:
tags:
- group
summary: Update group
operationId: update_group
requestBody:
description: "Request body for the group to update."
required: true
content:
application/json:
schema:
$ref: "./identification.yml#/components/schemas/GroupToCreate"
responses:
204:
$ref: "#/components/responses/SuccessEmpty"
400:
$ref: "./common.yml#/components/responses/BadRequest"
404:
$ref: "#/components/responses/GroupNotFound"
delete:
tags:
- group
summary: Delete group
operationId: delete_group
responses:
204:
$ref: "#/components/responses/SuccessEmpty"
404:
$ref: "#/components/responses/GroupNotFound"
/groups/{groupId}/persons:
parameters:
- $ref: "#/components/parameters/groupId"
- $ref: './common.yml#/components/parameters/x-request'
get:
tags:
- group
summary: Get group persons
operationId: get_all_persons_by_group_id
parameters:
- $ref: './common.yml#/components/parameters/page'
- $ref: './common.yml#/components/parameters/size'
responses:
'200':
description: "Successful operation, return all persons."
content:
application/json:
schema:
$ref: "./identification.yml#/components/schemas/PersonsPage"
'400':
$ref: "./common.yml#/components/responses/BadRequest"
'404':
description: "Group with the groupId or persons with the personIds are not found."
content:
application/json:
schema:
$ref: "./common.yml#/components/schemas/OperationLog"
put:
tags:
- group
summary: Add/remove persons to group
operationId: update_persons_in_group
requestBody:
description: "Request body for person IDs to add or remove."
required: true
content:
application/json:
schema:
$ref: "#/definitions/UpdateGroup"
responses:
204:
$ref: "#/components/responses/SuccessEmpty"
400:
$ref: "./common.yml#/components/responses/BadRequest"
404:
$ref: "#/components/responses/GroupNotFound"
components:
parameters:
groupId:
name: groupId
in: path
description: "Group ID."
required: true
schema:
type: string
format: uuid
responses:
SuccessEmpty:
description: "Successful operation, return nothing."
SuccessGroup:
description: "Successful operation; return group."
content:
application/json:
schema:
$ref: "./identification.yml#/components/schemas/Group"
GroupNotFound:
description: "Group with the groupId is not found."
content:
application/json:
schema:
$ref: "./common.yml#/components/schemas/OperationLog"
definitions:
UpdateGroup:
type: object
description: "Update group."
properties:
addItems:
type: array
description: "Add items."
items:
type: string
format: uuid
removeItems:
type: array
description: "Remove items."
items:
type: string
format: uuid