openapi: 3.1.0
info:
  title: Policy Management System
  description: |-
    # Content negotiation

    ## Encoding

    `gzip` is supported for mime
    types `text/html`, `text/xml`, `text/plain`, `text/css`, `text/javascript`, `application/javascript`, `application/json`, `application/xml`
    if the response size exceed 2KB.

    ```bash
    curl -v --location '<server>/policies' \
      -E <certificate> \
      --header 'Accept-Encoding: gzip, deflate, br' \
      --header 'Accept: application/json' \
      --header 'Authorization: Bearer <bearer>'
    ```

    ```bash
    > GET /policies HTTP/1.1
    > User-Agent: curl/7.80.0
    > Accept-Encoding: gzip, deflate, br
    > Accept: application/json
    > ...

    < HTTP/1.1 200
    ...
    < Content-Encoding: gzip
    < Content-Type: application/json
    ```

    ## Content Type

    The api will answer to the requested content type. Supported Media types are `application/json`, `application/xml`, `
    application/cbor` and `application/x-jackson-smile`

    ```bash
    curl --location '<server>/policies' \
      -E <certificate> \
      --header 'Accept: application/xml' \
      --header 'Authorization: Bearer <bearer>'
    ```

    ```xml

    <PagedModel>
        ...
    </PagedModel>
    ```

    ## Language

    Currency and financial amount will always have the raw value alongside the formatted one. The format will be deducted
    from the given locale in `Accept-Language` header

    ```bash
    curl --location '<server>/policies/<id>/valuations' \
      -E <certificate> \
      --header 'Accept-Language: en-US' \
      --header 'Authorization: Bearer <bearer>'
    ```

    ```json
    {
      "amount": 6258960.926773,
      "currency": "EUR",
      "formatted": "EUR6,258,960.93"
    }
    ```

    ```bash
    curl --location '<server>/policies/<id>/valuations' \
      -E <certificate> \
      --header 'Accept-Language: fr-FR' \
      --header 'Authorization: Bearer <bearer>'
    ```

    ```json
    {
      "amount": 6258960.926773,
      "currency": "EUR",
      "formatted": "6 258 960,93 EUR"
    }
    ```

    # Search

    Most search endpoint can be filtered and sorted

    ## Pagination

    If the search has pagination capabilities, the resource takes the following query parameters:

    - `page`: The page number to access (0 indexed, defaults to 0).

    - `size`: The page size requested (defaults to 20, unless another specific defaults applies).

    - `sort`: A collection of sort directives in the format `property,[asc|desc]`. If not specified, it takes in ascendant
      format. Ex: `sort=someStatus&sort=someDate,desc` will first order on someStatus in ascending, then on someDate in
      descending.

      ## Filtering

    If the search has filtering capabilities, the resource takes the following query parameters `property.operation=value`

    The operations are

    - `equal`: `a=b` strict equality `policyId.equal=0123456` and shorthand `policyId=0123456` (alias `eq` or `equals`)

    - `oneOf`: `a=b or a=c` multiple choice `policyId.oneOf=0123456&policyId.oneOf=987654` (alias `in`)

    - `lessThan`: `a< b` `effectiveDate.lowerThan=2020-01-01` (alias `lt` or `below`)

    - `lessThanOrEqual`: `a<=b` `effectiveDate.lowerThanOrEqual=2020-01-01` (alias `lte` or `most` or `loe`)

    - `greaterThan`: `a>b` `effectiveDate.greaterThan=2020-01-01` (alias `gt` or `above`)

    - `greaterThanOrEqual`: `a>=b` `effectiveDate.greaterThanOrEqual=2020-01-01` (alias `gte` or `least` or `goe`)

    - `include`: `'worl' is included in 'hello world'` `policyId.include=123` (alias `includes` or `contain` or `contains`)

      Please note that depending on the actual type of property, some operator might not be available. For example, it does
      not make sense to have "greaterThanOrEqual" operation on String ids.

    # Hateoas + HAL

    The HAL format is strictly coupled to HATEOAS. The main target of HATEOAS is to decouple the API Consumer from the paths
    used in the API. The API Client uses the links generated by our API instead of building them from the documentation.
    This is less error-prone for the API Consumer and it can allow making changes in the API without affecting the API
    Consumer code.

    ## Pagination links with embedded resources

     ```json
    {
      "_embedded": {
        "policies": [
          // Array of policies
        ]
      },
      "_links": {
        "first": {
          "href": "<url>/policies?page=0&size=10"
        },
        "self": {
          "href": "<url>/policies?page=0&size=10"
        },
        "next": {
          "href": "<url>/policies?page=1&size=10"
        },
        "last": {
          "href": "<url>/policies?page=8892&size=10"
        }
      },
      "page": {
        "size": 10,
        "totalElements": 88925,
        "totalPages": 8893,
        "number": 0
      }
    }
     ```

    ## Resources links

    ```json
    {
      "policyId": "<id>",
      // ... properties
      "_links": {
        "self": {
          "href": "<url>/policies/<id>"
        },
        "actors": {
          "href": "<url>/policies/<id>/actors"
        },
        "holders": {
          "href": "<url>/policies/<id>/actors?roleType.oneOf=HOLDER"
        },
        "insured": {
          "href": "<url>/policies/<id>/actors?roleType.oneOf=ASSURED"
        },
        "valuations": {
          "href": "<url>/policies/<id>/valuations"
        },
        "yearToYearValuations": {
          "href": "<url>/policies/<id>/valuations?size=13&page=0&sort=date,desc"
        },
        "lastValuation": {
          "href": "<url>/policies/<id>/valuations?size=1&page=0&sort=date,desc"
        }
      }
    }
    ```
  contact:
    name: Cardif Lux Vie - Digital Squad
    email: digitalsquad@cardifluxvie.lu
  version: v1
servers:
- url: https://foundation.clv.cardif.api.staging.bnpparibas/oauth2/v1
- url: https://foundation.clv.cardif.api.bnpparibas/oauth2/v1
tags:
- name: Third Party
  description: Search and retrieve third parties
- name: Fund
  description: Search and retrieve funds
- name: Policy
  description: Search and retrieve policies
paths:
  /third-parties/{thirdPartyId}:
    get:
      tags:
      - Third Party
      summary: Retrieve details of a third party.
      description: |-
        Retrieve details of a third party. Returns NOT FOUND if it does not exist or if the account has
         no access to this police. Account must have an active relationship with the third party
      operationId: getThirdParty
      parameters:
      - name: thirdPartyId
        in: path
        description: the third party identifier
        required: true
        schema:
          type: string
      - name: includes
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - addresses
          uniqueItems: true
      responses:
        "200":
          description: The details of the third party
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ThirdPartyModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/ThirdPartyModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/ThirdPartyModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/ThirdPartyModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/ThirdPartyModel"
        "404":
          description: Not found or resource not accessible for the connected account
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /third-parties/{thirdPartyId}/addresses:
    get:
      tags:
      - Third Party
      summary: Retrieve third party adresses.
      description: |-
        Retrieve third party adresses. Returns NOT FOUND if it does not exist or if the account has no
         access to this third party
      operationId: findThirdPartyAddresses
      parameters:
      - name: thirdPartyId
        in: path
        description: the person identifier
        required: true
        schema:
          type: string
      responses:
        "200":
          description: the third party addresses
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CollectionModelThirdPartyAddressModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/CollectionModelThirdPartyAddressModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/CollectionModelThirdPartyAddressModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/CollectionModelThirdPartyAddressModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/CollectionModelThirdPartyAddressModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies:
    get:
      tags:
      - Policy
      summary: Search policies belonging to the connected account
      description: |-
        Search policies belonging to the connected account. The response is paginated with a max page
         size of 1000. The service has reasonable input validation, in such case, a BadRequest will be
         presented with the details.

         <p>Examples

         <p><code>/policies</code> Retrieve the first 10 policies

         <p><code>/policies?page=0&amp;size=100</code> Retrieve the first 100 policies

         <p><code>/policies?page=1&amp;size=100</code> Retrieve from the 101st to 200th policies

         <p><code>/policies?effectiveDate=2023-01-26</code> Retrieve the first 100 having effective date of
         2023-01-26

         <p><code>/policies?effectiveDate.lowerThan=2020-01-26&amp;effectiveDate.greaterThan=1980-01-26</code>
         Retrieve the first 100 having effective date between 1980-01-26 and 2020-01-26

         <p><code>/policies?sort=effectiveDate,desc&amp;sort=policyId</code> Retrieve the first 100 ordered first
         by effectiveDate desc, then by policyId
      operationId: findPolicies
      parameters:
      - name: page
        in: query
        description: Zero-based page index (0..N)
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
      - name: size
        in: query
        description: The size of the page to be returned
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
      - name: sort
        in: query
        description: "Sorting criteria in the format: property,(asc|desc). Default\
          \ sort order is ascending. Multiple sort criteria are supported."
        required: false
        schema:
          type: array
          items:
            type: string
      - name: effectiveDate.greaterThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.lessThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.equal
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: endDate.greaterThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.lessThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.equal
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: status.equal
        in: query
        required: false
        schema:
          type: string
          enum:
          - BANKRUPTCY
          - CANC
          - CLAIMED
          - CLOSE
          - DEATH_CL
          - EMPTY
          - FORCE
          - IN_ADJUST
          - INAC
          - NA
          - NOTPROC
          - OPEN
          - PAID_UP
          - PEND
          - PEND_ADJ
          - PEND_SURR
          - RELEAS
          - RENUNC
          - SURREN
          - SYSU
          - TERM
          - TRANSF
      - name: status.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: productIdentifier.include
        in: query
        required: false
        schema:
          type: string
      - name: productIdentifier.greaterThan
        in: query
        required: false
        schema:
          type: string
      - name: productIdentifier.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
      - name: productIdentifier.lessThan
        in: query
        required: false
        schema:
          type: string
      - name: productIdentifier.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
      - name: productIdentifier.equal
        in: query
        required: false
        schema:
          type: string
      - name: productIdentifier.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: policyId.include
        in: query
        required: false
        schema:
          type: string
      - name: policyId.greaterThan
        in: query
        required: false
        schema:
          type: string
      - name: policyId.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
      - name: policyId.lessThan
        in: query
        required: false
        schema:
          type: string
      - name: policyId.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
      - name: policyId.equal
        in: query
        required: false
        schema:
          type: string
      - name: policyId.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      responses:
        "200":
          description: The paginated result of policies
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}:
    get:
      tags:
      - Policy
      summary: Retrieve details of a policy.
      description: |-
        Retrieve details of a policy. Returns NOT FOUND if it does not exist or if the account has no
         access to this police
      operationId: getPolicy
      parameters:
      - name: policyId
        in: path
        description: the policy identifier
        required: true
        schema:
          type: string
      - name: includes
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - actors
            - fundStocks
            - actors.addresses
          uniqueItems: true
      responses:
        "200":
          description: The details of the police
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PolicyModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/PolicyModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/PolicyModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/PolicyModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/PolicyModel"
        "404":
          description: Not found or resource not accessible for the connected account
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}/valuations:
    get:
      tags:
      - Policy
      summary: Search valuations belonging to the given policy
      description: |-
        Search valuations belonging to the given policy. The response is paginated with a max page size
         of 1000. The service has reasonable input validation, in such case, a BadRequest will be
         presented with the details. By default, it returns the year-to-year (last 13 valuations) order
         by date,desc

         <p>Examples

         <p><code>/policies/{id</code>/valuations} Retrieve the year-to-year valuation.

         <p><code>/policies/{id</code>/valuations?page=0&size=1} Retrieve the last valuation

         <p><code>
         /policies/{id</code>/valuations?page=0&size=1&date.greaterThanOrEqual=2020-01-01&date.lessThan=2020-02-01}
         Retrieve the closing valuation of january 2020

         <p><code>/policies/{id</code>/valuations?page=0&size=1&date=2020-01-30} Retrieve the closing
         valuation of january 2020
      operationId: findPolicyValuations
      parameters:
      - name: policyId
        in: path
        description: the policy id
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: Zero-based page index (0..N)
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
      - name: size
        in: query
        description: The size of the page to be returned
        required: false
        schema:
          type: integer
          default: 13
          minimum: 1
      - name: sort
        in: query
        description: "Sorting criteria in the format: property,(asc|desc). Default\
          \ sort order is ascending. Multiple sort criteria are supported."
        required: false
        schema:
          type: array
          default:
          - "date,DESC"
          items:
            type: string
      - name: date.greaterThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: date.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: date.lessThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: date.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: date.equal
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: date.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      responses:
        "200":
          description: the paginated search results
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyValuationModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyValuationModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyValuationModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyValuationModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyValuationModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}/operations:
    get:
      tags:
      - Policy
      summary: Retrieve operations of a policy.
      description: |-
        Retrieve operations of a policy. Returns NOT FOUND if it does not exist or if the account has
         no access to this police
      operationId: findPolicyOperations
      parameters:
      - name: policyId
        in: path
        description: the policy identifier
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: Zero-based page index (0..N)
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
      - name: size
        in: query
        description: The size of the page to be returned
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
      - name: sort
        in: query
        description: "Sorting criteria in the format: property,(asc|desc). Default\
          \ sort order is ascending. Multiple sort criteria are supported."
        required: false
        schema:
          type: array
          default:
          - "effectiveDate,DESC"
          items:
            type: string
      - name: operationId.equal
        in: query
        required: false
        schema:
          type: string
      - name: operationId.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: creationDate.greaterThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: creationDate.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: creationDate.lessThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: creationDate.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: creationDate.equal
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: creationDate.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: effectiveDate.greaterThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.lessThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.equal
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: effectiveDate.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: includes
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - fundMovements
          uniqueItems: true
      responses:
        "200":
          description: The array of operations
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyOperationModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyOperationModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyOperationModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyOperationModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelPolicyOperationModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}/operations/{operationId}:
    get:
      tags:
      - Policy
      summary: Get operation of a policy.
      description: |-
        Get operation of a policy. Returns NOT FOUND if it does not exist or if the account has no
         access to this police
      operationId: getPolicyOperation
      parameters:
      - name: policyId
        in: path
        description: the policy identifier
        required: true
        schema:
          type: string
      - name: operationId
        in: path
        description: the operation identifier
        required: true
        schema:
          type: string
      responses:
        "200":
          description: The operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PolicyOperationModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/PolicyOperationModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/PolicyOperationModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/PolicyOperationModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/PolicyOperationModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}/operations/{operationId}/fund-movements:
    get:
      tags:
      - Policy
      summary: Retrieve movements of given operation.
      description: |-
        Retrieve movements of given operation. Returns NOT FOUND if it does not exist or if the account
         has no access to this police
      operationId: findPolicyOperationMovements
      parameters:
      - name: policyId
        in: path
        description: the policy identifier
        required: true
        schema:
          type: string
      - name: operationId
        in: path
        description: the operation identifier
        required: true
        schema:
          type: string
      responses:
        "200":
          description: The array of movements
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CollectionModelFundMovementModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/CollectionModelFundMovementModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/CollectionModelFundMovementModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/CollectionModelFundMovementModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/CollectionModelFundMovementModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}/fund-stocks:
    get:
      tags:
      - Policy
      summary: Retrieve fund stock of a policy.
      description: |-
        Retrieve fund stock of a policy. Can be also retrieved as a PDF file. Returns NOT FOUND if it
         does not exist or if the account has no access to this police
      operationId: findPolicyFundStocks
      parameters:
      - name: policyId
        in: path
        description: the policy identifier
        required: true
        schema:
          type: string
      - name: fundId.equal
        in: query
        required: false
        schema:
          type: string
      - name: fundId.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      responses:
        "200":
          description: The array of fund stocks
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyFundStockModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyFundStockModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyFundStockModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyFundStockModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyFundStockModel"
            application/pdf:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyFundStockModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}/documents:
    get:
      tags:
      - Policy
      summary: Search documents belonging to the given policy
      description: Search documents belonging to the given policy
      operationId: findPolicyDocuments
      parameters:
      - name: policyId
        in: path
        description: the policy id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: the paginated search results
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyDocumentModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyDocumentModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyDocumentModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyDocumentModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyDocumentModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}/documents/{objectId}:
    get:
      tags:
      - Policy
      summary: Download a specific document.
      description: |-
        Download a specific document. "Content-Disposition" will be properly set so that the response
         can be embedded in a browser, "inline; filename="document.pdf". "Content-Type" will contain the
         media type of the file if known, or it will fall back to "application/octet-stream"
      operationId: downloadPolicyDocument
      parameters:
      - name: policyId
        in: path
        description: the policy id
        required: true
        schema:
          type: string
      - name: objectId
        in: path
        description: |-
          the document id. Please note that it contains characters that need proper
               encoding in the url. If not sure, check out the hateoas links on retrieveDocuments
        required: true
        schema:
          type: string
      responses:
        "200":
          description: the document binary
          content:
            application/json:
              schema:
                type: string
                format: binary
            application/xml:
              schema:
                type: string
                format: binary
            application/x-yaml:
              schema:
                type: string
                format: binary
            application/cbor:
              schema:
                type: string
                format: binary
            application/x-jackson-smile:
              schema:
                type: string
                format: binary
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /policies/{policyId}/actors:
    get:
      tags:
      - Policy
      summary: Retrieve third parties relations of a policy.
      description: |-
        Retrieve third parties relations of a policy. Returns NOT FOUND if it does not exist or if the
         account has no access to this police
      operationId: findPolicyActors
      parameters:
      - name: policyId
        in: path
        description: the policy identifier
        required: true
        schema:
          type: string
      - name: roleType.equal
        in: query
        required: false
        schema:
          type: string
          enum:
          - ASSURED
          - ECONOMIC_BENEFICIARY
          - HOLDER
          - CESSION_HOLDER
          - CHILD_BENEFICIARY
          - LEGAL_REPRESENTATIVE
          - THIRD_PARTY_AGENT
          - ARBITRAGE_AGENT
          - BROKER
          - COMMERCIAL_PARTNER
      - name: roleType.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: thirdPartyId.equal
        in: query
        required: false
        schema:
          type: string
      - name: thirdPartyId.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      responses:
        "200":
          description: The array of third parties
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyActorModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyActorModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyActorModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyActorModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/CollectionModelPolicyActorModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /funds/{fundId}:
    get:
      tags:
      - Fund
      summary: Retrieve details of a fund.
      description: |-
        Retrieve details of a fund. Returns NOT FOUND if it does not exist or if the account has no
         access to this fund. Account must have a valid relationship between a portfolio policy and the
         fund.
      operationId: getFund
      parameters:
      - name: fundId
        in: path
        description: the fund identifier
        required: true
        schema:
          type: string
      responses:
        "200":
          description: The details of the fund
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FundModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/FundModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/FundModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/FundModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/FundModel"
        "404":
          description: Not found or resource not accessible for the connected account
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
  /funds/{fundId}/valuations:
    get:
      tags:
      - Fund
      summary: Search valuations belonging to the given fund
      description: |-
        Search valuations belonging to the given fund. The response is paginated with a max page size
         of 1000. The service has reasonable input validation, in such case, a BadRequest will be
         presented with the details. By default, it returns last 10 valuations (order by date,desc)

         <p>Examples

         <p><code>/funds/{id</code>/valuations} Retrieve last 10 valuations.

         <p><code>/funds/{id</code>/valuations?page=0&size=1} Retrieve the last valuation

         <p><code>
         /funds/{id</code>/valuations?page=0&size=1&date.greaterThanOrEqual=2020-01-01&date.lessThan=2020-02-01}
         Retrieve the closing valuation of january 2020
      operationId: findFundValuations
      parameters:
      - name: fundId
        in: path
        description: the fund id
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: Zero-based page index (0..N)
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
      - name: size
        in: query
        description: The size of the page to be returned
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
      - name: sort
        in: query
        description: "Sorting criteria in the format: property,(asc|desc). Default\
          \ sort order is ascending. Multiple sort criteria are supported."
        required: false
        schema:
          type: array
          default:
          - "startDate,DESC"
          items:
            type: string
      - name: startDate.greaterThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: startDate.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: startDate.lessThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: startDate.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: startDate.equal
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: startDate.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      - name: endDate.greaterThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.greaterThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.lessThan
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.lessThanOrEqual
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.equal
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate.oneOf
        in: query
        required: false
        schema:
          type: array
          items: {}
      responses:
        "200":
          description: the paginated search results
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelFundValuationModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelFundValuationModel"
            application/x-yaml:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelFundValuationModel"
            application/cbor:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelFundValuationModel"
            application/x-jackson-smile:
              schema:
                $ref: "#/components/schemas/PagedModelEntityModelFundValuationModel"
        "400":
          description: Invalid parameters
      security:
      - Authentication: []
components:
  schemas:
    LegalEntityModel:
      type: object
      properties:
        corporateName:
          type: string
      required:
      - corporateName
    NaturalPersonModel:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
      required:
      - firstName
      - lastName
    ThirdPartyAddressModel:
      type: object
      properties:
        addressId:
          type: integer
          format: int64
        city:
          type: string
        streetAddress:
          type: string
        zipCode:
          type: string
        number:
          type: string
        countryCode:
          type: string
        legalAddress:
          type: boolean
        _links:
          $ref: "#/components/schemas/Links"
    ThirdPartyModel:
      type: object
      properties:
        thirdPartyId:
          type: string
        legalStatusIndicatorCode:
          type: string
          enum:
          - PM
          - PP
        naturalPerson:
          $ref: "#/components/schemas/NaturalPersonModel"
        legalEntity:
          $ref: "#/components/schemas/LegalEntityModel"
        addresses:
          type: array
          items:
            $ref: "#/components/schemas/ThirdPartyAddressModel"
        _links:
          $ref: "#/components/schemas/Links"
      required:
      - legalStatusIndicatorCode
      - thirdPartyId
    CollectionModelThirdPartyAddressModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/ThirdPartyAddressModel"
        _links:
          $ref: "#/components/schemas/Links"
    EntityModelPolicyModel:
      type: object
      properties:
        policyId:
          type: string
        status:
          type: string
          enum:
          - BANKRUPTCY
          - CANC
          - CLAIMED
          - CLOSE
          - DEATH_CL
          - EMPTY
          - FORCE
          - IN_ADJUST
          - INAC
          - NA
          - NOTPROC
          - OPEN
          - PAID_UP
          - PEND
          - PEND_ADJ
          - PEND_SURR
          - RELEAS
          - RENUNC
          - SURREN
          - SYSU
          - TERM
          - TRANSF
        effectiveDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        productIdentifier:
          type: string
        productName:
          type: string
        policyDuration:
          type: string
          description: ISO-8601 period formats PnYnMnD and PnW
          example: P100Y
        currency:
          type: string
        circular:
          type: string
        actors:
          type: array
          items:
            $ref: "#/components/schemas/PolicyActorModel"
        fundStocks:
          type: array
          items:
            $ref: "#/components/schemas/PolicyFundStockModel"
        _links:
          $ref: "#/components/schemas/Links"
      required:
      - circular
      - currency
      - effectiveDate
      - policyId
      - productIdentifier
      - productName
    ExchangeRateModel:
      type: object
      properties:
        base:
          type: string
        target:
          type: string
        fxRate:
          type: number
        date:
          type: string
          format: date
        _links:
          $ref: "#/components/schemas/Links"
    FundModel:
      type: object
      properties:
        fundId:
          type: string
        type:
          type: string
          enum:
          - ACTIV_FIX
          - BOND
          - DED_FAS
          - DED_FEFAS
          - DED_FEFID
          - DED_FID
          - EQUALT
          - EQUI
          - EQUITY
          - EXT_FEX
          - FFHEDGE
          - FFL_FIX
          - FFUND
          - GUARANTEED_RATE
          - HEDGE
          - INT_FIC
          - MIX
          - MIXALT
          - MIXHOUSE
          - MONALT
          - MONEBOND
          - MONEQUIT
          - MONETARY
          - OTHER
          - RESTATE
          - VIP
        category:
          type: string
          enum:
          - DEB
          - DED
          - EGT
          - EXT
          - GR
          - IGT
          - INT
        label:
          type: string
        isin:
          type: string
        currency:
          type: string
        lastValuation:
          $ref: "#/components/schemas/FundValuationModel"
        _links:
          $ref: "#/components/schemas/Links"
    FundValuationModel:
      type: object
      properties:
        valuation:
          $ref: "#/components/schemas/MonetaryAmount"
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        _links:
          $ref: "#/components/schemas/Links"
    MonetaryAmount:
      type: object
      properties:
        amount:
          type: number
          example: 99.96
        currency:
          type: string
          example: USD
    PageMetadata:
      type: object
      properties:
        size:
          type: integer
          format: int64
        totalElements:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int64
        number:
          type: integer
          format: int64
    PagedModelEntityModelPolicyModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            policies:
              type: array
              items:
                $ref: "#/components/schemas/EntityModelPolicyModel"
        _links:
          $ref: "#/components/schemas/Links"
        page:
          $ref: "#/components/schemas/PageMetadata"
    PolicyActorModel:
      type: object
      properties:
        thirdParty:
          $ref: "#/components/schemas/ThirdPartyModel"
        roles:
          type: array
          items:
            type: string
            enum:
            - ASSURED
            - ECONOMIC_BENEFICIARY
            - HOLDER
            - CESSION_HOLDER
            - CHILD_BENEFICIARY
            - LEGAL_REPRESENTATIVE
            - THIRD_PARTY_AGENT
            - ARBITRAGE_AGENT
            - BROKER
            - COMMERCIAL_PARTNER
          uniqueItems: true
        _links:
          $ref: "#/components/schemas/Links"
      required:
      - roles
    PolicyFundStockModel:
      type: object
      properties:
        fund:
          $ref: "#/components/schemas/FundModel"
        unitNumber:
          $ref: "#/components/schemas/UnitNumberModel"
        exchangeRate:
          $ref: "#/components/schemas/ExchangeRateModel"
        valuation:
          $ref: "#/components/schemas/MonetaryAmount"
          description: Net asset value in the currency of the policy
        valuationInPolicyCurrency:
          $ref: "#/components/schemas/MonetaryAmount"
        _links:
          $ref: "#/components/schemas/Links"
    PolicyModel:
      type: object
      properties:
        policyId:
          type: string
        status:
          type: string
          enum:
          - BANKRUPTCY
          - CANC
          - CLAIMED
          - CLOSE
          - DEATH_CL
          - EMPTY
          - FORCE
          - IN_ADJUST
          - INAC
          - NA
          - NOTPROC
          - OPEN
          - PAID_UP
          - PEND
          - PEND_ADJ
          - PEND_SURR
          - RELEAS
          - RENUNC
          - SURREN
          - SYSU
          - TERM
          - TRANSF
        effectiveDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        productIdentifier:
          type: string
        productName:
          type: string
        policyDuration:
          type: string
          description: ISO-8601 period formats PnYnMnD and PnW
          example: P100Y
        currency:
          type: string
        circular:
          type: string
        actors:
          type: array
          items:
            $ref: "#/components/schemas/PolicyActorModel"
        fundStocks:
          type: array
          items:
            $ref: "#/components/schemas/PolicyFundStockModel"
        _links:
          $ref: "#/components/schemas/Links"
      required:
      - circular
      - currency
      - effectiveDate
      - policyId
      - productIdentifier
      - productName
    UnitNumberModel:
      type: object
      properties:
        date:
          type: string
          format: date
        amount:
          type: number
        valuation:
          $ref: "#/components/schemas/MonetaryAmount"
    EntityModelPolicyValuationModel:
      type: object
      properties:
        valuation:
          $ref: "#/components/schemas/MonetaryAmount"
        date:
          type: string
          format: date
        _links:
          $ref: "#/components/schemas/Links"
    PagedModelEntityModelPolicyValuationModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            valuations:
              type: array
              items:
                $ref: "#/components/schemas/EntityModelPolicyValuationModel"
        _links:
          $ref: "#/components/schemas/Links"
        page:
          $ref: "#/components/schemas/PageMetadata"
    EntityModelPolicyOperationModel:
      type: object
      properties:
        operationId:
          type: string
        type:
          type: string
          enum:
          - ADDITION
          - COMP
          - COOLINGOFF
          - DEATHCLAIM
          - DIS_INVEST
          - FEE_AMOUNT
          - FEE_BONUS
          - FUND_REINV
          - GR_INT_DIS
          - GR_PS_DISP
          - MIGRATION
          - NBUSINESS
          - REGP_BPAID
          - SURRENDER
          - SWITCH
          - SWITCH_CO
          - TERM
          - WITHDRAWAL
        subType:
          type: string
        creationDate:
          type: string
          format: date
        effectiveDate:
          type: string
          format: date
        feesAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        grossAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        netAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        fundMovements:
          type: array
          items:
            $ref: "#/components/schemas/FundMovementModel"
        _links:
          $ref: "#/components/schemas/Links"
    FundMovementModel:
      type: object
      properties:
        fund:
          $ref: "#/components/schemas/FundModel"
        unitNumber:
          $ref: "#/components/schemas/UnitNumberModel"
        exchangeRate:
          $ref: "#/components/schemas/ExchangeRateModel"
        feesAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        feesAmountInPolicyCurrency:
          $ref: "#/components/schemas/MonetaryAmount"
        grossAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        grossAmountInPolicyCurrency:
          $ref: "#/components/schemas/MonetaryAmount"
        netAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        netAmountInPolicyCurrency:
          $ref: "#/components/schemas/MonetaryAmount"
        _links:
          $ref: "#/components/schemas/Links"
    PagedModelEntityModelPolicyOperationModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            operations:
              type: array
              items:
                $ref: "#/components/schemas/EntityModelPolicyOperationModel"
        _links:
          $ref: "#/components/schemas/Links"
        page:
          $ref: "#/components/schemas/PageMetadata"
    PolicyOperationModel:
      type: object
      properties:
        operationId:
          type: string
        type:
          type: string
          enum:
          - ADDITION
          - COMP
          - COOLINGOFF
          - DEATHCLAIM
          - DIS_INVEST
          - FEE_AMOUNT
          - FEE_BONUS
          - FUND_REINV
          - GR_INT_DIS
          - GR_PS_DISP
          - MIGRATION
          - NBUSINESS
          - REGP_BPAID
          - SURRENDER
          - SWITCH
          - SWITCH_CO
          - TERM
          - WITHDRAWAL
        subType:
          type: string
        creationDate:
          type: string
          format: date
        effectiveDate:
          type: string
          format: date
        feesAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        grossAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        netAmount:
          $ref: "#/components/schemas/MonetaryAmount"
        fundMovements:
          type: array
          items:
            $ref: "#/components/schemas/FundMovementModel"
        _links:
          $ref: "#/components/schemas/Links"
    CollectionModelFundMovementModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            fundMovements:
              type: array
              items:
                $ref: "#/components/schemas/FundMovementModel"
        _links:
          $ref: "#/components/schemas/Links"
    CollectionModelPolicyFundStockModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            fundStocks:
              type: array
              items:
                $ref: "#/components/schemas/PolicyFundStockModel"
        _links:
          $ref: "#/components/schemas/Links"
    CollectionModelPolicyDocumentModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            documents:
              type: array
              items:
                $ref: "#/components/schemas/PolicyDocumentModel"
        _links:
          $ref: "#/components/schemas/Links"
    PolicyDocumentModel:
      type: object
      properties:
        objectId:
          type: string
        type:
          type: string
          description: |-
            <ul>
               <li>DEMARBPF PF demande arbitrage
               <li>DEMARBVP VieP demande arbitrage
               <li>FAVENANT PF avenants
               <li>FAVENANTB PF avenants
               <li>FAVIECH PF avis d'échéance
               <li>FAVTANNVER PF avenants versement annulé
               <li>FAVTARBITR PF avenants arbitrage
               <li>FAVTCHGPER PF avenant changement périod.
               <li>FAVTCLAUBF PF avenants clause bénéf.
               <li>FAVTDECES PF avenants décès
               <li>FAVTDISCOU PF avenants distribut coupons
               <li>FAVTFASGES PF avenants FAS Gest lib/acc
               <li>FAVTFASSTR PF avenants FAS Structuré
               <li>FAVTFIDFE PF avenants FID FE
               <li>FAVTFRGEST PF avenants frais de gestion
               <li>FAVTINVEST PF avenants versement libre
               <li>FAVTMAJUNI PF avenants mise à jour unités
               <li>FAVTNVLAFR PF avenants nouvelle affaire
               <li>FAVTPARDC PF avenants paie.partiel décès
               <li>FAVTPARRT PF avenants paie.part. rach
               <li>FAVTPB PF avenants PB
               <li>FAVTPRELFR PF avenants prlvt fil eau
               <li>FAVTPRIMPI PF avenants prel. imp. italie
               <li>FAVTPRMRIS PF avenant prime de risque
               <li>FAVTRBIMPI PF avenants remb. imp. italie
               <li>FAVTRCHTOT PF avenants rachat total
               <li>FAVTRETPLA PF avenants retrait plannifié
               <li>FAVTRETRAI PF avenants retrait
               <li>FAVTRTPAFI PF avenants ret.partiel fiscal
               <li>FAVTRTPART PF avenants retrait partie
               <li>FAVTRTPLFI PF avenants ret.planif fiscal
               <li>FAVTRTTOFI PF avenants rachat tot fiscal
               <li>FAVTVERSEM PF avenants versement
               <li>FAVTVL PF avenants versement libre
               <li>FCONDPAR50 PF conditions particul. AF50
               <li>FCONDPARTI PF conditions particulières
               <li>FDECLCRS PF Pré-Déclaration CRS
               <li>FDECLFAT PF Pré-Déclaration Fatca
               <li>FDISSTRAT DIS Stratégie
               <li>FEXTSITUAT PF extraits de situation
               <li>FFICHFONDS Fiche fonds
               <li>FFIDUBOLSPE PF Fiduciaire Bollo Speciale
               <li>FIAHF PF relevé annuel HF
               <li>FIAHFBROK PF relevé annuel HF Broker
               <li>FIAHFHOLD PF relevé annuel HF Holder
               <li>FLRESBEL2 PF Lettre résidents belge
               <li>FLRMED PF mises en demeure recomm.
               <li>FLRMEDPR PF relance prime de risque
               <li>FPUBHF2 PF Publipostage Hedge Funds
               <li>FPUBIFI PF Publibostage IFI
               <li>FPUBPFE PF Pub prélev fil de l'eau
               <li>FPUBTRITON PF Publipostage Triton
               <li>FRELSITUAT PF relevé annuel
               <li>FSCANCEC PF Scan Avenant CEC UK
               <li>FSITUTRIM PF relevé trimestriel
               <li>FWARNING PF warning Italia
               <li>PDMMANDATDIGITAL MMC_Digital & Partage Info (Profil Maitre)
               <li>PDMMMCSOUSCRIPTION Mandat digital
               <li>PFICHESTMG PF scan fiches TMG
               <li>VANNUSEPA VieP Annulation de mandat SEPA
               <li>VAVIECH VieP avis d'échéance
               <li>VAVISITU Viep Situation Annuelle TL
               <li>VAVMODBEN VieP UC Avt mod. Benef
               <li>VAVTADMIN VieP avenants administratifs
               <li>VAVTARBITR VieP UC AT Arbitrage
               <li>VAVTDISCOU VieP UC AT Distrib. coupons
               <li>VAVTPARRT VieP UC AT Rachat Partiel
               <li>VAVTRCHTOT VieP UC AT Rachat Total
               <li>VAVTVERSEM VieP UC AT Versement
               <li>VCERT111BI VieP cert. fiscaux 111bis
               <li>VCERTIFCAP VieP certificats capital terme
               <li>VCERTIFISC VieP certificats fiscaux
               <li>VCERTRENTE VieP cert. fisc. pour rentes
               <li>VCERTRNT1 VieP cert. fisc. rentes Ben 1
               <li>VCERTRNT2 VieP cert. fisc. rentes Ben 2
               <li>VCOURREP VieP Courrier reprise
               <li>VDECLCRS Viep Pré-Déclaration CRS
               <li>VDECLFAT Viep Pré-Déclaration Fatca
               <li>VEXTCMPTE VieP extraits de compte
               <li>VLRESBEL2 Viep Lettre résidents belge
               <li>VLRMED VieP mises en demeure recomm.
               <li>VLRPRL VieP première relance
               <li>VLTERME3M VieP Lettre terme à 3 mois
               <li>VNVERSSEPA VieP Notif versement SEPA
               <li>VPMED VieP relance refus dom
               <li>VPRENOSEPA VieP Pré-Notification SEPA
               <li>VPROJAVT VieP projets avenant
               <li>VPROJSOUSC VieP projets souscription
               <li>VPUB111BIS VieP Publipostage Art 111 Bis
               <li>VQUITRACH VieP Quittance Rachat RT
               <li>VQUITTERME VieP termes vie classique
               <li>VRELSITUAT VieP extrait situation
               <li>VSOUSCREMP VieP Souscription Remplacement
               <li>VSOUSCRIPT VieP souscriptions
               <li>VSOUSCRTUC VieP UC Souscription
        archiveDate:
          type: string
          format: date
        valueDate:
          type: string
          format: date
        _links:
          $ref: "#/components/schemas/Links"
    CollectionModelPolicyActorModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            actors:
              type: array
              items:
                $ref: "#/components/schemas/PolicyActorModel"
        _links:
          $ref: "#/components/schemas/Links"
    EntityModelFundValuationModel:
      type: object
      properties:
        valuation:
          $ref: "#/components/schemas/MonetaryAmount"
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        _links:
          $ref: "#/components/schemas/Links"
    PagedModelEntityModelFundValuationModel:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            valuations:
              type: array
              items:
                $ref: "#/components/schemas/EntityModelFundValuationModel"
        _links:
          $ref: "#/components/schemas/Links"
        page:
          $ref: "#/components/schemas/PageMetadata"
    Link:
      type: object
      properties:
        href:
          type: string
        hreflang:
          type: string
        title:
          type: string
        type:
          type: string
        deprecation:
          type: string
        profile:
          type: string
        name:
          type: string
        templated:
          type: boolean
    Links:
      type: object
      additionalProperties:
        $ref: "#/components/schemas/Link"
  securitySchemes:
    Authentication:
      type: http
      scheme: bearer
      bearerFormat: JWT
