openapi: 3.0.3
info:
  description: |

    ## Summary

    ### Release : 1.0 - 2023.3

    WisePorter Runtime Product Catalog API is one of Catalog Management API Family. Product Catalog API goal is to provide a catalog of products or generic items.

    ### How to use it
    WisePorter Runtime Product Catalog API performs the operations on the resources :
    - Retrieve an entity or a collection of entities depending on [filter criteria](https://openwise.atlassian.net/wiki/spaces/WDP/pages/2786951174/Filters)
      - [time validity, versions and language](https://openwise.atlassian.net/wiki/spaces/WDP/pages/3171778561/Time+validity+versions+and+language)
      - [projection](https://openwise.atlassian.net/wiki/spaces/WDP/pages/2934472705/Projection)
      - [paging](https://openwise.atlassian.net/wiki/spaces/WDP/pages/3242557443/Paging)
    - [Data model](https://openwise.atlassian.net/wiki/spaces/WDP/pages/3172302851/Datatypes+BaseDataType) overview
    - [Codebook listing and management](https://openwise.atlassian.net/wiki/spaces/WDP/pages/3380477955/Codebooks)
    - Retrieving of [attachment or referenced files](https://openwise.atlassian.net/wiki/spaces/WDP/pages/3341320201/How+to+download+internal+attachments)
    - Eligibility and [dynamic behaviour](https://openwise.atlassian.net/wiki/spaces/WDP/pages/3386245127/Rule+Engine+API)
    - [Support of Notification of changes](https://openwise.atlassian.net/wiki/spaces/WDP/pages/2997321818/Runtime+API+guide#Runtime-notifications)

    Complete documentation is available at [WisePorter Runtime API Documentation Guide](https://openwise.atlassian.net/wiki/spaces/WDP/pages/2997321818/Runtime+API+guide) with useful [use cases](https://openwise.atlassian.net/wiki/spaces/WDP/pages/3228631063/Runtime+API+-+examples) how API can be used.
  version: "1.0"
  title: WisePorter Runtime Product Catalog API
  termsOfService: https://wiseporter.com/terms-of-use/
  contact:
    name: API Support
    email: support@wiseporter.com
    url: https://wiseporter.com/
externalDocs:
  description: Find out more
  url: https://openwise.atlassian.net/wiki/spaces/WDP/pages/3342172195/Runtime+data+API
servers:
  - url: /api/
paths:
  '/{categoryCode}/types':
    get:
      summary: '[DEPRECATED] Searches business entity types by provided category code and search settings.'
      description: '**Deprecated.** Use `GET /v2/{categoryCode}/types` instead. V2 returns multilang fields filtered to the requested language as inner object
      representation instead flattened one.'
      deprecated: true
      tags:
        - "Business entities operations"
      operationId: getBusinessEntityTypes
      parameters:
        - name: categoryCode
          in: path
          description: 'Category code for search.'
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: 'RSQL filter for data filtering.'
          required: false
          example: 'code==123'
          schema:
            type: string
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for records in response.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of BusinessEntityType + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/BusinessEntityType'
        '500':
          description: 'Internal server error'
  '/entities/businessVersions':
    get:
      summary: '[DEPRECATED] Searches business entity business versions by provided search settings.'
      description: '**Deprecated.** Use `GET /v2/entities/businessVersions` instead. V2 returns multilang fields filtered to the requested language as inner object
      representation instead flattened one.'
      deprecated: true
      tags:
        - "Business entities operations"
      operationId: getBusinessEntityBusinessVersions
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: 'RSQL filter for data filtering.'
          required: false
          example: 'code==123'
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                        Use:
                        <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                        <li>ALL: Without projection, all fields are in response.</li>
                        <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                        <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: 'List of BusinessEntity + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/BusinessEntity'
        '500':
          description: 'Internal server error'
  '/entities/instances/{instanceCode}/businessVersions':
    get:
      summary: '[DEPRECATED] Searches business entity instance business versions by provided instance code and search settings.'
      description: '**Deprecated.** Use `GET /v2/entities/instances/{instanceCode}/businessVersions` instead. V2 returns multilang fields filtered to the requested language as inner object
      representation instead flattened one.'
      deprecated: true
      tags:
        - "Business entities operations"
      operationId: getBusinessEntityInstanceBusinessVersionsByInstanceCode
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search'
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: 'RSQL filter for data filtering.'
          required: false
          example: 'code==123'
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                      Use:
                      <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                      <li>ALL: Without projection, all fields are in response.</li>
                      <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                      <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for records in response.'
          example: cs
          schema:
            type: string
        - name: Accept-Datetime
          in: header
          description: 'Effective date. Provided date will be used in search. Timestamp in UTC format (RFC-1123 formatted date stamp). Generate value example: <li>In frontend: new Date(...).toUTCString()</li> <li>In backend: HttpHeaders.setDate()</li>'
          example: 'Tue, 29 Jun 2021 14:13:55 GMT'
          schema:
            type: string
      responses:
        '200':
          description: 'List of BusinessEntity + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/BusinessEntity'
        '500':
          description: 'Internal server error'
  '/entities/instances/{instanceCode}/businessVersions/{businessVersionCode}':
    get:
      summary: '[DEPRECATED] Searches business entity instance business version by provided instance code, business version code and search settings.'
      description: '**Deprecated.** Use `GET /v2/entities/instances/{instanceCode}/businessVersions/{businessVersionCode}` instead. V2 returns multilang fields filtered to the requested language as inner object
      representation instead flattened one.'
      deprecated: true
      tags:
        - "Business entities operations"
      operationId: getBusinessEntityInstanceBusinessVersion
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search'
          required: true
          schema:
            type: string
        - name: businessVersionCode
          in: path
          description: 'Business version code for search'
          required: true
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                        Use:
                        <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                        <li>ALL: Without projection, all fields are in response.</li>
                        <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                        <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for records in response.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'BusinessEntity.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessEntity'
        '404':
          description: 'Not found'
        '500':
          description: 'Internal server error'
  '/entities/instances/{instanceCode}/relationship-memberships':
    get:
      summary: '[DEPRECATED] Searches relationship memberships by provided instance code (member item code) and search settings.'
      description: '**Deprecated.** Use `GET /v2/entities/instances/{instanceCode}/relationship-memberships` instead. V2 returns multilang fields filtered to the requested language as inner object
      representation instead flattened one.'
      deprecated: true
      tags:
        - "Business entities operations"
      operationId: getRelationshipMembershipsByItemCode
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search (member item code).'
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: 'Language for records in response.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of RelationshipMembership + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/RelationshipMembership'
        '500':
          description: 'Internal server error'
  '/entities/instances/{instanceCode}/businessVersions/{businessVersionCode}/relationship-memberships':
    get:
      summary: '[DEPRECATED] Searches relationship memberships by provided instance code (member item code), member business version and search settings.'
      description: '**Deprecated.** Use `GET /v2/entities/instances/{instanceCode}/businessVersions/{businessVersionCode}/relationship-memberships` instead. V2 returns multilang fields filtered to the requested language as inner object
      representation instead flattened one.'
      deprecated: true
      tags:
        - "Business entities operations"
      operationId: getRelationshipMembershipsByItemCodeAndBusinessVersionCode
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search (member item code).'
          required: true
          schema:
            type: string
        - name: businessVersionCode
          in: path
          description: 'Member business version code for search.'
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: 'Language for records in response.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of RelationshipMembership + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/RelationshipMembership'
        '500':
          description: 'Internal server error'
  '/relationships':
    get:
      summary: '[DEPRECATED] Searches relationships list.'
      description: '**Deprecated.** Use `GET /v2/relationships` instead. V2 returns multilang fields filtered to the requested language as inner object
      representation instead flattened one.'
      deprecated: true
      tags:
        - "Relationship operations"
      operationId: getRelationships
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: 'RSQL filter for data filtering.'
          required: false
          example: 'code==123'
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                      Use:
                      <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                      <li>ALL: Without projection, all fields are in response.</li>
                      <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                      <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for records in response.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of Relationships + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/Relationship'
        '500':
          description: 'Internal server error'
  '/relationships/{instanceCode}':
    get:
      summary: '[DEPRECATED] Searches relationship by provided instance code.'
      description: '**Deprecated.** Use `GET /v2/relationships/{instanceCode}` instead. V2 returns multilang fields filtered to the requested language as inner object
      representation instead flattened one.'
      deprecated: true
      tags:
        - "Relationship operations"
      operationId: getRelationshipByCode
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search.'
          required: true
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                      Use:
                      <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                      <li>ALL: Without projection, all fields are in response.</li>
                      <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                      <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for records in response.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'Relationship.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Relationship'
        '404':
          description: 'Not found'
        '500':
          description: 'Internal server error'
  '/v2/{categoryCode}/types':
    get:
      summary: 'V2: Searches business entity types by provided category code and search settings. Multilang fields are filtered to the language requested via Accept-Language header.'
      tags:
        - "Business entities operations V2"
      operationId: getBusinessEntityTypesV2
      parameters:
        - name: categoryCode
          in: path
          description: 'Category code for search.'
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: 'RSQL filter for data filtering.'
          required: false
          example: 'code==123'
          schema:
            type: string
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for multilang field filtering. When provided, only the values for the requested language are returned in multilang fields; all other language mutations are excluded.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of BusinessEntityType + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/BusinessEntityTypeV2'
        '500':
          description: 'Internal server error'
  '/v2/entities/businessVersions':
    get:
      summary: 'V2: Searches business entity business versions by provided search settings. Multilang fields are filtered to the language requested via Accept-Language header.'
      tags:
        - "Business entities operations V2"
      operationId: getBusinessEntityBusinessVersionsV2
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: 'RSQL filter for data filtering.'
          required: false
          example: 'code==123'
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                        Use:
                        <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                        <li>ALL: Without projection, all fields are in response.</li>
                        <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                        <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for multilang field filtering. When provided, only the values for the requested language are returned in multilang fields; all other language mutations are excluded.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of BusinessEntity + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/BusinessEntityV2'
        '500':
          description: 'Internal server error'
  '/v2/entities/instances/{instanceCode}/businessVersions':
    get:
      summary: 'V2: Searches business entity instance business versions by provided instance code and search settings. Multilang fields are filtered to the language requested via Accept-Language header.'
      tags:
        - "Business entities operations V2"
      operationId: getBusinessEntityInstanceBusinessVersionsByInstanceCodeV2
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search'
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: 'RSQL filter for data filtering.'
          required: false
          example: 'code==123'
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                      Use:
                      <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                      <li>ALL: Without projection, all fields are in response.</li>
                      <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                      <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for multilang field filtering. When provided, only the values for the requested language are returned in multilang fields; all other language mutations are excluded.'
          example: cs
          schema:
            type: string
        - name: Accept-Datetime
          in: header
          description: 'Effective date. Provided date will be used in search. Timestamp in UTC format (RFC-1123 formatted date stamp). Generate value example: <li>In frontend: new Date(...).toUTCString()</li> <li>In backend: HttpHeaders.setDate()</li>'
          example: 'Tue, 29 Jun 2021 14:13:55 GMT'
          schema:
            type: string
      responses:
        '200':
          description: 'List of BusinessEntity + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/BusinessEntityV2'
        '500':
          description: 'Internal server error'
  '/v2/entities/instances/{instanceCode}/businessVersions/{businessVersionCode}':
    get:
      summary: 'V2: Searches business entity instance business version by provided instance code, business version code and search settings. Multilang fields are filtered to the language requested via Accept-Language header.'
      tags:
        - "Business entities operations V2"
      operationId: getBusinessEntityInstanceBusinessVersionV2
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search'
          required: true
          schema:
            type: string
        - name: businessVersionCode
          in: path
          description: 'Business version code for search'
          required: true
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                        Use:
                        <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                        <li>ALL: Without projection, all fields are in response.</li>
                        <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                        <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for multilang field filtering. When provided, only the values for the requested language are returned in multilang fields; all other language mutations are excluded.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'BusinessEntity.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessEntityV2'
        '404':
          description: 'Not found'
        '500':
          description: 'Internal server error'
  '/v2/entities/instances/{instanceCode}/relationship-memberships':
    get:
      summary: 'V2: Searches relationship memberships by provided instance code (member item code) and search settings. Multilang fields are filtered to the language requested via Accept-Language header.'
      tags:
        - "Business entities operations V2"
      operationId: getRelationshipMembershipsByItemCodeV2
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search (member item code).'
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: 'Language for multilang field filtering. When provided, only the values for the requested language are returned in multilang fields; all other language mutations are excluded.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of RelationshipMembership + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/RelationshipMembershipV2'
        '500':
          description: 'Internal server error'
  '/v2/entities/instances/{instanceCode}/businessVersions/{businessVersionCode}/relationship-memberships':
    get:
      summary: 'V2: Searches relationship memberships by provided instance code (member item code), member business version and search settings. Multilang fields are filtered to the language requested via Accept-Language header.'
      tags:
        - "Business entities operations V2"
      operationId: getRelationshipMembershipsByItemCodeAndBusinessVersionCodeV2
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: instanceCode
          in: path
          description: 'Instance code for search (member item code).'
          required: true
          schema:
            type: string
        - name: businessVersionCode
          in: path
          description: 'Member business version code for search.'
          required: true
          schema:
            type: string
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: 'Language for multilang field filtering. When provided, only the values for the requested language are returned in multilang fields; all other language mutations are excluded.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of RelationshipMembership + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/RelationshipMembershipV2'
        '500':
          description: 'Internal server error'
  '/v2/relationships':
    get:
      summary: 'V2: Searches relationships list. Multilang fields are filtered to the language requested via Accept-Language header.'
      tags:
        - "Relationship operations V2"
      operationId: getRelationshipsV2
      parameters:
        - $ref: '#/components/parameters/parametersProjectionFilter'
        - name: size
          in: query
          description: 'Size of entries per page.'
          required: false
          schema:
            type: integer
            default: 10
        - name: searchAfter
          in: query
          description: 'Page identification, used for pagination. When returned results exceed page size, then it''s returned identification of the next page that could be used in following request as page parameter.'
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: 'RSQL filter for data filtering.'
          required: false
          example: 'code==123'
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                      Use:
                      <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                      <li>ALL: Without projection, all fields are in response.</li>
                      <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                      <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for multilang field filtering. When provided, only the values for the requested language are returned in multilang fields; all other language mutations are excluded.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'List of Relationships + metadata.'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/RelationshipV2'
        '500':
          description: 'Internal server error'
  '/v2/relationships/{instanceCode}':
    get:
      summary: 'V2: Searches relationship by provided instance code. Multilang fields are filtered to the language requested via Accept-Language header.'
      tags:
        - "Relationship operations V2"
      operationId: getRelationshipByCodeV2
      parameters:
        - name: instanceCode
          in: path
          description: 'Instance code for search.'
          required: true
          schema:
            type: string
        - name: fieldsProjection
          in: query
          description: 'Profile for default projection.<br>
                      Use:
                      <li>empty: Default configured profile is selected. If query fieldsIncluded or fieldsExcluded is not empty, then it is used query fieldsIncluded or fieldsExcluded.</li>
                      <li>ALL: Without projection, all fields are in response.</li>
                      <li>MEDIUM: Configured MEDIUM profile is selected.</li>
                      <li>LIGHT: Configured LIGHT profile is selected.</li>'
          required: false
          example: 'ALL'
          schema:
            type: string
            enum:
              - empty
              - ALL
              - MEDIUM
              - LIGHT
        - name: fieldsIncluded
          in: query
          description: 'Fields to be included in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fieldsExcluded
          in: query
          description: 'Fields to be excluded in the response.'
          required: false
          schema:
            type: array
            items:
              type: string
        - name: Accept-Language
          in: header
          description: 'Language for multilang field filtering. When provided, only the values for the requested language are returned in multilang fields; all other language mutations are excluded.'
          example: cs
          schema:
            type: string
      responses:
        '200':
          description: 'Relationship.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelationshipV2'
        '404':
          description: 'Not found'
        '500':
          description: 'Internal server error'
  /feed/products:
    get:
      tags:
        - Feed operations
      summary: 'Serves products XML feed to output stream.'
      description: 'This method generates a products xml feed and sends it to the output stream. The consumer can specify a price level and an optional fields projection. The resulting file is served as an application/octet-stream and can be downloaded through the browser.'
      operationId: 'productFeedXml'
      parameters:
        - name: 'priceLevel'
          in: 'query'
          description: 'Requested price level'
          required: true
          schema:
            type: 'string'
        - name: 'fieldsProjection'
          in: 'query'
          description: 'Fields projection, this is an optional parameter'
          required: false
          schema:
            type: 'string'
      responses:
        '200':
          description: 'OK. The resource was fetched and is transmitted in the message body.'
          content:
            application/octet-stream:
              schema:
                type: 'string'
                format: 'binary'
        '400':
          description: 'Bad Request. The server could not understand the request due to invalid syntax.'
        '500':
          description: 'Internal Server Error. A server error occurred.'
components:
  schemas:
    PageResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
        metadata:
          $ref: '#/components/schemas/Metadata'
    Metadata:
      type: object
      properties:
        totalHits:
          type: integer
        searchAfter:
          type: string
    BusinessEntity:
      allOf:
        - $ref: '#/components/schemas/Item'
        - type: object
          properties:
            businessEntityComponentLinks:
              type: array
              items:
                $ref: '#/components/schemas/BusinessEntityComponentLink'
    Item:
      allOf:
        - $ref: '#/components/schemas/ItemBasicInfo'
        - type: object
          properties:
            activationDateTime:
              type: string
              format: date-time
            publicationDateTime:
              type: string
              format: date-time
            version:
              $ref: '#/components/schemas/BusinessEntityVersion'
            type:
              $ref: '#/components/schemas/BusinessEntityType'
            state:
              $ref: '#/components/schemas/BusinessEntityState'
            categorizations:
              type: array
              items:
                $ref: '#/components/schemas/Categorization'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/Parameter'
            relationshipMemberships:
              type: array
              items:
                $ref: '#/components/schemas/RelationshipMembership'
    BusinessEntityComponent:
      allOf:
        - $ref: '#/components/schemas/ItemBasicInfo'
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/BusinessEntityType'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/Parameter'
    BusinessEntityOtherMember:
      type: object
      properties:
        itemCode:
          type: string
        code:
          type: string
        aliases:
          type: array
          items:
            $ref: '#/components/schemas/Alias'
    Relationship:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            lastModificationDateTime:
              type: string
              format: date-time
            publicationDateTime:
              type: string
              format: date-time
            definition:
              $ref: '#/components/schemas/RelationshipDefinition'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/Parameter'
            roles:
              type: array
              items:
                $ref: '#/components/schemas/RelationshipRole'
    BasicInfo:
      title: BasicInfo
      type: object
      properties:
        code:
          type: string
        name:
          type: string
        description:
          type: string
    ItemBasicInfo:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            aliases:
              type: array
              items:
                $ref: '#/components/schemas/Alias'
    BehaviorModifier:
      type: object
      properties:
        code:
          type: string
        groupCode:
          type: string
    BusinessEntityVersion:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            validFrom:
              type: string
              format: date-time
            validTo:
              type: string
              format: date-time
    BusinessEntityType:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
    BusinessEntityState:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            stateGroup:
              type: string
    Categorization:
      type: object
      properties:
        path:
          type: string
        hierarchy:
          $ref: '#/components/schemas/Hierarchy'
        ancestors:
          type: array
          items:
            $ref: '#/components/schemas/Category'
    Hierarchy:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            primary:
              type: boolean
    Category:
      allOf:
        - $ref: '#/components/schemas/ItemBasicInfo'
    Parameter:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            isCollection:
              type: boolean
            elements:
              type: array
              items:
                $ref: '#/components/schemas/ParameterElement'
            dataType:
              $ref: '#/components/schemas/DataType'
    ParameterElement:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            attributes:
              type: array
              items:
                $ref: '#/components/schemas/Attribute'
    Attribute:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/AttributeDefinition'
        values:
          type: array
          items:
            $ref: '#/components/schemas/AttributeValue'
        constraints:
          $ref: '#/components/schemas/Constraints'
    AttributeDefinition:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            baseDataType:
              $ref: '#/components/schemas/BaseDataType'
            path:
              type: string
            multiValued:
              type: boolean
            ancestors:
              type: array
              description: >-
                List of nested data structure ancestors in hierarchical order (from root to leaf).
                The first element is the topmost ancestor in the hierarchy, and subsequent elements
                follow the path down to the parent of the current attribute.
                For example, if path is "ROOT.LEVEL1.LEVEL2.ATTR", ancestors would contain
                [LEVEL1, LEVEL2] in that order.
              items:
                $ref: '#/components/schemas/NestedDataStructureInfo'
    NestedDataStructureInfo:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          description: Information about a nested data structure in the attribute path hierarchy
    AttributeValue:
      type: object
      properties:
        value:
          type: string
        multiLangValue:
          description: 'String in various languages/translations. Represented as map <languageCode: translation>'
          type: object
          additionalProperties:
            type: string
          example:
            cs: Popis
            en: Description
        numericValue:
          type: number
          format: double
        dateTimeValue:
          type: string
          format: date-time
        dateValue:
          type: string
          format: date
        timeValue:
          type: string
          description: 'Time in format: HH:mm or HH:mm:ss'
          example: '09:00'
        booleanValue:
          type: boolean
        valueUnit:
          type: string
        aliases:
          type: array
          items:
            $ref: '#/components/schemas/Alias'
    Constraints:
      type: object
      properties:
        mandatory:
          $ref: '#/components/schemas/MandatoryConstraint'
        numeric:
          $ref: '#/components/schemas/NumericConstraint'
        text:
          $ref: '#/components/schemas/TextConstraint'
        enumeration:
          $ref: '#/components/schemas/EnumerationConstraint'
        valueType:
          $ref: '#/components/schemas/ValueTypeConstraint'
        globalConstraints:
          type: array
          items:
            $ref: '#/components/schemas/GlobalConstraint'
    EnrichedBooleanValue:
      type: object
      properties:
        value:
          type: boolean
    EnrichedNumberValue:
      type: object
      properties:
        value:
          type: number
          format: double
    EnrichedStringValue:
      type: object
      properties:
        value:
          type: string
    EnrichedStringValues:
      type: object
      properties:
        value:
          type: array
          items:
            type: string
    MandatoryConstraint:
      type: object
      properties:
        mandatory:
          $ref: '#/components/schemas/EnrichedBooleanValue'
    NumericConstraint:
      type: object
      properties:
        min:
          $ref: '#/components/schemas/EnrichedNumberValue'
        minIncluded:
          $ref: '#/components/schemas/EnrichedBooleanValue'
        max:
          $ref: '#/components/schemas/EnrichedNumberValue'
        maxIncluded:
          $ref: '#/components/schemas/EnrichedBooleanValue'
        numberOfDecimals:
          $ref: '#/components/schemas/EnrichedNumberValue'
    TextConstraint:
      type: object
      properties:
        minLength:
          $ref: '#/components/schemas/EnrichedNumberValue'
        maxLength:
          $ref: '#/components/schemas/EnrichedNumberValue'
        regex:
          $ref: '#/components/schemas/EnrichedStringValue'
    EnumerationConstraint:
      type: object
      properties:
        string:
          $ref: '#/components/schemas/EnrichedStringValues'
    ValueTypeConstraint:
      type: object
      properties:
        valueTypeCode:
          $ref: '#/components/schemas/EnrichedStringValue'
        defaultUnit:
          $ref: '#/components/schemas/EnrichedStringValue'
    GlobalConstraint:
      type: object
      properties:
        constraintCode:
          $ref: '#/components/schemas/EnrichedStringValue'
    DataType:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
            simple:
              type: boolean
    RelationshipMembership:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            lastModificationDateTime:
              type: string
              format: date-time
            publicationDateTime:
              type: string
              format: date-time
            definition:
              $ref: '#/components/schemas/RelationshipDefinition'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/Parameter'
            selfRole:
              $ref: '#/components/schemas/RelationshipRole'
            otherRoles:
              type: array
              items:
                $ref: '#/components/schemas/RelationshipRole'
    RelationshipDefinition:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            roleParticipantType:
              type: string
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
    RelationshipRole:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/RelationshipRoleDefinition'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/Parameter'
        memberItems:
          type: array
          items:
            $ref: '#/components/schemas/MemberItem'
    RelationshipRoleDefinition:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
    MemberItem:
      allOf:
        - $ref: '#/components/schemas/ItemBasicInfo'
        - type: object
          properties:
            version:
              $ref: '#/components/schemas/BusinessEntityVersion'
    BusinessEntityComponentLink:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            definition:
              $ref: '#/components/schemas/BusinessEntityDefinition'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/Parameter'
            ownerRole:
              $ref: '#/components/schemas/OwnerRole'
            componentRoles:
              type: array
              items:
                $ref: '#/components/schemas/ComponentRole'
            otherMemberRoles:
              type: array
              items:
                $ref: '#/components/schemas/OtherMemberRole'
    OwnerRole:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/RelationshipRoleDefinition'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/Parameter'
    ComponentRole:
        type: object
        properties:
          definition:
            $ref: '#/components/schemas/RelationshipRoleDefinition'
          parameters:
            type: array
            items:
              $ref: '#/components/schemas/Parameter'
          memberItems:
            type: array
            items:
              $ref: '#/components/schemas/BusinessEntityComponent'
    OtherMemberRole:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/RelationshipRoleDefinition'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/Parameter'
        memberItems:
          type: array
          items:
            $ref: '#/components/schemas/BusinessEntityOtherMember'
    BusinessEntityDefinition:
      allOf:
        - $ref: '#/components/schemas/BasicInfo'
        - type: object
          properties:
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
    BaseDataType:
      type: string
      enum:
        - STRING
        - NUMERIC
        - DATETIME
        - DATE
        - TIME
        - BOOLEAN
        - MULTILANG
    Alias:
      type: object
      properties:
        definitionCode:
          type: string
        value:
          type: string
        multiAliasDifferentiator:
          type: string
    MultiLangString:
      description: 'Multi-language string represented as a map of language code to translated value.'
      type: object
      additionalProperties:
        type: string
      example:
        cs: Název
        en: Name
    BasicInfoV2:
      title: BasicInfoV2
      description: 'V2 variant of BasicInfo where name and description are multilang objects instead of plain strings.'
      type: object
      properties:
        code:
          type: string
        name:
          $ref: '#/components/schemas/MultiLangString'
        description:
          $ref: '#/components/schemas/MultiLangString'
    ItemBasicInfoV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            aliases:
              type: array
              items:
                $ref: '#/components/schemas/Alias'
    BusinessEntityVersionV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            validFrom:
              type: string
              format: date-time
            validTo:
              type: string
              format: date-time
    BusinessEntityTypeV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
    BusinessEntityStateV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            stateGroup:
              type: string
    HierarchyV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            primary:
              type: boolean
    CategoryV2:
      allOf:
        - $ref: '#/components/schemas/ItemBasicInfoV2'
    CategorizationV2:
      type: object
      properties:
        path:
          type: string
        hierarchy:
          $ref: '#/components/schemas/HierarchyV2'
        ancestors:
          type: array
          items:
            $ref: '#/components/schemas/CategoryV2'
    NestedDataStructureInfoV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          description: Information about a nested data structure in the attribute path hierarchy
    AttributeDefinitionV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            baseDataType:
              $ref: '#/components/schemas/BaseDataType'
            path:
              type: string
            multiValued:
              type: boolean
            ancestors:
              type: array
              description: >-
                List of nested data structure ancestors in hierarchical order (from root to leaf).
                The first element is the topmost ancestor in the hierarchy, and subsequent elements
                follow the path down to the parent of the current attribute.
                For example, if path is "ROOT.LEVEL1.LEVEL2.ATTR", ancestors would contain
                [LEVEL1, LEVEL2] in that order.
              items:
                $ref: '#/components/schemas/NestedDataStructureInfoV2'
    AttributeV2:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/AttributeDefinitionV2'
        values:
          type: array
          items:
            $ref: '#/components/schemas/AttributeValue'
        constraints:
          $ref: '#/components/schemas/Constraints'
    DataTypeV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
            simple:
              type: boolean
    ParameterElementV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            attributes:
              type: array
              items:
                $ref: '#/components/schemas/AttributeV2'
    ParameterV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            isCollection:
              type: boolean
            elements:
              type: array
              items:
                $ref: '#/components/schemas/ParameterElementV2'
            dataType:
              $ref: '#/components/schemas/DataTypeV2'
    RelationshipDefinitionV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            roleParticipantType:
              type: string
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
    RelationshipRoleDefinitionV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
    MemberItemV2:
      allOf:
        - $ref: '#/components/schemas/ItemBasicInfoV2'
        - type: object
          properties:
            version:
              $ref: '#/components/schemas/BusinessEntityVersionV2'
    RelationshipRoleV2:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/RelationshipRoleDefinitionV2'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/ParameterV2'
        memberItems:
          type: array
          items:
            $ref: '#/components/schemas/MemberItemV2'
    RelationshipMembershipV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            lastModificationDateTime:
              type: string
              format: date-time
            publicationDateTime:
              type: string
              format: date-time
            definition:
              $ref: '#/components/schemas/RelationshipDefinitionV2'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/ParameterV2'
            selfRole:
              $ref: '#/components/schemas/RelationshipRoleV2'
            otherRoles:
              type: array
              items:
                $ref: '#/components/schemas/RelationshipRoleV2'
    BusinessEntityComponentV2:
      allOf:
        - $ref: '#/components/schemas/ItemBasicInfoV2'
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/BusinessEntityTypeV2'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/ParameterV2'
    BusinessEntityDefinitionV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            behaviorModifiers:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/BehaviorModifier'
    OwnerRoleV2:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/RelationshipRoleDefinitionV2'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/ParameterV2'
    ComponentRoleV2:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/RelationshipRoleDefinitionV2'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/ParameterV2'
        memberItems:
          type: array
          items:
            $ref: '#/components/schemas/BusinessEntityComponentV2'
    OtherMemberRoleV2:
      type: object
      properties:
        definition:
          $ref: '#/components/schemas/RelationshipRoleDefinitionV2'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/ParameterV2'
        memberItems:
          type: array
          items:
            $ref: '#/components/schemas/BusinessEntityOtherMember'
    BusinessEntityComponentLinkV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            definition:
              $ref: '#/components/schemas/BusinessEntityDefinitionV2'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/ParameterV2'
            ownerRole:
              $ref: '#/components/schemas/OwnerRoleV2'
            componentRoles:
              type: array
              items:
                $ref: '#/components/schemas/ComponentRoleV2'
            otherMemberRoles:
              type: array
              items:
                $ref: '#/components/schemas/OtherMemberRoleV2'
    ItemV2:
      allOf:
        - $ref: '#/components/schemas/ItemBasicInfoV2'
        - type: object
          properties:
            activationDateTime:
              type: string
              format: date-time
            publicationDateTime:
              type: string
              format: date-time
            version:
              $ref: '#/components/schemas/BusinessEntityVersionV2'
            type:
              $ref: '#/components/schemas/BusinessEntityTypeV2'
            state:
              $ref: '#/components/schemas/BusinessEntityStateV2'
            categorizations:
              type: array
              items:
                $ref: '#/components/schemas/CategorizationV2'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/ParameterV2'
            relationshipMemberships:
              type: array
              items:
                $ref: '#/components/schemas/RelationshipMembershipV2'
    BusinessEntityV2:
      allOf:
        - $ref: '#/components/schemas/ItemV2'
        - type: object
          properties:
            businessEntityComponentLinks:
              type: array
              items:
                $ref: '#/components/schemas/BusinessEntityComponentLinkV2'
    RelationshipV2:
      allOf:
        - $ref: '#/components/schemas/BasicInfoV2'
        - type: object
          properties:
            lastModificationDateTime:
              type: string
              format: date-time
            publicationDateTime:
              type: string
              format: date-time
            definition:
              $ref: '#/components/schemas/RelationshipDefinitionV2'
            parameters:
              type: array
              items:
                $ref: '#/components/schemas/ParameterV2'
            roles:
              type: array
              items:
                $ref: '#/components/schemas/RelationshipRoleV2'
  parameters:
    parametersProjectionFilter:
      in: query
      name: parametersProjectionFilter
      required: false
      example: 'parameterCode1::elementCode::attributeCode//parameterCode2,rsql[query:name==paramName]::elementCode2,rsql[query:definition.name==elementName]::attributeCode2'
      schema:
        type: string
      description: TODO