openapi: 3.2.0 info: title: Akeneo API REFERENCE Readiness API version: 1.0.0 description: 'This is the reference documentation for the Akeneo PIM REST API. It provides detailed information about the available endpoints, request and response formats, and authentication methods. For more information, visit the Akeneo PIM documentation.' license: name: Open Software License 3.0 url: http://opensource.org/licenses/OSL-3.0 contact: name: Akeneo Support url: https://www.akeneo.com/support-help-center/ email: contact@akeneo.com servers: - url: '{your-pim-url}' variables: your-pim-url: default: '' description: 'Set the PIM url you want to target ex: https://my-pim.cloud.akeneo.com or https://localhost:8443' tags: - name: Readiness description: 'A readiness configuration defines custom "ready" criteria for products and/or product models, distinct from completeness. It computes a 0-100 score for each channel/locale combination, based on a configurable product selection and a list of business requirements.' paths: /api/rest/v1/readiness: get: operationId: get_readinesses x-visibility: public summary: Get a list of readiness configurations description: 'This endpoint allows you to get a list of readiness configurations. Readiness configurations are paginated and sorted by creation date. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager.' tags: - Readiness security: - bearerToken: [] parameters: - in: query name: page description: 'Specify which page of results to retrieve when using pagination. It is useful for navigating through large datasets by breaking them into smaller, manageable pages. See [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: integer default: 1 example: 1 - in: query name: limit description: 'Specify the maximum number of results to return per page. It is useful for controlling the amount of data returned in a single request, especially when dealing with large datasets. See [Pagination](https://api.akeneo.com/documentation/pagination.html) section for more details. ' required: false schema: type: integer default: 10 minimum: 1 maximum: 100 example: 100 - in: query name: with_count description: 'Return the count of items in the response. Be careful with that, on a big catalog, it can decrease performance in a significant way. It is useful for understanding the size of the dataset being returned, especially when dealing with large collections. Use it judiciously to avoid performance issues. ' required: false schema: type: boolean default: false example: true - name: codes in: query description: 'Filter readiness configurations to only return those matching the given codes. Separate the codes with a comma. ' required: false schema: type: string example: high_quality_electronics,seo_ready - name: is_draft in: query description: 'Filter readiness configurations on their draft status. `true` returns only the drafts, `false` only the configurations that are not drafts. ' required: false schema: type: boolean example: false responses: '200': description: 'Return readiness configurations paginated. The response is paginated and includes links to navigate through the pages. ' content: application/json: schema: title: Readiness configurations type: object allOf: - type: object properties: _links: type: object properties: self: type: object properties: href: type: string description: URI of the current page of resources example: https://demo.akeneo.com/api/rest/v1/categories?page=2&limit=5 first: type: object properties: href: type: string description: URI of the first page of resources example: https://demo.akeneo.com/api/rest/v1/categories?page=1&limit=5 previous: type: object properties: href: type: string description: URI of the previous page of resources example: https://demo.akeneo.com/api/rest/v1/categories?page=1&limit=5 next: type: object properties: href: type: string description: URI of the next page of resources example: https://demo.akeneo.com/api/rest/v1/categories?page=3&limit=5 - type: object properties: current_page: type: integer description: Current page number example: 2 items_count: type: integer description: Total number of items (only if `with_count` parameter is set to true) example: 6 _embedded: type: object properties: items: type: array items: allOf: - type: object properties: _links: type: object properties: self: type: object properties: href: type: string description: URI of the resource example: https://demo.akeneo.com/api/rest/v1/readiness/high_quality_electronics - type: object x-visibility: public description: 'A readiness configuration defines custom "ready" criteria for products or product models, and computes a 0-100 score against them for each channel/locale combination. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' required: - channels_and_locales - product_selection_conditions - requirements properties: code: type: string description: 'Unique identifier of the readiness configuration. It is provided in the URL; if also present in the request body, it must match the URL. ' x-immutable: true example: high_quality_electronics labels: type: object description: Readiness configuration labels for each locale. default: {} patternProperties: ^[a-zA-Z]{2,}_[a-zA-Z0-9_]{2,}$: description: Readiness configuration label for the specified locale. type: string example: High quality electronics example: en_US: High quality electronics fr_FR: Électronique haute qualité channels_and_locales: type: object description: Channels and, for each of them, the locales the readiness score is computed for. additionalProperties: type: array items: type: string example: ecommerce: - en_US - fr_FR locale_fallbacks: type: array description: 'When a requirement''s value is empty for a locale, fall back to evaluating another locale instead. ' default: [] items: type: object required: - source - target properties: source: type: string description: Locale code to fall back from. example: en_US target: type: string description: Locale code to fall back to. example: en_GB example: - source: en_US target: en_GB product_selection_conditions: type: array description: 'Conditions a product or product model must meet to be in the scope of this readiness configuration. At most one entry is allowed at the root level: it is usually a group holding every condition. A readiness configuration can have at most 25 plain conditions. ' maxItems: 1 items: type: object description: 'A node of the product selection: either a plain condition, combining a field, an operator and an expected value, or a group, combining child conditions with the `AND`/`OR` operator given in `operator`. A node is read as a group when its `field` is `"@group"`, or when it carries no `field` key and its `operator` is exactly `AND` or `OR`. A node whose `field` is set to anything else is always a plain condition. A plain condition always carries `field`, `operator` and `value`. When `field` is an attribute code, it carries `scope` and `locale` as well; when `field` is a product field (`family`, `categories`, `enabled`, ...), these two keys must not be sent. A group only carries `operator`, `value` and, optionally, `field`. Only one level of groups is allowed inside the root group, and those groups can only contain plain conditions. Responses always return a group in its long form, with `field` set to `"@group"`. ' required: - operator properties: field: type: string description: 'Attribute code or product field the condition applies to (e.g. `family`, `categories`, `name`). Required for a plain condition. Optional for a group: either omit it, or set it to `@group`. ' example: family operator: type: string description: 'Comparison operator applied to the field for a plain condition (e.g. `IN`, `=`, `NOT EMPTY`). For a group, it combines its children: `AND` or `OR`. ' example: IN value: description: 'Expected value for the condition; its type depends on the field and the operator and may be null. For a group, this is the array of its child conditions. ' nullable: true scope: type: - string - 'null' description: 'Channel the condition is evaluated in. Only for a condition on an attribute: a channel code when the attribute is scopable, `null` when it is not. ' example: ecommerce locale: type: - string - 'null' description: 'Locale the condition is evaluated in. Only for a condition on an attribute: a locale code when the attribute is localizable, `null` when it is not. For an attribute that is both scopable and localizable, the locale must be activated for the channel given in `scope`. ' example: en_US example: - field: family operator: IN value: - electronics selection_level: type: string description: Which kind of entities the readiness configuration computes scores for. default: all_levels enum: - all_levels - products_only - product_models_only example: all_levels requirements: type: array description: 'Rules a product must satisfy to be considered ready. Plain requirements and groups of requirements can be mixed in this list. A readiness configuration can have at most 25 plain requirements, and at least one unless `is_draft` is `true`. ' items: type: object description: 'A node of the requirement list: either a plain requirement, combining a field, an operator and an expected value, or a group, combining child requirements with the `OR` operator. A node is read as a group when its `field` is `"@group"`, or when it carries no `field` key and its `operator` is exactly `OR`. A node whose `field` is set to anything else is always a plain requirement. A group can only contain plain requirements: groups cannot be nested. Responses always return a group in its long form, with `field` set to `"@group"`. ' required: - operator properties: field: type: string description: 'Attribute code or product field the requirement applies to (e.g. `name`, `description`, `categories`). Required for a plain requirement. Optional for a group: either omit it, or set it to `@group`. ' example: name operator: type: string description: 'Comparison operator the field value must satisfy for a plain requirement (e.g. `NOT EMPTY`, `=`, `IN`). For a group, it must be `OR`: at least one of its children must be satisfied. `AND` is not supported. ' example: NOT EMPTY value: description: 'Expected value for the requirement; its type depends on the field and the operator and may be null. For a group, this is the array of its child requirements. ' nullable: true example: - field: name operator: NOT EMPTY value: null is_draft: type: boolean description: Whether the readiness configuration is a draft. Draft configurations are disabled and no scores are computed. default: false example: false created_at: type: string format: date-time description: Date and time the readiness configuration was created. readOnly: true example: '2024-01-31T09:54:00+00:00' updated_at: type: string format: date-time description: Date and time the readiness configuration was last updated. readOnly: true example: '2024-02-12T15:03:00+00:00' example: _links: self: href: https://demo.akeneo.com/api/rest/v1/readiness?page=2&limit=2&with_count=true first: href: https://demo.akeneo.com/api/rest/v1/readiness?page=1&limit=2&with_count=true previous: href: https://demo.akeneo.com/api/rest/v1/readiness?page=1&limit=2&with_count=true next: href: https://demo.akeneo.com/api/rest/v1/readiness?page=3&limit=2&with_count=true current_page: 2 items_count: 6 _embedded: items: - _links: self: href: https://demo.akeneo.com/api/rest/v1/readiness/high_quality_electronics code: high_quality_electronics selection_level: all_levels product_selection_conditions: - field: '@group' operator: AND value: - field: family operator: IN value: - electronics - field: description operator: NOT EMPTY value: null scope: ecommerce locale: en_US channels_and_locales: ecommerce: - en_US - fr_FR locale_fallbacks: - source: fr_FR target: en_US requirements: - field: name operator: NOT EMPTY value: null labels: en_US: High quality electronics fr_FR: Électronique haute qualité is_draft: false created_at: '2024-01-31T09:54:00+00:00' updated_at: '2024-02-12T15:03:00+00:00' - _links: self: href: https://demo.akeneo.com/api/rest/v1/readiness/seo_ready code: seo_ready selection_level: products_only product_selection_conditions: [] channels_and_locales: ecommerce: - en_US locale_fallbacks: [] requirements: - field: '@group' operator: OR value: - field: description operator: NOT EMPTY value: null - field: short_description operator: NOT EMPTY value: null labels: en_US: SEO ready is_draft: true created_at: '2024-02-02T11:20:00+00:00' updated_at: '2024-02-02T11:20:00+00:00' '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '406': description: 'This response indicates that the server cannot produce a response matching the list of acceptable values defined in the request''s `Accept` header. It is typically used when the requested resource is not available in the requested format. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 406 message: xxx in `Accept` header is not valid. Only `application/json` is allowed. '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html /api/rest/v1/readiness/{code}: get: operationId: get_readiness_by_code x-visibility: public summary: Get a readiness configuration description: 'This endpoint allows you to get the information about a given readiness configuration. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager.' tags: - Readiness security: - bearerToken: [] parameters: - in: path name: code description: 'This path parameter is used to specify the unique identifier of the entity you want to retrieve or manipulate. It is essential for identifying the specific entity in the API requests. Ensure that the code is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string example: my_entity_code responses: '200': description: Returns the content of the readiness configuration in JSON standard format content: application/json: schema: type: object x-visibility: public description: 'A readiness configuration defines custom "ready" criteria for products or product models, and computes a 0-100 score against them for each channel/locale combination. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' required: - channels_and_locales - product_selection_conditions - requirements properties: code: type: string description: 'Unique identifier of the readiness configuration. It is provided in the URL; if also present in the request body, it must match the URL. ' x-immutable: true example: high_quality_electronics labels: type: object description: Readiness configuration labels for each locale. default: {} patternProperties: ^[a-zA-Z]{2,}_[a-zA-Z0-9_]{2,}$: description: Readiness configuration label for the specified locale. type: string example: High quality electronics example: en_US: High quality electronics fr_FR: Électronique haute qualité channels_and_locales: type: object description: Channels and, for each of them, the locales the readiness score is computed for. additionalProperties: type: array items: type: string example: ecommerce: - en_US - fr_FR locale_fallbacks: type: array description: 'When a requirement''s value is empty for a locale, fall back to evaluating another locale instead. ' default: [] items: type: object required: - source - target properties: source: type: string description: Locale code to fall back from. example: en_US target: type: string description: Locale code to fall back to. example: en_GB example: - source: en_US target: en_GB product_selection_conditions: type: array description: 'Conditions a product or product model must meet to be in the scope of this readiness configuration. At most one entry is allowed at the root level: it is usually a group holding every condition. A readiness configuration can have at most 25 plain conditions. ' maxItems: 1 items: type: object description: 'A node of the product selection: either a plain condition, combining a field, an operator and an expected value, or a group, combining child conditions with the `AND`/`OR` operator given in `operator`. A node is read as a group when its `field` is `"@group"`, or when it carries no `field` key and its `operator` is exactly `AND` or `OR`. A node whose `field` is set to anything else is always a plain condition. A plain condition always carries `field`, `operator` and `value`. When `field` is an attribute code, it carries `scope` and `locale` as well; when `field` is a product field (`family`, `categories`, `enabled`, ...), these two keys must not be sent. A group only carries `operator`, `value` and, optionally, `field`. Only one level of groups is allowed inside the root group, and those groups can only contain plain conditions. Responses always return a group in its long form, with `field` set to `"@group"`. ' required: - operator properties: field: type: string description: 'Attribute code or product field the condition applies to (e.g. `family`, `categories`, `name`). Required for a plain condition. Optional for a group: either omit it, or set it to `@group`. ' example: family operator: type: string description: 'Comparison operator applied to the field for a plain condition (e.g. `IN`, `=`, `NOT EMPTY`). For a group, it combines its children: `AND` or `OR`. ' example: IN value: description: 'Expected value for the condition; its type depends on the field and the operator and may be null. For a group, this is the array of its child conditions. ' nullable: true scope: type: - string - 'null' description: 'Channel the condition is evaluated in. Only for a condition on an attribute: a channel code when the attribute is scopable, `null` when it is not. ' example: ecommerce locale: type: - string - 'null' description: 'Locale the condition is evaluated in. Only for a condition on an attribute: a locale code when the attribute is localizable, `null` when it is not. For an attribute that is both scopable and localizable, the locale must be activated for the channel given in `scope`. ' example: en_US example: - field: family operator: IN value: - electronics selection_level: type: string description: Which kind of entities the readiness configuration computes scores for. default: all_levels enum: - all_levels - products_only - product_models_only example: all_levels requirements: type: array description: 'Rules a product must satisfy to be considered ready. Plain requirements and groups of requirements can be mixed in this list. A readiness configuration can have at most 25 plain requirements, and at least one unless `is_draft` is `true`. ' items: type: object description: 'A node of the requirement list: either a plain requirement, combining a field, an operator and an expected value, or a group, combining child requirements with the `OR` operator. A node is read as a group when its `field` is `"@group"`, or when it carries no `field` key and its `operator` is exactly `OR`. A node whose `field` is set to anything else is always a plain requirement. A group can only contain plain requirements: groups cannot be nested. Responses always return a group in its long form, with `field` set to `"@group"`. ' required: - operator properties: field: type: string description: 'Attribute code or product field the requirement applies to (e.g. `name`, `description`, `categories`). Required for a plain requirement. Optional for a group: either omit it, or set it to `@group`. ' example: name operator: type: string description: 'Comparison operator the field value must satisfy for a plain requirement (e.g. `NOT EMPTY`, `=`, `IN`). For a group, it must be `OR`: at least one of its children must be satisfied. `AND` is not supported. ' example: NOT EMPTY value: description: 'Expected value for the requirement; its type depends on the field and the operator and may be null. For a group, this is the array of its child requirements. ' nullable: true example: - field: name operator: NOT EMPTY value: null is_draft: type: boolean description: Whether the readiness configuration is a draft. Draft configurations are disabled and no scores are computed. default: false example: false created_at: type: string format: date-time description: Date and time the readiness configuration was created. readOnly: true example: '2024-01-31T09:54:00+00:00' updated_at: type: string format: date-time description: Date and time the readiness configuration was last updated. readOnly: true example: '2024-02-12T15:03:00+00:00' example: code: high_quality_electronics selection_level: all_levels product_selection_conditions: - field: '@group' operator: AND value: - field: family operator: IN value: - electronics - field: enabled operator: '=' value: true - field: name operator: NOT EMPTY value: null scope: ecommerce locale: en_US channels_and_locales: ecommerce: - en_US - fr_FR locale_fallbacks: - source: fr_FR target: en_US requirements: - field: picture operator: NOT EMPTY value: null - field: '@group' operator: OR value: - field: description operator: NOT EMPTY value: null - field: short_description operator: NOT EMPTY value: null labels: en_US: High quality electronics fr_FR: Électronique haute qualité is_draft: false created_at: '2024-01-31T09:54:00+00:00' updated_at: '2024-02-12T15:03:00+00:00' '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '404': description: 'This response indicates that the requested resource could not be found on the server. It can occur when the resource code given in the URI does not correspond to any existing PIM resource. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 404 message: Resource `my_resource_code` does not exist. '406': description: 'This response indicates that the server cannot produce a response matching the list of acceptable values defined in the request''s `Accept` header. It is typically used when the requested resource is not available in the requested format. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 406 message: xxx in `Accept` header is not valid. Only `application/json` is allowed. put: operationId: upsert_readiness_by_code x-visibility: public summary: Update/create a readiness configuration description: 'This endpoint allows you to update a given readiness configuration. Note that if no readiness configuration exists for the given code, it creates it. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager.' tags: - Readiness security: - bearerToken: [] parameters: - in: path name: code description: 'This path parameter is used to specify the unique identifier of the entity you want to retrieve or manipulate. It is essential for identifying the specific entity in the API requests. Ensure that the code is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string example: my_entity_code requestBody: description: 'The readiness configuration to update or create. If the readiness configuration does not exist, it will be created. ' content: application/json: schema: type: object x-visibility: public description: 'A readiness configuration defines custom "ready" criteria for products or product models, and computes a 0-100 score against them for each channel/locale combination. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager. ' required: - channels_and_locales - product_selection_conditions - requirements properties: code: type: string description: 'Unique identifier of the readiness configuration. It is provided in the URL; if also present in the request body, it must match the URL. ' x-immutable: true example: high_quality_electronics labels: type: object description: Readiness configuration labels for each locale. default: {} patternProperties: ^[a-zA-Z]{2,}_[a-zA-Z0-9_]{2,}$: description: Readiness configuration label for the specified locale. type: string example: High quality electronics example: en_US: High quality electronics fr_FR: Électronique haute qualité channels_and_locales: type: object description: Channels and, for each of them, the locales the readiness score is computed for. additionalProperties: type: array items: type: string example: ecommerce: - en_US - fr_FR locale_fallbacks: type: array description: 'When a requirement''s value is empty for a locale, fall back to evaluating another locale instead. ' default: [] items: type: object required: - source - target properties: source: type: string description: Locale code to fall back from. example: en_US target: type: string description: Locale code to fall back to. example: en_GB example: - source: en_US target: en_GB product_selection_conditions: type: array description: 'Conditions a product or product model must meet to be in the scope of this readiness configuration. At most one entry is allowed at the root level: it is usually a group holding every condition. A readiness configuration can have at most 25 plain conditions. ' maxItems: 1 items: type: object description: 'A node of the product selection: either a plain condition, combining a field, an operator and an expected value, or a group, combining child conditions with the `AND`/`OR` operator given in `operator`. A node is read as a group when its `field` is `"@group"`, or when it carries no `field` key and its `operator` is exactly `AND` or `OR`. A node whose `field` is set to anything else is always a plain condition. A plain condition always carries `field`, `operator` and `value`. When `field` is an attribute code, it carries `scope` and `locale` as well; when `field` is a product field (`family`, `categories`, `enabled`, ...), these two keys must not be sent. A group only carries `operator`, `value` and, optionally, `field`. Only one level of groups is allowed inside the root group, and those groups can only contain plain conditions. Responses always return a group in its long form, with `field` set to `"@group"`. ' required: - operator properties: field: type: string description: 'Attribute code or product field the condition applies to (e.g. `family`, `categories`, `name`). Required for a plain condition. Optional for a group: either omit it, or set it to `@group`. ' example: family operator: type: string description: 'Comparison operator applied to the field for a plain condition (e.g. `IN`, `=`, `NOT EMPTY`). For a group, it combines its children: `AND` or `OR`. ' example: IN value: description: 'Expected value for the condition; its type depends on the field and the operator and may be null. For a group, this is the array of its child conditions. ' nullable: true scope: type: - string - 'null' description: 'Channel the condition is evaluated in. Only for a condition on an attribute: a channel code when the attribute is scopable, `null` when it is not. ' example: ecommerce locale: type: - string - 'null' description: 'Locale the condition is evaluated in. Only for a condition on an attribute: a locale code when the attribute is localizable, `null` when it is not. For an attribute that is both scopable and localizable, the locale must be activated for the channel given in `scope`. ' example: en_US example: - field: family operator: IN value: - electronics selection_level: type: string description: Which kind of entities the readiness configuration computes scores for. default: all_levels enum: - all_levels - products_only - product_models_only example: all_levels requirements: type: array description: 'Rules a product must satisfy to be considered ready. Plain requirements and groups of requirements can be mixed in this list. A readiness configuration can have at most 25 plain requirements, and at least one unless `is_draft` is `true`. ' items: type: object description: 'A node of the requirement list: either a plain requirement, combining a field, an operator and an expected value, or a group, combining child requirements with the `OR` operator. A node is read as a group when its `field` is `"@group"`, or when it carries no `field` key and its `operator` is exactly `OR`. A node whose `field` is set to anything else is always a plain requirement. A group can only contain plain requirements: groups cannot be nested. Responses always return a group in its long form, with `field` set to `"@group"`. ' required: - operator properties: field: type: string description: 'Attribute code or product field the requirement applies to (e.g. `name`, `description`, `categories`). Required for a plain requirement. Optional for a group: either omit it, or set it to `@group`. ' example: name operator: type: string description: 'Comparison operator the field value must satisfy for a plain requirement (e.g. `NOT EMPTY`, `=`, `IN`). For a group, it must be `OR`: at least one of its children must be satisfied. `AND` is not supported. ' example: NOT EMPTY value: description: 'Expected value for the requirement; its type depends on the field and the operator and may be null. For a group, this is the array of its child requirements. ' nullable: true example: - field: name operator: NOT EMPTY value: null is_draft: type: boolean description: Whether the readiness configuration is a draft. Draft configurations are disabled and no scores are computed. default: false example: false created_at: type: string format: date-time description: Date and time the readiness configuration was created. readOnly: true example: '2024-01-31T09:54:00+00:00' updated_at: type: string format: date-time description: Date and time the readiness configuration was last updated. readOnly: true example: '2024-02-12T15:03:00+00:00' example: selection_level: all_levels product_selection_conditions: - field: '@group' operator: AND value: - field: family operator: IN value: - electronics - field: name operator: NOT EMPTY value: null scope: ecommerce locale: en_US channels_and_locales: ecommerce: - en_US - fr_FR requirements: - field: picture operator: NOT EMPTY value: null - field: '@group' operator: OR value: - field: description operator: NOT EMPTY value: null - field: short_description operator: NOT EMPTY value: null locale_fallbacks: - source: fr_FR target: en_US labels: en_US: High quality electronics fr_FR: Électronique haute qualité is_draft: false required: true responses: '201': description: 'This response indicates that the entity was successfully created. The server has fulfilled the request and created a new resource. The response includes a `Location` header that contains the URI of the newly created resource. ' headers: Location: description: URI of the created resource schema: type: string '204': description: 'This response indicates that the request was successful and that there is no content to return. It is typically used in response to a successful update operation where the server does not need to return any data to the client. ' headers: Location: description: URI of the updated resource schema: type: string '400': description: 'This response indicates that the server cannot process the request due to a client error, such as malformed request syntax, invalid request message framing, or deceptive request routing. It is typically used when the server cannot understand the request due to invalid JSON or other client-side issues. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 400 message: Invalid JSON message received '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '422': description: 'This response indicates that the validation of the entity given in the body of the request failed. It occurs when the server understands the request but cannot process it due to validation errors in the provided data. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 422 message: type: string description: Message explaining the error example: Validation failed. errors: type: array description: A list of validation error messages (optional) items: type: object properties: property: type: string description: Name of the invalid property message: type: string description: Human-readable error message attribute: type: - string - 'null' description: Attribute code (if the error is on an attribute) locale: type: - string - 'null' description: Locale code involved in the error, if any scope: type: - string - 'null' description: Channel code involved in the error, if any example: - property: family message: The tshirts family does not exist in your PIM. _links: type: object properties: documentation: type: object properties: href: type: string example: documentation: href: http://api.akeneo.com/api-reference.html example: code: 422 message: Validation failed. errors: - property: family message: The tshirts family does not exist in your PIM. - property: categories message: The "tvs_projectors" category does not exist. - property: associations.SUBSTITUTION.groups message: You should associate existing groups. The "promotion" group does not exist. - property: values message: The "description" attribute requires a channel. attribute: description locale: en_US scope: null - property: values message: The "name" attribute requires a locale. attribute: name locale: null scope: null _links: documentation: href: http://api.akeneo.com/api-reference.html delete: operationId: delete_readiness_by_code x-visibility: public summary: Delete a readiness configuration description: 'This endpoint allows you to delete a given readiness configuration. Readiness is currently in beta and is available by request only. If you would like to participate, please reach out to your Customer Success Manager.' tags: - Readiness security: - bearerToken: [] parameters: - in: path name: code description: 'This path parameter is used to specify the unique identifier of the entity you want to retrieve or manipulate. It is essential for identifying the specific entity in the API requests. Ensure that the code is correctly formatted and corresponds to an existing entity in the system. ' required: true schema: type: string example: my_entity_code responses: '204': description: 'No content to return. Means that the deletion was successful. ' '401': description: 'This response indicates that authentication is required to access the requested resource. It can be caused by a missing or expired token, or if the provided credentials are invalid. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 401 message: Full authentication is required to access this resource. '403': description: 'This response indicates that the request is not authorized. This can occur when the user lacks the necessary permissions to access a resource or perform an action, or when the request payload is too large for the platform to process. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 403 message: Access forbidden. You are not allowed to list this entity. '404': description: 'This response indicates that the requested resource could not be found on the server. It can occur when the resource code given in the URI does not correspond to any existing PIM resource. ' content: application/json: schema: type: object properties: code: type: integer description: HTTP status code example: 401 message: type: string description: Message explaining the error example: Full authentication is required to access this resource. example: code: 404 message: Resource `my_resource_code` does not exist. components: securitySchemes: basicToken: scheme: basic type: http description: 'HTTP Basic authentication using user credentials. [More information here](https://api.akeneo.com/documentation/authentication.html) ' bearerToken: scheme: bearer type: http description: 'Bearer token obtained via the "Password Grant" flow. This token authenticates a user, is valid for one hour, and can be refreshed using a refresh token. [More information here](https://api.akeneo.com/documentation/authentication.html) ' appToken: scheme: bearer type: http description: 'Bearer token for Apps, obtained via the OAuth 2.0 flow. This permanent token allows an application to make requests on behalf of a user. [More information here](https://api.akeneo.com/apps/authentication-and-authorization.html) ' x-provenance: method: harvested publisher: Akeneo source: https://storage.googleapis.com/akecld-prd-pim-saas-shared-openapi-spec/openapi.yaml note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json); stamped by stamp-openapi-provenance.py (roadmap#793)