Skip to content

Commit 7abddca

Browse files
Merge pull request #6055 from sadilchamishka/application-wise-outbound-provisioning-doc-improvements
Document SCIM2 Schemas API
2 parents e76ce43 + 944c3ed commit 7abddca

9 files changed

Lines changed: 1164 additions & 0 deletions

File tree

Lines changed: 356 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,356 @@
1+
openapi: 3.0.1
2+
info:
3+
title: SCIM 2.0 Schemas Retrieval API
4+
description: |
5+
This document specifies **SCIM 2.0 Schemas RESTful API** for **Asgardeo**.
6+
version: "v1"
7+
servers:
8+
- url: 'https://api.asgardeo.io/t/{organization-name}/scim2'
9+
tags:
10+
- name: Schemas Endpoint
11+
description: This API lists and returns metadata about SCIM 2.0 schemas.
12+
paths:
13+
/Schemas:
14+
get:
15+
tags:
16+
- Schemas Endpoint
17+
summary: Get All Schemas
18+
description: "This API returns all supported SCIM 2.0 schema definitions.\n\n
19+
<b>No additional scopes or permissions required. Authentication is required.</b>"
20+
operationId: getSchemas
21+
responses:
22+
200:
23+
description: Schemas are found
24+
content:
25+
application/scim+json:
26+
schema:
27+
type: array
28+
items:
29+
$ref: '#/components/schemas/SchemaObject'
30+
401:
31+
description: Unauthorized
32+
content:
33+
application/scim+json:
34+
schema:
35+
$ref: '#/components/schemas/ErrorUnauthorized'
36+
404:
37+
description: Schema not found
38+
content:
39+
application/scim+json:
40+
schema:
41+
$ref: '#/components/schemas/ErrorSchemaNotFound'
42+
x-codeSamples:
43+
- lang: Curl
44+
source: |
45+
curl -X 'GET' \
46+
'https://api.asgardeo.io/t/{organization-name}/scim2/Schemas' \
47+
-H 'accept: application/json' \
48+
-H 'Authorization: Bearer {bearer_token}'
49+
50+
'/Schemas/{id}':
51+
get:
52+
tags:
53+
- Schemas Endpoint
54+
summary: Get Schema by ID
55+
description: "This API returns the SCIM 2.0 schema definition identified by the given id.\n\n
56+
<b>No additional scopes or permissions required. Authentication is required.</b>"
57+
operationId: getSchemaById
58+
parameters:
59+
- name: id
60+
in: path
61+
description: Unique ID of the schema (e.g., urn:ietf:params:scim:schemas:core:2.0:User).
62+
required: true
63+
schema:
64+
type: string
65+
responses:
66+
200:
67+
description: Schema is found
68+
content:
69+
application/scim+json:
70+
schema:
71+
$ref: '#/components/schemas/SchemaObject'
72+
401:
73+
description: Unauthorized
74+
content:
75+
application/scim+json:
76+
schema:
77+
$ref: '#/components/schemas/ErrorUnauthorized'
78+
404:
79+
description: Schema not found
80+
content:
81+
application/scim+json:
82+
schema:
83+
$ref: '#/components/schemas/ErrorSchemaNotFound'
84+
x-codeSamples:
85+
- lang: Curl
86+
source: |
87+
curl -X 'GET' \
88+
'https://api.asgardeo.io/t/{organization-name}/scim2/Schemas/{id}' \
89+
-H 'accept: application/json' \
90+
-H 'Authorization: Bearer {bearer_token}'
91+
92+
components:
93+
schemas:
94+
SchemaObject:
95+
type: object
96+
properties:
97+
name:
98+
type: string
99+
description: The name of the schema.
100+
example: "User"
101+
description:
102+
type: string
103+
description: The description of the schema.
104+
example: "User Account"
105+
attributes:
106+
type: array
107+
description: The list of attributes defined in the schema.
108+
items:
109+
$ref: '#/components/schemas/SchemaAttribute'
110+
id:
111+
type: string
112+
description: The unique URI of the schema.
113+
example: "urn:ietf:params:scim:schemas:core:2.0:User"
114+
115+
SchemaAttribute:
116+
type: object
117+
properties:
118+
name:
119+
type: string
120+
description: The attribute's name.
121+
example: "userName"
122+
type:
123+
type: string
124+
description: The attribute's data type.
125+
enum:
126+
- STRING
127+
- COMPLEX
128+
- BOOLEAN
129+
- DECIMAL
130+
- INTEGER
131+
- DATE_TIME
132+
- DATE
133+
- BINARY
134+
- REFERENCE
135+
example: "STRING"
136+
multiValued:
137+
type: boolean
138+
description: Whether the attribute is multi-valued.
139+
example: false
140+
description:
141+
type: string
142+
description: The attribute's human-readable description.
143+
example: "Username"
144+
required:
145+
type: boolean
146+
description: Whether the attribute is required.
147+
example: false
148+
caseExact:
149+
type: boolean
150+
description: Whether the string attribute is case sensitive.
151+
example: false
152+
mutability:
153+
type: string
154+
description: Indicates whether the attribute is mutable.
155+
enum:
156+
- READ_ONLY
157+
- READ_WRITE
158+
- IMMUTABLE
159+
- WRITE_ONLY
160+
example: "READ_WRITE"
161+
returned:
162+
type: string
163+
description: Indicates when an attribute is returned in a response.
164+
enum:
165+
- ALWAYS
166+
- NEVER
167+
- DEFAULT
168+
- REQUEST
169+
example: "DEFAULT"
170+
uniqueness:
171+
type: string
172+
description: Indicates how unique a value must be.
173+
enum:
174+
- NONE
175+
example: "NONE"
176+
displayName:
177+
type: string
178+
description: The display name of the attribute.
179+
example: "Username"
180+
displayOrder:
181+
type: integer
182+
description: The display order of the attribute.
183+
example: 1
184+
supportedByDefault:
185+
type: boolean
186+
description: Whether the attribute is supported by default.
187+
example: true
188+
sharedProfileValueResolvingMethod:
189+
type: string
190+
description: The method used to resolve shared profile values.
191+
example: "FromOrigin"
192+
regEx:
193+
type: string
194+
description: The regular expression for validating the attribute value.
195+
example: "^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,10})+$"
196+
subAttributes:
197+
type: array
198+
description: The sub-attributes of a COMPLEX attribute.
199+
items:
200+
$ref: '#/components/schemas/SchemaSubAttribute'
201+
profiles:
202+
type: object
203+
description: Profile-specific configurations for the attribute.
204+
properties:
205+
console:
206+
type: object
207+
properties:
208+
supportedByDefault:
209+
type: boolean
210+
example: true
211+
inputFormat:
212+
type: object
213+
description: The input format configuration for the attribute.
214+
properties:
215+
inputType:
216+
type: string
217+
example: "text_input"
218+
excludedUserStores:
219+
type: string
220+
description: Comma-separated list of excluded user stores.
221+
example: ""
222+
223+
SchemaSubAttribute:
224+
type: object
225+
properties:
226+
name:
227+
type: string
228+
description: The sub-attribute's name.
229+
example: "familyName"
230+
type:
231+
type: string
232+
description: The sub-attribute's data type.
233+
enum:
234+
- STRING
235+
- COMPLEX
236+
- BOOLEAN
237+
- DECIMAL
238+
- INTEGER
239+
- DATE_TIME
240+
- DATE
241+
- BINARY
242+
- REFERENCE
243+
example: "STRING"
244+
multiValued:
245+
type: boolean
246+
description: Whether the sub-attribute is multi-valued.
247+
example: false
248+
description:
249+
type: string
250+
description: The sub-attribute's human-readable description.
251+
example: "Last Name"
252+
required:
253+
type: boolean
254+
description: Whether the sub-attribute is required.
255+
example: false
256+
caseExact:
257+
type: boolean
258+
description: Whether the string sub-attribute is case sensitive.
259+
example: false
260+
mutability:
261+
type: string
262+
description: Indicates whether the sub-attribute is mutable.
263+
enum:
264+
- READ_ONLY
265+
- READ_WRITE
266+
- IMMUTABLE
267+
- WRITE_ONLY
268+
example: "READ_WRITE"
269+
returned:
270+
type: string
271+
description: Indicates when a sub-attribute is returned in a response.
272+
enum:
273+
- ALWAYS
274+
- NEVER
275+
- DEFAULT
276+
- REQUEST
277+
example: "DEFAULT"
278+
uniqueness:
279+
type: string
280+
description: Indicates how unique a value must be.
281+
enum:
282+
- NONE
283+
example: "NONE"
284+
displayName:
285+
type: string
286+
description: The display name of the sub-attribute.
287+
example: "Last Name"
288+
displayOrder:
289+
type: integer
290+
description: The display order of the sub-attribute.
291+
example: 3
292+
supportedByDefault:
293+
type: boolean
294+
description: Whether the sub-attribute is supported by default.
295+
example: true
296+
sharedProfileValueResolvingMethod:
297+
type: string
298+
description: The method used to resolve shared profile values.
299+
example: "FromOrigin"
300+
regEx:
301+
type: string
302+
description: The regular expression for validating the sub-attribute value.
303+
profiles:
304+
type: object
305+
description: Profile-specific configurations for the sub-attribute.
306+
properties:
307+
console:
308+
type: object
309+
properties:
310+
supportedByDefault:
311+
type: boolean
312+
example: true
313+
inputFormat:
314+
type: object
315+
description: The input format configuration for the sub-attribute.
316+
properties:
317+
inputType:
318+
type: string
319+
example: "text_input"
320+
excludedUserStores:
321+
type: string
322+
description: Comma-separated list of excluded user stores.
323+
example: ""
324+
325+
ErrorUnauthorized:
326+
required:
327+
- status
328+
- schemas
329+
type: object
330+
properties:
331+
schemas:
332+
type: string
333+
example: urn:ietf:params:scim:api:messages:2.0:Error
334+
detail:
335+
type: string
336+
example: "Authorization failure. Authorization information was invalid or missing from your request."
337+
status:
338+
type: string
339+
example: "401"
340+
341+
ErrorSchemaNotFound:
342+
required:
343+
- detail
344+
- status
345+
- schemas
346+
type: object
347+
properties:
348+
status:
349+
type: string
350+
example: "404"
351+
schemas:
352+
type: string
353+
example: urn:ietf:params:scim:api:messages:2.0:Error
354+
detail:
355+
type: string
356+
example: Schema not found.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
template: templates/redoc.html
3+
---
4+
5+
<redoc spec-url="{{base_path}}/apis/restapis/scim2-schemas.yaml" theme='{{redoc_theme}}'></redoc>

en/asgardeo/mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,7 @@ nav:
730730
- SCIM 2.0 Groups API: apis/scim2/scim2-groups-rest-api.md
731731
- SCIM 2.0 Patch operations: apis/scim2/scim2-patch-operations.md
732732
- SCIM 2.0 Bulk API: apis/scim2/scim2-bulk-rest-api.md
733+
- SCIM 2.0 Schema API: apis/scim2/scim2-schema-rest-api.md
733734
- SCIM 2.0 Batch Operations: apis/scim2/scim2-batch-operations.md
734735
- SCIM 2.0 Resource types API: apis/scim2/scim2-resource-types-rest-api.md
735736
- SCIM 2.0 Service provider configs API: apis/scim2/scim2-service-provider-configs-rest-api.md

0 commit comments

Comments
 (0)