openapi: 3.1.0 info: title: Adobe Lightroom Lightroom Services API description: >- Core partner API for accessing Adobe Lightroom cloud catalog data, albums, and assets. Partner applications authenticate Lightroom customers through Adobe Identity Management System (IMS) using a standard OAuth 2.0 workflow. Provides RESTful access to a customer's cloud-synced Lightroom catalog including photos, albums, and metadata. version: '2' contact: name: Adobe Lightroom Developer Support url: https://community.adobe.com/t5/lightroom/ct-p/ct-lightroom license: name: Adobe Terms of Service url: https://www.adobe.com/legal/terms.html termsOfService: https://www.adobe.com/legal/terms.html externalDocs: description: Lightroom Services API Documentation url: https://developer.adobe.com/lightroom/lightroom-api-docs/api/ servers: - url: https://lr.adobe.io/v2 description: Lightroom Services Production Server tags: - name: Albums description: Operations on albums and album assets - name: Assets description: >- Operations on photo assets including upload, download, metadata, and renditions - name: Catalog description: Operations on the customer's Lightroom catalog - name: Health description: API health check endpoints - name: Renditions description: Operations on asset renditions (thumbnails and previews) security: - oauth2: - lr_partner_apis - apiKey: [] paths: /health: get: operationId: getHealthCheck summary: Adobe Lightroom Get Api Health Status description: >- Returns the health status of the Lightroom Services API. This endpoint does not require authentication and can be used to verify API availability. tags: - Health security: [] responses: '200': description: API is healthy and available content: application/json: schema: $ref: '#/components/schemas/HealthResponse' examples: Gethealthcheck200Example: summary: Default getHealthCheck 200 response x-microcks-default: true value: status: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalog: get: operationId: getCatalog summary: Adobe Lightroom Get the Customer's Catalog description: >- Retrieves the catalog metadata for the authenticated Lightroom customer. Each customer has a single catalog that contains all their assets and albums. The catalog_id returned is used as a path parameter in most other API calls. tags: - Catalog parameters: - $ref: '#/components/parameters/XApiKey' responses: '200': description: Catalog retrieved successfully content: application/json: schema: $ref: '#/components/schemas/CatalogResponse' examples: Getcatalog200Example: summary: Default getCatalog 200 response x-microcks-default: true value: base: example_value id: abc123 type: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: name: Example Title userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}: get: operationId: getCatalogById summary: Adobe Lightroom Get Catalog by Id description: >- Retrieves catalog metadata for a specific catalog by its identifier. tags: - Catalog parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/XApiKey' responses: '200': description: Catalog retrieved successfully content: application/json: schema: $ref: '#/components/schemas/CatalogResponse' examples: Getcatalogbyid200Example: summary: Default getCatalogById 200 response x-microcks-default: true value: base: example_value id: abc123 type: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: name: Example Title userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/assets: get: operationId: listCatalogAssets summary: Adobe Lightroom List Assets in a Catalog description: >- Retrieves a paginated list of assets in the specified catalog. Assets represent individual photos or videos. Results can be filtered by subtype and capture date. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/XApiKey' - $ref: '#/components/parameters/SubtypeFilter' - $ref: '#/components/parameters/CapturedAfter' - $ref: '#/components/parameters/CapturedBefore' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' responses: '200': description: Assets retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AssetsListResponse' examples: Listcatalogassets200Example: summary: Default listCatalogAssets 200 response x-microcks-default: true value: base: example_value resources: - id: abc123 type: example_value subtype: image created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' revision_ids: {} payload: {} links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/assets/{asset_id}: get: operationId: getAsset summary: Adobe Lightroom Get a Specific Asset description: >- Retrieves metadata for a specific asset including EXIF data, develop settings, and available renditions. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/XApiKey' responses: '200': description: Asset retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AssetResponse' examples: Getasset200Example: summary: Default getAsset 200 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: example_value links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: createRevisionForAsset summary: Adobe Lightroom Create or Update an Asset description: >- Creates a new asset revision or updates an existing asset in the catalog. Used to upload new photos or update metadata on existing ones. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/XApiKey' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetRevisionRequest' examples: CreaterevisionforassetRequestExample: summary: Default createRevisionForAsset request x-microcks-default: true value: subtype: image payload: captureDate: '2026-01-15T10:30:00Z' userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' importSource: fileName: example_value importedOnDevice: example_value importTimestamp: '2026-01-15T10:30:00Z' responses: '200': description: Asset updated successfully content: application/json: schema: $ref: '#/components/schemas/AssetResponse' examples: Createrevisionforasset200Example: summary: Default createRevisionForAsset 200 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: example_value links: {} '201': description: Asset created successfully content: application/json: schema: $ref: '#/components/schemas/AssetResponse' examples: Createrevisionforasset201Example: summary: Default createRevisionForAsset 201 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: example_value links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/assets/{asset_id}/master: put: operationId: uploadMasterAsset summary: Adobe Lightroom Upload the Master (original) File for an Asset description: >- Uploads the original master file for a previously created asset. The asset must already exist in the catalog. The request body should contain the binary image data. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/XApiKey' - name: Content-Type in: header required: true schema: type: string enum: - image/jpeg - image/png - image/tiff - image/dng - video/mp4 example: image/jpeg - name: Content-Length in: header required: true schema: type: integer example: 10 requestBody: required: true content: application/octet-stream: schema: type: string format: binary examples: UploadmasterassetRequestExample: summary: Default uploadMasterAsset request x-microcks-default: true value: example_value responses: '200': description: Master file uploaded successfully '201': description: Master file created successfully '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '413': description: File too large x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/assets/{asset_id}/xmp/develop: get: operationId: getAssetDevelopXmp summary: Adobe Lightroom Get the Develop Settings Xmp for an Asset description: >- Retrieves the external develop XMP sidecar file for the specified asset. Contains Lightroom develop settings as XMP metadata. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/XApiKey' responses: '200': description: XMP develop settings retrieved successfully content: application/rdf+xml: schema: type: string examples: Getassetdevelopxmp200Example: summary: Default getAssetDevelopXmp 200 response x-microcks-default: true value: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: putAssetDevelopXmp summary: Adobe Lightroom Upload Develop Settings Xmp for an Asset description: >- Uploads an external develop XMP sidecar file for the specified asset, applying Lightroom develop settings. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/XApiKey' requestBody: required: true content: application/rdf+xml: schema: type: string examples: PutassetdevelopxmpRequestExample: summary: Default putAssetDevelopXmp request x-microcks-default: true value: example_value responses: '200': description: XMP develop settings updated successfully '201': description: XMP develop settings created successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/assets/{asset_id}/renditions/{rendition_type}: get: operationId: getAssetRendition summary: Adobe Lightroom Get an Asset Rendition description: >- Retrieves a generated rendition (preview image) for the specified asset. The rendition_type parameter specifies the size and format. Renditions are generated server-side from the master file. tags: - Renditions parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/RenditionType' - $ref: '#/components/parameters/XApiKey' responses: '200': description: Rendition retrieved successfully content: image/jpeg: schema: type: string format: binary examples: Getassetrendition200Example: summary: Default getAssetRendition 200 response x-microcks-default: true value: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/albums: get: operationId: listAlbums summary: Adobe Lightroom List Albums in a Catalog description: >- Retrieves a paginated list of albums in the specified catalog. Albums are collections of assets organized by the user. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/XApiKey' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' responses: '200': description: Albums retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AlbumsListResponse' examples: Listalbums200Example: summary: Default listAlbums 200 response x-microcks-default: true value: base: example_value resources: - id: abc123 type: example_value subtype: collection created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: {} links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/albums/{album_id}: get: operationId: getAlbum summary: Adobe Lightroom Get a Specific Album description: >- Retrieves metadata for a specific album including its name, cover asset, creation date, and update timestamps. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId' - $ref: '#/components/parameters/XApiKey' responses: '200': description: Album retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AlbumResponse' examples: Getalbum200Example: summary: Default getAlbum 200 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: example_value links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: createOrUpdateAlbum summary: Adobe Lightroom Create or Update an Album description: >- Creates a new album or updates an existing album in the catalog. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId' - $ref: '#/components/parameters/XApiKey' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AlbumCreateRequest' examples: CreateorupdatealbumRequestExample: summary: Default createOrUpdateAlbum request x-microcks-default: true value: subtype: collection payload: name: Example Title userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' parent: id: abc123 responses: '200': description: Album updated successfully content: application/json: schema: $ref: '#/components/schemas/AlbumResponse' examples: Createorupdatealbum200Example: summary: Default createOrUpdateAlbum 200 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: example_value links: {} '201': description: Album created successfully content: application/json: schema: $ref: '#/components/schemas/AlbumResponse' examples: Createorupdatealbum201Example: summary: Default createOrUpdateAlbum 201 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: example_value links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteAlbum summary: Adobe Lightroom Delete an Album description: >- Deletes the specified album from the catalog. This does not delete the assets within the album. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId' - $ref: '#/components/parameters/XApiKey' responses: '204': description: Album deleted successfully '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/albums/{album_id}/assets: get: operationId: listAlbumAssets summary: Adobe Lightroom List Assets in an Album description: >- Retrieves a paginated list of assets contained within the specified album. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId' - $ref: '#/components/parameters/XApiKey' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' responses: '200': description: Album assets retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AssetsListResponse' examples: Listalbumassets200Example: summary: Default listAlbumAssets 200 response x-microcks-default: true value: base: example_value resources: - id: abc123 type: example_value subtype: image created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' revision_ids: {} payload: {} links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: addAssetsToAlbum summary: Adobe Lightroom Add Assets to an Album description: >- Adds one or more existing assets to the specified album. The assets must already exist in the catalog. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId' - $ref: '#/components/parameters/XApiKey' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AlbumAssetsRequest' examples: AddassetstoalbumRequestExample: summary: Default addAssetsToAlbum request x-microcks-default: true value: resources: - id: abc123 payload: order: example_value responses: '200': description: Assets added to album successfully '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: oauth2: type: oauth2 description: >- OAuth 2.0 authorization code flow via Adobe Identity Management System (IMS). Partner applications must be registered in the Adobe Developer Console. flows: authorizationCode: authorizationUrl: https://ims-na1.adobelogin.com/ims/authorize/v2 tokenUrl: https://ims-na1.adobelogin.com/ims/token/v3 scopes: lr_partner_apis: Access Lightroom partner APIs openid: OpenID Connect apiKey: type: apiKey name: X-Api-Key in: header description: >- API key from the Adobe Developer Console project (client_id of the integration) parameters: XApiKey: name: X-Api-Key in: header required: true description: API key from the Adobe Developer Console schema: type: string CatalogId: name: catalog_id in: path required: true description: Unique identifier of the Lightroom catalog schema: type: string AssetId: name: asset_id in: path required: true description: Unique identifier of the asset schema: type: string AlbumId: name: album_id in: path required: true description: Unique identifier of the album schema: type: string RenditionType: name: rendition_type in: path required: true description: >- Type of rendition to retrieve. Specifies the size of the generated preview image. schema: type: string enum: - thumbnail2x - 640 - 1024 - 2048 - fullsize SubtypeFilter: name: subtype in: query required: false description: Filter assets by subtype schema: type: string enum: - image - video CapturedAfter: name: captured_after in: query required: false description: Filter assets captured after this ISO 8601 timestamp schema: type: string format: date-time CapturedBefore: name: captured_before in: query required: false description: Filter assets captured before this ISO 8601 timestamp schema: type: string format: date-time Limit: name: limit in: query required: false description: Maximum number of results to return schema: type: integer default: 100 minimum: 1 maximum: 500 Offset: name: offset in: query required: false description: Number of results to skip for pagination schema: type: integer default: 0 minimum: 0 schemas: HealthResponse: type: object properties: status: type: string description: Health status of the API examples: - available CatalogResponse: type: object properties: base: type: string description: Base URL for the API example: example_value id: type: string description: Unique identifier of the catalog example: abc123 type: type: string description: Resource type const: catalog example: example_value created: type: string format: date-time description: Catalog creation timestamp example: '2026-01-15T10:30:00Z' updated: type: string format: date-time description: Catalog last updated timestamp example: '2026-01-15T10:30:00Z' payload: type: object description: Catalog payload data properties: name: type: string description: Name of the catalog userCreated: type: string format: date-time description: When the user created the catalog userUpdated: type: string format: date-time description: When the user last updated the catalog example: example_value links: $ref: '#/components/schemas/Links' AssetsListResponse: type: object properties: base: type: string description: Base URL for the API example: example_value resources: type: array description: List of asset resources items: $ref: '#/components/schemas/Asset' example: [] links: $ref: '#/components/schemas/Links' Asset: type: object properties: id: type: string description: Unique identifier of the asset example: abc123 type: type: string description: Resource type const: asset example: example_value subtype: type: string description: Asset subtype enum: - image - video example: image created: type: string format: date-time description: Asset creation timestamp example: '2026-01-15T10:30:00Z' updated: type: string format: date-time description: Asset last updated timestamp example: '2026-01-15T10:30:00Z' revision_ids: type: array description: List of revision identifiers items: type: string example: [] payload: type: object description: Asset payload containing metadata properties: captureDate: type: string format: date-time description: Date and time the photo was captured userCreated: type: string format: date-time description: When the user created the asset userUpdated: type: string format: date-time description: When the user last updated the asset importSource: type: object description: Import source information properties: fileName: type: string description: Original file name importedOnDevice: type: string description: Device used for import importTimestamp: type: string format: date-time description: When the asset was imported develop: type: object description: Develop settings applied to the asset xmp: type: object description: XMP metadata location: type: object description: GPS location data properties: latitude: type: number description: GPS latitude longitude: type: number description: GPS longitude altitude: type: number description: GPS altitude direction: type: number description: Direction the camera was facing example: example_value links: $ref: '#/components/schemas/Links' AssetResponse: type: object properties: base: type: string example: example_value id: type: string example: abc123 type: type: string const: asset example: example_value subtype: type: string example: example_value created: type: string format: date-time example: '2026-01-15T10:30:00Z' updated: type: string format: date-time example: '2026-01-15T10:30:00Z' payload: type: object example: example_value links: $ref: '#/components/schemas/Links' AssetRevisionRequest: type: object required: - subtype - payload properties: subtype: type: string description: Asset subtype enum: - image - video example: image payload: type: object description: Asset metadata payload properties: captureDate: type: string format: date-time userCreated: type: string format: date-time userUpdated: type: string format: date-time importSource: type: object properties: fileName: type: string importedOnDevice: type: string importTimestamp: type: string format: date-time example: example_value AlbumsListResponse: type: object properties: base: type: string example: example_value resources: type: array description: List of album resources items: $ref: '#/components/schemas/Album' example: [] links: $ref: '#/components/schemas/Links' Album: type: object properties: id: type: string description: Unique identifier of the album example: abc123 type: type: string description: Resource type const: album example: example_value subtype: type: string description: Album subtype enum: - collection - collection_set - project example: collection created: type: string format: date-time description: Album creation timestamp example: '2026-01-15T10:30:00Z' updated: type: string format: date-time description: Album last updated timestamp example: '2026-01-15T10:30:00Z' payload: type: object description: Album payload data properties: name: type: string description: Display name of the album userCreated: type: string format: date-time description: When the user created the album userUpdated: type: string format: date-time description: When the user last updated the album cover: type: object description: Cover asset for the album properties: id: type: string description: Asset ID used as the album cover parent: type: object description: Parent album (for nested album sets) properties: id: type: string description: Parent album ID example: example_value links: $ref: '#/components/schemas/Links' AlbumResponse: type: object properties: base: type: string example: example_value id: type: string example: abc123 type: type: string const: album example: example_value subtype: type: string example: example_value created: type: string format: date-time example: '2026-01-15T10:30:00Z' updated: type: string format: date-time example: '2026-01-15T10:30:00Z' payload: type: object example: example_value links: $ref: '#/components/schemas/Links' AlbumCreateRequest: type: object required: - subtype - payload properties: subtype: type: string description: Album subtype enum: - collection - collection_set - project example: collection payload: type: object required: - name properties: name: type: string description: Display name for the album userCreated: type: string format: date-time userUpdated: type: string format: date-time parent: type: object properties: id: type: string description: Parent album ID for nesting example: example_value AlbumAssetsRequest: type: object required: - resources properties: resources: type: array description: List of asset references to add to the album items: type: object required: - id properties: id: type: string description: Asset ID to add payload: type: object properties: order: type: string description: Sort order within the album example: [] Links: type: object description: HATEOAS links for resource navigation additionalProperties: type: object properties: href: type: string description: URL for the linked resource ErrorResponse: type: object properties: code: type: integer description: HTTP status code example: 10 description: type: string description: Error description example: A sample description. errors: type: array items: type: object properties: message: type: string field: type: string example: [] responses: Unauthorized: description: Authentication required or invalid credentials content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: >- Insufficient permissions. The user has not granted access or the partner application is not entitled. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: The specified resource was not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse'