Skip to content

Release 0.56.3#3005

Closed
odlbot wants to merge 5 commits intoreleasefrom
release-candidate
Closed

Release 0.56.3#3005
odlbot wants to merge 5 commits intoreleasefrom
release-candidate

Conversation

@odlbot
Copy link
Contributor

@odlbot odlbot commented Mar 3, 2026

Shankar Ambady

Ahtesham Quraish

Anastasia Beglova

abeglova and others added 5 commits March 2, 2026 14:08
* fix: make direct call to cdn purge


---------

Co-authored-by: Ahtesham Quraish <ahtesham.quraish@192.168.10.4>
* switch to new format for resource id

* fixing tests

* prefer dictionary resource id - fall back to learning_resource_id
@github-actions
Copy link

github-actions bot commented Mar 3, 2026

OpenAPI Changes

Show/hide 412 changes: 30 error, 21 warning, 361 info
412 changes: 30 error, 21 warning, 361 info
error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added '#/components/schemas/DocumentResource' to the 'results/items/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added '#/components/schemas/DocumentResource' to the 'results/items/' response property 'oneOf' list for the response status '200'

error	[response-body-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added '#/components/schemas/DocumentResource' to the response body 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added '#/components/schemas/DocumentResource' to the 'results/items/' response property 'oneOf' list for the response status '200'

error	[response-body-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added '#/components/schemas/DocumentResource' to the response body 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added '#/components/schemas/DocumentResource' to the '/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added '#/components/schemas/DocumentResource' to the '/items/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added '#/components/schemas/DocumentResource' to the '/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added '#/components/schemas/DocumentResource' to the '/items/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added '#/components/schemas/DocumentResource' to the 'results/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added '#/components/schemas/DocumentResource' to the 'results/items/' response property 'oneOf' list for the response status '200'

error	[request-property-enum-value-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the enum value 'learning_material' of the request property 'resource_type/items/' (media type: application/json)

error	[request-property-enum-value-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the enum value 'learning_material' of the request property 'resource_type/items/' (media type: multipart/form-data)

error	[request-property-enum-value-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the enum value 'learning_material' of the request property 'resource_type/items/' (media type: application/x-www-form-urlencoded)

error	[request-property-enum-value-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the enum value 'resource_category' of the request property 'aggregations/items/' (media type: application/x-www-form-urlencoded)

error	[request-property-enum-value-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the enum value 'resource_category' of the request property 'aggregations/items/' (media type: application/json)

error	[request-property-enum-value-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the enum value 'resource_category' of the request property 'aggregations/items/' (media type: multipart/form-data)

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/
		added '#/components/schemas/DocumentResource' to the 'results/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/{learning_resource_id}/items/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '201'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/
		added '#/components/schemas/DocumentResource' to the 'results/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/{id}/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/
		added '#/components/schemas/DocumentResource' to the 'results/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/userlists/{userlist_id}/items/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '201'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/{id}/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/userlists/{userlist_id}/items/{id}/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/
		added '#/components/schemas/DocumentResource' to the 'results/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/{id}/
		added '#/components/schemas/DocumentResource' to the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

warning	[request-parameter-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/courses/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resource_display_info/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/summary/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_user_subscription/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_user_subscription/check/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-property-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the request property 'resource_category' (media type: application/json)

warning	[request-property-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the request property 'resource_category' (media type: multipart/form-data)

warning	[request-property-removed] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		removed the request property 'resource_category' (media type: application/x-www-form-urlencoded)

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcast_episodes/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/programs/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

warning	[request-parameter-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/videos/
		deleted the 'query' request parameter 'resource_category'
		This is a warning because some apps may return an error when receiving a parameter that they do not expect. It is recommended to deprecate the parameter first.

info	[new-optional-request-parameter] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-property-default-value-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added 'document' discriminator mapping keys to the 'results/items/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		removed 'learning_material' discriminator mapping keys from the 'results/items/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		removed '#/components/schemas/LearningMaterialResource' from the 'results/items/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/courses/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/courses/
		added the required property 'results/items/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/courses/{id}/
		added the required property 'resource_type_group' to the response with the '200' status

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added 'document' discriminator mapping keys to the 'results/items/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		removed 'learning_material' discriminator mapping keys from the 'results/items/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		removed '#/components/schemas/LearningMaterialResource' from the 'results/items/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the required property 'results/items/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[response-body-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added 'document' mapping keys to the response discriminator for the response status '200'

info	[response-body-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		removed 'learning_material' mapping keys from the response discriminator for the response status '200'

info	[response-body-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		removed '#/components/schemas/LearningMaterialResource' from the response body 'oneOf' list for the response status '200'

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the required property '/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resource_display_info/
		added the new optional 'query' request parameter 'resource_type_group'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added 'document' discriminator mapping keys to the 'results/items/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		removed 'learning_material' discriminator mapping keys from the 'results/items/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		removed '#/components/schemas/LearningMaterialResource' from the 'results/items/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the required property 'results/items/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/summary/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-body-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added 'document' mapping keys to the response discriminator for the response status '200'

info	[response-body-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		removed 'learning_material' mapping keys from the response discriminator for the response status '200'

info	[response-body-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		removed '#/components/schemas/LearningMaterialResource' from the response body 'oneOf' list for the response status '200'

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the required property '/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added 'document' discriminator mapping keys to the '/items/resource/allOf[#/components/schemas/LearningResource]/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		removed 'learning_material' discriminator mapping keys from the '/items/resource/allOf[#/components/schemas/LearningResource]/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		removed '#/components/schemas/LearningMaterialResource' from the '/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added 'document' discriminator mapping keys to the '/items/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		removed 'learning_material' discriminator mapping keys from the '/items/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		removed '#/components/schemas/LearningMaterialResource' from the '/items/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the required property '/items/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added 'document' discriminator mapping keys to the '/items/resource/allOf[#/components/schemas/LearningResource]/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		removed 'learning_material' discriminator mapping keys from the '/items/resource/allOf[#/components/schemas/LearningResource]/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		removed '#/components/schemas/LearningMaterialResource' from the '/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the required property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added 'document' discriminator mapping keys to the '/items/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		removed 'learning_material' discriminator mapping keys from the '/items/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		removed '#/components/schemas/LearningMaterialResource' from the '/items/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the required property '/items/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added 'document' discriminator mapping keys to the 'results/items/resource/allOf[#/components/schemas/LearningResource]/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		removed 'learning_material' discriminator mapping keys from the 'results/items/resource/allOf[#/components/schemas/LearningResource]/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		removed '#/components/schemas/LearningMaterialResource' from the 'results/items/resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the required property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added 'document' discriminator mapping keys to the 'resource/allOf[#/components/schemas/LearningResource]/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		removed 'learning_material' discriminator mapping keys from the 'resource/allOf[#/components/schemas/LearningResource]/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		removed '#/components/schemas/LearningMaterialResource' from the 'resource/allOf[#/components/schemas/LearningResource]/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the required property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-property-discriminator-mapping-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added 'document' discriminator mapping keys to the 'results/items/' response property for the response status '200'

info	[response-property-discriminator-mapping-deleted] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		removed 'learning_material' discriminator mapping keys from the 'results/items/' response property for the response status '200'

info	[response-property-one-of-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		removed '#/components/schemas/LearningMaterialResource' from the 'results/items/' response property 'oneOf' list for the response status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/ArticleResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/CourseResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/LearningPathResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/PodcastEpisodeResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/PodcastResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/ProgramResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/VideoPlaylistResource]/resource_type_group' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/VideoResource]/content_files' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the required property 'results/items/oneOf[#/components/schemas/VideoResource]/resource_type_group' to the response with the '200' status

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_user_subscription/
		added the new optional 'query' request parameter 'resource_type_group'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_user_subscription/check/
		added the new optional 'query' request parameter 'resource_type_group'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional 'query' request parameter 'resource_type_group'

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'resource_type_group' (media type: application/json)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'resource_type_group' (media type: application/x-www-form-urlencoded)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'resource_type_group' (media type: multipart/form-data)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'document' enum value to the request property 'resource_type/items/' (media type: application/json)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'document' enum value to the request property 'resource_type/items/' (media type: application/x-www-form-urlencoded)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'document' enum value to the request property 'resource_type/items/' (media type: multipart/form-data)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'resource_type_group' enum value to the request property 'aggregations/items/' (media type: application/json)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'resource_type_group' enum value to the request property 'aggregations/items/' (media type: multipart/form-data)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'resource_type_group' enum value to the request property 'aggregations/items/' (media type: application/x-www-form-urlencoded)

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/
		added the new optional 'query' request parameter 'resource_type_group'

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/
		added the required property 'results/items/resource_type_group' to the response with the '200' status

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '201'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/
		added the required property 'resource_type_group' to the response with the '201' status

info	[response-property-default-value-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{id}/
		the 'resource_category' response's property default value 'Learning Path' was added for the status '200'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{id}/
		added the required property 'resource_type_group' to the response with the '200' status

info	[response-property-default-value-added] a...*[Comment body truncated]*

Comment on lines +1027 to +1030
resource_category = serializers.ReadOnlyField(
default=constants.LearningResourceType.learning_path.value
)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Creating a LearningPath via the API fails because the required resource_category field is not set, as it is incorrectly configured as a ReadOnlyField in the serializer.
Severity: CRITICAL

Suggested Fix

Explicitly set the resource_category in the LearningPathResourceSerializer.create() method, similar to how resource_type is set. Add validated_data["resource_category"] = constants.LearningResourceType.learning_path.value to the method.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: learning_resources/serializers.py#L1027-L1030

Potential issue: When creating a `LearningPath` via the API, the `resource_category`
field is not populated, which will cause a database `IntegrityError`. The
`LearningPathResourceSerializer` defines `resource_category` as a
`serializers.ReadOnlyField`, which is ignored during input processing, and its `default`
value is not used. The serializer's `create` method also fails to set this field. Since
the `resource_category` model field is non-nullable, any API request to create a
`LearningPath` will fail upon saving to the database.

Did we get this right? 👍 / 👎 to inform future reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants