@iblai/iblai-api 4.118.3-core → 4.118.4-core

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/sdk_schema.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ibl-data-manager
4
- version: 4.118.3-core
4
+ version: 4.118.4-core
5
5
  description: API for iblai
6
6
  paths:
7
7
  /api/analytics/content/:
@@ -18602,7 +18602,7 @@ paths:
18602
18602
  responses:
18603
18603
  '200':
18604
18604
  description: No response body
18605
- /api/credentials/orgs/{platform_key}/users/{username}/:
18605
+ /api/credentials/orgs/{platform_key}/users/{user_id}/:
18606
18606
  get:
18607
18607
  operationId: credentials_orgs_users_retrieve
18608
18608
  description: |-
@@ -18622,9 +18622,9 @@ paths:
18622
18622
  type: string
18623
18623
  required: true
18624
18624
  - in: path
18625
- name: username
18625
+ name: user_id
18626
18626
  schema:
18627
- type: string
18627
+ type: integer
18628
18628
  required: true
18629
18629
  tags:
18630
18630
  - credentials
@@ -18723,9 +18723,9 @@ paths:
18723
18723
  type: string
18724
18724
  required: true
18725
18725
  - in: path
18726
- name: username
18726
+ name: user_id
18727
18727
  schema:
18728
- type: string
18728
+ type: integer
18729
18729
  required: true
18730
18730
  tags:
18731
18731
  - credentials
@@ -18756,7 +18756,7 @@ paths:
18756
18756
  schema:
18757
18757
  $ref: '#/components/schemas/Credential'
18758
18758
  description: ''
18759
- /api/credentials/orgs/{platform_key}/users/{username}/{entity_id}:
18759
+ /api/credentials/orgs/{platform_key}/users/{user_id}/{entity_id}:
18760
18760
  get:
18761
18761
  operationId: credentials_orgs_users_retrieve_2
18762
18762
  description: |-
@@ -18802,7 +18802,10 @@ paths:
18802
18802
  "result": {credential object}
18803
18803
  }
18804
18804
 
18805
- DELETE: No content (204)
18805
+ DELETE: A JSON response indicating success:
18806
+ {
18807
+ "status": {"success": true, "description": "Deleted"}
18808
+ }
18806
18809
 
18807
18810
  Error Responses:
18808
18811
  400 Bad Request: If the request data is invalid
@@ -18826,9 +18829,9 @@ paths:
18826
18829
  type: string
18827
18830
  required: true
18828
18831
  - in: path
18829
- name: username
18832
+ name: user_id
18830
18833
  schema:
18831
- type: string
18834
+ type: integer
18832
18835
  required: true
18833
18836
  tags:
18834
18837
  - credentials
@@ -18886,7 +18889,10 @@ paths:
18886
18889
  "result": {credential object}
18887
18890
  }
18888
18891
 
18889
- DELETE: No content (204)
18892
+ DELETE: A JSON response indicating success:
18893
+ {
18894
+ "status": {"success": true, "description": "Deleted"}
18895
+ }
18890
18896
 
18891
18897
  Error Responses:
18892
18898
  400 Bad Request: If the request data is invalid
@@ -18910,9 +18916,9 @@ paths:
18910
18916
  type: string
18911
18917
  required: true
18912
18918
  - in: path
18913
- name: username
18919
+ name: user_id
18914
18920
  schema:
18915
- type: string
18921
+ type: integer
18916
18922
  required: true
18917
18923
  tags:
18918
18924
  - credentials
@@ -18988,7 +18994,10 @@ paths:
18988
18994
  "result": {credential object}
18989
18995
  }
18990
18996
 
18991
- DELETE: No content (204)
18997
+ DELETE: A JSON response indicating success:
18998
+ {
18999
+ "status": {"success": true, "description": "Deleted"}
19000
+ }
18992
19001
 
18993
19002
  Error Responses:
18994
19003
  400 Bad Request: If the request data is invalid
@@ -19012,9 +19021,9 @@ paths:
19012
19021
  type: string
19013
19022
  required: true
19014
19023
  - in: path
19015
- name: username
19024
+ name: user_id
19016
19025
  schema:
19017
- type: string
19026
+ type: integer
19018
19027
  required: true
19019
19028
  tags:
19020
19029
  - credentials
@@ -19023,38 +19032,9 @@ paths:
19023
19032
  responses:
19024
19033
  '204':
19025
19034
  description: No response body
19026
- /api/credentials/orgs/{platform_key}/users/{username}/{entity_id}/assertions/:
19035
+ /api/credentials/orgs/{platform_key}/users/{user_id}/{entity_id}/assertions/:
19027
19036
  get:
19028
19037
  operationId: credentials_orgs_users_assertions_retrieve_3
19029
- description: |-
19030
- Endpoint to issue and retrieve credential assertions for a specific credential.
19031
-
19032
- This endpoint allows issuing new credential assertions and retrieving existing
19033
- assertions for a specific credential.
19034
-
19035
- Path Parameters:
19036
- org (str): The organization/tenant identifier
19037
- user_id (str): The user ID making the request
19038
- entity_id (str): The credential entity ID
19039
-
19040
- Methods:
19041
- POST: Issue a new credential assertion
19042
- GET: Retrieve assertions for a specific credential
19043
-
19044
- POST Request Body:
19045
- A JSON object containing recipient information and any additional metadata
19046
- required for issuing the credential.
19047
-
19048
- Returns:
19049
- POST: A JSON response containing the created assertion using the AssertionSerializer format
19050
- GET: A paginated list of assertions using the AssertionSerializer format
19051
-
19052
- Error Responses:
19053
- 400 Bad Request: If the request data is invalid
19054
- 401 Unauthorized: If the user is not authenticated
19055
- 403 Forbidden: If the user does not have permission to access this resource
19056
- 404 Not Found: If the credential doesn't exist
19057
- 500 Internal Server Error: If an unexpected error occurs
19058
19038
  parameters:
19059
19039
  - in: path
19060
19040
  name: entity_id
@@ -19067,9 +19047,9 @@ paths:
19067
19047
  type: string
19068
19048
  required: true
19069
19049
  - in: path
19070
- name: username
19050
+ name: user_id
19071
19051
  schema:
19072
- type: string
19052
+ type: integer
19073
19053
  required: true
19074
19054
  tags:
19075
19055
  - credentials
@@ -19084,35 +19064,6 @@ paths:
19084
19064
  description: ''
19085
19065
  post:
19086
19066
  operationId: credentials_orgs_users_assertions_create
19087
- description: |-
19088
- Endpoint to issue and retrieve credential assertions for a specific credential.
19089
-
19090
- This endpoint allows issuing new credential assertions and retrieving existing
19091
- assertions for a specific credential.
19092
-
19093
- Path Parameters:
19094
- org (str): The organization/tenant identifier
19095
- user_id (str): The user ID making the request
19096
- entity_id (str): The credential entity ID
19097
-
19098
- Methods:
19099
- POST: Issue a new credential assertion
19100
- GET: Retrieve assertions for a specific credential
19101
-
19102
- POST Request Body:
19103
- A JSON object containing recipient information and any additional metadata
19104
- required for issuing the credential.
19105
-
19106
- Returns:
19107
- POST: A JSON response containing the created assertion using the AssertionSerializer format
19108
- GET: A paginated list of assertions using the AssertionSerializer format
19109
-
19110
- Error Responses:
19111
- 400 Bad Request: If the request data is invalid
19112
- 401 Unauthorized: If the user is not authenticated
19113
- 403 Forbidden: If the user does not have permission to access this resource
19114
- 404 Not Found: If the credential doesn't exist
19115
- 500 Internal Server Error: If an unexpected error occurs
19116
19067
  parameters:
19117
19068
  - in: path
19118
19069
  name: entity_id
@@ -19125,9 +19076,9 @@ paths:
19125
19076
  type: string
19126
19077
  required: true
19127
19078
  - in: path
19128
- name: username
19079
+ name: user_id
19129
19080
  schema:
19130
- type: string
19081
+ type: integer
19131
19082
  required: true
19132
19083
  tags:
19133
19084
  - credentials
@@ -19158,37 +19109,9 @@ paths:
19158
19109
  schema:
19159
19110
  $ref: '#/components/schemas/Assertion'
19160
19111
  description: ''
19161
- /api/credentials/orgs/{platform_key}/users/{username}/{entity_id}/assertions/bulk/:
19112
+ /api/credentials/orgs/{platform_key}/users/{user_id}/{entity_id}/assertions/bulk/:
19162
19113
  post:
19163
19114
  operationId: credentials_orgs_users_assertions_bulk_create
19164
- description: |-
19165
- Endpoint to issue credential assertions in bulk for a specific credential.
19166
-
19167
- This endpoint allows issuing credential assertions to multiple users at once.
19168
-
19169
- Path Parameters:
19170
- org (str): The organization/tenant identifier
19171
- user_id (str): The user ID making the request
19172
- entity_id (str): The credential entity ID
19173
-
19174
- POST Request Body:
19175
- A JSON object containing:
19176
- - users (list): List of usernames to issue the credential to
19177
- - Additional metadata required for issuing the credential
19178
-
19179
- Returns:
19180
- A JSON response containing:
19181
- {
19182
- "skipped": ["username1", "username3"], // Users that were skipped (e.g., already have the credential)
19183
- "issued": ["username2", "username4"] // Users that were successfully issued the credential
19184
- }
19185
-
19186
- Error Responses:
19187
- 400 Bad Request: If the request data is invalid or missing required fields
19188
- 401 Unauthorized: If the user is not authenticated
19189
- 403 Forbidden: If the user does not have permission to access this resource
19190
- 404 Not Found: If the credential doesn't exist
19191
- 500 Internal Server Error: If an unexpected error occurs
19192
19115
  parameters:
19193
19116
  - in: path
19194
19117
  name: entity_id
@@ -19201,9 +19124,9 @@ paths:
19201
19124
  type: string
19202
19125
  required: true
19203
19126
  - in: path
19204
- name: username
19127
+ name: user_id
19205
19128
  schema:
19206
- type: string
19129
+ type: integer
19207
19130
  required: true
19208
19131
  tags:
19209
19132
  - credentials
@@ -19234,33 +19157,11 @@ paths:
19234
19157
  schema:
19235
19158
  $ref: '#/components/schemas/BulkCreateAssertion'
19236
19159
  description: ''
19237
- /api/credentials/orgs/{platform_key}/users/{username}/assertions/:
19160
+ /api/credentials/orgs/{platform_key}/users/{user_id}/assertions/:
19238
19161
  get:
19239
19162
  operationId: credentials_orgs_users_assertions_retrieve
19240
- description: |-
19241
- Endpoint to retrieve all credential assertions for a user within an organization.
19242
-
19243
- This endpoint provides access to all credential assertions (issued credentials)
19244
- for a specific user within an organization, with support for filtering.
19245
-
19246
- Path Parameters:
19247
- org (str): The organization/tenant identifier
19248
- user_id (str): The user ID to retrieve assertions for
19249
-
19250
- Query Parameters:
19251
- course (str, optional): Filter by course ID
19252
- include_revoked (bool, optional): Include revoked assertions (default: false)
19253
- include_expired (bool, optional): Include expired assertions (default: false)
19254
- exclude_main_tenant_assertions (bool, optional): Exclude assertions from the main tenant (default: false)
19255
-
19256
- Returns:
19257
- A paginated response using the AssertionSerializer format
19258
-
19259
- Error Responses:
19260
- 401 Unauthorized: If the user is not authenticated
19261
- 403 Forbidden: If the user does not have permission to access this resource
19262
- 404 Not Found: If the user or organization doesn't exist
19263
- 500 Internal Server Error: If an unexpected error occurs
19163
+ description: A GET View that validates QueryParams and returns results to a
19164
+ serializer
19264
19165
  parameters:
19265
19166
  - in: query
19266
19167
  name: course
@@ -19296,9 +19197,9 @@ paths:
19296
19197
  type: string
19297
19198
  required: true
19298
19199
  - in: path
19299
- name: username
19200
+ name: user_id
19300
19201
  schema:
19301
- type: string
19202
+ type: integer
19302
19203
  required: true
19303
19204
  tags:
19304
19205
  - credentials
@@ -19311,7 +19212,7 @@ paths:
19311
19212
  schema:
19312
19213
  $ref: '#/components/schemas/PaginatedAssertionsResponse'
19313
19214
  description: ''
19314
- /api/credentials/orgs/{platform_key}/users/{username}/assertions-over-time/:
19215
+ /api/credentials/orgs/{platform_key}/users/{user_id}/assertions-over-time/:
19315
19216
  get:
19316
19217
  operationId: credentials_orgs_users_assertions_over_time_retrieve
19317
19218
  description: Get all credentials of a given tenant
@@ -19358,9 +19259,9 @@ paths:
19358
19259
  minLength: 1
19359
19260
  description: start date. ISO 8601
19360
19261
  - in: path
19361
- name: username
19262
+ name: user_id
19362
19263
  schema:
19363
- type: string
19264
+ type: integer
19364
19265
  required: true
19365
19266
  tags:
19366
19267
  - credentials
@@ -19373,39 +19274,9 @@ paths:
19373
19274
  schema:
19374
19275
  $ref: '#/components/schemas/OvertimeWithChangeInfo'
19375
19276
  description: ''
19376
- /api/credentials/orgs/{platform_key}/users/{username}/assertions/{entity_id}:
19277
+ /api/credentials/orgs/{platform_key}/users/{user_id}/assertions/{entity_id}:
19377
19278
  get:
19378
19279
  operationId: credentials_orgs_users_assertions_retrieve_2
19379
- description: |-
19380
- Endpoint to retrieve and update a specific credential assertion.
19381
-
19382
- This endpoint allows retrieving details of a specific credential assertion
19383
- and updating its status (e.g., revoking it).
19384
-
19385
- Path Parameters:
19386
- org (str): The organization/tenant identifier
19387
- user_id (str): The user ID making the request
19388
- entity_id (str): The assertion entity ID
19389
-
19390
- Methods:
19391
- GET: Retrieve assertion details
19392
- PUT: Update assertion status (e.g., revoke)
19393
-
19394
- PUT Request Body:
19395
- A JSON object containing:
19396
- - revoked (bool): Set to true to revoke the assertion
19397
- - revocationReason (str): Reason for revocation (required when revoking)
19398
-
19399
- Returns:
19400
- GET: A JSON response containing the assertion details using the AssertionSerializer format
19401
- PUT: A JSON response containing the updated assertion using the AssertionSerializer format
19402
-
19403
- Error Responses:
19404
- 400 Bad Request: If the request data is invalid
19405
- 401 Unauthorized: If the user is not authenticated
19406
- 403 Forbidden: If the user does not have permission to access this resource
19407
- 404 Not Found: If the assertion doesn't exist
19408
- 500 Internal Server Error: If an unexpected error occurs
19409
19280
  parameters:
19410
19281
  - in: path
19411
19282
  name: entity_id
@@ -19418,9 +19289,9 @@ paths:
19418
19289
  type: string
19419
19290
  required: true
19420
19291
  - in: path
19421
- name: username
19292
+ name: user_id
19422
19293
  schema:
19423
- type: string
19294
+ type: integer
19424
19295
  required: true
19425
19296
  tags:
19426
19297
  - credentials
@@ -19435,36 +19306,6 @@ paths:
19435
19306
  description: ''
19436
19307
  put:
19437
19308
  operationId: credentials_orgs_users_assertions_update
19438
- description: |-
19439
- Endpoint to retrieve and update a specific credential assertion.
19440
-
19441
- This endpoint allows retrieving details of a specific credential assertion
19442
- and updating its status (e.g., revoking it).
19443
-
19444
- Path Parameters:
19445
- org (str): The organization/tenant identifier
19446
- user_id (str): The user ID making the request
19447
- entity_id (str): The assertion entity ID
19448
-
19449
- Methods:
19450
- GET: Retrieve assertion details
19451
- PUT: Update assertion status (e.g., revoke)
19452
-
19453
- PUT Request Body:
19454
- A JSON object containing:
19455
- - revoked (bool): Set to true to revoke the assertion
19456
- - revocationReason (str): Reason for revocation (required when revoking)
19457
-
19458
- Returns:
19459
- GET: A JSON response containing the assertion details using the AssertionSerializer format
19460
- PUT: A JSON response containing the updated assertion using the AssertionSerializer format
19461
-
19462
- Error Responses:
19463
- 400 Bad Request: If the request data is invalid
19464
- 401 Unauthorized: If the user is not authenticated
19465
- 403 Forbidden: If the user does not have permission to access this resource
19466
- 404 Not Found: If the assertion doesn't exist
19467
- 500 Internal Server Error: If an unexpected error occurs
19468
19309
  parameters:
19469
19310
  - in: path
19470
19311
  name: entity_id
@@ -19477,9 +19318,9 @@ paths:
19477
19318
  type: string
19478
19319
  required: true
19479
19320
  - in: path
19480
- name: username
19321
+ name: user_id
19481
19322
  schema:
19482
- type: string
19323
+ type: integer
19483
19324
  required: true
19484
19325
  tags:
19485
19326
  - credentials
@@ -19510,7 +19351,7 @@ paths:
19510
19351
  schema:
19511
19352
  $ref: '#/components/schemas/Assertion'
19512
19353
  description: ''
19513
- /api/credentials/orgs/{platform_key}/users/{username}/assignments/{assignment_id}:
19354
+ /api/credentials/orgs/{platform_key}/users/{user_id}/assignments/{assignment_id}:
19514
19355
  delete:
19515
19356
  operationId: credentials_orgs_users_assignments_destroy
19516
19357
  description: |-
@@ -19528,9 +19369,9 @@ paths:
19528
19369
  type: string
19529
19370
  required: true
19530
19371
  - in: path
19531
- name: username
19372
+ name: user_id
19532
19373
  schema:
19533
- type: string
19374
+ type: integer
19534
19375
  required: true
19535
19376
  tags:
19536
19377
  - credentials
@@ -19539,7 +19380,7 @@ paths:
19539
19380
  responses:
19540
19381
  '204':
19541
19382
  description: No response body
19542
- /api/credentials/orgs/{platform_key}/users/{username}/assignments/groups/:
19383
+ /api/credentials/orgs/{platform_key}/users/{user_id}/assignments/groups/:
19543
19384
  get:
19544
19385
  operationId: credentials_orgs_users_assignments_groups_retrieve
19545
19386
  description: Get group assignments with department-aware filtering
@@ -19550,9 +19391,9 @@ paths:
19550
19391
  type: string
19551
19392
  required: true
19552
19393
  - in: path
19553
- name: username
19394
+ name: user_id
19554
19395
  schema:
19555
- type: string
19396
+ type: integer
19556
19397
  required: true
19557
19398
  tags:
19558
19399
  - credentials
@@ -19571,9 +19412,9 @@ paths:
19571
19412
  type: string
19572
19413
  required: true
19573
19414
  - in: path
19574
- name: username
19415
+ name: user_id
19575
19416
  schema:
19576
- type: string
19417
+ type: integer
19577
19418
  required: true
19578
19419
  tags:
19579
19420
  - credentials
@@ -19582,7 +19423,7 @@ paths:
19582
19423
  responses:
19583
19424
  '200':
19584
19425
  description: No response body
19585
- /api/credentials/orgs/{platform_key}/users/{username}/assignments/users/:
19426
+ /api/credentials/orgs/{platform_key}/users/{user_id}/assignments/users/:
19586
19427
  get:
19587
19428
  operationId: credentials_orgs_users_assignments_users_retrieve
19588
19429
  description: |-
@@ -19597,9 +19438,9 @@ paths:
19597
19438
  type: string
19598
19439
  required: true
19599
19440
  - in: path
19600
- name: username
19441
+ name: user_id
19601
19442
  schema:
19602
- type: string
19443
+ type: integer
19603
19444
  required: true
19604
19445
  tags:
19605
19446
  - credentials
@@ -19618,9 +19459,9 @@ paths:
19618
19459
  type: string
19619
19460
  required: true
19620
19461
  - in: path
19621
- name: username
19462
+ name: user_id
19622
19463
  schema:
19623
- type: string
19464
+ type: integer
19624
19465
  required: true
19625
19466
  tags:
19626
19467
  - credentials
@@ -19629,7 +19470,7 @@ paths:
19629
19470
  responses:
19630
19471
  '200':
19631
19472
  description: No response body
19632
- /api/credentials/orgs/{platform_key}/users/{username}/course-assertions-over-time/:
19473
+ /api/credentials/orgs/{platform_key}/users/{user_id}/course-assertions-over-time/:
19633
19474
  get:
19634
19475
  operationId: credentials_orgs_users_course_assertions_over_time_retrieve
19635
19476
  description: Get all credentials of a given tenant
@@ -19676,9 +19517,9 @@ paths:
19676
19517
  minLength: 1
19677
19518
  description: start date. ISO 8601
19678
19519
  - in: path
19679
- name: username
19520
+ name: user_id
19680
19521
  schema:
19681
- type: string
19522
+ type: integer
19682
19523
  required: true
19683
19524
  tags:
19684
19525
  - credentials
@@ -19691,31 +19532,9 @@ paths:
19691
19532
  schema:
19692
19533
  $ref: '#/components/schemas/OverTime'
19693
19534
  description: ''
19694
- /api/credentials/orgs/{platform_key}/users/{username}/course-credentials/:
19535
+ /api/credentials/orgs/{platform_key}/users/{user_id}/course-credentials/:
19695
19536
  get:
19696
19537
  operationId: credentials_orgs_users_course_credentials_list
19697
- description: |-
19698
- Endpoint to retrieve the credentials of a given tenant grouped by course.
19699
-
19700
- This endpoint provides access to credential data grouped by course for a specific
19701
- organization/tenant, with support for pagination and filtering.
19702
-
19703
- Path Parameters:
19704
- org (str): The organization/tenant identifier
19705
-
19706
- Query Parameters:
19707
- limit (int, optional): Number of results per page (default: 10)
19708
- offset (int, optional): Starting position for pagination
19709
- search (str, optional): Search term e.g course_id
19710
-
19711
- Returns:
19712
- A paginated response using the CourseCredentialSerializer format.
19713
-
19714
- Error Responses:
19715
- 401 Unauthorized: If the user is not authenticated
19716
- 403 Forbidden: If the user does not have permission to access this data
19717
- 404 Not Found: If the organization doesn't exist
19718
- 500 Internal Server Error: If an unexpected error occurs
19719
19538
  parameters:
19720
19539
  - name: page
19721
19540
  required: false
@@ -19735,9 +19554,9 @@ paths:
19735
19554
  type: string
19736
19555
  required: true
19737
19556
  - in: path
19738
- name: username
19557
+ name: user_id
19739
19558
  schema:
19740
- type: string
19559
+ type: integer
19741
19560
  required: true
19742
19561
  tags:
19743
19562
  - credentials
@@ -19746,7 +19565,7 @@ paths:
19746
19565
  responses:
19747
19566
  '200':
19748
19567
  description: No response body
19749
- /api/credentials/orgs/{platform_key}/users/{username}/credentials-over-time/:
19568
+ /api/credentials/orgs/{platform_key}/users/{user_id}/credentials-over-time/:
19750
19569
  get:
19751
19570
  operationId: credentials_orgs_users_credentials_over_time_retrieve
19752
19571
  description: Get all credentials of a given tenant
@@ -19793,9 +19612,9 @@ paths:
19793
19612
  minLength: 1
19794
19613
  description: start date. ISO 8601
19795
19614
  - in: path
19796
- name: username
19615
+ name: user_id
19797
19616
  schema:
19798
- type: string
19617
+ type: integer
19799
19618
  required: true
19800
19619
  tags:
19801
19620
  - credentials
@@ -19808,7 +19627,7 @@ paths:
19808
19627
  schema:
19809
19628
  $ref: '#/components/schemas/OverTime'
19810
19629
  description: ''
19811
- /api/credentials/orgs/{platform_key}/users/{username}/external-mapping/:
19630
+ /api/credentials/orgs/{platform_key}/users/{user_id}/external-mapping/:
19812
19631
  get:
19813
19632
  operationId: credentials_orgs_users_external_mapping_retrieve
19814
19633
  description: |-
@@ -19828,9 +19647,9 @@ paths:
19828
19647
  type: string
19829
19648
  required: true
19830
19649
  - in: path
19831
- name: username
19650
+ name: user_id
19832
19651
  schema:
19833
- type: string
19652
+ type: integer
19834
19653
  required: true
19835
19654
  tags:
19836
19655
  - credentials
@@ -19869,9 +19688,9 @@ paths:
19869
19688
  type: string
19870
19689
  required: true
19871
19690
  - in: path
19872
- name: username
19691
+ name: user_id
19873
19692
  schema:
19874
- type: string
19693
+ type: integer
19875
19694
  required: true
19876
19695
  tags:
19877
19696
  - credentials
@@ -19922,9 +19741,9 @@ paths:
19922
19741
  type: string
19923
19742
  required: true
19924
19743
  - in: path
19925
- name: username
19744
+ name: user_id
19926
19745
  schema:
19927
- type: string
19746
+ type: integer
19928
19747
  required: true
19929
19748
  tags:
19930
19749
  - credentials
@@ -19933,63 +19752,1572 @@ paths:
19933
19752
  responses:
19934
19753
  '204':
19935
19754
  description: No response body
19936
- /api/credentials/orgs/{platform_key}/users/{username}/images/:
19755
+ /api/credentials/orgs/{platform_key}/users/{user_id}/images/:
19937
19756
  get:
19938
19757
  operationId: credentials_orgs_users_images_retrieve
19939
- description: |-
19940
- API View for managing uploaded images for credentials.
19941
-
19942
- This endpoint allows uploading new images and retrieving existing images
19943
- for use with credentials (icons, backgrounds, thumbnails, etc.).
19758
+ parameters:
19759
+ - in: path
19760
+ name: platform_key
19761
+ schema:
19762
+ type: string
19763
+ required: true
19764
+ - in: path
19765
+ name: user_id
19766
+ schema:
19767
+ type: integer
19768
+ required: true
19769
+ tags:
19770
+ - credentials
19771
+ security:
19772
+ - PlatformApiKeyAuthentication: []
19773
+ responses:
19774
+ '200':
19775
+ content:
19776
+ application/json:
19777
+ schema:
19778
+ $ref: '#/components/schemas/UploadedImage'
19779
+ description: ''
19780
+ post:
19781
+ operationId: credentials_orgs_users_images_create
19782
+ parameters:
19783
+ - in: path
19784
+ name: platform_key
19785
+ schema:
19786
+ type: string
19787
+ required: true
19788
+ - in: path
19789
+ name: user_id
19790
+ schema:
19791
+ type: integer
19792
+ required: true
19793
+ tags:
19794
+ - credentials
19795
+ requestBody:
19796
+ content:
19797
+ application/json:
19798
+ schema:
19799
+ $ref: '#/components/schemas/UploadedImage'
19800
+ application/scim+json:
19801
+ schema:
19802
+ $ref: '#/components/schemas/UploadedImage'
19803
+ application/x-www-form-urlencoded:
19804
+ schema:
19805
+ $ref: '#/components/schemas/UploadedImage'
19806
+ multipart/form-data:
19807
+ schema:
19808
+ $ref: '#/components/schemas/UploadedImage'
19809
+ '*/*':
19810
+ schema:
19811
+ $ref: '#/components/schemas/UploadedImage'
19812
+ security:
19813
+ - PlatformApiKeyAuthentication: []
19814
+ responses:
19815
+ '200':
19816
+ content:
19817
+ application/json:
19818
+ schema:
19819
+ $ref: '#/components/schemas/UploadedImage'
19820
+ description: ''
19821
+ /api/credentials/orgs/{platform_key}/users/{user_id}/issuers/:
19822
+ get:
19823
+ operationId: credentials_orgs_users_issuers_retrieve
19824
+ description: A GET View that validates QueryParams and returns results to a
19825
+ serializer
19826
+ parameters:
19827
+ - in: path
19828
+ name: platform_key
19829
+ schema:
19830
+ type: string
19831
+ required: true
19832
+ - in: query
19833
+ name: q
19834
+ schema:
19835
+ type: string
19836
+ minLength: 1
19837
+ required: true
19838
+ - in: path
19839
+ name: user_id
19840
+ schema:
19841
+ type: integer
19842
+ required: true
19843
+ tags:
19844
+ - credentials
19845
+ security:
19846
+ - PlatformApiKeyAuthentication: []
19847
+ responses:
19848
+ '200':
19849
+ content:
19850
+ application/json:
19851
+ schema:
19852
+ $ref: '#/components/schemas/Issuer'
19853
+ description: ''
19854
+ post:
19855
+ operationId: credentials_orgs_users_issuers_create
19856
+ description: A GET View that validates QueryParams and returns results to a
19857
+ serializer
19858
+ parameters:
19859
+ - in: path
19860
+ name: platform_key
19861
+ schema:
19862
+ type: string
19863
+ required: true
19864
+ - in: query
19865
+ name: q
19866
+ schema:
19867
+ type: string
19868
+ minLength: 1
19869
+ required: true
19870
+ - in: path
19871
+ name: user_id
19872
+ schema:
19873
+ type: integer
19874
+ required: true
19875
+ tags:
19876
+ - credentials
19877
+ requestBody:
19878
+ content:
19879
+ application/json:
19880
+ schema:
19881
+ $ref: '#/components/schemas/Issuer'
19882
+ application/scim+json:
19883
+ schema:
19884
+ $ref: '#/components/schemas/Issuer'
19885
+ application/x-www-form-urlencoded:
19886
+ schema:
19887
+ $ref: '#/components/schemas/Issuer'
19888
+ multipart/form-data:
19889
+ schema:
19890
+ $ref: '#/components/schemas/Issuer'
19891
+ '*/*':
19892
+ schema:
19893
+ $ref: '#/components/schemas/Issuer'
19894
+ required: true
19895
+ security:
19896
+ - PlatformApiKeyAuthentication: []
19897
+ responses:
19898
+ '200':
19899
+ content:
19900
+ application/json:
19901
+ schema:
19902
+ $ref: '#/components/schemas/Issuer'
19903
+ description: ''
19904
+ /api/credentials/orgs/{platform_key}/users/{user_id}/issuers/{entity_id}:
19905
+ get:
19906
+ operationId: credentials_orgs_users_issuers_retrieve_2
19907
+ parameters:
19908
+ - in: path
19909
+ name: entity_id
19910
+ schema:
19911
+ type: string
19912
+ required: true
19913
+ - in: path
19914
+ name: platform_key
19915
+ schema:
19916
+ type: string
19917
+ required: true
19918
+ - in: path
19919
+ name: user_id
19920
+ schema:
19921
+ type: integer
19922
+ required: true
19923
+ tags:
19924
+ - credentials
19925
+ security:
19926
+ - PlatformApiKeyAuthentication: []
19927
+ responses:
19928
+ '200':
19929
+ content:
19930
+ application/json:
19931
+ schema:
19932
+ $ref: '#/components/schemas/Issuer'
19933
+ description: ''
19934
+ put:
19935
+ operationId: credentials_orgs_users_issuers_update
19936
+ parameters:
19937
+ - in: path
19938
+ name: entity_id
19939
+ schema:
19940
+ type: string
19941
+ required: true
19942
+ - in: path
19943
+ name: platform_key
19944
+ schema:
19945
+ type: string
19946
+ required: true
19947
+ - in: path
19948
+ name: user_id
19949
+ schema:
19950
+ type: integer
19951
+ required: true
19952
+ tags:
19953
+ - credentials
19954
+ requestBody:
19955
+ content:
19956
+ application/json:
19957
+ schema:
19958
+ $ref: '#/components/schemas/Issuer'
19959
+ application/scim+json:
19960
+ schema:
19961
+ $ref: '#/components/schemas/Issuer'
19962
+ application/x-www-form-urlencoded:
19963
+ schema:
19964
+ $ref: '#/components/schemas/Issuer'
19965
+ multipart/form-data:
19966
+ schema:
19967
+ $ref: '#/components/schemas/Issuer'
19968
+ '*/*':
19969
+ schema:
19970
+ $ref: '#/components/schemas/Issuer'
19971
+ required: true
19972
+ security:
19973
+ - PlatformApiKeyAuthentication: []
19974
+ responses:
19975
+ '200':
19976
+ content:
19977
+ application/json:
19978
+ schema:
19979
+ $ref: '#/components/schemas/Issuer'
19980
+ description: ''
19981
+ delete:
19982
+ operationId: credentials_orgs_users_issuers_destroy
19983
+ parameters:
19984
+ - in: path
19985
+ name: entity_id
19986
+ schema:
19987
+ type: string
19988
+ required: true
19989
+ - in: path
19990
+ name: platform_key
19991
+ schema:
19992
+ type: string
19993
+ required: true
19994
+ - in: path
19995
+ name: user_id
19996
+ schema:
19997
+ type: integer
19998
+ required: true
19999
+ tags:
20000
+ - credentials
20001
+ security:
20002
+ - PlatformApiKeyAuthentication: []
20003
+ responses:
20004
+ '204':
20005
+ description: No response body
20006
+ /api/credentials/orgs/{platform_key}/users/{user_id}/issuers/authority/:
20007
+ post:
20008
+ operationId: credentials_orgs_users_issuers_authority_create
20009
+ parameters:
20010
+ - in: path
20011
+ name: platform_key
20012
+ schema:
20013
+ type: string
20014
+ required: true
20015
+ - in: path
20016
+ name: user_id
20017
+ schema:
20018
+ type: integer
20019
+ required: true
20020
+ tags:
20021
+ - credentials
20022
+ requestBody:
20023
+ content:
20024
+ application/json:
20025
+ schema:
20026
+ $ref: '#/components/schemas/IssuerAuthority'
20027
+ application/scim+json:
20028
+ schema:
20029
+ $ref: '#/components/schemas/IssuerAuthority'
20030
+ application/x-www-form-urlencoded:
20031
+ schema:
20032
+ $ref: '#/components/schemas/IssuerAuthority'
20033
+ multipart/form-data:
20034
+ schema:
20035
+ $ref: '#/components/schemas/IssuerAuthority'
20036
+ '*/*':
20037
+ schema:
20038
+ $ref: '#/components/schemas/IssuerAuthority'
20039
+ required: true
20040
+ security:
20041
+ - PlatformApiKeyAuthentication: []
20042
+ responses:
20043
+ '200':
20044
+ content:
20045
+ application/json:
20046
+ schema:
20047
+ $ref: '#/components/schemas/IssuerAuthority'
20048
+ description: ''
20049
+ /api/credentials/orgs/{platform_key}/users/{user_id}/provider-config/:
20050
+ get:
20051
+ operationId: credentials_orgs_users_provider_config_retrieve
20052
+ description: |-
20053
+ Retrieve provider configurations for the platform.
20054
+
20055
+ Query Parameters:
20056
+ provider_name (str, optional): Filter to a specific provider
20057
+ page (int, optional): Page number
20058
+ page_size (int, optional): Items per page
20059
+
20060
+ Returns all configurations for the platform if the user is an admin.
20061
+ parameters:
20062
+ - in: path
20063
+ name: platform_key
20064
+ schema:
20065
+ type: string
20066
+ required: true
20067
+ - in: path
20068
+ name: user_id
20069
+ schema:
20070
+ type: integer
20071
+ required: true
20072
+ tags:
20073
+ - credentials
20074
+ security:
20075
+ - PlatformApiKeyAuthentication: []
20076
+ responses:
20077
+ '200':
20078
+ content:
20079
+ application/json:
20080
+ schema:
20081
+ $ref: '#/components/schemas/CredentialProviderConfig'
20082
+ description: ''
20083
+ post:
20084
+ operationId: credentials_orgs_users_provider_config_create
20085
+ description: |-
20086
+ Create or update a provider configuration.
20087
+
20088
+ If a configuration doesn't exist for the platform and provider, it will be created.
20089
+ If it exists, it will be updated.
20090
+
20091
+ Request Body:
20092
+ {
20093
+ "provider_name": "accredible", // Required
20094
+ "config": {...}, // Optional
20095
+ "enabled": true // Optional
20096
+ }
20097
+
20098
+ Returns:
20099
+ - 201 Created: When creating a new configuration
20100
+ - 200 OK: When updating an existing configuration
20101
+ parameters:
20102
+ - in: path
20103
+ name: platform_key
20104
+ schema:
20105
+ type: string
20106
+ required: true
20107
+ - in: path
20108
+ name: user_id
20109
+ schema:
20110
+ type: integer
20111
+ required: true
20112
+ tags:
20113
+ - credentials
20114
+ requestBody:
20115
+ content:
20116
+ application/json:
20117
+ schema:
20118
+ $ref: '#/components/schemas/CredentialProviderConfig'
20119
+ application/scim+json:
20120
+ schema:
20121
+ $ref: '#/components/schemas/CredentialProviderConfig'
20122
+ application/x-www-form-urlencoded:
20123
+ schema:
20124
+ $ref: '#/components/schemas/CredentialProviderConfig'
20125
+ multipart/form-data:
20126
+ schema:
20127
+ $ref: '#/components/schemas/CredentialProviderConfig'
20128
+ '*/*':
20129
+ schema:
20130
+ $ref: '#/components/schemas/CredentialProviderConfig'
20131
+ required: true
20132
+ security:
20133
+ - PlatformApiKeyAuthentication: []
20134
+ responses:
20135
+ '200':
20136
+ content:
20137
+ application/json:
20138
+ schema:
20139
+ $ref: '#/components/schemas/CredentialProviderConfig'
20140
+ description: ''
20141
+ delete:
20142
+ operationId: credentials_orgs_users_provider_config_destroy
20143
+ description: |-
20144
+ Deactivate a provider configuration (sets enabled=False).
20145
+
20146
+ Request Body:
20147
+ {
20148
+ "provider_name": "accredible" // Required
20149
+ }
20150
+ parameters:
20151
+ - in: path
20152
+ name: platform_key
20153
+ schema:
20154
+ type: string
20155
+ required: true
20156
+ - in: path
20157
+ name: user_id
20158
+ schema:
20159
+ type: integer
20160
+ required: true
20161
+ tags:
20162
+ - credentials
20163
+ security:
20164
+ - PlatformApiKeyAuthentication: []
20165
+ responses:
20166
+ '204':
20167
+ description: No response body
20168
+ /api/credentials/orgs/{platform_key}/users/{username}/:
20169
+ get:
20170
+ operationId: credentials_orgs_users_retrieve_3
20171
+ description: |-
20172
+ Get all credentials for a platform with search and pagination support.
20173
+
20174
+ Query Parameters:
20175
+ - platform_org: Platform org ID (takes precedence over URL org)
20176
+ - page: Page number (default: 1)
20177
+ - page_size: Items per page (default: 10, max: 100)
20178
+ - search: Search term to filter credentials
20179
+ - course: Course ID to filter credentials
20180
+ - program: Program ID to filter credentials
20181
+ parameters:
20182
+ - in: path
20183
+ name: platform_key
20184
+ schema:
20185
+ type: string
20186
+ required: true
20187
+ - in: path
20188
+ name: username
20189
+ schema:
20190
+ type: string
20191
+ required: true
20192
+ tags:
20193
+ - credentials
20194
+ security:
20195
+ - PlatformApiKeyAuthentication: []
20196
+ responses:
20197
+ '200':
20198
+ content:
20199
+ application/json:
20200
+ schema:
20201
+ $ref: '#/components/schemas/Credential'
20202
+ description: ''
20203
+ post:
20204
+ operationId: credentials_orgs_users_create_2
20205
+ description: |-
20206
+ API View for managing credentials across a platform.
20207
+
20208
+ This endpoint allows creating and retrieving credentials for a specific organization/tenant,
20209
+ with support for filtering, searching, and pagination.
20210
+
20211
+ Path Parameters:
20212
+ org (str): The organization/tenant identifier
20213
+ user_id (str): The user ID making the request
20214
+
20215
+ Query Parameters:
20216
+ # Platform identification
20217
+ platform_org (str, optional): Alternative platform identifier (takes precedence over URL org)
20218
+
20219
+ # Pagination
20220
+ page (int, optional): Page number (default: 1)
20221
+ page_size (int, optional): Items per page (default: 10, max: 100)
20222
+
20223
+ # Filtering and search
20224
+ search (str, optional): Search term to filter credentials by name or description
20225
+ course (str, optional): Course ID to filter credentials associated with a specific course
20226
+ program (str, optional): Program ID to filter credentials associated with a specific program
20227
+
20228
+ Methods:
20229
+ GET: Retrieve credentials with filtering and pagination
20230
+ POST: Create a new credential
20231
+
20232
+ POST Request Body:
20233
+ A JSON object containing credential details:
20234
+ - name (str): Credential name
20235
+ - description (str, optional): Credential description
20236
+ - issuer (str): Issuer entity ID
20237
+ - credential_type (str, optional): Type of credential
20238
+ - html_template (str, optional): HTML template for credential rendering
20239
+ - css_template (str, optional): CSS template for credential styling
20240
+ - icon_image (str, optional): URL to credential icon
20241
+ - background_image (str, optional): URL to credential background
20242
+ - thumbnail_image (str, optional): URL to credential thumbnail
20243
+ - criteria_url (str, optional): URL to credential criteria
20244
+ - criteria_text (str, optional): Text description of credential criteria
20245
+ - issuing_signal (str, optional): Signal that triggers credential issuance
20246
+
20247
+ Returns:
20248
+ GET: A JSON response containing:
20249
+ {
20250
+ "status": {"success": true, "description": "Ok"},
20251
+ "result": {
20252
+ "next": "URL to next page",
20253
+ "previous": "URL to previous page",
20254
+ "count": 42,
20255
+ "data": [
20256
+ {credential object},
20257
+ {credential object},
20258
+ ...
20259
+ ],
20260
+ "num_pages": 5,
20261
+ "page_number": 1,
20262
+ "max_page_size": 100
20263
+ }
20264
+ }
20265
+
20266
+ POST: A JSON response containing:
20267
+ {
20268
+ "status": {"success": true, "description": "Created"},
20269
+ "result": {credential object}
20270
+ }
20271
+
20272
+ Error Responses:
20273
+ 400 Bad Request: If the request data is invalid
20274
+ 401 Unauthorized: If the user is not authenticated
20275
+ 403 Forbidden: If the user does not have permission to access this resource
20276
+ 404 Not Found: If the platform doesn't exist
20277
+ 500 Internal Server Error: If an unexpected error occurs
20278
+
20279
+ Access Control:
20280
+ - Requires CredentialAssignmentPermission
20281
+ - Only public credentials are returned by default
20282
+ parameters:
20283
+ - in: path
20284
+ name: platform_key
20285
+ schema:
20286
+ type: string
20287
+ required: true
20288
+ - in: path
20289
+ name: username
20290
+ schema:
20291
+ type: string
20292
+ required: true
20293
+ tags:
20294
+ - credentials
20295
+ requestBody:
20296
+ content:
20297
+ application/json:
20298
+ schema:
20299
+ $ref: '#/components/schemas/Credential'
20300
+ application/scim+json:
20301
+ schema:
20302
+ $ref: '#/components/schemas/Credential'
20303
+ application/x-www-form-urlencoded:
20304
+ schema:
20305
+ $ref: '#/components/schemas/Credential'
20306
+ multipart/form-data:
20307
+ schema:
20308
+ $ref: '#/components/schemas/Credential'
20309
+ '*/*':
20310
+ schema:
20311
+ $ref: '#/components/schemas/Credential'
20312
+ required: true
20313
+ security:
20314
+ - PlatformApiKeyAuthentication: []
20315
+ responses:
20316
+ '200':
20317
+ content:
20318
+ application/json:
20319
+ schema:
20320
+ $ref: '#/components/schemas/Credential'
20321
+ description: ''
20322
+ /api/credentials/orgs/{platform_key}/users/{username}/{entity_id}:
20323
+ get:
20324
+ operationId: credentials_orgs_users_retrieve_4
20325
+ description: |-
20326
+ API View for managing individual credentials.
20327
+
20328
+ This endpoint allows retrieving, updating, and deleting specific credentials
20329
+ identified by their entity_id.
20330
+
20331
+ Path Parameters:
20332
+ org (str): The organization/tenant identifier
20333
+ user_id (str): The user ID making the request
20334
+ entity_id (str): The credential entity ID
20335
+
20336
+ Methods:
20337
+ GET: Retrieve a specific credential
20338
+ PUT: Update a specific credential
20339
+ DELETE: Delete a specific credential
20340
+
20341
+ PUT Request Body:
20342
+ A JSON object containing credential details to update:
20343
+ - name (str, optional): Credential name
20344
+ - description (str, optional): Credential description
20345
+ - credential_type (str, optional): Type of credential
20346
+ - html_template (str, optional): HTML template for credential rendering
20347
+ - css_template (str, optional): CSS template for credential styling
20348
+ - icon_image (str, optional): URL to credential icon
20349
+ - background_image (str, optional): URL to credential background
20350
+ - thumbnail_image (str, optional): URL to credential thumbnail
20351
+ - criteria_url (str, optional): URL to credential criteria
20352
+ - criteria_text (str, optional): Text description of credential criteria
20353
+ - issuing_signal (str, optional): Signal that triggers credential issuance
20354
+
20355
+ Returns:
20356
+ GET: A JSON response containing:
20357
+ {
20358
+ "status": {"success": true, "description": "Ok"},
20359
+ "result": {credential object}
20360
+ }
20361
+
20362
+ PUT: A JSON response containing:
20363
+ {
20364
+ "status": {"success": true, "description": "Updated"},
20365
+ "result": {credential object}
20366
+ }
20367
+
20368
+ DELETE: A JSON response indicating success:
20369
+ {
20370
+ "status": {"success": true, "description": "Deleted"}
20371
+ }
20372
+
20373
+ Error Responses:
20374
+ 400 Bad Request: If the request data is invalid
20375
+ 401 Unauthorized: If the user is not authenticated
20376
+ 403 Forbidden: If the user does not have permission to access this resource
20377
+ 404 Not Found: If the credential doesn't exist
20378
+ 500 Internal Server Error: If an unexpected error occurs
20379
+
20380
+ Access Control:
20381
+ - Requires CredentialAssignmentPermission
20382
+ - Users can only manage credentials they have permission to access
20383
+ parameters:
20384
+ - in: path
20385
+ name: entity_id
20386
+ schema:
20387
+ type: string
20388
+ required: true
20389
+ - in: path
20390
+ name: platform_key
20391
+ schema:
20392
+ type: string
20393
+ required: true
20394
+ - in: path
20395
+ name: username
20396
+ schema:
20397
+ type: string
20398
+ required: true
20399
+ tags:
20400
+ - credentials
20401
+ security:
20402
+ - PlatformApiKeyAuthentication: []
20403
+ responses:
20404
+ '200':
20405
+ content:
20406
+ application/json:
20407
+ schema:
20408
+ $ref: '#/components/schemas/Credential'
20409
+ description: ''
20410
+ put:
20411
+ operationId: credentials_orgs_users_update_2
20412
+ description: |-
20413
+ API View for managing individual credentials.
20414
+
20415
+ This endpoint allows retrieving, updating, and deleting specific credentials
20416
+ identified by their entity_id.
20417
+
20418
+ Path Parameters:
20419
+ org (str): The organization/tenant identifier
20420
+ user_id (str): The user ID making the request
20421
+ entity_id (str): The credential entity ID
20422
+
20423
+ Methods:
20424
+ GET: Retrieve a specific credential
20425
+ PUT: Update a specific credential
20426
+ DELETE: Delete a specific credential
20427
+
20428
+ PUT Request Body:
20429
+ A JSON object containing credential details to update:
20430
+ - name (str, optional): Credential name
20431
+ - description (str, optional): Credential description
20432
+ - credential_type (str, optional): Type of credential
20433
+ - html_template (str, optional): HTML template for credential rendering
20434
+ - css_template (str, optional): CSS template for credential styling
20435
+ - icon_image (str, optional): URL to credential icon
20436
+ - background_image (str, optional): URL to credential background
20437
+ - thumbnail_image (str, optional): URL to credential thumbnail
20438
+ - criteria_url (str, optional): URL to credential criteria
20439
+ - criteria_text (str, optional): Text description of credential criteria
20440
+ - issuing_signal (str, optional): Signal that triggers credential issuance
20441
+
20442
+ Returns:
20443
+ GET: A JSON response containing:
20444
+ {
20445
+ "status": {"success": true, "description": "Ok"},
20446
+ "result": {credential object}
20447
+ }
20448
+
20449
+ PUT: A JSON response containing:
20450
+ {
20451
+ "status": {"success": true, "description": "Updated"},
20452
+ "result": {credential object}
20453
+ }
20454
+
20455
+ DELETE: A JSON response indicating success:
20456
+ {
20457
+ "status": {"success": true, "description": "Deleted"}
20458
+ }
20459
+
20460
+ Error Responses:
20461
+ 400 Bad Request: If the request data is invalid
20462
+ 401 Unauthorized: If the user is not authenticated
20463
+ 403 Forbidden: If the user does not have permission to access this resource
20464
+ 404 Not Found: If the credential doesn't exist
20465
+ 500 Internal Server Error: If an unexpected error occurs
20466
+
20467
+ Access Control:
20468
+ - Requires CredentialAssignmentPermission
20469
+ - Users can only manage credentials they have permission to access
20470
+ parameters:
20471
+ - in: path
20472
+ name: entity_id
20473
+ schema:
20474
+ type: string
20475
+ required: true
20476
+ - in: path
20477
+ name: platform_key
20478
+ schema:
20479
+ type: string
20480
+ required: true
20481
+ - in: path
20482
+ name: username
20483
+ schema:
20484
+ type: string
20485
+ required: true
20486
+ tags:
20487
+ - credentials
20488
+ requestBody:
20489
+ content:
20490
+ application/json:
20491
+ schema:
20492
+ $ref: '#/components/schemas/Credential'
20493
+ application/scim+json:
20494
+ schema:
20495
+ $ref: '#/components/schemas/Credential'
20496
+ application/x-www-form-urlencoded:
20497
+ schema:
20498
+ $ref: '#/components/schemas/Credential'
20499
+ multipart/form-data:
20500
+ schema:
20501
+ $ref: '#/components/schemas/Credential'
20502
+ '*/*':
20503
+ schema:
20504
+ $ref: '#/components/schemas/Credential'
20505
+ required: true
20506
+ security:
20507
+ - PlatformApiKeyAuthentication: []
20508
+ responses:
20509
+ '200':
20510
+ content:
20511
+ application/json:
20512
+ schema:
20513
+ $ref: '#/components/schemas/Credential'
20514
+ description: ''
20515
+ delete:
20516
+ operationId: credentials_orgs_users_destroy_2
20517
+ description: |-
20518
+ API View for managing individual credentials.
20519
+
20520
+ This endpoint allows retrieving, updating, and deleting specific credentials
20521
+ identified by their entity_id.
20522
+
20523
+ Path Parameters:
20524
+ org (str): The organization/tenant identifier
20525
+ user_id (str): The user ID making the request
20526
+ entity_id (str): The credential entity ID
20527
+
20528
+ Methods:
20529
+ GET: Retrieve a specific credential
20530
+ PUT: Update a specific credential
20531
+ DELETE: Delete a specific credential
20532
+
20533
+ PUT Request Body:
20534
+ A JSON object containing credential details to update:
20535
+ - name (str, optional): Credential name
20536
+ - description (str, optional): Credential description
20537
+ - credential_type (str, optional): Type of credential
20538
+ - html_template (str, optional): HTML template for credential rendering
20539
+ - css_template (str, optional): CSS template for credential styling
20540
+ - icon_image (str, optional): URL to credential icon
20541
+ - background_image (str, optional): URL to credential background
20542
+ - thumbnail_image (str, optional): URL to credential thumbnail
20543
+ - criteria_url (str, optional): URL to credential criteria
20544
+ - criteria_text (str, optional): Text description of credential criteria
20545
+ - issuing_signal (str, optional): Signal that triggers credential issuance
20546
+
20547
+ Returns:
20548
+ GET: A JSON response containing:
20549
+ {
20550
+ "status": {"success": true, "description": "Ok"},
20551
+ "result": {credential object}
20552
+ }
20553
+
20554
+ PUT: A JSON response containing:
20555
+ {
20556
+ "status": {"success": true, "description": "Updated"},
20557
+ "result": {credential object}
20558
+ }
20559
+
20560
+ DELETE: A JSON response indicating success:
20561
+ {
20562
+ "status": {"success": true, "description": "Deleted"}
20563
+ }
20564
+
20565
+ Error Responses:
20566
+ 400 Bad Request: If the request data is invalid
20567
+ 401 Unauthorized: If the user is not authenticated
20568
+ 403 Forbidden: If the user does not have permission to access this resource
20569
+ 404 Not Found: If the credential doesn't exist
20570
+ 500 Internal Server Error: If an unexpected error occurs
20571
+
20572
+ Access Control:
20573
+ - Requires CredentialAssignmentPermission
20574
+ - Users can only manage credentials they have permission to access
20575
+ parameters:
20576
+ - in: path
20577
+ name: entity_id
20578
+ schema:
20579
+ type: string
20580
+ required: true
20581
+ - in: path
20582
+ name: platform_key
20583
+ schema:
20584
+ type: string
20585
+ required: true
20586
+ - in: path
20587
+ name: username
20588
+ schema:
20589
+ type: string
20590
+ required: true
20591
+ tags:
20592
+ - credentials
20593
+ security:
20594
+ - PlatformApiKeyAuthentication: []
20595
+ responses:
20596
+ '204':
20597
+ description: No response body
20598
+ /api/credentials/orgs/{platform_key}/users/{username}/{entity_id}/assertions/:
20599
+ get:
20600
+ operationId: credentials_orgs_users_assertions_retrieve_6
20601
+ parameters:
20602
+ - in: path
20603
+ name: entity_id
20604
+ schema:
20605
+ type: string
20606
+ required: true
20607
+ - in: path
20608
+ name: platform_key
20609
+ schema:
20610
+ type: string
20611
+ required: true
20612
+ - in: path
20613
+ name: username
20614
+ schema:
20615
+ type: string
20616
+ required: true
20617
+ tags:
20618
+ - credentials
20619
+ security:
20620
+ - PlatformApiKeyAuthentication: []
20621
+ responses:
20622
+ '200':
20623
+ content:
20624
+ application/json:
20625
+ schema:
20626
+ $ref: '#/components/schemas/PaginatedAssertionsResponse'
20627
+ description: ''
20628
+ post:
20629
+ operationId: credentials_orgs_users_assertions_create_2
20630
+ parameters:
20631
+ - in: path
20632
+ name: entity_id
20633
+ schema:
20634
+ type: string
20635
+ required: true
20636
+ - in: path
20637
+ name: platform_key
20638
+ schema:
20639
+ type: string
20640
+ required: true
20641
+ - in: path
20642
+ name: username
20643
+ schema:
20644
+ type: string
20645
+ required: true
20646
+ tags:
20647
+ - credentials
20648
+ requestBody:
20649
+ content:
20650
+ application/json:
20651
+ schema:
20652
+ $ref: '#/components/schemas/Assertion'
20653
+ application/scim+json:
20654
+ schema:
20655
+ $ref: '#/components/schemas/Assertion'
20656
+ application/x-www-form-urlencoded:
20657
+ schema:
20658
+ $ref: '#/components/schemas/Assertion'
20659
+ multipart/form-data:
20660
+ schema:
20661
+ $ref: '#/components/schemas/Assertion'
20662
+ '*/*':
20663
+ schema:
20664
+ $ref: '#/components/schemas/Assertion'
20665
+ required: true
20666
+ security:
20667
+ - PlatformApiKeyAuthentication: []
20668
+ responses:
20669
+ '200':
20670
+ content:
20671
+ application/json:
20672
+ schema:
20673
+ $ref: '#/components/schemas/Assertion'
20674
+ description: ''
20675
+ /api/credentials/orgs/{platform_key}/users/{username}/{entity_id}/assertions/bulk/:
20676
+ post:
20677
+ operationId: credentials_orgs_users_assertions_bulk_create_2
20678
+ parameters:
20679
+ - in: path
20680
+ name: entity_id
20681
+ schema:
20682
+ type: string
20683
+ required: true
20684
+ - in: path
20685
+ name: platform_key
20686
+ schema:
20687
+ type: string
20688
+ required: true
20689
+ - in: path
20690
+ name: username
20691
+ schema:
20692
+ type: string
20693
+ required: true
20694
+ tags:
20695
+ - credentials
20696
+ requestBody:
20697
+ content:
20698
+ application/json:
20699
+ schema:
20700
+ $ref: '#/components/schemas/BulkCreateAssertion'
20701
+ application/scim+json:
20702
+ schema:
20703
+ $ref: '#/components/schemas/BulkCreateAssertion'
20704
+ application/x-www-form-urlencoded:
20705
+ schema:
20706
+ $ref: '#/components/schemas/BulkCreateAssertion'
20707
+ multipart/form-data:
20708
+ schema:
20709
+ $ref: '#/components/schemas/BulkCreateAssertion'
20710
+ '*/*':
20711
+ schema:
20712
+ $ref: '#/components/schemas/BulkCreateAssertion'
20713
+ required: true
20714
+ security:
20715
+ - PlatformApiKeyAuthentication: []
20716
+ responses:
20717
+ '200':
20718
+ content:
20719
+ application/json:
20720
+ schema:
20721
+ $ref: '#/components/schemas/BulkCreateAssertion'
20722
+ description: ''
20723
+ /api/credentials/orgs/{platform_key}/users/{username}/assertions/:
20724
+ get:
20725
+ operationId: credentials_orgs_users_assertions_retrieve_4
20726
+ description: A GET View that validates QueryParams and returns results to a
20727
+ serializer
20728
+ parameters:
20729
+ - in: query
20730
+ name: course
20731
+ schema:
20732
+ type: string
20733
+ minLength: 1
20734
+ - in: query
20735
+ name: exclude_main_tenant_assertions
20736
+ schema:
20737
+ type: boolean
20738
+ - in: query
20739
+ name: include_expired
20740
+ schema:
20741
+ type: boolean
20742
+ - in: query
20743
+ name: include_revoked
20744
+ schema:
20745
+ type: boolean
20746
+ - in: query
20747
+ name: page
20748
+ schema:
20749
+ type: integer
20750
+ minimum: 1
20751
+ - in: query
20752
+ name: page_size
20753
+ schema:
20754
+ type: integer
20755
+ maximum: 1000
20756
+ minimum: 1
20757
+ - in: path
20758
+ name: platform_key
20759
+ schema:
20760
+ type: string
20761
+ required: true
20762
+ - in: path
20763
+ name: username
20764
+ schema:
20765
+ type: string
20766
+ required: true
20767
+ tags:
20768
+ - credentials
20769
+ security:
20770
+ - PlatformApiKeyAuthentication: []
20771
+ responses:
20772
+ '200':
20773
+ content:
20774
+ application/json:
20775
+ schema:
20776
+ $ref: '#/components/schemas/PaginatedAssertionsResponse'
20777
+ description: ''
20778
+ /api/credentials/orgs/{platform_key}/users/{username}/assertions-over-time/:
20779
+ get:
20780
+ operationId: credentials_orgs_users_assertions_over_time_retrieve_2
20781
+ description: Get all credentials of a given tenant
20782
+ parameters:
20783
+ - in: query
20784
+ name: department_id
20785
+ schema:
20786
+ type: integer
20787
+ description: 'When `department_mode=1` is passed, it allows to filter data
20788
+ for only user content groups for the specified department '
20789
+ - in: query
20790
+ name: end_date
20791
+ schema:
20792
+ type: string
20793
+ minLength: 1
20794
+ description: end date. ISO 8601
20795
+ - in: query
20796
+ name: format
20797
+ schema:
20798
+ enum:
20799
+ - json
20800
+ type: string
20801
+ default: json
20802
+ minLength: 1
20803
+ description: |-
20804
+ Format
20805
+
20806
+ * `json` - json
20807
+ - in: query
20808
+ name: include_main_platform
20809
+ schema:
20810
+ type: boolean
20811
+ default: true
20812
+ description: Include main platform data
20813
+ - in: path
20814
+ name: platform_key
20815
+ schema:
20816
+ type: string
20817
+ required: true
20818
+ - in: query
20819
+ name: start_date
20820
+ schema:
20821
+ type: string
20822
+ minLength: 1
20823
+ description: start date. ISO 8601
20824
+ - in: path
20825
+ name: username
20826
+ schema:
20827
+ type: string
20828
+ required: true
20829
+ tags:
20830
+ - credentials
20831
+ security:
20832
+ - PlatformApiKeyAuthentication: []
20833
+ responses:
20834
+ '200':
20835
+ content:
20836
+ application/json:
20837
+ schema:
20838
+ $ref: '#/components/schemas/OvertimeWithChangeInfo'
20839
+ description: ''
20840
+ /api/credentials/orgs/{platform_key}/users/{username}/assertions/{entity_id}:
20841
+ get:
20842
+ operationId: credentials_orgs_users_assertions_retrieve_5
20843
+ parameters:
20844
+ - in: path
20845
+ name: entity_id
20846
+ schema:
20847
+ type: string
20848
+ required: true
20849
+ - in: path
20850
+ name: platform_key
20851
+ schema:
20852
+ type: string
20853
+ required: true
20854
+ - in: path
20855
+ name: username
20856
+ schema:
20857
+ type: string
20858
+ required: true
20859
+ tags:
20860
+ - credentials
20861
+ security:
20862
+ - PlatformApiKeyAuthentication: []
20863
+ responses:
20864
+ '200':
20865
+ content:
20866
+ application/json:
20867
+ schema:
20868
+ $ref: '#/components/schemas/Assertion'
20869
+ description: ''
20870
+ put:
20871
+ operationId: credentials_orgs_users_assertions_update_2
20872
+ parameters:
20873
+ - in: path
20874
+ name: entity_id
20875
+ schema:
20876
+ type: string
20877
+ required: true
20878
+ - in: path
20879
+ name: platform_key
20880
+ schema:
20881
+ type: string
20882
+ required: true
20883
+ - in: path
20884
+ name: username
20885
+ schema:
20886
+ type: string
20887
+ required: true
20888
+ tags:
20889
+ - credentials
20890
+ requestBody:
20891
+ content:
20892
+ application/json:
20893
+ schema:
20894
+ $ref: '#/components/schemas/Assertion'
20895
+ application/scim+json:
20896
+ schema:
20897
+ $ref: '#/components/schemas/Assertion'
20898
+ application/x-www-form-urlencoded:
20899
+ schema:
20900
+ $ref: '#/components/schemas/Assertion'
20901
+ multipart/form-data:
20902
+ schema:
20903
+ $ref: '#/components/schemas/Assertion'
20904
+ '*/*':
20905
+ schema:
20906
+ $ref: '#/components/schemas/Assertion'
20907
+ required: true
20908
+ security:
20909
+ - PlatformApiKeyAuthentication: []
20910
+ responses:
20911
+ '200':
20912
+ content:
20913
+ application/json:
20914
+ schema:
20915
+ $ref: '#/components/schemas/Assertion'
20916
+ description: ''
20917
+ /api/credentials/orgs/{platform_key}/users/{username}/assignments/{assignment_id}:
20918
+ delete:
20919
+ operationId: credentials_orgs_users_assignments_destroy_2
20920
+ description: |-
20921
+ Delete a credential assignment using its entity_id.
20922
+ Only platform admins and department admins can delete assignments.
20923
+ parameters:
20924
+ - in: path
20925
+ name: assignment_id
20926
+ schema:
20927
+ type: string
20928
+ required: true
20929
+ - in: path
20930
+ name: platform_key
20931
+ schema:
20932
+ type: string
20933
+ required: true
20934
+ - in: path
20935
+ name: username
20936
+ schema:
20937
+ type: string
20938
+ required: true
20939
+ tags:
20940
+ - credentials
20941
+ security:
20942
+ - PlatformApiKeyAuthentication: []
20943
+ responses:
20944
+ '204':
20945
+ description: No response body
20946
+ /api/credentials/orgs/{platform_key}/users/{username}/assignments/groups/:
20947
+ get:
20948
+ operationId: credentials_orgs_users_assignments_groups_retrieve_2
20949
+ description: Get group assignments with department-aware filtering
20950
+ parameters:
20951
+ - in: path
20952
+ name: platform_key
20953
+ schema:
20954
+ type: string
20955
+ required: true
20956
+ - in: path
20957
+ name: username
20958
+ schema:
20959
+ type: string
20960
+ required: true
20961
+ tags:
20962
+ - credentials
20963
+ security:
20964
+ - PlatformApiKeyAuthentication: []
20965
+ responses:
20966
+ '200':
20967
+ description: No response body
20968
+ post:
20969
+ operationId: credentials_orgs_users_assignments_groups_create_2
20970
+ description: Create group assignment with department access validation
20971
+ parameters:
20972
+ - in: path
20973
+ name: platform_key
20974
+ schema:
20975
+ type: string
20976
+ required: true
20977
+ - in: path
20978
+ name: username
20979
+ schema:
20980
+ type: string
20981
+ required: true
20982
+ tags:
20983
+ - credentials
20984
+ security:
20985
+ - PlatformApiKeyAuthentication: []
20986
+ responses:
20987
+ '200':
20988
+ description: No response body
20989
+ /api/credentials/orgs/{platform_key}/users/{username}/assignments/users/:
20990
+ get:
20991
+ operationId: credentials_orgs_users_assignments_users_retrieve_2
20992
+ description: |-
20993
+ Get assignments and their corresponding assertions based on user role:
20994
+ - Regular users: get only their own assignments
20995
+ - Platform admins: get assignments for all users in their platform
20996
+ - Department admins: get assignments for users in their department groups
20997
+ parameters:
20998
+ - in: path
20999
+ name: platform_key
21000
+ schema:
21001
+ type: string
21002
+ required: true
21003
+ - in: path
21004
+ name: username
21005
+ schema:
21006
+ type: string
21007
+ required: true
21008
+ tags:
21009
+ - credentials
21010
+ security:
21011
+ - PlatformApiKeyAuthentication: []
21012
+ responses:
21013
+ '200':
21014
+ description: No response body
21015
+ post:
21016
+ operationId: credentials_orgs_users_assignments_users_create_2
21017
+ description: Create assignments with department access validation
21018
+ parameters:
21019
+ - in: path
21020
+ name: platform_key
21021
+ schema:
21022
+ type: string
21023
+ required: true
21024
+ - in: path
21025
+ name: username
21026
+ schema:
21027
+ type: string
21028
+ required: true
21029
+ tags:
21030
+ - credentials
21031
+ security:
21032
+ - PlatformApiKeyAuthentication: []
21033
+ responses:
21034
+ '200':
21035
+ description: No response body
21036
+ /api/credentials/orgs/{platform_key}/users/{username}/course-assertions-over-time/:
21037
+ get:
21038
+ operationId: credentials_orgs_users_course_assertions_over_time_retrieve_2
21039
+ description: Get all credentials of a given tenant
21040
+ parameters:
21041
+ - in: query
21042
+ name: department_id
21043
+ schema:
21044
+ type: integer
21045
+ description: 'When `department_mode=1` is passed, it allows to filter data
21046
+ for only user content groups for the specified department '
21047
+ - in: query
21048
+ name: end_date
21049
+ schema:
21050
+ type: string
21051
+ minLength: 1
21052
+ description: end date. ISO 8601
21053
+ - in: query
21054
+ name: format
21055
+ schema:
21056
+ enum:
21057
+ - json
21058
+ type: string
21059
+ default: json
21060
+ minLength: 1
21061
+ description: |-
21062
+ Format
19944
21063
 
19945
- Path Parameters:
19946
- org (str): The organization/tenant identifier
19947
- user_id (str): The user ID making the request
21064
+ * `json` - json
21065
+ - in: query
21066
+ name: include_main_platform
21067
+ schema:
21068
+ type: boolean
21069
+ default: true
21070
+ description: Include main platform data
21071
+ - in: path
21072
+ name: platform_key
21073
+ schema:
21074
+ type: string
21075
+ required: true
21076
+ - in: query
21077
+ name: start_date
21078
+ schema:
21079
+ type: string
21080
+ minLength: 1
21081
+ description: start date. ISO 8601
21082
+ - in: path
21083
+ name: username
21084
+ schema:
21085
+ type: string
21086
+ required: true
21087
+ tags:
21088
+ - credentials
21089
+ security:
21090
+ - PlatformApiKeyAuthentication: []
21091
+ responses:
21092
+ '200':
21093
+ content:
21094
+ application/json:
21095
+ schema:
21096
+ $ref: '#/components/schemas/OverTime'
21097
+ description: ''
21098
+ /api/credentials/orgs/{platform_key}/users/{username}/course-credentials/:
21099
+ get:
21100
+ operationId: credentials_orgs_users_course_credentials_list_2
21101
+ parameters:
21102
+ - name: page
21103
+ required: false
21104
+ in: query
21105
+ description: A page number within the paginated result set.
21106
+ schema:
21107
+ type: integer
21108
+ - name: page_size
21109
+ required: false
21110
+ in: query
21111
+ description: Number of results to return per page.
21112
+ schema:
21113
+ type: integer
21114
+ - in: path
21115
+ name: platform_key
21116
+ schema:
21117
+ type: string
21118
+ required: true
21119
+ - in: path
21120
+ name: username
21121
+ schema:
21122
+ type: string
21123
+ required: true
21124
+ tags:
21125
+ - credentials
21126
+ security:
21127
+ - PlatformApiKeyAuthentication: []
21128
+ responses:
21129
+ '200':
21130
+ description: No response body
21131
+ /api/credentials/orgs/{platform_key}/users/{username}/credentials-over-time/:
21132
+ get:
21133
+ operationId: credentials_orgs_users_credentials_over_time_retrieve_2
21134
+ description: Get all credentials of a given tenant
21135
+ parameters:
21136
+ - in: query
21137
+ name: department_id
21138
+ schema:
21139
+ type: integer
21140
+ description: 'When `department_mode=1` is passed, it allows to filter data
21141
+ for only user content groups for the specified department '
21142
+ - in: query
21143
+ name: end_date
21144
+ schema:
21145
+ type: string
21146
+ minLength: 1
21147
+ description: end date. ISO 8601
21148
+ - in: query
21149
+ name: format
21150
+ schema:
21151
+ enum:
21152
+ - json
21153
+ type: string
21154
+ default: json
21155
+ minLength: 1
21156
+ description: |-
21157
+ Format
21158
+
21159
+ * `json` - json
21160
+ - in: query
21161
+ name: include_main_platform
21162
+ schema:
21163
+ type: boolean
21164
+ default: true
21165
+ description: Include main platform data
21166
+ - in: path
21167
+ name: platform_key
21168
+ schema:
21169
+ type: string
21170
+ required: true
21171
+ - in: query
21172
+ name: start_date
21173
+ schema:
21174
+ type: string
21175
+ minLength: 1
21176
+ description: start date. ISO 8601
21177
+ - in: path
21178
+ name: username
21179
+ schema:
21180
+ type: string
21181
+ required: true
21182
+ tags:
21183
+ - credentials
21184
+ security:
21185
+ - PlatformApiKeyAuthentication: []
21186
+ responses:
21187
+ '200':
21188
+ content:
21189
+ application/json:
21190
+ schema:
21191
+ $ref: '#/components/schemas/OverTime'
21192
+ description: ''
21193
+ /api/credentials/orgs/{platform_key}/users/{username}/external-mapping/:
21194
+ get:
21195
+ operationId: credentials_orgs_users_external_mapping_retrieve_2
21196
+ description: |-
21197
+ Retrieve external credential mappings for the platform.
19948
21198
 
19949
21199
  Query Parameters:
19950
- query (str, required for GET): Search term to filter images by name
21200
+ credential_id (str, optional): Filter by credential entity_id
21201
+ provider_name (str, optional): Filter by provider name
21202
+ page (int, optional): Page number
21203
+ page_size (int, optional): Items per page
19951
21204
 
19952
- Methods:
19953
- GET: Retrieve images matching a search query
19954
- POST: Upload a new image
21205
+ Returns all mappings for the platform if the user is an admin.
21206
+ parameters:
21207
+ - in: path
21208
+ name: platform_key
21209
+ schema:
21210
+ type: string
21211
+ required: true
21212
+ - in: path
21213
+ name: username
21214
+ schema:
21215
+ type: string
21216
+ required: true
21217
+ tags:
21218
+ - credentials
21219
+ security:
21220
+ - PlatformApiKeyAuthentication: []
21221
+ responses:
21222
+ '200':
21223
+ content:
21224
+ application/json:
21225
+ schema:
21226
+ $ref: '#/components/schemas/ExternalCredentialMapping'
21227
+ description: ''
21228
+ post:
21229
+ operationId: credentials_orgs_users_external_mapping_create_2
21230
+ description: |-
21231
+ Create or update an external credential mapping.
19955
21232
 
19956
- POST Request Body:
19957
- Multipart form data containing:
19958
- - image (file, required): The image file to upload
19959
- - name (str, optional): A descriptive name for the image
21233
+ If a mapping doesn't exist for the credential + platform + provider combination,
21234
+ it will be created. If it exists, it will be updated.
19960
21235
 
19961
- Returns:
19962
- GET: A JSON array of image objects:
19963
- [
19964
- {
19965
- "id": 123,
19966
- "name": "Logo",
19967
- "image": "https://example.com/media/uploaded_images/logo.png"
19968
- },
19969
- {
19970
- "id": 124,
19971
- "name": "Background",
19972
- "image": "https://example.com/media/uploaded_images/background.jpg"
19973
- },
19974
- ...
19975
- ]
21236
+ Request Body:
21237
+ {
21238
+ "credential_id": "credential-entity-id", // Required
21239
+ "provider_name": "accredible", // Required
21240
+ "external_template_id": "123456", // Optional
21241
+ "metadata": {} // Optional
21242
+ }
19976
21243
 
19977
- POST: A JSON object containing the uploaded image details:
19978
- {
19979
- "id": 125,
19980
- "name": "Certificate Icon",
19981
- "image": "https://example.com/media/uploaded_images/certificate-icon.png"
19982
- }
21244
+ Returns:
21245
+ - 201 Created: When creating a new mapping
21246
+ - 200 OK: When updating an existing mapping
21247
+ parameters:
21248
+ - in: path
21249
+ name: platform_key
21250
+ schema:
21251
+ type: string
21252
+ required: true
21253
+ - in: path
21254
+ name: username
21255
+ schema:
21256
+ type: string
21257
+ required: true
21258
+ tags:
21259
+ - credentials
21260
+ requestBody:
21261
+ content:
21262
+ application/json:
21263
+ schema:
21264
+ $ref: '#/components/schemas/ExternalCredentialMapping'
21265
+ application/scim+json:
21266
+ schema:
21267
+ $ref: '#/components/schemas/ExternalCredentialMapping'
21268
+ application/x-www-form-urlencoded:
21269
+ schema:
21270
+ $ref: '#/components/schemas/ExternalCredentialMapping'
21271
+ multipart/form-data:
21272
+ schema:
21273
+ $ref: '#/components/schemas/ExternalCredentialMapping'
21274
+ '*/*':
21275
+ schema:
21276
+ $ref: '#/components/schemas/ExternalCredentialMapping'
21277
+ required: true
21278
+ security:
21279
+ - PlatformApiKeyAuthentication: []
21280
+ responses:
21281
+ '200':
21282
+ content:
21283
+ application/json:
21284
+ schema:
21285
+ $ref: '#/components/schemas/ExternalCredentialMapping'
21286
+ description: ''
21287
+ delete:
21288
+ operationId: credentials_orgs_users_external_mapping_destroy_2
21289
+ description: |-
21290
+ Delete an external credential mapping.
19983
21291
 
19984
- Error Responses:
19985
- 400 Bad Request: If the request data is invalid or missing required parameters
19986
- 401 Unauthorized: If the user is not authenticated
19987
- 403 Forbidden: If the user does not have permission to access this resource
19988
- 500 Internal Server Error: If an unexpected error occurs
21292
+ Request Body:
21293
+ {
21294
+ "credential_id": "credential-entity-id", // Required
21295
+ "provider_name": "accredible" // Required
21296
+ }
19989
21297
 
19990
- Access Control:
19991
- - Requires IsAdminUserOrStudentDRFMixin
19992
- - Only authenticated users with appropriate permissions can upload and retrieve images
21298
+ Returns:
21299
+ A JSON response confirming deletion
21300
+ parameters:
21301
+ - in: path
21302
+ name: platform_key
21303
+ schema:
21304
+ type: string
21305
+ required: true
21306
+ - in: path
21307
+ name: username
21308
+ schema:
21309
+ type: string
21310
+ required: true
21311
+ tags:
21312
+ - credentials
21313
+ security:
21314
+ - PlatformApiKeyAuthentication: []
21315
+ responses:
21316
+ '204':
21317
+ description: No response body
21318
+ /api/credentials/orgs/{platform_key}/users/{username}/images/:
21319
+ get:
21320
+ operationId: credentials_orgs_users_images_retrieve_2
19993
21321
  parameters:
19994
21322
  - in: path
19995
21323
  name: platform_key
@@ -20013,61 +21341,7 @@ paths:
20013
21341
  $ref: '#/components/schemas/UploadedImage'
20014
21342
  description: ''
20015
21343
  post:
20016
- operationId: credentials_orgs_users_images_create
20017
- description: |-
20018
- API View for managing uploaded images for credentials.
20019
-
20020
- This endpoint allows uploading new images and retrieving existing images
20021
- for use with credentials (icons, backgrounds, thumbnails, etc.).
20022
-
20023
- Path Parameters:
20024
- org (str): The organization/tenant identifier
20025
- user_id (str): The user ID making the request
20026
-
20027
- Query Parameters:
20028
- query (str, required for GET): Search term to filter images by name
20029
-
20030
- Methods:
20031
- GET: Retrieve images matching a search query
20032
- POST: Upload a new image
20033
-
20034
- POST Request Body:
20035
- Multipart form data containing:
20036
- - image (file, required): The image file to upload
20037
- - name (str, optional): A descriptive name for the image
20038
-
20039
- Returns:
20040
- GET: A JSON array of image objects:
20041
- [
20042
- {
20043
- "id": 123,
20044
- "name": "Logo",
20045
- "image": "https://example.com/media/uploaded_images/logo.png"
20046
- },
20047
- {
20048
- "id": 124,
20049
- "name": "Background",
20050
- "image": "https://example.com/media/uploaded_images/background.jpg"
20051
- },
20052
- ...
20053
- ]
20054
-
20055
- POST: A JSON object containing the uploaded image details:
20056
- {
20057
- "id": 125,
20058
- "name": "Certificate Icon",
20059
- "image": "https://example.com/media/uploaded_images/certificate-icon.png"
20060
- }
20061
-
20062
- Error Responses:
20063
- 400 Bad Request: If the request data is invalid or missing required parameters
20064
- 401 Unauthorized: If the user is not authenticated
20065
- 403 Forbidden: If the user does not have permission to access this resource
20066
- 500 Internal Server Error: If an unexpected error occurs
20067
-
20068
- Access Control:
20069
- - Requires IsAdminUserOrStudentDRFMixin
20070
- - Only authenticated users with appropriate permissions can upload and retrieve images
21344
+ operationId: credentials_orgs_users_images_create_2
20071
21345
  parameters:
20072
21346
  - in: path
20073
21347
  name: platform_key
@@ -20109,69 +21383,9 @@ paths:
20109
21383
  description: ''
20110
21384
  /api/credentials/orgs/{platform_key}/users/{username}/issuers/:
20111
21385
  get:
20112
- operationId: credentials_orgs_users_issuers_retrieve
20113
- description: |-
20114
- API View for managing credential issuers.
20115
-
20116
- This endpoint allows creating and retrieving issuers for a specific organization/tenant,
20117
- with support for filtering and pagination.
20118
-
20119
- Path Parameters:
20120
- org (str): The organization/tenant identifier
20121
- user_id (str): The user ID making the request
20122
-
20123
- Query Parameters:
20124
- q (str, optional): Search term to filter issuers by name
20125
- limit (int, optional): Number of results per page (default: 50)
20126
- offset (int, optional): Starting position for pagination
20127
-
20128
- Methods:
20129
- GET: Retrieve issuers with filtering and pagination
20130
- POST: Create a new issuer
20131
-
20132
- POST Request Body:
20133
- A JSON object containing issuer details:
20134
- - name (str): Issuer name
20135
- - iconImage (str, optional): URL to issuer icon
20136
- - email (str, optional): Contact email for the issuer
20137
- - url (str, optional): Website URL for the issuer
20138
- - allowed_template_tags (array, optional): List of allowed template tags
20139
-
20140
- Returns:
20141
- GET: A JSON response containing:
20142
- {
20143
- "status": {"success": true, "description": "Ok"},
20144
- "result": {
20145
- "next": "URL to next page",
20146
- "previous": "URL to previous page",
20147
- "count": 10,
20148
- "data": [
20149
- {issuer object},
20150
- {issuer object},
20151
- ...
20152
- ],
20153
- "num_pages": 1,
20154
- "page_number": 1,
20155
- "max_page_size": 1000
20156
- }
20157
- }
20158
-
20159
- POST: A JSON response containing:
20160
- {
20161
- "status": {"success": true, "description": "Created"},
20162
- "result": {issuer object}
20163
- }
20164
-
20165
- Error Responses:
20166
- 400 Bad Request: If the request data is invalid
20167
- 401 Unauthorized: If the user is not authenticated
20168
- 403 Forbidden: If the user does not have permission to access this resource
20169
- 404 Not Found: If the platform doesn't exist
20170
- 500 Internal Server Error: If an unexpected error occurs
20171
-
20172
- Access Control:
20173
- - Requires IsAdminUserOrStudentDRFMixin
20174
- - Only authenticated users with appropriate permissions can manage issuers
21386
+ operationId: credentials_orgs_users_issuers_retrieve_3
21387
+ description: A GET View that validates QueryParams and returns results to a
21388
+ serializer
20175
21389
  parameters:
20176
21390
  - in: path
20177
21391
  name: platform_key
@@ -20201,69 +21415,9 @@ paths:
20201
21415
  $ref: '#/components/schemas/Issuer'
20202
21416
  description: ''
20203
21417
  post:
20204
- operationId: credentials_orgs_users_issuers_create
20205
- description: |-
20206
- API View for managing credential issuers.
20207
-
20208
- This endpoint allows creating and retrieving issuers for a specific organization/tenant,
20209
- with support for filtering and pagination.
20210
-
20211
- Path Parameters:
20212
- org (str): The organization/tenant identifier
20213
- user_id (str): The user ID making the request
20214
-
20215
- Query Parameters:
20216
- q (str, optional): Search term to filter issuers by name
20217
- limit (int, optional): Number of results per page (default: 50)
20218
- offset (int, optional): Starting position for pagination
20219
-
20220
- Methods:
20221
- GET: Retrieve issuers with filtering and pagination
20222
- POST: Create a new issuer
20223
-
20224
- POST Request Body:
20225
- A JSON object containing issuer details:
20226
- - name (str): Issuer name
20227
- - iconImage (str, optional): URL to issuer icon
20228
- - email (str, optional): Contact email for the issuer
20229
- - url (str, optional): Website URL for the issuer
20230
- - allowed_template_tags (array, optional): List of allowed template tags
20231
-
20232
- Returns:
20233
- GET: A JSON response containing:
20234
- {
20235
- "status": {"success": true, "description": "Ok"},
20236
- "result": {
20237
- "next": "URL to next page",
20238
- "previous": "URL to previous page",
20239
- "count": 10,
20240
- "data": [
20241
- {issuer object},
20242
- {issuer object},
20243
- ...
20244
- ],
20245
- "num_pages": 1,
20246
- "page_number": 1,
20247
- "max_page_size": 1000
20248
- }
20249
- }
20250
-
20251
- POST: A JSON response containing:
20252
- {
20253
- "status": {"success": true, "description": "Created"},
20254
- "result": {issuer object}
20255
- }
20256
-
20257
- Error Responses:
20258
- 400 Bad Request: If the request data is invalid
20259
- 401 Unauthorized: If the user is not authenticated
20260
- 403 Forbidden: If the user does not have permission to access this resource
20261
- 404 Not Found: If the platform doesn't exist
20262
- 500 Internal Server Error: If an unexpected error occurs
20263
-
20264
- Access Control:
20265
- - Requires IsAdminUserOrStudentDRFMixin
20266
- - Only authenticated users with appropriate permissions can manage issuers
21418
+ operationId: credentials_orgs_users_issuers_create_2
21419
+ description: A GET View that validates QueryParams and returns results to a
21420
+ serializer
20267
21421
  parameters:
20268
21422
  - in: path
20269
21423
  name: platform_key
@@ -20312,73 +21466,7 @@ paths:
20312
21466
  description: ''
20313
21467
  /api/credentials/orgs/{platform_key}/users/{username}/issuers/{entity_id}:
20314
21468
  get:
20315
- operationId: credentials_orgs_users_issuers_retrieve_2
20316
- description: |-
20317
- API View for managing individual issuers.
20318
-
20319
- This endpoint allows retrieving, updating, and deleting specific issuers
20320
- identified by their entity_id or org identifier.
20321
-
20322
- Path Parameters:
20323
- org (str): The organization/tenant identifier
20324
- user_id (str): The user ID making the request
20325
- entity_id (str): The issuer entity ID or org identifier
20326
-
20327
- Methods:
20328
- GET: Retrieve a specific issuer
20329
- PUT: Update a specific issuer
20330
- DELETE: Delete a specific issuer
20331
-
20332
- PUT Request Body:
20333
- A JSON object containing issuer details to update:
20334
- - name (str, optional): Issuer name
20335
- - iconImage (str, optional): URL to issuer icon
20336
- - email (str, optional): Contact email for the issuer
20337
- - url (str, optional): Website URL for the issuer
20338
- - allowed_template_tags (array, optional): List of allowed template tags
20339
-
20340
- Returns:
20341
- GET: A JSON response containing the issuer details:
20342
- [
20343
- {
20344
- "name": "Example University",
20345
- "org": "example-university",
20346
- "entityId": "abc123",
20347
- "signatories": [...],
20348
- "url": "https://example.com",
20349
- "iconImage": "https://example.com/logo.png",
20350
- "allowed_template_tags": [...]
20351
- }
20352
- ]
20353
-
20354
- PUT: A JSON response containing the updated issuer details:
20355
- [
20356
- {
20357
- "name": "Example University",
20358
- "org": "example-university",
20359
- "entityId": "abc123",
20360
- "signatories": [...],
20361
- "url": "https://example.com",
20362
- "iconImage": "https://example.com/new-logo.png",
20363
- "allowed_template_tags": [...]
20364
- }
20365
- ]
20366
-
20367
- DELETE: A JSON response indicating success:
20368
- {
20369
- "status": {"success": true, "description": "Deleted"}
20370
- }
20371
-
20372
- Error Responses:
20373
- 400 Bad Request: If the request data is invalid
20374
- 401 Unauthorized: If the user is not authenticated
20375
- 403 Forbidden: If the user does not have permission to access this resource
20376
- 404 Not Found: If the issuer doesn't exist
20377
- 500 Internal Server Error: If an unexpected error occurs
20378
-
20379
- Access Control:
20380
- - Requires IsAdminUserOrStudentDRFMixin
20381
- - Only authenticated users with appropriate permissions can manage issuers
21469
+ operationId: credentials_orgs_users_issuers_retrieve_4
20382
21470
  parameters:
20383
21471
  - in: path
20384
21472
  name: entity_id
@@ -20407,73 +21495,7 @@ paths:
20407
21495
  $ref: '#/components/schemas/Issuer'
20408
21496
  description: ''
20409
21497
  put:
20410
- operationId: credentials_orgs_users_issuers_update
20411
- description: |-
20412
- API View for managing individual issuers.
20413
-
20414
- This endpoint allows retrieving, updating, and deleting specific issuers
20415
- identified by their entity_id or org identifier.
20416
-
20417
- Path Parameters:
20418
- org (str): The organization/tenant identifier
20419
- user_id (str): The user ID making the request
20420
- entity_id (str): The issuer entity ID or org identifier
20421
-
20422
- Methods:
20423
- GET: Retrieve a specific issuer
20424
- PUT: Update a specific issuer
20425
- DELETE: Delete a specific issuer
20426
-
20427
- PUT Request Body:
20428
- A JSON object containing issuer details to update:
20429
- - name (str, optional): Issuer name
20430
- - iconImage (str, optional): URL to issuer icon
20431
- - email (str, optional): Contact email for the issuer
20432
- - url (str, optional): Website URL for the issuer
20433
- - allowed_template_tags (array, optional): List of allowed template tags
20434
-
20435
- Returns:
20436
- GET: A JSON response containing the issuer details:
20437
- [
20438
- {
20439
- "name": "Example University",
20440
- "org": "example-university",
20441
- "entityId": "abc123",
20442
- "signatories": [...],
20443
- "url": "https://example.com",
20444
- "iconImage": "https://example.com/logo.png",
20445
- "allowed_template_tags": [...]
20446
- }
20447
- ]
20448
-
20449
- PUT: A JSON response containing the updated issuer details:
20450
- [
20451
- {
20452
- "name": "Example University",
20453
- "org": "example-university",
20454
- "entityId": "abc123",
20455
- "signatories": [...],
20456
- "url": "https://example.com",
20457
- "iconImage": "https://example.com/new-logo.png",
20458
- "allowed_template_tags": [...]
20459
- }
20460
- ]
20461
-
20462
- DELETE: A JSON response indicating success:
20463
- {
20464
- "status": {"success": true, "description": "Deleted"}
20465
- }
20466
-
20467
- Error Responses:
20468
- 400 Bad Request: If the request data is invalid
20469
- 401 Unauthorized: If the user is not authenticated
20470
- 403 Forbidden: If the user does not have permission to access this resource
20471
- 404 Not Found: If the issuer doesn't exist
20472
- 500 Internal Server Error: If an unexpected error occurs
20473
-
20474
- Access Control:
20475
- - Requires IsAdminUserOrStudentDRFMixin
20476
- - Only authenticated users with appropriate permissions can manage issuers
21498
+ operationId: credentials_orgs_users_issuers_update_2
20477
21499
  parameters:
20478
21500
  - in: path
20479
21501
  name: entity_id
@@ -20520,73 +21542,7 @@ paths:
20520
21542
  $ref: '#/components/schemas/Issuer'
20521
21543
  description: ''
20522
21544
  delete:
20523
- operationId: credentials_orgs_users_issuers_destroy
20524
- description: |-
20525
- API View for managing individual issuers.
20526
-
20527
- This endpoint allows retrieving, updating, and deleting specific issuers
20528
- identified by their entity_id or org identifier.
20529
-
20530
- Path Parameters:
20531
- org (str): The organization/tenant identifier
20532
- user_id (str): The user ID making the request
20533
- entity_id (str): The issuer entity ID or org identifier
20534
-
20535
- Methods:
20536
- GET: Retrieve a specific issuer
20537
- PUT: Update a specific issuer
20538
- DELETE: Delete a specific issuer
20539
-
20540
- PUT Request Body:
20541
- A JSON object containing issuer details to update:
20542
- - name (str, optional): Issuer name
20543
- - iconImage (str, optional): URL to issuer icon
20544
- - email (str, optional): Contact email for the issuer
20545
- - url (str, optional): Website URL for the issuer
20546
- - allowed_template_tags (array, optional): List of allowed template tags
20547
-
20548
- Returns:
20549
- GET: A JSON response containing the issuer details:
20550
- [
20551
- {
20552
- "name": "Example University",
20553
- "org": "example-university",
20554
- "entityId": "abc123",
20555
- "signatories": [...],
20556
- "url": "https://example.com",
20557
- "iconImage": "https://example.com/logo.png",
20558
- "allowed_template_tags": [...]
20559
- }
20560
- ]
20561
-
20562
- PUT: A JSON response containing the updated issuer details:
20563
- [
20564
- {
20565
- "name": "Example University",
20566
- "org": "example-university",
20567
- "entityId": "abc123",
20568
- "signatories": [...],
20569
- "url": "https://example.com",
20570
- "iconImage": "https://example.com/new-logo.png",
20571
- "allowed_template_tags": [...]
20572
- }
20573
- ]
20574
-
20575
- DELETE: A JSON response indicating success:
20576
- {
20577
- "status": {"success": true, "description": "Deleted"}
20578
- }
20579
-
20580
- Error Responses:
20581
- 400 Bad Request: If the request data is invalid
20582
- 401 Unauthorized: If the user is not authenticated
20583
- 403 Forbidden: If the user does not have permission to access this resource
20584
- 404 Not Found: If the issuer doesn't exist
20585
- 500 Internal Server Error: If an unexpected error occurs
20586
-
20587
- Access Control:
20588
- - Requires IsAdminUserOrStudentDRFMixin
20589
- - Only authenticated users with appropriate permissions can manage issuers
21545
+ operationId: credentials_orgs_users_issuers_destroy_2
20590
21546
  parameters:
20591
21547
  - in: path
20592
21548
  name: entity_id
@@ -20612,49 +21568,7 @@ paths:
20612
21568
  description: No response body
20613
21569
  /api/credentials/orgs/{platform_key}/users/{username}/issuers/authority/:
20614
21570
  post:
20615
- operationId: credentials_orgs_users_issuers_authority_create
20616
- description: |-
20617
- API View for managing issuer authorities (signatories).
20618
-
20619
- This endpoint allows creating authorities/signatories that can be associated
20620
- with issuers or specific credentials.
20621
-
20622
- Path Parameters:
20623
- org (str): The organization/tenant identifier
20624
- user_id (str): The user ID making the request
20625
-
20626
- Methods:
20627
- POST: Create a new issuer authority
20628
-
20629
- POST Request Body:
20630
- A JSON object containing authority details:
20631
- - name (str, required): Name of the signatory
20632
- - title (str, required): Title of the signatory
20633
- - signature (str, required): URL to the signature image
20634
- - org (str, optional): Organization identifier to associate with an issuer
20635
- - entityId (str, optional): Issuer entity ID to associate with
20636
- - credential (str, optional): Credential entity ID to associate with
20637
-
20638
- Returns:
20639
- POST: A JSON response containing the created authority:
20640
- {
20641
- "data": {
20642
- "name": "John Smith",
20643
- "title": "President",
20644
- "signature": "https://example.com/signatures/john-smith.png"
20645
- }
20646
- }
20647
-
20648
- Error Responses:
20649
- 400 Bad Request: If the request data is invalid or missing required fields
20650
- 401 Unauthorized: If the user is not authenticated
20651
- 403 Forbidden: If the user does not have permission to access this resource
20652
- 404 Not Found: If the issuer or credential doesn't exist
20653
- 500 Internal Server Error: If an unexpected error occurs
20654
-
20655
- Access Control:
20656
- - Requires IsAdminUserOrStudentDRFMixin
20657
- - Only authenticated users with appropriate permissions can manage authorities
21571
+ operationId: credentials_orgs_users_issuers_authority_create_2
20658
21572
  parameters:
20659
21573
  - in: path
20660
21574
  name: platform_key
@@ -20697,7 +21611,7 @@ paths:
20697
21611
  description: ''
20698
21612
  /api/credentials/orgs/{platform_key}/users/{username}/provider-config/:
20699
21613
  get:
20700
- operationId: credentials_orgs_users_provider_config_retrieve
21614
+ operationId: credentials_orgs_users_provider_config_retrieve_2
20701
21615
  description: |-
20702
21616
  Retrieve provider configurations for the platform.
20703
21617
 
@@ -20730,7 +21644,7 @@ paths:
20730
21644
  $ref: '#/components/schemas/CredentialProviderConfig'
20731
21645
  description: ''
20732
21646
  post:
20733
- operationId: credentials_orgs_users_provider_config_create
21647
+ operationId: credentials_orgs_users_provider_config_create_2
20734
21648
  description: |-
20735
21649
  Create or update a provider configuration.
20736
21650
 
@@ -20788,7 +21702,7 @@ paths:
20788
21702
  $ref: '#/components/schemas/CredentialProviderConfig'
20789
21703
  description: ''
20790
21704
  delete:
20791
- operationId: credentials_orgs_users_provider_config_destroy
21705
+ operationId: credentials_orgs_users_provider_config_destroy_2
20792
21706
  description: |-
20793
21707
  Deactivate a provider configuration (sets enabled=False).
20794
21708