openapi: 3.0.0
info:
  title: Ozone Connect - UAE Insurance API Description
  description: >+
    ## Ozone Connect - UAE Insurance API Description


    This document provides an API description in [OpenAPI](https://spec.openapis.org/oas/v3.0.1.html) for Insurance APIs
    for Ozone Connect.


    These APIs should be implemented by a financial institution to facilitate integration with the API Hub.


    ### Versioning


    The `version` property implements the following pattern
    `{standards-major}.{standards-minor}.{ozone-connect-version}`, where:  


    * `standards-major` is the major version of the latest UAE standard that the API description implements.


    * `standards-minor` is the minor version of the latest UAE standard that the API description implements.


    * `ozone-connect-version` is the version of the Ozone Connect API description.


    So, for example, `v2.0.1` indicates the first version of the Ozone Connect API description that implements the UAE
    standard version 2.0.


    ### v2.1.4


    * Removed the CAAP-specific header `o3-is-caap-consent-operation` from the `get /{insurance-type}-insurance-policies`
      operations, the CAAP-conditional `PolicyEndDate`, `ProductName`, `BodyType`, and `PlateNumber` properties from the
      insurance policy schemas, and related CAAP-conditional language. CAAP variants of these endpoints have been moved
      to the CAAP Operations OpenAPI description.


    ### v2.1.3



    * Changed the `get /{insurance-type}-insurance-quotes/{QuoteId}` operation to return the correct type for `Pending`
      `QuoteStatus` responses.


    ### v2.1.2



    * Changed the `insurancePolicyIds` parameter from optional to mandatory for the `get
    /{industryType}-insurance-policies` operation.



    * Changed the guidance for `insurancePolicyIds` parameter for the `get /{industryType}-insurance-policies`
    operation.



    ### v2.1.1



    * Initial version that delivers v2.1 requirements (see separate, detailed changelog for changes from last v2.1.x
    version).

  version: v2.1.4
tags:
  - name: Employment Insurance
    description: Employment Insurance Operations
  - name: Health Insurance
    description: Health Insurance Operations
  - name: Home Insurance
    description: Home Insurance Operations
  - name: Life Insurance
    description: Life Insurance Operations
  - name: Motor Insurance
    description: Motor Insurance Operations
  - name: Renters Insurance
    description: Renters Insurance Operations
  - name: Travel Insurance
    description: Travel Insurance Operations
paths:
  /employment-insurance-policies:
    post:
      operationId: EmploymentInsuranceCreateInsurancePolicyOperation
      summary: Create an employment insurance policy from a quote
      description: |-
        Create a employment insurance policy based on a quote previously created by the
        LFI. The TPP will send the `QuoteId` that has been saved by the LFI, together with
        any additional data that is required to create the insurance policy. The
        LFI will then invoke their BAU process to create the insurance policy.

        After the policy initiation request has been sent the User will be redirected to
        the LFI to complete the creation of the insurance policy.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEInsuranceCreatePolicyResponse1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Employment Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceCreatePolicyData1'
              required:
                - data
    get:
      operationId: EmploymentInsuranceReadInsurancePoliciesOperation
      summary: Retrieve employment insurance policies
      description: Retrieve all insurance policies to which access has been granted by the User
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/InsurancePolicyIds'
        - $ref: '#/components/parameters/OzoneConnect.page'
        - $ref: '#/components/parameters/OzoneConnect.page-size'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadInsurancePolicies1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Employment Insurance
  /employment-insurance-policies/{InsurancePolicyId}:
    get:
      operationId: EmploymentInsuranceReadInsurancePolicyByInsurancePolicyIdOperation
      summary: Retrieve an employment insurance policy
      description: |-
        Retrieve an insurance policy for a given insurance policy identifier value, based 
        on data clusters granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      InsurancePolicyId:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
                        description: Unique identifier for a given insurance policy
                        example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
                      PolicyHolder:
                        type: object
                        properties:
                          Salutation:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                            description: The salutation of the individual or customer.
                          FirstName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: First Name of the individual.
                          MiddleName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: Middle Name of the individual.
                          LastName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: Last Name (Surname) of the individual.
                          Gender:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                            description: The gender of the customer
                          DateOfBirth:
                            type: string
                            format: date
                            description: Date of birth of the individual.
                          MaritalStatus:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                            description: The marital status of the individual.
                          ResidentialLocation:
                            type: string
                            description: Residential Location of the individual.
                          LandlineNumber:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                            pattern: ^\+?[1-9]\d{1,14}$
                            description: The landline telephone number of the individual.
                          Nationality:
                            type: string
                            pattern: ^[A-Z]{3}$
                            description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                          PrimaryLanguage:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                            description: Primary language spoken by the insurance policy customer
                          MobileNumber:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                            description: The mobile telephone number of the individual.
                          EmailAddress:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                            description: Email address of the individual.
                          Address:
                            type: array
                            items:
                              type: object
                              properties:
                                AddressType:
                                  type: string
                                  enum:
                                    - Billing
                                    - Business
                                    - Correspondence
                                    - DeliveryTo
                                    - MailTo
                                    - POBox
                                    - Postal
                                    - Permanent
                                    - Residential
                                    - Statement
                                    - Other
                                  description: The type of address.
                                AddressLine:
                                  type: array
                                  items:
                                    $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                                  minItems: 1
                                  maxItems: 7
                                  description: >-
                                    Information that locates and identifies a specific address for a transaction entry,
                                    that is presented in free format text.


                                    This value should be used where the address is provided or stored as a single
                                    string.
                                BuildingNumber:
                                  type: string
                                  minLength: 1
                                  maxLength: 16
                                  description: The unit, apartment, or villa number within a building or community
                                BuildingName:
                                  type: string
                                  minLength: 1
                                  maxLength: 140
                                  description: Name of the building or house.
                                Floor:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: Floor or storey within a building.
                                StreetName:
                                  type: string
                                  minLength: 1
                                  maxLength: 140
                                  description: The name of the street or road where the property is located
                                DistrictName:
                                  type: string
                                  minLength: 1
                                  maxLength: 140
                                  description: The district, community, or neighbourhood where the property is located
                                PostBox:
                                  type: string
                                  minLength: 1
                                  maxLength: 16
                                  description: The P.O. Box number assigned to the recipient for mail delivery
                                TownName:
                                  type: string
                                  minLength: 1
                                  maxLength: 140
                                  description: Name of a built-up area, such as a town or city
                                CountrySubDivision:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                                  description: >-
                                    Country subdivision, such as state or province. This is the Emirate where the
                                    address is registered.
                                Country:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                                  description: >-
                                    The country associated with the address, represented using the ISO 3166-1 alpha-2
                                    country code.
                              required:
                                - AddressLine
                                - Country
                            minItems: 1
                            description: Customer's address details
                          Employment:
                            type: object
                            properties:
                              Profession:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: The individuals profession.
                              ProfessionDescription:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: A description of the individual's Profession
                              JobTitle:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Individual's job title
                              Designation:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: An individual's professional qualifications, special licenses and certifications
                              NatureOfEmployerBusiness:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: Nature of employer business
                              EmployerName:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Employer name.
                              EmployerAddress:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
                                description: The address details of the individual's employer
                              EmploymentStatus:
                                $ref: '#/components/schemas/AEInsurance.AEInsuranceEmploymentStatus'
                              StartDate:
                                type: string
                                format: date
                                description: Individual's employment start date
                              SourceOfIncome:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Source of the individual's income as a free form description
                              MonthlyIncomeAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: Monthly income amount and currency
                              AnnualIncomeAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: Annual income amount and currency
                              AdditionalCompensation:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    Description:
                                      type: string
                                      description: Free form description of the additional compensation
                                    CompensationAmount:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: The amount of the additional compensation
                                  required:
                                    - Description
                                    - CompensationAmount
                                minItems: 1
                                description: Provided when the individual has additional income.
                              SalaryBand:
                                type: string
                                enum:
                                  - NoSalary
                                  - BelowAED000PM
                                  - AED4000ToAED12000PM
                                  - AED12001AndAbove
                            required:
                              - MonthlyIncomeAmount
                            minProperties: 1
                            description: >-
                              Employment information for the policyholder. Requires `ReadCustomerDetail` permission to
                              be granted by the User.
                        required:
                          - FirstName
                          - LastName
                          - Gender
                          - DateOfBirth
                          - Nationality
                          - MobileNumber
                          - EmailAddress
                        description: >-
                          Information about the customer. Requires `ReadCustomerBasic` permission to be granted by the
                          User, except for `Employment` which requires `ReadCustomerDetail`.
                      Identity:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                        description: >-
                          Identity information for the policyholder or insured person. Requires `ReadCustomerDetail`
                          permission to be granted by the User for the policyholder identity to be provided.
                      Product:
                        type: object
                        properties:
                          Policy:
                            type: object
                            properties:
                              SchemeCategory:
                                type: string
                                enum:
                                  - CategoryA
                                  - CategoryB
                                description: >-
                                  For Involuntary Loss of Employment Insurance (ILOE) confirmation of the customer's
                                  Salary Category.


                                  Categories are defined as follows:


                                  * Category A - Salary of AED16,000 or less

                                  * Category B - Salary Exceeding AED16,000
                              Sector:
                                type: string
                                enum:
                                  - Private
                                  - FederalGovernment
                                description: >-
                                  For Involuntary Loss of Employment Insurance (ILOE) confirmation of the customer's
                                  employment Sector
                              PolicyTerm:
                                type: string
                                pattern: ^P(\d+Y)?(\d+M)?$
                                format: duration
                                description: >-
                                  The insurance policy term in years and months, using ISO 8601 compatible duration
                                  format
                                example: P2Y3M
                              PremiumFrequency:
                                type: string
                                enum:
                                  - Annually
                                  - OneTime
                                  - Monthly
                                  - Quarterly
                                  - BiAnnual
                                  - Limited
                                  - Other
                                description: The payment frequency the calculated Premium has been based on.
                              PolicyStartDate:
                                type: string
                                format: date
                                description: Policy start date
                              PolicyEndDate:
                                type: string
                                description: The date on which cover ends.
                              PolicyPurchaseChannelType:
                                type: string
                                enum:
                                  - Direct
                                  - Agent
                                  - Broker
                                  - Bank
                                  - InvFinInst
                                  - TPA
                                  - OnlineInsideUAE
                                  - OnlineOutsideUAE
                                  - Aggregation
                                  - Outside
                                  - Other
                                description: Sales channel of policy.
                            required:
                              - SchemeCategory
                              - Sector
                              - PremiumFrequency
                              - PolicyPurchaseChannelType
                        required:
                          - Policy
                        description: >-
                          Details of the insurance product. Requires `ReadInsuranceProduct` permission to be granted by
                          the User.
                      Claims:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingClaimsWithLossCauseProperties'
                        description: >-
                          Details of claims made against the insurance policy. Requires the `ReadCustomerClaims`
                          permission to be granted by the User.
                      Premium:
                        anyOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPremiumProperties'
                          - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumJWE'
                        description: >-
                          Details of the insurance policy premium. Requires the `ReadInsurancePremium` permission to be
                          granted by the User.
                    required:
                      - InsurancePolicyId
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Employment Insurance
  /employment-insurance-policies/{InsurancePolicyId}/payment-details:
    get:
      operationId: EmploymentInsuranceReadInsurancePolicyByIdBankAccountDetailsOperation
      summary: Retrieve employment insurance policy payment details
      description: |-
        Retrieve payment details for a given employment insurance policy, based on data clusters 
        granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentDetails'
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Employment Insurance
  /employment-insurance-quotes:
    post:
      operationId: CreateEmploymentInsuranceQuoteOperation
      summary: Create an employment insurance quote
      description: Create an employment insurance quote.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AEInsurance.AEInsuranceCreateQuoteResponseProperties'
                    minItems: 1
                    description: >-
                      One-or-more quotes. If no quotes are provided the LFI should respond with the `204` response code
                      and an empty payload
                required:
                  - data
        '204':
          description: The LFI did not respond with a quote as the request policy requirements could not be fulfilled.
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Employment Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEEmploymentInsuranceQuoteRequestProperties'
              required:
                - data
  /employment-insurance-quotes/{QuoteId}:
    get:
      operationId: EmploymentInsuranceReadInsuranceQuoteByQuoteIdOperation
      summary: Retrieve an employment insurance quote
      description: |-
        Retrieve the properties of a quote, using the quote identifier returned by the
        `post /employment-insurance-quotes` operation.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadResponseProperties'
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Employment Insurance
    patch:
      operationId: EmploymentInsuranceUpdateInsuranceQuoteByQuoteIdOperation
      summary: Accept an employment insurance quote
      description: |-
        Update the quote status to `Accepted` in readiness to send the quote data to 
        create a new insurance policy. The TPP must update the status to Accepted before
        retrieving any additional data through their Data Sharing permissions, to include
        in the new insurance policy request.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      PolicyIssuanceAllowed:
                        type: object
                        properties:
                          CustomerVerification:
                            type: boolean
                            description: >-
                              Broker allowed to complete capture of customer verification information and documents for
                              this quote.
                          Payment:
                            type: boolean
                            description: Broker allowed to host payment checkout.
                          PolicyDocuments:
                            type: boolean
                            description: Broker allowed to provide policy documents to customer.
                        required:
                          - CustomerVerification
                          - Payment
                          - PolicyDocuments
                        description: Broker requests to handle following steps of policy issuance process.
                    minProperties: 1
                    description: >-
                      This response **MUST** only be used where there are instruction for TPP acting as a Broker. Please
                      use a `204` response if Broker instructions are not required.
                  links:
                    type: object
                    properties:
                      PaymentUrl:
                        type: string
                        format: uri
                        description: Hosted payment URL for TPP to present to customer.  Required when the Payment field is true.
                    required:
                      - PaymentUrl
                    description: Links to other resources. Can be omitted where `PaymentUrl` is not returned.
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Employment Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEEmploymentInsuranceQuoteAcceptQuoteRequestProperties'
              required:
                - data
  /health-insurance-policies:
    post:
      operationId: HealthInsuranceCreateInsurancePolicyOperation
      summary: Create a health insurance policy from a quote
      description: |-
        Create a health insurance policy based on a quote previously created by the
        LFI. The TPP will send the `QuoteId` that has been saved by the LFI, together with
        any additional data that is required to create the insurance policy. The
        LFI will then invoke their BAU process to create the insurance policy.

        After the policy initiation request has been sent the User will be redirected to
        the LFI to complete the creation of the insurance policy.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEInsuranceCreatePolicyResponse1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Health Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceCreatePolicyData1'
              required:
                - data
    get:
      operationId: HealthInsuranceReadInsurancePoliciesOperation
      summary: Retrieve health insurance policies
      description: Retrieve all insurance policies to which access has been granted by the User
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/InsurancePolicyIds'
        - $ref: '#/components/parameters/OzoneConnect.page'
        - $ref: '#/components/parameters/OzoneConnect.page-size'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadInsurancePolicies1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Health Insurance
  /health-insurance-policies/{InsurancePolicyId}:
    get:
      operationId: HealthInsuranceReadInsurancePolicyByInsurancePolicyIdOperation
      summary: Retrieve a health insurance policy
      description: |-
        Retrieve an insurance policy for a given insurance policy identifier value, based 
        on data clusters granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      InsurancePolicyId:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
                        description: Unique identifier for a given insurance policy
                        example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
                      PolicyHolder:
                        type: object
                        properties:
                          Salutation:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                            description: The salutation of the individual or customer.
                          FirstName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: First Name of the individual.
                          MiddleName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: Middle Name of the individual.
                          LastName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: Last Name (Surname) of the individual.
                          Gender:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                            description: The gender of the customer
                          DateOfBirth:
                            type: string
                            format: date
                            description: Date of birth of the individual.
                          MaritalStatus:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                            description: The marital status of the individual.
                          ResidentialLocation:
                            type: string
                            description: Residential Location of the individual.
                          LandlineNumber:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                            pattern: ^\+?[1-9]\d{1,14}$
                            description: The landline telephone number of the individual.
                          Nationality:
                            type: string
                            pattern: ^[A-Z]{3}$
                            description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                          PrimaryLanguage:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                            description: Primary language spoken by the insurance policy customer
                          MobileNumber:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                            description: The mobile telephone number of the individual.
                          EmailAddress:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                            description: Email address of the individual.
                          Address:
                            type: array
                            items:
                              $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
                            minItems: 1
                            description: Customer's address details
                          Employment:
                            type: object
                            properties:
                              Profession:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: The individuals profession.
                              ProfessionDescription:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: A description of the individual's Profession
                              JobTitle:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Individual's job title
                              Designation:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: An individual's professional qualifications, special licenses and certifications
                              NatureOfEmployerBusiness:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: Nature of employer business
                              EmployerName:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Employer name.
                              EmployerAddress:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
                                description: The address details of the individual's employer
                              EmploymentStatus:
                                $ref: '#/components/schemas/AEInsurance.AEInsuranceEmploymentStatus'
                              StartDate:
                                type: string
                                format: date
                                description: Individual's employment start date
                              SourceOfIncome:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Source of the individual's income as a free form description
                              MonthlyIncomeAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: Monthly income amount and currency
                              AnnualIncomeAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: Annual income amount and currency
                              AdditionalCompensation:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    Description:
                                      type: string
                                      description: Free form description of the additional compensation
                                    CompensationAmount:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: The amount of the additional compensation
                                  required:
                                    - Description
                                    - CompensationAmount
                                minItems: 1
                                description: Provided when the individual has additional income.
                              SalaryBand:
                                type: string
                                enum:
                                  - NoSalary
                                  - BelowAED000PM
                                  - AED4000ToAED12000PM
                                  - AED12001AndAbove
                            required:
                              - MonthlyIncomeAmount
                            minProperties: 1
                            description: >-
                              Employment information for the policyholder. Requires `ReadCustomerDetail` permission to
                              be granted by the User.
                        required:
                          - FirstName
                          - LastName
                          - Gender
                          - DateOfBirth
                          - Nationality
                          - MobileNumber
                          - EmailAddress
                          - Address
                        description: >-
                          Information about the customer. Requires `ReadCustomerBasic` permission to be granted by the
                          User, except for `Employment` which requires `ReadCustomerDetail`.
                      Identity:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                        description: >-
                          Identity information for the policyholder or insured person. Requires `ReadCustomerDetail`
                          permission to be granted by the User for the policyholder identity to be provided.
                      Product:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceProductData'
                        description: >-
                          Details of the insurance policy product. Requires the `ReadInsuranceProduct` permission to be
                          granted by the User.
                      Claims:
                        type: object
                        properties:
                          Summary:
                            type: array
                            items:
                              $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingClaimsSummaryProperties'
                            minItems: 1
                            description: >-
                              Summary of previous claims. `NumberOfPreviousMonths` value must appear only once.


                              If no claims have been made then an array element with `NumberOfPreviousMonths` set to
                              zero must be provided, and all claim amounts must be set to zero, to provide a positive
                              assertion that no claims have been made. Currency must be set to AED for this case.
                          ClaimsHistory:
                            type: array
                            items:
                              type: object
                              properties:
                                ClaimUniqueID:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                  description: Unique reference that identifies the claim
                                ClaimDate:
                                  type: string
                                  format: date
                                  description: The original date the claim was submitted.
                                TotalGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: >-
                                    As per CBUAE scheme, total gross claim amount including Direct + Third party +
                                    Coinsurance / deductible + Loss Adjusters + VAT.
                                ClaimPayments:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      Currency:
                                        $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                                      Amount:
                                        $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                                      PaymentDate:
                                        type: string
                                        format: date
                                        description: The date on which the claim payment was made.
                                    required:
                                      - Currency
                                      - Amount
                                      - PaymentDate
                                  minItems: 1
                                  description: The amounts paid with amount, currency, and date.
                                DeductibleGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Deductible and co-insurance amount paid by customer.
                                PolicyClaimedBenefits:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      ClaimedBenefitType:
                                        type: string
                                      ClaimedBenefitDescription:
                                        type: string
                                    required:
                                      - ClaimedBenefitType
                                      - ClaimedBenefitDescription
                                  description: All the claimed policy benefits.
                                ClaimApprovalDate:
                                  type: string
                                  format: date
                                  description: The most recent approval date for any portion of the claim.
                                ClaimLastUpdateDate:
                                  type: string
                                  format: date
                                  description: Last update date of the claim.
                                DirectGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Amount of the claim paid directly.
                                ThirdPartyGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Amount of claim to be paid via third party insurance company.
                                ThirdPartyRecoveryCompany:
                                  type: string
                                  description: Name of recovery third party insurance company.
                                ThirdPartyRecoveryStatus:
                                  type: string
                                  enum:
                                    - Approved
                                    - Reopened
                                    - RecoveryOpened
                                    - Paid
                                    - RecoveryReopenedAndClaimClosed
                                    - Rejected
                                    - InProgress
                                  description: Status of recovery.
                                LossAdjusterGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Loss Adjusters fees on above claims.
                                OutstandingPayAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Claim payment amount outstanding.
                                Status:
                                  allOf:
                                    - $ref: >-
                                        #/components/schemas/AEInsurance.AEHealthInsuranceDataSharingClaimsHistoryStatusCodes
                                  description: The status of the claim
                                FirstEncounterDate:
                                  type: string
                                  format: date
                                  description: First date of the encounter.
                                FirstServiceDate:
                                  type: string
                                  format: date
                                  description: First date of service.
                                LastServiceDate:
                                  type: string
                                  format: date
                                  description: Last date of service.
                              required:
                                - ClaimUniqueID
                                - ClaimDate
                                - TotalGrossClaimAmount
                                - PolicyClaimedBenefits
                                - ClaimLastUpdateDate
                                - Status
                                - FirstEncounterDate
                                - FirstServiceDate
                                - LastServiceDate
                            minItems: 1
                            description: Claims history. Only required if claims have been made against the policy.
                        required:
                          - Summary
                        description: >-
                          Details of claims made against the insurance policy. Requires the `ReadCustomerClaims`
                          permission to be granted by the User.
                      Premium:
                        anyOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPremiumProperties'
                          - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumJWE'
                        description: >-
                          Details of the insurance policy premium. Requires the `ReadInsurancePremium` permission to be
                          granted by the User.
                    required:
                      - InsurancePolicyId
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Health Insurance
  /health-insurance-policies/{InsurancePolicyId}/payment-details:
    get:
      operationId: HealthInsuranceReadInsurancePolicyByIdBankAccountDetailsOperation
      summary: Retrieve health insurance policy payment details
      description: |-
        Retrieve payment details for a given health insurance policy, based on data clusters 
        granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentDetails'
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Health Insurance
  /health-insurance-quotes:
    post:
      operationId: CreateHealthInsuranceQuoteOperation
      summary: Create a health insurance quote
      description: Create a health insurance quote.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceCreateQuoteResponseProperties'
                    minItems: 1
                    description: >-
                      One-or-more quotes. If no quotes are provided the LFI should respond with the `204` response code
                      and an empty payload
                required:
                  - data
        '204':
          description: The LFI did not respond with a quote as the request policy requirements could not be fulfilled.
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Health Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteRequestProperties'
              required:
                - data
  /health-insurance-quotes/{QuoteId}:
    get:
      operationId: HealthInsuranceReadInsuranceQuoteByQuoteIdOperation
      summary: Retrieve a health insurance quote
      description: |-
        Retrieve the properties of a quote, using the quote identifier returned by the
        `post /health-insurance-quotes` operation.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadResponseProperties'
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Health Insurance
    patch:
      operationId: HealthInsuranceUpdateInsuranceQuoteByQuoteIdOperation
      summary: Accept a health insurance quote
      description: |-
        Update the quote status to `Accepted` in readiness to send the quote data to 
        create a new insurance policy. The TPP must update the status to Accepted before
        retrieving any additional data through their Data Sharing permissions, to include
        in the new insurance policy request.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      PolicyIssuanceAllowed:
                        type: object
                        properties:
                          CustomerVerification:
                            type: boolean
                            description: >-
                              Broker allowed to complete capture of customer verification information and documents for
                              this quote.
                          Payment:
                            type: boolean
                            description: Broker allowed to host payment checkout.
                          PolicyDocuments:
                            type: boolean
                            description: Broker allowed to provide policy documents to customer.
                        required:
                          - CustomerVerification
                          - Payment
                          - PolicyDocuments
                        description: Broker requests to handle following steps of policy issuance process.
                    minProperties: 1
                    description: >-
                      This response **MUST** only be used where there are instruction for TPP acting as a Broker. Please
                      use a `204` response if Broker instructions are not required.
                  links:
                    type: object
                    properties:
                      PaymentUrl:
                        type: string
                        format: uri
                        description: Hosted payment URL for TPP to present to customer.  Required when the Payment field is true.
                    required:
                      - PaymentUrl
                    description: Links to other resources. Can be omitted where `PaymentUrl` is not returned.
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Health Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteAcceptQuoteRequestProperties'
              required:
                - data
  /home-insurance-policies:
    post:
      operationId: HomeInsuranceCreateInsurancePolicyOperation
      summary: Create a home insurance policy from a quote
      description: |-
        Create a home insurance policy based on a quote previously created by the
        LFI. The TPP will send the `QuoteId` that has been saved by the LFI, together with
        any additional data that is required to create the insurance policy. The
        LFI will then invoke their BAU process to create the insurance policy.

        After the policy initiation request has been sent the User will be redirected to
        the LFI to complete the creation of the insurance policy.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEInsuranceCreatePolicyResponse1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Home Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceCreatePolicyData1'
              required:
                - data
    get:
      operationId: HomeInsuranceReadInsurancePoliciesOperation
      summary: Retrieve home insurance policies
      description: Retrieve all insurance policies to which access has been granted by the User
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/InsurancePolicyIds'
        - $ref: '#/components/parameters/OzoneConnect.page'
        - $ref: '#/components/parameters/OzoneConnect.page-size'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadInsurancePolicies1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Home Insurance
  /home-insurance-policies/{InsurancePolicyId}:
    get:
      operationId: HomeInsuranceReadInsurancePolicyByInsurancePolicyIdOperation
      summary: Retrieve a home insurance policy
      description: |-
        Retrieve an insurance policy for a given insurance policy identifier value, based 
        on data clusters granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      InsurancePolicyId:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
                        description: Unique identifier for a given insurance policy
                        example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
                      PolicyHolder:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerQuoteProperties'
                        description: >-
                          Information about the customer. Requires `ReadCustomerBasic` permission to be granted by the
                          User.
                      Identity:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                        description: >-
                          Identity information for the policyholder or insured person. Requires `ReadCustomerDetail`
                          permission to be granted by the User for the policyholder identity to be provided.
                      Product:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceProductData'
                        description: >-
                          Details of the insurance product. Requires `ReadInsuranceProduct` permission to be granted by
                          the User.
                      Claims:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingClaimsWithLossCauseProperties'
                        description: >-
                          Details of claims made against the insurance policy. Requires the `ReadCustomerClaims`
                          permission to be granted by the User.
                      Premium:
                        anyOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPremiumProperties'
                          - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumJWE'
                        description: >-
                          Details of the insurance policy premium. Requires the `ReadInsurancePremium` permission to be
                          granted by the User.
                    required:
                      - InsurancePolicyId
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Home Insurance
  /home-insurance-policies/{InsurancePolicyId}/payment-details:
    get:
      operationId: HomeInsuranceReadInsurancePolicyByIdBankAccountDetailsOperation
      summary: Retrieve home insurance policy payment details
      description: |-
        Retrieve payment details for a given home insurance policy, based on data clusters 
        granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentDetails'
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Home Insurance
  /home-insurance-quotes:
    post:
      operationId: CreateHomeInsuranceQuoteOperation
      summary: Create a home insurance quote
      description: Create a home insurance quote.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AEInsurance.AEInsuranceCreateQuoteResponseProperties'
                    minItems: 1
                    description: >-
                      One-or-more quotes. If no quotes are provided the LFI should respond with the `204` response code
                      and an empty payload
                required:
                  - data
        '204':
          description: The LFI did not respond with a quote as the request policy requirements could not be fulfilled.
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Home Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceQuoteRequestProperties'
              required:
                - data
  /home-insurance-quotes/{QuoteId}:
    get:
      operationId: HomeInsuranceReadInsuranceQuoteByQuoteIdOperation
      summary: Retrieve a home insurance quote
      description: |-
        Retrieve the properties of a quote, using the quote identifier returned by the
        `post /home-insurance-quotes` operation.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadResponseProperties'
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Home Insurance
    patch:
      operationId: HomeInsuranceUpdateInsuranceQuoteByQuoteIdOperation
      summary: Accept a home insurance quote
      description: |-
        Update the quote status to `Accepted` in readiness to send the quote data to 
        create a new insurance policy. The TPP must update the status to Accepted before
        retrieving any additional data through their Data Sharing permissions, to include
        in the new insurance policy request.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      PolicyIssuanceAllowed:
                        type: object
                        properties:
                          CustomerVerification:
                            type: boolean
                            description: >-
                              Broker allowed to complete capture of customer verification information and documents for
                              this quote.
                          Payment:
                            type: boolean
                            description: Broker allowed to host payment checkout.
                          PolicyDocuments:
                            type: boolean
                            description: Broker allowed to provide policy documents to customer.
                        required:
                          - CustomerVerification
                          - Payment
                          - PolicyDocuments
                        description: Broker requests to handle following steps of policy issuance process.
                    minProperties: 1
                    description: >-
                      This response **MUST** only be used where there are instruction for TPP acting as a Broker. Please
                      use a `204` response if Broker instructions are not required.
                  links:
                    type: object
                    properties:
                      PaymentUrl:
                        type: string
                        format: uri
                        description: Hosted payment URL for TPP to present to customer.  Required when the Payment field is true.
                    required:
                      - PaymentUrl
                    description: Links to other resources. Can be omitted where `PaymentUrl` is not returned.
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Home Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceQuoteAcceptQuoteRequestProperties'
              required:
                - data
  /life-insurance-policies:
    post:
      operationId: LifeInsuranceCreateInsurancePolicyOperation
      summary: Create a life insurance policy from a quote
      description: |-
        Create a life insurance policy based on a quote previously created by the
        LFI. The TPP will send the `QuoteId` that has been saved by the LFI, together with
        any additional data that is required to create the insurance policy. The
        LFI will then invoke their BAU process to create the insurance policy.

        After the policy initiation request has been sent the User will be redirected to
        the LFI to complete the creation of the insurance policy.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEInsuranceCreatePolicyResponse1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Life Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceCreatePolicyData1'
              required:
                - data
    get:
      operationId: LifeInsuranceReadInsurancePoliciesOperation
      summary: Retrieve life insurance policies
      description: Retrieve all insurance policies to which access has been granted by the User
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/InsurancePolicyIds'
        - $ref: '#/components/parameters/OzoneConnect.page'
        - $ref: '#/components/parameters/OzoneConnect.page-size'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadLifeInsurancePolicies1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Life Insurance
  /life-insurance-policies/{InsurancePolicyId}:
    get:
      operationId: LifeInsuranceReadInsurancePolicyByInsurancePolicyIdOperation
      summary: Retrieve a life insurance policy
      description: |-
        Retrieve an insurance policy for a given insurance policy identifier value, based 
        on data clusters granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      InsurancePolicyId:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
                        description: Unique identifier for a given insurance policy
                        example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
                      PolicyHolder:
                        type: object
                        properties:
                          Salutation:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                            description: The salutation of the individual or customer.
                          FirstName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: First Name of the individual.
                          MiddleName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: Middle Name of the individual.
                          LastName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: Last Name (Surname) of the individual.
                          Gender:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                            description: The gender of the customer
                          DateOfBirth:
                            type: string
                            format: date
                            description: Date of birth of the individual.
                          MaritalStatus:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                            description: The marital status of the individual.
                          ResidentialLocation:
                            type: string
                            description: Residential Location of the individual.
                          LandlineNumber:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                            pattern: ^\+?[1-9]\d{1,14}$
                            description: The landline telephone number of the individual.
                          Nationality:
                            type: string
                            pattern: ^[A-Z]{3}$
                            description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                          PrimaryLanguage:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                            description: Primary language spoken by the insurance policy customer
                          MobileNumber:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                            description: The mobile telephone number of the individual.
                          EmailAddress:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                            description: Email address of the individual.
                          Address:
                            type: array
                            items:
                              $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
                            minItems: 1
                            description: Customer's address details
                          PreviousNameDetails:
                            type: object
                            properties:
                              MaidenName:
                                type: string
                                description: The maiden name of the customer
                              AliasName:
                                type: string
                                description: >-
                                  Any name, whether legal or casual, that the customer uses or has used on any forms in
                                  addition to their birth name.  This includes shortened versions of their name.
                            description: >-
                              Required if the applicant or policy was known by a previous name. One of MaidenName or
                              AliasName must be populated. This property can be omitted if the customer confirms they
                              held no previous names.
                          SecondNationality:
                            type: string
                            pattern: ^[A-Z]{3}$
                            description: Confirmation of the policyholder's second nationality when they have dual nationality
                          CountryOfBirth:
                            type: string
                            pattern: ^[A-Z]{3}$
                            description: Place of Birth of the Insured Person
                          Employment:
                            type: object
                            properties:
                              Profession:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: The individuals profession.
                              ProfessionDescription:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: A description of the individual's Profession
                              JobTitle:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Individual's job title
                              Designation:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: An individual's professional qualifications, special licenses and certifications
                              NatureOfEmployerBusiness:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: Nature of employer business
                              EmployerName:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Employer name.
                              EmployerAddress:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
                                description: The address details of the individual's employer
                              EmploymentStatus:
                                $ref: '#/components/schemas/AEInsurance.AEInsuranceEmploymentStatus'
                              StartDate:
                                type: string
                                format: date
                                description: Individual's employment start date
                              SourceOfIncome:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: Source of the individual's income as a free form description
                              MonthlyIncomeAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: Monthly income amount and currency
                              AnnualIncomeAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: Annual income amount and currency
                              AdditionalCompensation:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    Description:
                                      type: string
                                      description: Free form description of the additional compensation
                                    CompensationAmount:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: The amount of the additional compensation
                                  required:
                                    - Description
                                    - CompensationAmount
                                minItems: 1
                                description: Provided when the individual has additional income.
                              SalaryBand:
                                type: string
                                enum:
                                  - NoSalary
                                  - BelowAED000PM
                                  - AED4000ToAED12000PM
                                  - AED12001AndAbove
                            required:
                              - MonthlyIncomeAmount
                            minProperties: 1
                            description: >-
                              Employment information for the policyholder. Requires `ReadCustomerDetail` permission to
                              be granted by the User.
                        required:
                          - FirstName
                          - LastName
                          - Gender
                          - DateOfBirth
                          - Nationality
                          - MobileNumber
                          - EmailAddress
                          - Address
                        description: >-
                          Information about the customer. Requires `ReadCustomerBasic` permission to be granted by the
                          User, except for `Employment` which requires `ReadCustomerDetail`.
                      Identity:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                        description: >-
                          Identity information for the policyholder or insured person. Requires `ReadCustomerDetail`
                          permission to be granted by the User for the policyholder identity to be provided.
                      Product:
                        type: object
                        properties:
                          Policy:
                            type: object
                            properties:
                              CoverType:
                                type: string
                                enum:
                                  - Sole
                                  - Joint
                                description: >-
                                  Indicates whether life Cover is required for a single person or jointly for multiple
                                  individuals
                              IsPolicyholderLifeAssured:
                                type: boolean
                                description: >-
                                  True (Yes) when that the Policyholder (customer) is also the Life Assured or one of
                                  the Life Assured, or false (No) when confirmation that the Policyholder and the Life
                                  Assured(s) are different
                              RelationshipToLifeInsured:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
                                description: >-
                                  Required when the IsPolicyholderLifeAssured is false (No) to confirm the relationship
                                  between the Policyholder and Insured Person.
                              ReasonDifferent:
                                type: string
                                description: >-
                                  Required when RelationshipToLifeInsured is Other to confirm that there is an insurable
                                  interest between the Policyholder and the Life Assured
                              TypeOfLifeInsurance:
                                type: string
                                enum:
                                  - WholeLifeInsurance
                                  - LevelTermInsurance
                                  - DecreasingTermInsurance
                                description: The type of life insurance required
                              InsurancePurpose:
                                type: string
                                enum:
                                  - PersonalCover
                                  - FamilyProtection
                                  - MortgageCover
                                description: The purpose of the life insurance cover
                              SumAssuredAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: The sum assured amount and currency.
                              PolicyTerm:
                                type: string
                                pattern: ^P(\d+Y)?(\d+M)?$
                                format: duration
                                description: >-
                                  The insurance policy term in years and months, using ISO 8601 compatible duration
                                  format
                                example: P2Y3M
                              PolicyStartDate:
                                type: string
                                format: date
                                description: Policy start date
                              IsFinanceAgainstPolicy:
                                type: boolean
                                description: >-
                                  Confirmation whether insurance cover is being taken out in connection with finance /
                                  mortgage
                              SurrenderValueAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: >-
                                  The amount the policyholder will receive if they terminate the policy before its
                                  maturity.
                              MaturityValueAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: >-
                                  The total amount payable to the policyholder if the policy reaches the end of its
                                  term.
                              CashValueAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: >-
                                  The accumulated value within a permanent life insurance policy that can be withdrawn
                                  or borrowed against.
                              Takaful:
                                type: boolean
                                description: Indicates whether the policy is Sharia compliant.
                              ProductName:
                                type: string
                                description: Business name of the policy product as provided externally to the customer.
                              PolicyEndDate:
                                type: string
                                format: date
                                description: The date when the coverage will or has ended.
                              PolicyExcess:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: When applicable, the amount that would be deductible from any claim.
                              PolicyCoverAndBenefits:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    CoverType:
                                      type: string
                                      description: Type of cover as defined in company systems.
                                    Description:
                                      type: string
                                      description: Description of the cover / benefit.
                                    Required:
                                      type: boolean
                                      description: >-
                                        To confirm whether the cover or benefit is required as part of the base
                                        insurance policy or is optional.
                                    CoverLimit:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: >-
                                        When applicable, the benefit coverage limit that could be paid if a claim was
                                        made.
                                    CoverInclusionsAndExclusions:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          InclusionAndExclusionDescription:
                                            type: string
                                            description: Description of the inclusion or exclusion.
                                        required:
                                          - InclusionAndExclusionDescription
                                      minItems: 1
                                      description: included inclusions and exclusions for cover type.
                                    CoverExcess:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: When applicable, the amount that would be deductible from any claim.
                                    CoverID:
                                      type: string
                                      description: Insurers internal unique ID for specific cover.
                                  required:
                                    - CoverType
                                    - Description
                                    - Required
                                minItems: 1
                                description: Cover and benefits provided by the policy.
                              PolicyPurchaseChannelType:
                                type: string
                                enum:
                                  - Direct
                                  - Agent
                                  - Broker
                                  - Bank
                                  - InvFinInst
                                  - TPA
                                  - OnlineInsideUAE
                                  - OnlineOutsideUAE
                                  - Aggregation
                                  - Outside
                                  - Other
                                description: Sales channel of policy.
                            required:
                              - CoverType
                              - IsPolicyholderLifeAssured
                              - TypeOfLifeInsurance
                              - InsurancePurpose
                              - SumAssuredAmount
                              - PolicyStartDate
                              - IsFinanceAgainstPolicy
                              - Takaful
                              - ProductName
                              - PolicyCoverAndBenefits
                              - PolicyPurchaseChannelType
                            description: Details of policy
                          InsuredParties:
                            type: array
                            items:
                              type: object
                              properties:
                                Salutation:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                                  description: The salutation of the individual or customer.
                                FirstName:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: First Name of the individual.
                                MiddleName:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: Middle Name of the individual.
                                LastName:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: Last Name (Surname) of the individual.
                                Gender:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                                  description: The gender of the customer
                                DateOfBirth:
                                  type: string
                                  format: date
                                  description: Date of birth of the individual.
                                MaritalStatus:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                                  description: The marital status of the individual.
                                ResidentialLocation:
                                  type: string
                                  description: Residential Location of the individual.
                                MobileNumber:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                                  description: The mobile telephone number of the individual.
                                LandlineNumber:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                                  pattern: ^\+?[1-9]\d{1,14}$
                                  description: The landline telephone number of the individual.
                                EmailAddress:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                                  description: Email address of the individual.
                                Nationality:
                                  type: string
                                  pattern: ^[A-Z]{3}$
                                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                                PrimaryLanguage:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                                  description: Primary language spoken by the insurance policy customer
                                Address:
                                  type: array
                                  items:
                                    $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
                                  minItems: 1
                                  description: Customer's address details
                                PreviousNameDetails:
                                  type: object
                                  properties:
                                    MaidenName:
                                      type: string
                                      description: The maiden name of the customer
                                    AliasName:
                                      type: string
                                      description: >-
                                        Any name, whether legal or casual, that the customer uses or has used on any
                                        forms in addition to their birth name.  This includes shortened versions of
                                        their name.
                                  minProperties: 1
                                  description: >-
                                    Required if the applicant or policy was known by a previous name.  One of MaidenName
                                    or AliasName must be populated. This property can be omitted if the customer
                                    confirms they held no previous names.
                                SecondNationality:
                                  type: string
                                  pattern: ^[A-Z]{3}$
                                  description: >-
                                    Confirmation of the policyholder's second nationality when they have dual
                                    nationality
                                CountryOfBirth:
                                  type: string
                                  pattern: ^[A-Z]{3}$
                                  description: Country of birth of the insured person expressed as an ISO 3166 3 character code.
                                Identity:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                                  description: Identification details of the policyholder.
                                Employment:
                                  type: object
                                  properties:
                                    EmploymentType:
                                      type: string
                                      enum:
                                        - PrivateSalaried
                                        - FederalGovernment
                                        - SelfEmployed
                                        - Retired
                                        - NotEmployed
                                        - Other
                                      description: Individual's employment type
                                    JobTitle:
                                      type: string
                                      description: Individual's job title
                                    EmployerName:
                                      type: string
                                      minLength: 1
                                      maxLength: 70
                                      description: Employer name.
                                    NatureOfEmployerBusiness:
                                      type: string
                                      minLength: 1
                                      maxLength: 140
                                      description: Nature of employer business
                                    EmploymentStartDate:
                                      type: string
                                      format: date
                                      description: Individual's employment start date
                                    MonthlyIncome:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: Monthly income amount and currency
                                    AnnualIncome:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: Annual income amount and currency
                                  description: Customer employment details
                                  minProperties: 1
                                LifeStyle:
                                  type: object
                                  properties:
                                    Alcohol:
                                      type: object
                                      properties:
                                        ConsumeAlcohol:
                                          type: boolean
                                          description: Indicates whether the insured individual consumes alcohol
                                        AlcoholUnitsPerWeek:
                                          type: integer
                                          description: The average number of alcohol units consumed per week
                                      required:
                                        - ConsumeAlcohol
                                      description: Questions about whether the individual consumes alcohol
                                    Smoking:
                                      type: object
                                      properties:
                                        SmokeCurrent:
                                          type: boolean
                                          description: 'Indicates whether the insured individual is a current smoker '
                                        TypeOfSmoking:
                                          allOf:
                                            - $ref: >-
                                                #/components/schemas/AEInsurance.AEHealthInsuranceQuoteTypeOfSmokingCodes
                                          description: Specifies the type of smoking product currently used
                                        SmokingQuantityPerDay:
                                          type: integer
                                          description: The average number of smoking products consumed per day.
                                        SmokePrevious:
                                          type: boolean
                                          description: 'Indicates whether the insured individual previously smoker '
                                        TypeOfPreviousSmoking:
                                          allOf:
                                            - $ref: >-
                                                #/components/schemas/AEInsurance.AEHealthInsuranceQuoteTypeOfSmokingCodes
                                          description: >-
                                            Specifies the type of smoking product previously used by the insured
                                            individual
                                        PreviousSmokingQuantityPerDay:
                                          type: integer
                                          description: The average number of smoking products consumed per day before quitting.
                                        HowLongSmoked:
                                          type: object
                                          properties:
                                            SmokingYears:
                                              type: integer
                                              description: >-
                                                The total number of years the insured individual has smoked or
                                                previously smoked.
                                            SmokingMonths:
                                              type: integer
                                              description: >-
                                                The total number of months the insured individual has smoked or
                                                previously smoked, in addition to full years.
                                            WhenStoppedSmoking:
                                              type: string
                                              description: The date or year when the insured individual stopped smoking.
                                            WhyStoppedSmoking:
                                              type: string
                                              description: >-
                                                The reason for quitting smoking (e.g., health concerns, doctor’s
                                                recommendation, lifestyle change).
                                          description: How long has the individual smoked in years and months
                                      required:
                                        - SmokeCurrent
                                        - SmokePrevious
                                  description: >-
                                    Details of the lifestyle declared by each insured persons. Omitted if not available
                                    or stored by the LFI.
                                  minProperties: 1
                              required:
                                - FirstName
                                - LastName
                                - Gender
                                - DateOfBirth
                            minItems: 1
                            description: Details of persons included in insurance policy.
                          FinanceAgainstPolicy:
                            type: object
                            properties:
                              FinanceProvider:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: The name of the financial institution providing the finance.
                              FinanceDate:
                                type: string
                                format: date
                                description: The start date of the finance
                              FinanceAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: The amount of the finance
                              ValueOfFinanceAgainstPolicyAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: The value of the life insurance policy that is secured against the finance
                            minProperties: 1
                            description: >-
                              Details of any finance associated with life insurance policy. Omitted if policy is not
                              secured against finance or details not held.
                          Riders:
                            type: array
                            items:
                              type: object
                              properties:
                                Name:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: >-
                                    The name of an optional rider (additional coverage) added to the policy or that can
                                    be added to the policy
                                PremiumAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: The additional premium amount charged for including a specific rider in the policy.
                              required:
                                - Name
                            description: >-
                              Details of optional riders added to the life insurance policy. Omitted if no policy riders
                              are included.
                          Beneficiaries:
                            type: array
                            items:
                              type: object
                              properties:
                                FirstName:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: First Name of the individual.
                                LastName:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: Last Name (Surname) of the individual.
                                MobileNumber:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                                  description: The mobile telephone number of the individual.
                                RelationshipToPolicyholder:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
                                  description: The relationship to the policyholder.
                              required:
                                - FirstName
                                - LastName
                                - MobileNumber
                                - RelationshipToPolicyholder
                            minItems: 1
                            description: Details of policy beneficiaries. Omitted if no beneficiaries are included in the policy
                        required:
                          - Policy
                          - InsuredParties
                        description: >-
                          Details of the insurance product. Requires `ReadInsuranceProduct` permission to be granted by
                          the User.
                      Claims:
                        type: object
                        properties:
                          Summary:
                            type: array
                            items:
                              $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingClaimsSummaryProperties'
                            minItems: 1
                            description: >-
                              Summary of previous claims. `NumberOfPreviousMonths` value must appear only once.


                              If no claims have been made then an array element with `NumberOfPreviousMonths` set to
                              zero must be provided, and all claim amounts must be set to zero, to provide a positive
                              assertion that no claims have been made. Currency must be set to AED for this case.
                          ClaimsHistory:
                            type: array
                            items:
                              type: object
                              properties:
                                ClaimUniqueID:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                  description: Unique reference that identifies the claim
                                ClaimDate:
                                  type: string
                                  format: date
                                  description: The original date the claim was submitted.
                                TotalGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: >-
                                    As per CBUAE scheme, total gross claim amount including Direct + Third party +
                                    Coinsurance / deductible + Loss Adjusters + VAT.
                                ClaimPayments:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      Currency:
                                        $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                                      Amount:
                                        $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                                      PaymentDate:
                                        type: string
                                        format: date
                                        description: The date on which the claim payment was made.
                                    required:
                                      - Currency
                                      - Amount
                                      - PaymentDate
                                  minItems: 1
                                  description: The amounts paid with amount, currency, and date.
                                DeductibleGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Deductible and co-insurance amount paid by customer.
                                PolicyClaimedBenefits:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      ClaimedBenefitType:
                                        type: string
                                      ClaimedBenefitDescription:
                                        type: string
                                    required:
                                      - ClaimedBenefitType
                                      - ClaimedBenefitDescription
                                  description: All the claimed policy benefits.
                                ClaimApprovalDate:
                                  type: string
                                  format: date
                                  description: The most recent approval date for any portion of the claim.
                                ClaimLastUpdateDate:
                                  type: string
                                  format: date
                                  description: Last update date of the claim.
                                DirectGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Amount of the claim paid directly.
                                ThirdPartyGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Amount of claim to be paid via third party insurance company.
                                ThirdPartyRecoveryCompany:
                                  type: string
                                  description: Name of recovery third party insurance company.
                                ThirdPartyRecoveryStatus:
                                  type: string
                                  enum:
                                    - Approved
                                    - Reopened
                                    - RecoveryOpened
                                    - Paid
                                    - RecoveryReopenedAndClaimClosed
                                    - Rejected
                                    - InProgress
                                  description: Status of recovery.
                                LossAdjusterGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Loss Adjusters fees on above claims.
                                OutstandingPayAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Claim payment amount outstanding.
                                Status:
                                  type: string
                                  enum:
                                    - Open
                                    - Outstanding
                                    - Closed
                                    - Reopened
                                    - Cancelled
                                    - Deleted
                                    - Rejected
                                  description: |-
                                    The status of the claim, based on the following CBUAE standard definitions:

                                    * `Open`: Once the claim is submitted.

                                    * `Outstanding`: The claim is under processing.

                                    * `Closed`: Once the claim is settled & closed.

                                    * `Reopened`: The claim is reopened.

                                    * `Cancelled`: The claim cancelled.

                                    * `Deleted`: The claim entered incorrectly and deleted.

                                    * `Rejected`: Company rejected the claim.
                                IncidentStartDate:
                                  type: string
                                  format: date
                                  description: Start date of the incident.
                              required:
                                - ClaimUniqueID
                                - ClaimDate
                                - TotalGrossClaimAmount
                                - PolicyClaimedBenefits
                                - ClaimLastUpdateDate
                                - Status
                                - IncidentStartDate
                            minItems: 1
                            description: Claims history. Only required if claims have been made against the policy.
                        required:
                          - Summary
                        description: >-
                          Details of claims made against the insurance policy. Requires the `ReadCustomerClaims`
                          permission to be granted by the User.
                      Premium:
                        anyOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPremiumProperties'
                          - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumJWE'
                        description: >-
                          Details of the insurance policy premium. Requires the `ReadInsurancePremium` permission to be
                          granted by the User.
                    required:
                      - InsurancePolicyId
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Life Insurance
  /life-insurance-policies/{InsurancePolicyId}/payment-details:
    get:
      operationId: LifeInsuranceReadInsurancePolicyByIdBankAccountDetailsOperation
      summary: Retrieve life insurance policy payment details
      description: |-
        Retrieve payment details for a given life insurance policy, based on data clusters 
        granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentDetails'
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Life Insurance
  /life-insurance-quotes:
    post:
      operationId: CreateLifeInsuranceQuoteOperation
      summary: Create a life insurance quote
      description: Create a life insurance quote.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AEInsurance.AEInsuranceCreateQuoteResponseProperties'
                    minItems: 1
                    description: >-
                      One-or-more quotes. If no quotes are provided the LFI should respond with the `204` response code
                      and an empty payload
                required:
                  - data
        '204':
          description: The LFI did not respond with a quote as the request policy requirements could not be fulfilled.
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Life Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AELifeInsuranceQuoteRequestProperties'
              required:
                - data
  /life-insurance-quotes/{QuoteId}:
    get:
      operationId: LifeInsuranceReadInsuranceQuoteByQuoteIdOperation
      summary: Retrieve a life insurance quote
      description: |-
        Retrieve the properties of a quote, using the quote identifier returned by the
        `post /life-insurance-quotes` operation.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadResponseProperties'
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Life Insurance
    patch:
      operationId: LifeInsuranceUpdateInsuranceQuoteByQuoteIdOperation
      summary: Accept a life insurance quote
      description: |-
        Update the quote status to `Accepted` in readiness to send the quote data to 
        create a new insurance policy. The TPP must update the status to Accepted before
        retrieving any additional data through their Data Sharing permissions, to include
        in the new insurance policy request.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      PolicyIssuanceAllowed:
                        type: object
                        properties:
                          CustomerVerification:
                            type: boolean
                            description: >-
                              Broker allowed to complete capture of customer verification information and documents for
                              this quote.
                          Payment:
                            type: boolean
                            description: Broker allowed to host payment checkout.
                          PolicyDocuments:
                            type: boolean
                            description: Broker allowed to provide policy documents to customer.
                        required:
                          - CustomerVerification
                          - Payment
                          - PolicyDocuments
                        description: Broker requests to handle following steps of policy issuance process.
                    minProperties: 1
                    description: >-
                      This response **MUST** only be used where there are instruction for TPP acting as a Broker. Please
                      use a `204` response if Broker instructions are not required.
                  links:
                    type: object
                    properties:
                      PaymentUrl:
                        type: string
                        format: uri
                        description: Hosted payment URL for TPP to present to customer.  Required when the Payment field is true.
                    required:
                      - PaymentUrl
                    description: Links to other resources. Can be omitted where `PaymentUrl` is not returned.
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Life Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AELifeInsuranceQuoteAcceptQuoteRequestProperties'
              required:
                - data
  /motor-insurance-policies:
    post:
      operationId: MotorInsuranceCreateInsurancePolicyOperation
      summary: Create a motor insurance policy from a quote
      description: |-
        Create a motor insurance policy based on a quote previously created by the
        LFI. The TPP will send the `QuoteId` that has been saved by the LFI, together with
        any additional data that is required to create the insurance policy. The
        LFI will then invoke their BAU process to create the insurance policy.

        After the policy initiation request has been sent the User will be redirected to
        the LFI to complete the creation of the insurance policy.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEInsuranceCreatePolicyResponse1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Motor Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceCreatePolicyData1'
              required:
                - data
    get:
      operationId: MotorInsuranceReadInsurancePoliciesOperation
      summary: Retrieve motor insurance policies
      description: Retrieve all insurance policies to which access has been granted by the User
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/InsurancePolicyIds'
        - $ref: '#/components/parameters/OzoneConnect.page'
        - $ref: '#/components/parameters/OzoneConnect.page-size'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadMotorInsurancePolicies1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Motor Insurance
  /motor-insurance-policies/{InsurancePolicyId}:
    get:
      operationId: MotorInsuranceReadInsurancePolicyByInsurancePolicyIdOperation
      summary: Retrieve a motor insurance policy
      description: |-
        Retrieve an insurance policy for a given insurance policy identifier value, based 
        on data clusters granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      InsurancePolicyId:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
                        description: Unique identifier for a given insurance policy
                        example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
                      PolicyHolder:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingCustomerBasicProperties'
                        description: >-
                          Information about the customer. Requires `ReadCustomerBasic` permission to be granted by the
                          User.
                      Identity:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                        description: >-
                          Identity information for the policyholder or insured person. Requires `ReadCustomerDetail`
                          permission to be granted by the User for the policyholder identity to be provided.
                      Product:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceProductData'
                        description: >-
                          Details of the insurance policy product. Requires the `ReadInsuranceProduct` permission to be
                          granted by the User.
                      Claims:
                        type: object
                        properties:
                          Summary:
                            type: array
                            items:
                              $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingClaimsSummaryProperties'
                            minItems: 1
                            description: >-
                              Summary of previous claims. `NumberOfPreviousMonths` value must appear only once.


                              If no claims have been made then an array element with `NumberOfPreviousMonths` set to
                              zero must be provided, and all claim amounts must be set to zero, to provide a positive
                              assertion that no claims have been made. Currency must be set to AED for this case.
                          ClaimsHistory:
                            type: array
                            items:
                              type: object
                              properties:
                                ClaimUniqueID:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                  description: Unique reference that identifies the claim
                                ClaimDate:
                                  type: string
                                  format: date
                                  description: The original date the claim was submitted.
                                TotalGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: >-
                                    As per CBUAE scheme, total gross claim amount including Direct + Third party +
                                    Coinsurance / deductible + Loss Adjusters + VAT.
                                ClaimPayments:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      Currency:
                                        $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                                      Amount:
                                        $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                                      PaymentDate:
                                        type: string
                                        format: date
                                        description: The date on which the claim payment was made.
                                    required:
                                      - Currency
                                      - Amount
                                      - PaymentDate
                                  minItems: 1
                                  description: The amounts paid with amount, currency, and date.
                                DeductibleGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Deductible and co-insurance amount paid by customer.
                                PolicyClaimedBenefits:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      ClaimedBenefitType:
                                        type: string
                                      ClaimedBenefitDescription:
                                        type: string
                                    required:
                                      - ClaimedBenefitType
                                      - ClaimedBenefitDescription
                                  description: All the claimed policy benefits.
                                ClaimApprovalDate:
                                  type: string
                                  format: date
                                  description: The most recent approval date for any portion of the claim.
                                ClaimLastUpdateDate:
                                  type: string
                                  format: date
                                  description: Last update date of the claim.
                                DirectGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Amount of the claim paid directly.
                                ThirdPartyGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Amount of claim to be paid via third party insurance company.
                                ThirdPartyRecoveryCompany:
                                  type: string
                                  description: Name of recovery third party insurance company.
                                ThirdPartyRecoveryStatus:
                                  type: string
                                  enum:
                                    - Approved
                                    - Reopened
                                    - RecoveryOpened
                                    - Paid
                                    - RecoveryReopenedAndClaimClosed
                                    - Rejected
                                    - InProgress
                                  description: Status of recovery.
                                LossAdjusterGrossClaimAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Loss Adjusters fees on above claims.
                                OutstandingPayAmount:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                  description: Claim payment amount outstanding.
                                Status:
                                  type: string
                                  enum:
                                    - Open
                                    - Outstanding
                                    - Closed
                                    - Reopened
                                    - Cancelled
                                    - Deleted
                                    - Rejected
                                  description: |-
                                    The status of the claim, based on the following CBUAE standard definitions:

                                    * `Open`: Once the claim is submitted.

                                    * `Outstanding`: The claim is under processing.

                                    * `Closed`: Once the claim is settled & closed.

                                    * `Reopened`: The claim is reopened.

                                    * `Cancelled`: The claim cancelled.

                                    * `Deleted`: The claim entered incorrectly and deleted.

                                    * `Rejected`: Company rejected the claim.
                                IncidentStartDate:
                                  type: string
                                  format: date
                                  description: Start date of the incident.
                                PoliceReportNumber:
                                  type: string
                                  description: Police report number related to the incident
                                AccidentType:
                                  type: string
                                  description: As per CBUAE schema, accident type as provided within company systems
                                IsTotalLoss:
                                  type: boolean
                                  description: Is the vehicle total loss?
                                TotalLossType:
                                  type: string
                                  description: >-
                                    Financial total loss is where the insurance company will declare a vehicle to be a
                                    total loss when the preliminary cost of repairs reaches some pre-determined
                                    percentage of the vehicles value: usually 50%.
                                SeverityOfAccident:
                                  type: string
                                  description: As per CBUAE schema, severity of accident
                                IncidentDateTime:
                                  type: string
                                  format: date-time
                                  description: Incident date and time
                                ClaimantAtFault:
                                  type: boolean
                                  description: Is the claimant at fault?
                                ClaimantPercentageAtFault:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePercentageValue'
                                  description: Percentage fault of claimant.
                                CrashCause:
                                  type: string
                                  enum:
                                    - Collision
                                    - MaliciousDamage
                                    - OverTurning
                                    - OffRoad
                                    - WindscreenDamage
                                    - Parked
                                    - UnknownDamage
                                    - TyreBurst
                                    - Theft
                                    - Fire
                                    - Other
                                  description: Cause of crash.
                              required:
                                - ClaimUniqueID
                                - ClaimDate
                                - TotalGrossClaimAmount
                                - PolicyClaimedBenefits
                                - ClaimLastUpdateDate
                                - Status
                                - IncidentStartDate
                            minItems: 1
                            description: Claims history. Only required if claims have been made against the policy.
                          NoClaimsDiscountLength:
                            type: integer
                            description: >-
                              The total number of years the insured has held a No Claims Discount (NCD) without making a
                              claim.
                          NoClaimsDiscountAvailable:
                            type: boolean
                            description: >-
                              Indicates whether the insured's No Claims Discount (NCD) is currently available for
                              transfer or application to the new policy
                        required:
                          - Summary
                          - NoClaimsDiscountAvailable
                        description: >-
                          Details of claims made against the insurance policy. Requires the `ReadCustomerClaims`
                          permission to be granted by the User.
                      Premium:
                        anyOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPremiumProperties'
                          - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumJWE'
                        description: >-
                          Details of the insurance policy premium. Requires the `ReadInsurancePremium` permission to be
                          granted by the User.
                    required:
                      - InsurancePolicyId
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Motor Insurance
  /motor-insurance-policies/{InsurancePolicyId}/payment-details:
    get:
      operationId: MotorInsuranceReadInsurancePolicyByIdBankAccountDetailsOperation
      summary: Retrieve motor insurance policy payment details
      description: |-
        Retrieve payment details for a given motor insurance policy, based on data clusters 
        granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentDetails'
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Motor Insurance
  /motor-insurance-quotes:
    post:
      operationId: CreateMotorInsuranceQuoteOperation
      summary: Create a motor insurance quote
      description: Create a motor insurance quote.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AEInsurance.AEInsuranceCreateQuoteResponseProperties'
                    minItems: 1
                    description: >-
                      One-or-more quotes. If no quotes are provided the LFI should respond with the `204` response code
                      and an empty payload
                required:
                  - data
        '204':
          description: The LFI did not respond with a quote as the request policy requirements could not be fulfilled.
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Motor Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteRequestProperties'
              required:
                - data
  /motor-insurance-quotes/{QuoteId}:
    get:
      operationId: MotorInsuranceReadInsuranceQuoteByQuoteIdOperation
      summary: Retrieve a motor insurance quote
      description: |-
        Retrieve the properties of a quote, using the quote identifier returned by the
        `post /motor-insurance-quotes` operation.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadResponseProperties'
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Motor Insurance
    patch:
      operationId: MotorInsuranceUpdateInsuranceQuoteByQuoteIdOperation
      summary: Accept a motor insurance quote
      description: |-
        Update the quote status to `Accepted` in readiness to send the quote data to 
        create a new insurance policy. The TPP must update the status to Accepted before
        retrieving any additional data through their Data Sharing permissions, to include
        in the new insurance policy request.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      PolicyIssuanceAllowed:
                        type: object
                        properties:
                          CustomerVerification:
                            type: boolean
                            description: >-
                              Broker allowed to complete capture of customer verification information and documents for
                              this quote.
                          Payment:
                            type: boolean
                            description: Broker allowed to host payment checkout.
                          PolicyDocuments:
                            type: boolean
                            description: Broker allowed to provide policy documents to customer.
                        required:
                          - CustomerVerification
                          - Payment
                          - PolicyDocuments
                        description: Broker requests to handle following steps of policy issuance process.
                    minProperties: 1
                    description: >-
                      This response **MUST** only be used where there are instruction for TPP acting as a Broker. Please
                      use a `204` response if Broker instructions are not required.
                  links:
                    type: object
                    properties:
                      PaymentUrl:
                        type: string
                        format: uri
                        description: Hosted payment URL for TPP to present to customer.  Required when the Payment field is true.
                    required:
                      - PaymentUrl
                    description: Links to other resources. Can be omitted where `PaymentUrl` is not returned.
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Motor Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteAcceptQuoteRequestProperties'
              required:
                - data
  /renters-insurance-policies:
    post:
      operationId: RentersInsuranceCreateInsurancePolicyOperation
      summary: Create a renters insurance policy from a quote
      description: |-
        Create a renters insurance policy based on a quote previously created by the
        LFI. The TPP will send the `QuoteId` that has been saved by the LFI, together with
        any additional data that is required to create the insurance policy. The
        LFI will then invoke their BAU process to create the insurance policy.

        After the policy initiation request has been sent the User will be redirected to
        the LFI to complete the creation of the insurance policy.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEInsuranceCreatePolicyResponse1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Renters Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceCreatePolicyData1'
              required:
                - data
    get:
      operationId: RentersInsuranceReadInsurancePoliciesOperation
      summary: Retrieve renters insurance policies
      description: Retrieve all insurance policies to which access has been granted by the User
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/InsurancePolicyIds'
        - $ref: '#/components/parameters/OzoneConnect.page'
        - $ref: '#/components/parameters/OzoneConnect.page-size'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadInsurancePolicies1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Renters Insurance
  /renters-insurance-policies/{InsurancePolicyId}:
    get:
      operationId: RentersInsuranceReadInsurancePolicyByInsurancePolicyIdOperation
      summary: Retrieve a renters insurance policy
      description: |-
        Retrieve an insurance policy for a given insurance policy identifier value, based 
        on data clusters granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      InsurancePolicyId:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
                        description: Unique identifier for a given insurance policy
                        example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
                      PolicyHolder:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerQuoteProperties'
                        description: >-
                          Information about the customer. Requires `ReadCustomerBasic` permission to be granted by the
                          User.
                      Identity:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                        description: >-
                          Identity information for the policyholder or insured person. Requires `ReadCustomerDetail`
                          permission to be granted by the User for the policyholder identity to be provided.
                      Product:
                        type: object
                        properties:
                          Policy:
                            type: object
                            properties:
                              PolicyStartDate:
                                type: string
                                format: date
                                description: Policy start date
                              PolicyEndDate:
                                type: string
                                format: date
                                description: Policy end date
                              Takaful:
                                type: boolean
                                description: Indicates whether the policy is Sharia compliant.
                              ProductName:
                                type: string
                                description: Business name of the policy product as provided externally to the customer.
                              PolicyExcess:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: When applicable, the amount that would be deductible from any claim.
                              PolicyCoverAndBenefits:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    CoverType:
                                      type: string
                                      description: Type of cover as defined in company systems.
                                    Description:
                                      type: string
                                      description: Description of the cover / benefit.
                                    Required:
                                      type: boolean
                                      description: >-
                                        To confirm whether the cover or benefit is required as part of the base
                                        insurance policy or is optional.
                                    CoverLimit:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: >-
                                        When applicable, the benefit coverage limit that could be paid if a claim was
                                        made.
                                    CoverInclusionsAndExclusions:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          InclusionAndExclusionDescription:
                                            type: string
                                            description: Description of the inclusion or exclusion.
                                        required:
                                          - InclusionAndExclusionDescription
                                      minItems: 1
                                      description: included inclusions and exclusions for cover type.
                                    CoverExcess:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: When applicable, the amount that would be deductible from any claim.
                                    CoverID:
                                      type: string
                                      description: Insurers internal unique ID for specific cover.
                                  required:
                                    - CoverType
                                    - Description
                                    - Required
                                minItems: 1
                                description: Cover and benefits provided by the policy.
                              PolicyPurchaseChannelType:
                                type: string
                                enum:
                                  - Direct
                                  - Agent
                                  - Broker
                                  - Bank
                                  - InvFinInst
                                  - TPA
                                  - OnlineInsideUAE
                                  - OnlineOutsideUAE
                                  - Aggregation
                                  - Outside
                                  - Other
                                description: Sales channel of policy.
                            required:
                              - PolicyStartDate
                              - Takaful
                              - ProductName
                              - PolicyCoverAndBenefits
                              - PolicyPurchaseChannelType
                            description: Details of the policy.
                          PropertyDetails:
                            type: object
                            properties:
                              TypeOfProperty:
                                type: string
                                enum:
                                  - House
                                  - Villa
                                  - Apartment
                                  - Flat
                                  - Other
                                description: Based on enumeration values.
                              OwnershipStatus:
                                type: string
                                enum:
                                  - Owner
                                  - OwnerWithMortgage
                                  - Landlord
                                  - Tenant
                                description: Based on enumeration values.
                              Construction:
                                type: string
                                enum:
                                  - ClassA
                                  - ClassB
                                  - ClassC
                                description: Type of construction
                              OverTenYears:
                                type: boolean
                                description: Confirmation whether the property is over 10 years old
                              FloodDamage:
                                type: boolean
                                description: >-
                                  Confirmation whether the buildings and/or contents have suffered damage by storm,
                                  tempest or flood during the past five years
                              NumberOfAdults:
                                type: integer
                                description: The number of adults that will be living in the home
                              NumberOfChildren:
                                type: integer
                                description: The number of children that will be living in the home
                              NumberOfFloors:
                                type: integer
                                description: The total number of floors in the insured property, including all above-ground levels.
                              NumberOfRooms:
                                type: integer
                                description: 'The total number of rooms within the property, excluding bathrooms. '
                              InsuredPropertyAddress:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
                                description: The full address of the property to be insured
                              SafetySecurityFeatures:
                                type: object
                                properties:
                                  DistanceFromShoreline:
                                    type: string
                                    description: >-
                                      The shortest distance from the insured property to the nearest coastline, measured
                                      in meters 
                                  DistanceAboveSeaLevel:
                                    type: string
                                    description: The elevation of the insured property above sea level, measured in meters
                                  InDesignatedFloodZone:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured is in a
                                      Designated Flood Zone
                                  WaterLeakDetectionSystems:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has Water Leak
                                      Detection Systems
                                  BurglarAlarm:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has a burglar
                                      installed
                                  SurveillanceCameras:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has
                                      Surveillance or Security Cameras
                                  DoorCamera:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has a door
                                      camera
                                  SecurityGuards:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has Security
                                      Guards employed
                                  SmokeDetectors:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has Smoke
                                      Detectors installed
                                  FireExtinguishers:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has Fire
                                      Extinguishers
                                  SprinklerSystem:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has Sprinkler
                                      System installed
                                  DeadboltLocks:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has Dead bolt
                                      Locks installed
                                  WindowLocks:
                                    type: boolean
                                    description: >-
                                      Confirmation whether the property to be insured or is being insured has Window
                                      Locks installed
                                description: Details of property safety and security features.
                              YearOfConstruction:
                                type: string
                                pattern: ^[0-9]{4}$
                                description: Year of construction
                              ConstructionType:
                                type: string
                                enum:
                                  - Concrete
                                  - Wood
                                  - Mixed
                                  - Other
                                description: Construction type, based on enumeration values.
                              FoundationType:
                                type: string
                                enum:
                                  - Slab
                                  - CrawlSpace
                                  - Basement
                                description: Foundation type, based on enumeration values.
                              ExteriorWalls:
                                type: string
                                enum:
                                  - Brick
                                  - Stone
                                  - Concrete
                                  - Stucco
                                  - Wood
                                  - Other
                                description: Exterior wall construction, based on enumeration values.
                              RoofType:
                                type: string
                                enum:
                                  - Tile
                                  - Shingle
                                  - Metal
                                  - Other
                                description: Type of rooting, based on enumeration values.
                              PropertyCondition:
                                type: string
                                enum:
                                  - Excellent
                                  - Good
                                  - Fair
                                  - Poor
                                description: Property condition, based on enumeration values.
                              UsageByApplicant:
                                type: string
                                enum:
                                  - PrimaryResidence
                                  - SecondaryResidence
                                  - RentalProperty
                                  - VacantProperty
                                  - Other
                                description: Property usage, based on enumeration values.
                              NumberOfCurrentOccupants:
                                type: integer
                                description: >-
                                  The total number of people currently residing or will be residing in the insured
                                  property.
                              TotalBuiltUpArea:
                                type: integer
                                description: Total built-up area in square meters.
                              NumberOfBathrooms:
                                type: integer
                                description: The total number of bathrooms in the property, including full and half-bathrooms
                              NumberOfBedrooms:
                                type: integer
                                description: The total number of bedrooms in the insured property
                              PresenceOfAttic:
                                type: boolean
                                description: Indicates whether the insured property has an attic
                              PresenceOfBasement:
                                type: boolean
                                description: Indicates whether the insured property has a basement
                              TypeOfCoolingSystem:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: The primary cooling system installed in the property
                              AgeOfCoolingSystem:
                                type: string
                                description: Age of the cooling system in years.
                              TypeOfHeatingSystem:
                                type: string
                                minLength: 1
                                maxLength: 70
                                description: The primary heating system used in the property
                              AgeOfHeatingSystem:
                                type: string
                                description: Age of the heating system in years
                              AdditionalStructures:
                                type: array
                                items:
                                  type: string
                                minItems: 1
                                description: >-
                                  Any detached structures on the property, such as garages, sheds, guesthouses, or
                                  swimming pools. Omitted if none present at property.
                              ConsecutiveDaysUnoccupied:
                                type: integer
                                description: >-
                                  The maximum number of consecutive days the property is expected to be unoccupied
                                  during the policy period
                            required:
                              - TypeOfProperty
                            description: Details of the rented property.
                          LeaseDetails:
                            type: object
                            properties:
                              TermType:
                                type: string
                                description: >-
                                  Confirmation whether the lease duration is a short-term lease, one-year lease or
                                  long-term lease when greater than one year.
                              StartDate:
                                type: string
                                format: date
                                description: The date when the lease agreement for the rented property begins.
                              EndDate:
                                type: string
                                format: date
                                description: The date when the lease agreement for the rented property ends.
                              FurnishingStatus:
                                type: string
                                enum:
                                  - Furnished
                                  - SemiFurnished
                                  - Unfurnished
                                description: Furnishing status at start of lease
                              LandlordFullName:
                                type: string
                                minLength: 1
                                maxLength: 140
                                description: The Landlord's full name
                              LandlordTelephoneNumber:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                                description: Phone number of the property Landlord
                              LandlordEmailAddress:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                                description: Email address of the property Landlord
                              MonthlyRentAmount:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: The agreed monthly rental amount for the leased property.
                            description: Details of the lease. Omitted if no data is available.
                            minProperties: 1
                          ContentsCoverDetails:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingContentsCoverDetails'
                            description: Required when Cover is ContentsCover
                          PersonalBelongings:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPersonalBelongings'
                            description: Details of the contents, if contents cover is included.
                          DomesticHelpers:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuoteDomesticHelperProperties'
                            description: Details of domestic helper cover, if domestic helper cover is included.
                          ImportantQuestions:
                            type: object
                            properties:
                              PrimaryResidence:
                                type: boolean
                                description: Confirmation whether the property is the customer's primary residence
                              BusinessPurposes:
                                type: boolean
                                description: Confirmation whether the property will be used for business purposes
                              PropertyOccupation:
                                type: boolean
                                description: >-
                                  Confirmation whether the property will be occupied solely by the customer, their
                                  family and Domestic Helper?
                              DayTimeOccupation:
                                type: boolean
                                description: Confirmation whether the home will be occupied during the day time.
                              UnoccupiedOverSixtyDays:
                                type: boolean
                                description: Confirmation whether the property will be left un-occupied for more than 60 days.
                              NumberOfTenants:
                                type: integer
                                description: >-
                                  The number of other tenants when the property will not be solely occupied by the
                                  customer and their family.
                            description: Important questions asked when the policy was created. Omitted if not available.
                            minProperties: 1
                        required:
                          - Policy
                          - PropertyDetails
                        description: >-
                          Information about the insurance product. Requires `ReadInsuranceProduct` permission to be
                          granted by the User.
                      Claims:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingClaimsWithLossCauseProperties'
                        description: >-
                          Details of claims made against the insurance policy. Requires the `ReadCustomerClaims`
                          permission to be granted by the User.
                      Premium:
                        anyOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPremiumProperties'
                          - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumJWE'
                        description: >-
                          Details of the insurance policy premium. Requires the `ReadInsurancePremium` permission to be
                          granted by the User.
                    required:
                      - InsurancePolicyId
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Renters Insurance
  /renters-insurance-policies/{InsurancePolicyId}/payment-details:
    get:
      operationId: RentersInsuranceReadInsurancePolicyByIdBankAccountDetailsOperation
      summary: Retrieve renters insurance policy payment details
      description: |-
        Retrieve payment details for a given renters insurance policy, based on data clusters 
        granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentDetails'
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Renters Insurance
  /renters-insurance-quotes:
    post:
      operationId: CreateRentersInsuranceQuoteOperation
      summary: Create a renters insurance quote
      description: Create a renters insurance quote.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AEInsurance.AEInsuranceCreateQuoteResponseProperties'
                    minItems: 1
                    description: >-
                      One-or-more quotes. If no quotes are provided the LFI should respond with the `204` response code
                      and an empty payload
                required:
                  - data
        '204':
          description: The LFI did not respond with a quote as the request policy requirements could not be fulfilled.
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Renters Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuoteRequestProperties'
              required:
                - data
  /renters-insurance-quotes/{QuoteId}:
    get:
      operationId: RentersInsuranceReadInsuranceQuoteByQuoteIdOperation
      summary: Retrieve a renters insurance quote
      description: |-
        Retrieve the properties of a quote, using the quote identifier returned by the
        `post /renters-insurance-quotes` operation.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadResponseProperties'
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Renters Insurance
    patch:
      operationId: RentersInsuranceUpdateInsuranceQuoteByQuoteIdOperation
      summary: Accept a renters insurance quote
      description: |-
        Update the quote status to `Accepted` in readiness to send the quote data to 
        create a new insurance policy. The TPP must update the status to Accepted before
        retrieving any additional data through their Data Sharing permissions, to include
        in the new insurance policy request.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      PolicyIssuanceAllowed:
                        type: object
                        properties:
                          CustomerVerification:
                            type: boolean
                            description: >-
                              Broker allowed to complete capture of customer verification information and documents for
                              this quote.
                          Payment:
                            type: boolean
                            description: Broker allowed to host payment checkout.
                          PolicyDocuments:
                            type: boolean
                            description: Broker allowed to provide policy documents to customer.
                        required:
                          - CustomerVerification
                          - Payment
                          - PolicyDocuments
                        description: Broker requests to handle following steps of policy issuance process.
                    minProperties: 1
                    description: >-
                      This response **MUST** only be used where there are instruction for TPP acting as a Broker. Please
                      use a `204` response if Broker instructions are not required.
                  links:
                    type: object
                    properties:
                      PaymentUrl:
                        type: string
                        format: uri
                        description: Hosted payment URL for TPP to present to customer.  Required when the Payment field is true.
                    required:
                      - PaymentUrl
                    description: Links to other resources. Can be omitted where `PaymentUrl` is not returned.
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Renters Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuoteAcceptQuoteRequestProperties'
              required:
                - data
  /travel-insurance-policies:
    post:
      operationId: TravelInsuranceCreateInsurancePolicyOperation
      summary: Create a travel insurance policy from a quote
      description: |-
        Create a travel insurance policy based on a quote previously created by the
        LFI. The TPP will send the `QuoteId` that has been saved by the LFI, together with
        any additional data that is required to create the insurance policy. The
        LFI will then invoke their BAU process to create the insurance policy.

        After the policy initiation request has been sent the User will be redirected to
        the LFI to complete the creation of the insurance policy.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEInsuranceCreatePolicyResponse1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Travel Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceCreatePolicyData1'
              required:
                - data
    get:
      operationId: TravelInsuranceReadInsurancePoliciesOperation
      summary: Retrieve travel insurance policies
      description: Retrieve all insurance policies to which access has been granted by the User
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/InsurancePolicyIds'
        - $ref: '#/components/parameters/OzoneConnect.page'
        - $ref: '#/components/parameters/OzoneConnect.page-size'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AEReadInsurancePolicies1'
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Travel Insurance
  /travel-insurance-policies/{InsurancePolicyId}:
    get:
      operationId: TravelInsuranceReadInsurancePolicyByInsurancePolicyIdOperation
      summary: Retrieve a travel insurance policy
      description: |-
        Retrieve an insurance policy for a given insurance policy identifier value, based 
        on data clusters granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      InsurancePolicyId:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
                        description: Unique identifier for a given insurance policy
                        example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
                      PolicyHolder:
                        type: object
                        properties:
                          Salutation:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                            description: The salutation of the individual or customer.
                          FirstName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: First Name of the individual.
                          MiddleName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: Middle Name of the individual.
                          LastName:
                            type: string
                            minLength: 1
                            maxLength: 70
                            description: Last Name (Surname) of the individual.
                          Gender:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                            description: The gender of the customer
                          DateOfBirth:
                            type: string
                            format: date
                            description: Date of birth of the individual.
                          MaritalStatus:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                            description: The marital status of the individual.
                          ResidentialLocation:
                            type: string
                            description: Residential Location of the individual.
                          LandlineNumber:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                            pattern: ^\+?[1-9]\d{1,14}$
                            description: The landline telephone number of the individual.
                          Nationality:
                            type: string
                            pattern: ^[A-Z]{3}$
                            description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                          PrimaryLanguage:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                            description: Primary language spoken by the insurance policy customer
                          MobileNumber:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                            description: The mobile telephone number of the individual.
                          EmailAddress:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                            description: Email address of the individual.
                          Address:
                            type: array
                            items:
                              $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
                            minItems: 1
                            description: Customer's address details
                        required:
                          - FirstName
                          - LastName
                          - Gender
                          - DateOfBirth
                          - Nationality
                          - MobileNumber
                          - EmailAddress
                        description: >-
                          Information about the customer. Requires `ReadCustomerBasic` permission to be granted by the
                          User.
                      Identity:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                        description: >-
                          Identity information for the policyholder or insured person. Requires `ReadCustomerDetail`
                          permission to be granted by the User for the policyholder identity to be provided.
                      Product:
                        type: object
                        properties:
                          Policy:
                            type: object
                            properties:
                              PolicyStartDate:
                                type: string
                                format: date
                                description: Policy start date
                              PolicyEndDate:
                                type: string
                                format: date
                                description: Policy end date
                              TripDuration:
                                type: integer
                                description: The total number of days the insured individual will be traveling
                              NumberOfInsuredCompanions:
                                type: integer
                                description: >-
                                  The total number of individuals traveling with the insured person who will also be
                                  covered under the policy.
                              NumberOfAdults:
                                type: integer
                                description: The total number of adult travellers included in the policy.
                              NumberOfChildren:
                                type: integer
                                description: The total number of child travellers included in the policy.
                              NumberOfSeniors:
                                type: integer
                                description: The total number of senior travellers included in the policy
                              MultiTrip:
                                type: boolean
                                description: Indicates whether the policy is multi-trip
                              PurposeOfTravel:
                                type: string
                                enum:
                                  - Personal
                                  - Business
                                description: The primary reason for travel
                              TravellingWith:
                                type: string
                                enum:
                                  - Individual
                                  - Couple
                                  - Family
                                  - Group
                                description: The relationship of the insured individual's travel companions
                              TravelDestinationRegion:
                                type: string
                                enum:
                                  - WithinUAE
                                  - Worldwide
                                  - WorldwideExcludingUSAandCanada
                                description: The geographical region where the insured individual will be traveling
                              TravelDestinationCountryCountries:
                                type: array
                                items:
                                  $ref: '#/components/schemas/AEInsurance.AETravelInsuranceDestinationCountry'
                                description: The country or countries where the insured individual will be traveling.
                              Takaful:
                                type: boolean
                                description: Indicates whether the policy is Sharia compliant.
                              ProductName:
                                type: string
                                description: Business name of the policy product as provided externally to the customer.
                              PolicyExcess:
                                allOf:
                                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                description: When applicable, the amount that would be deductible from any claim.
                              PolicyCoverAndBenefits:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    CoverType:
                                      type: string
                                      description: Type of cover as defined in company systems.
                                    Description:
                                      type: string
                                      description: Description of the cover / benefit.
                                    Required:
                                      type: boolean
                                      description: >-
                                        To confirm whether the cover or benefit is required as part of the base
                                        insurance policy or is optional.
                                    CoverLimit:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: >-
                                        When applicable, the benefit coverage limit that could be paid if a claim was
                                        made.
                                    CoverInclusionsAndExclusions:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          InclusionAndExclusionDescription:
                                            type: string
                                            description: Description of the inclusion or exclusion.
                                        required:
                                          - InclusionAndExclusionDescription
                                      minItems: 1
                                      description: included inclusions and exclusions for cover type.
                                    CoverExcess:
                                      allOf:
                                        - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                                      description: When applicable, the amount that would be deductible from any claim.
                                    CoverID:
                                      type: string
                                      description: Insurers internal unique ID for specific cover.
                                  required:
                                    - CoverType
                                    - Description
                                    - Required
                                minItems: 1
                                description: Cover and benefits provided by the policy.
                              PolicyPurchaseChannelType:
                                type: string
                                enum:
                                  - Direct
                                  - Agent
                                  - Broker
                                  - Bank
                                  - InvFinInst
                                  - TPA
                                  - OnlineInsideUAE
                                  - OnlineOutsideUAE
                                  - Aggregation
                                  - Outside
                                  - Other
                                description: Sales channel of policy.
                            required:
                              - PolicyStartDate
                              - TripDuration
                              - NumberOfInsuredCompanions
                              - NumberOfAdults
                              - NumberOfChildren
                              - NumberOfSeniors
                              - MultiTrip
                              - Takaful
                              - ProductName
                              - PolicyCoverAndBenefits
                              - PolicyPurchaseChannelType
                            description: Details of the trip or trips cover by the insurance.
                          InsuredParties:
                            type: array
                            items:
                              type: object
                              properties:
                                RelationshipToPrimaryTraveller:
                                  type: string
                                  enum:
                                    - Spouse
                                    - Child
                                    - FamilyMember
                                    - GroupMember
                                  description: Relationship to the primary traveller.
                                FirstName:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: First Name of the individual.
                                LastName:
                                  type: string
                                  minLength: 1
                                  maxLength: 70
                                  description: Last Name (Surname) of the individual.
                                DateOfBirth:
                                  type: string
                                  format: date
                                  description: Date of birth of the individual.
                                Nationality:
                                  type: string
                                  pattern: ^[A-Z]{3}$
                                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                                Gender:
                                  allOf:
                                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                                  description: The gender of the customer
                                PassportNumber:
                                  type: string
                                  description: Passport number
                                NameOnPassport:
                                  type: string
                                  minLength: 1
                                  maxLength: 140
                                  description: The applicant, policyholder or insured person name as detailed on their passport
                                EmiratesIdNumber:
                                  type: string
                                  pattern: ^784-?[0-9]{4}-?[0-9]{7}-?[0-9]{1}$
                                  description: Emirates identification number
                              required:
                                - FirstName
                                - LastName
                                - DateOfBirth
                                - Nationality
                            minItems: 1
                            description: >-
                              Details of the travellers cover by the insurance. Omitted if only the policyholder is
                              covered.
                          OptionalTravelCoverOptions:
                            allOf:
                              - $ref: >-
                                  #/components/schemas/AEInsurance.AETravelInsuranceQuoteOptionalTravelCoverOptionProperties
                            description: >-
                              Details of optional travel cover items. Omitted if none of the listed options are
                              included.
                          HighRiskActivities:
                            type: array
                            items:
                              $ref: '#/components/schemas/AEInsurance.AETravelInsuranceQuoteHighRiskActivityProperties'
                            description: >-
                              Details of high risk activities included in the cover. Omitted if no high risk activities
                              are included.
                        required:
                          - Policy
                        description: >-
                          Details of the insurance product. Requires `ReadInsuranceProduct` permission to be granted by
                          the User.
                      Claims:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingClaimsWithLossCauseProperties'
                        description: >-
                          Details of claims made against the insurance policy. Requires the `ReadCustomerClaims`
                          permission to be granted by the User.
                      Premium:
                        anyOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPremiumProperties'
                          - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumJWE'
                        description: >-
                          Details of the insurance policy premium. Requires the `ReadInsurancePremium` permission to be
                          granted by the User.
                    required:
                      - InsurancePolicyId
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Travel Insurance
  /travel-insurance-policies/{InsurancePolicyId}/payment-details:
    get:
      operationId: TravelInsuranceReadInsurancePolicyByIdBankAccountDetailsOperation
      summary: Retrieve travel insurance policy payment details
      description: |-
        Retrieve payment details for a given travel insurance policy, based on data clusters 
        granted by the User.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.consentId'
        - $ref: '#/components/parameters/OzoneConnect.psuIdentifier'
        - $ref: '#/components/parameters/AEInsurance.InsurancePolicyId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentDetails'
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Travel Insurance
  /travel-insurance-quotes:
    post:
      operationId: CreateTravelInsuranceQuoteOperation
      summary: Create a travel insurance quote
      description: Create a travel insurance quote.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AEInsurance.AEInsuranceCreateQuoteResponseProperties'
                    minItems: 1
                    description: >-
                      One-or-more quotes. If no quotes are provided the LFI should respond with the `204` response code
                      and an empty payload
                required:
                  - data
        '204':
          description: The LFI did not respond with a quote as the request policy requirements could not be fulfilled.
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Travel Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AETravelInsuranceQuoteRequestProperties'
              required:
                - data
  /travel-insurance-quotes/{QuoteId}:
    get:
      operationId: TravelInsuranceReadInsuranceQuoteByQuoteIdOperation
      summary: Retrieve a travel insurance quote
      description: |-
        Retrieve the properties of a quote, using the quote identifier returned by the
        `post /travel-insurance-quotes` operation.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadResponseProperties'
                required:
                  - data
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Travel Insurance
    patch:
      operationId: TravelInsuranceUpdateInsuranceQuoteByQuoteIdOperation
      summary: Accept a travel insurance quote
      description: |-
        Update the quote status to `Accepted` in readiness to send the quote data to 
        create a new insurance policy. The TPP must update the status to Accepted before
        retrieving any additional data through their Data Sharing permissions, to include
        in the new insurance policy request.
      parameters:
        - $ref: '#/components/parameters/OzoneConnect.providerId'
        - $ref: '#/components/parameters/OzoneConnect.callerOrgId'
        - $ref: '#/components/parameters/OzoneConnect.callerClientId'
        - $ref: '#/components/parameters/OzoneConnect.callerSoftwareStatementId'
        - $ref: '#/components/parameters/OzoneConnect.apiUri'
        - $ref: '#/components/parameters/OzoneConnect.apiOperation'
        - $ref: '#/components/parameters/OzoneConnect.callerInteractionId'
        - $ref: '#/components/parameters/OzoneConnect.ozoneInteractionId'
        - $ref: '#/components/parameters/AEInsurance.QuoteId'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      PolicyIssuanceAllowed:
                        type: object
                        properties:
                          CustomerVerification:
                            type: boolean
                            description: >-
                              Broker allowed to complete capture of customer verification information and documents for
                              this quote.
                          Payment:
                            type: boolean
                            description: Broker allowed to host payment checkout.
                          PolicyDocuments:
                            type: boolean
                            description: Broker allowed to provide policy documents to customer.
                        required:
                          - CustomerVerification
                          - Payment
                          - PolicyDocuments
                        description: Broker requests to handle following steps of policy issuance process.
                    minProperties: 1
                    description: >-
                      This response **MUST** only be used where there are instruction for TPP acting as a Broker. Please
                      use a `204` response if Broker instructions are not required.
                  links:
                    type: object
                    properties:
                      PaymentUrl:
                        type: string
                        format: uri
                        description: Hosted payment URL for TPP to present to customer.  Required when the Payment field is true.
                    required:
                      - PaymentUrl
                    description: Links to other resources. Can be omitted where `PaymentUrl` is not returned.
                required:
                  - data
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/error400Response'
        '403':
          $ref: '#/components/responses/error403Response'
        '409':
          $ref: '#/components/responses/error409Response'
        '500':
          $ref: '#/components/responses/error500Response'
        default:
          $ref: '#/components/responses/errorResponse'
      tags:
        - Travel Insurance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AEInsurance.AETravelInsuranceQuoteAcceptQuoteRequestProperties'
              required:
                - data
components:
  parameters:
    AEInsurance.InsurancePolicyId:
      name: InsurancePolicyId
      in: path
      required: true
      description: Unique identifier for a given insurance policy
      schema:
        $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
    AEInsurance.QuoteId:
      name: QuoteId
      in: path
      required: true
      description: Unique identifier for a quote created by an LFI
      schema:
        $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
    InsurancePolicyIds:
      name: insurancePolicyIds
      in: query
      required: true
      description: >-
        A comma-separated list of insurance policy identifiers. Used to retrieve all insurance policies authorized by
        the User, which matches the `insurancePolicyIds` data for a given Consent at Consent Manager.
      schema:
        type: string
      explode: false
    OzoneConnect.apiOperation:
      name: o3-api-operation
      in: header
      required: true
      description: The API operation carried out by the caller (e.g. GET, POST, PUT, DELETE, PATCH)
      schema:
        type: string
    OzoneConnect.apiUri:
      name: o3-api-uri
      in: header
      required: true
      description: The URL of the API being called by the caller
      schema:
        type: string
    OzoneConnect.callerClientId:
      name: o3-caller-client-id
      in: header
      required: true
      description: An identifier for the OIDC clientId calling the API
      schema:
        type: string
    OzoneConnect.callerInteractionId:
      name: o3-caller-interaction-id
      in: header
      required: false
      description: The interaction ID passed in by the caller, if any
      schema:
        type: string
    OzoneConnect.callerOrgId:
      name: o3-caller-org-id
      in: header
      required: true
      description: An identifier for the organization calling the API
      schema:
        type: string
    OzoneConnect.callerSoftwareStatementId:
      name: o3-caller-software-statement-id
      in: header
      required: true
      description: An identifier for the software statement calling the API
      schema:
        type: string
    OzoneConnect.consentId:
      name: o3-consent-id
      in: header
      required: true
      description: The consentId for which this call is being made
      schema:
        type: string
    OzoneConnect.ozoneInteractionId:
      name: o3-ozone-interaction-id
      in: header
      required: true
      description: >-
        An interaction ID generated by Ozone if the caller did not send in one. If the callerInteractionId is specified,
        this takes the same value.
      schema:
        type: string
    OzoneConnect.page:
      name: page
      in: query
      required: true
      description: Page of results to request (standard pagination)
      schema:
        type: integer
        default: 1
    OzoneConnect.page-size:
      name: page-size
      in: query
      required: true
      description: Page size to request. Default is 100 to comply with the Operating Guidelines for the Open Finance Framework.
      schema:
        type: integer
        default: 100
    OzoneConnect.providerId:
      name: o3-provider-id
      in: header
      required: true
      description: Identifier for the financial institution that the request is targeted to
      schema:
        type: string
    OzoneConnect.psuIdentifier:
      name: o3-psu-identifier
      in: header
      required: true
      description: A Base64 encoded representation of the psuIdentifier JSON object.
      schema:
        type: string
  schemas:
    AECustomErrorCode:
      type: string
      pattern: ^[A-Za-z]+\.[A-Za-z0-9]+$
    AEError400Codes:
      type: string
      enum:
        - Consent.Invalid
        - Consent.BusinessRuleViolation
        - Consent.FailsControlParameters
        - Consent.InvalidUserIdentifier
        - JWS.InvalidSignature
        - JWS.Malformed
        - JWS.InvalidClaim
        - JWS.InvalidHeader
        - JWS.InvalidPayload
        - JWE.DecryptionError
        - JWE.InvalidHeader
        - GenericRecoverableError
        - GenericError
        - Event.UnexpectedEvent
        - Body.InvalidFormat
        - Resource.InvalidFormat
    AEError403Codes:
      type: string
      enum:
        - AccessToken.InvalidScope
        - Consent.TransientAccountAccessFailure
        - Consent.AccountTemporarilyBlocked
        - Consent.PermanentAccountAccessFailure
        - GenericRecoverableError
        - GenericError
    AEErrorGenericCodes:
      type: string
      enum:
        - GenericRecoverableError
        - GenericError
    AEInsurance.AEActiveCurrencyAmount:
      type: object
      required:
        - Currency
        - Amount
      properties:
        Currency:
          $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
        Amount:
          $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
      description: The Currency and Amount relating to the Payment, Refund or Request to Pay
    AEInsurance.AEActiveOrHistoricAmount:
      type: string
      pattern: ^\d{1,16}\.\d{2}$
      description: >-
        A number of monetary units specified in an active currency where the unit of currency is explicit and compliant
        with ISO 4217.
      example: '100.00'
    AEInsurance.AEActiveOrHistoricCurrencyCode:
      type: string
      pattern: ^[A-Z]{3,3}$
      description: >-
        A 3 character alphabetic code allocated to a currency under an international currency identification scheme, as
        described in the latest edition of the international standard ISO 4217 'Codes for the representation of
        currencies and funds'.
      example: AED
    AEInsurance.AECustomerPrimaryLanguage:
      type: string
      enum:
        - English
        - Arabic
        - Other
      description: Primary language spoken by the insurance policy customer
    AEInsurance.AEDocumentProperties:
      type: object
      required:
        - Type
        - FileName
        - ContentType
        - Content
        - HashType
        - Hash
      properties:
        Type:
          type: string
          description: The type of document that has been provided.  For example, Policy Booklet, Terms & Conditions
        FileName:
          type: string
          description: >-
            Original file name for operator reference (no paths). Should include  a suitable extension (e.g.,
            policy.pdf, terms.pdf).
        ContentType:
          type: string
          enum:
            - application/pdf
            - image/jpeg
            - image/png
          description: >-
            Content (MIME) type of the document, using IANA-registered media types, and based on types supported in the
            Open Finance Framework.
        Content:
          type: string
          format: base64
          description: >-
            Base64-encoded representation of the document content.  The encoded string must be generated from the raw
            file bytes and decoded by the LFI to restore the original file.
        HashType:
          type: string
          enum:
            - SHA256
          description: Approach used to create checksum or hash of the file. SHA256 is supported.
        Hash:
          type: string
          description: >-
            Checksum of the original file bytes created using the method indicated by `HashType`. Required to enable
            integrity verification by comparing with the hash or checksum calculated on the decoded file.
        AdditionalInformation:
          type: string
          maxLength: 1000
          description: Optional free text notes providing context on the document.
    AEInsurance.AEDurationYearsAndMonths:
      type: string
      pattern: ^P(\d+Y)?(\d+M)?$
      format: duration
      example: P2Y3M
    AEInsurance.AEEmploymentInsuranceQuoteAcceptQuoteRequestProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteReference
        - InsuranceSubType
        - Premium
        - Commission
        - QuoteCreationDateTime
      properties:
        QuoteStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAcceptedByUserQuoteStatusCodes'
          description: Quote status.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        InsuranceSubType:
          type: string
          minLength: 1
          maxLength: 140
          description: Insurance sub-type, describing the insurance type specific to the sector.
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumProperties'
          description: Details of the quoted premium, as provided in the quote response.
        Commission:
          type: object
          properties:
            CommissionAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: >-
                The total monetary value of the commission paid to the TPP if the User proceeds with the quote
                application and purchases the policy based on the quote information provided.
            PaymentMethod:
              type: string
              enum:
                - DirectToTPP
                - ThroughAPIHub
              description: >-
                The method to be used to pay the commission to the TPP if the User elects to proceed with the
                application and successfully purchases the policy.
          required:
            - PaymentMethod
          description: Details of the commission, as provided in the quote response.
        CustomerSalary:
          type: string
          enum:
            - Under4K
            - Over4K
          description: >-
            Confirmation whether the customer monthly salary is less than or greater than AED 4,000 each month. Required
            for Health Insurance.
        QuoteCreationDateTime:
          type: string
          format: date-time
          description: The quote creation date and time, as supplied by the LFI in the property `CreationDateTime`.
        ExpirationDateTime:
          type: string
          format: date-time
          description: The expiration date of the quote, as provided in the quote response, if provided by the LFI.
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEDocumentProperties'
          description: >-
            Customer documents encoded for submission to the LFI. Omitted if not required or quote status is
            `ApplicationPending`.
        VerifiedDetails:
          type: object
          properties:
            Policy:
              type: object
              properties:
                PolicyStartDate:
                  type: string
                  format: date
                  description: Policy start date
                PolicyEndDate:
                  type: string
                  description: The date on which cover ends.
                SchemeCategory:
                  type: string
                  enum:
                    - CategoryA
                    - CategoryB
                  description: |-
                    For Involuntary Loss of Employment Insurance (ILOE) confirmation of the customer's Salary Category.

                    Categories are defined as follows:

                    * Category A - Salary of AED16,000 or less
                    * Category B - Salary Exceeding AED16,000
                Sector:
                  type: string
                  enum:
                    - Private
                    - FederalGovernment
                  description: For Involuntary Loss of Employment Insurance (ILOE) confirmation of the customer's employment Sector
                PolicyTerm:
                  type: string
                  pattern: ^P(\d+Y)?(\d+M)?$
                  format: duration
                  description: The insurance policy term in years and months, using ISO 8601 compatible duration format
                  example: P2Y3M
                PremiumFrequency:
                  type: string
                  enum:
                    - Annually
                    - OneTime
                    - Monthly
                    - Quarterly
                    - BiAnnual
                    - Limited
                    - Other
                  description: The payment frequency the calculated Premium has been based on.
              description: Revised details, verified by the TPP.
              minProperties: 1
            PolicyHolder:
              type: object
              properties:
                Salutation:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                  description: The salutation of the individual or customer.
                FirstName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: First Name of the individual.
                MiddleName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Middle Name of the individual.
                LastName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Last Name (Surname) of the individual.
                Gender:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                  description: The gender of the customer
                DateOfBirth:
                  type: string
                  format: date
                  description: Date of birth of the individual.
                MaritalStatus:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                  description: The marital status of the individual.
                ResidentialLocation:
                  type: string
                  description: Residential Location of the individual.
                LandlineNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  pattern: ^\+?[1-9]\d{1,14}$
                  description: The landline telephone number of the individual.
                Nationality:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                PrimaryLanguage:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                  description: Primary language spoken by the insurance policy customer
                MobileNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  description: The mobile telephone number of the individual.
                EmailAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                  description: Email address of the individual.
                Address:
                  type: array
                  items:
                    type: object
                    properties:
                      AddressType:
                        type: string
                        enum:
                          - Billing
                          - Business
                          - Correspondence
                          - DeliveryTo
                          - MailTo
                          - POBox
                          - Postal
                          - Permanent
                          - Residential
                          - Statement
                          - Other
                        description: The type of address.
                      AddressLine:
                        type: array
                        items:
                          $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                        minItems: 1
                        maxItems: 7
                        description: >-
                          Information that locates and identifies a specific address for a transaction entry, that is
                          presented in free format text.


                          This value should be used where the address is provided or stored as a single string.
                      BuildingNumber:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The unit, apartment, or villa number within a building or community
                      BuildingName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of the building or house.
                      Floor:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Floor or storey within a building.
                      StreetName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The name of the street or road where the property is located
                      DistrictName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The district, community, or neighbourhood where the property is located
                      PostBox:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The P.O. Box number assigned to the recipient for mail delivery
                      TownName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of a built-up area, such as a town or city
                      CountrySubDivision:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                        description: >-
                          Country subdivision, such as state or province. This is the Emirate where the address is
                          registered.
                      Country:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                        description: >-
                          The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                          code.
                    description: The template for adding optional properties.
                  minItems: 1
                  description: Address details
              description: Revised details, verified by the TPP.
              minProperties: 1
            Identity:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
              minProperties: 1
              description: Revised identity details, verified by the TPP.
            Employment:
              type: object
              properties:
                Profession:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: The individuals profession.
                ProfessionDescription:
                  type: string
                  description: A description of the individual's Profession
                JobTitle:
                  type: string
                  description: Individual's job title
                Designation:
                  type: string
                  description: An individual's professional qualifications, special licenses and certifications
                NatureOfEmployerBusiness:
                  type: string
                  description: Nature of employer business
                EmployerName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Employer name.
                EmployerAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
                  description: The address details of the individual's employer
                EmploymentStatus:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceEmploymentStatus'
                StartDate:
                  type: string
                  format: date
                  description: Individual's employment start date
                SourceOfIncome:
                  type: string
                  description: Source of the individual's income as a free form description
                MonthlyIncomeAmount:
                  type: object
                  properties:
                    Currency:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                    Amount:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                  description: Monthly income amount and currency
                AnnualIncomeAmount:
                  type: object
                  properties:
                    Currency:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                    Amount:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                  description: Annual income amount and currency
                AdditionalCompensation:
                  type: array
                  items:
                    type: object
                    properties:
                      Description:
                        type: string
                        description: Free form description of the additional compensation
                      CompensationAmount:
                        type: object
                        properties:
                          Currency:
                            $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                          Amount:
                            $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                        description: The amount of the additional compensation
                  minItems: 1
                  description: Provided when the individual has additional income.
              description: Revised details, verified by the TPP.
              minProperties: 1
          description: Verified details captured by the TPP, when the TPP is a Broker. Omitted if not required.
    AEInsurance.AEEmploymentInsuranceQuoteAdditionalCompensationProperties:
      type: object
      required:
        - Description
        - CompensationAmount
      properties:
        Description:
          type: string
          description: Free form description of the additional compensation
        CompensationAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The amount of the additional compensation
    AEInsurance.AEEmploymentInsuranceQuoteEmploymentProperties:
      type: object
      required:
        - EmployerName
        - EmploymentStatus
        - MonthlyIncomeAmount
      properties:
        Profession:
          type: string
          minLength: 1
          maxLength: 70
          description: The individuals profession.
        ProfessionDescription:
          type: string
          description: A description of the individual's Profession
        JobTitle:
          type: string
          description: Individual's job title
        Designation:
          type: string
          description: An individual's professional qualifications, special licenses and certifications
        NatureOfEmployerBusiness:
          type: string
          description: Nature of employer business
        EmployerName:
          type: string
          minLength: 1
          maxLength: 70
          description: Employer name.
        EmployerAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
          description: The address details of the individual's employer
        EmploymentStatus:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceEmploymentStatus'
        StartDate:
          type: string
          format: date
          description: Individual's employment start date
        SourceOfIncome:
          type: string
          description: Source of the individual's income as a free form description
        MonthlyIncomeAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Monthly income amount and currency
        AnnualIncomeAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Annual income amount and currency
        AdditionalCompensation:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEEmploymentInsuranceQuoteAdditionalCompensationProperties'
          minItems: 1
          description: Provided when the individual has additional income.
      description: Details of the employment to be insured.
    AEInsurance.AEEmploymentInsuranceQuotePolicyHolderProperties:
      type: object
      required:
        - FirstName
        - LastName
        - Gender
      properties:
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
    AEInsurance.AEEmploymentInsuranceQuotePolicyProperties:
      type: object
      required:
        - PolicyStartDate
        - SchemeCategory
        - Sector
        - PremiumFrequency
      properties:
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
        PolicyEndDate:
          type: string
          description: The date on which cover ends.
        SchemeCategory:
          type: string
          enum:
            - CategoryA
            - CategoryB
          description: |-
            For Involuntary Loss of Employment Insurance (ILOE) confirmation of the customer's Salary Category.

            Categories are defined as follows:

            * Category A - Salary of AED16,000 or less
            * Category B - Salary Exceeding AED16,000
        Sector:
          type: string
          enum:
            - Private
            - FederalGovernment
          description: For Involuntary Loss of Employment Insurance (ILOE) confirmation of the customer's employment Sector
        PolicyTerm:
          type: string
          pattern: ^P(\d+Y)?(\d+M)?$
          format: duration
          description: The insurance policy term in years and months, using ISO 8601 compatible duration format
          example: P2Y3M
        PremiumFrequency:
          type: string
          enum:
            - Annually
            - OneTime
            - Monthly
            - Quarterly
            - BiAnnual
            - Limited
            - Other
          description: The payment frequency the calculated Premium has been based on.
    AEInsurance.AEEmploymentInsuranceQuoteRequestProperties:
      type: object
      required:
        - CustomerId
        - QuoteReference
        - QuoteType
        - PolicyIssuanceRequest
        - Policy
        - Employment
      properties:
        CustomerId:
          type: string
          description: >-
            Identifier that uniquely and consistently identifies the existing policy customer or Broker unique Id for
            customer during policy purchase process.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        QuoteType:
          type: string
          enum:
            - New
            - Switch
            - Renewal
          description: |-
            Identification of quote type.

            The following quote type values are supported:

              * New: New Policy Quote

              * Switch: Customer would like to switch policies or brokers

              * Renewal: Customer would like renewal quote
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Policy:
          $ref: '#/components/schemas/AEInsurance.AEEmploymentInsuranceQuotePolicyProperties'
        PolicyHolder:
          $ref: '#/components/schemas/AEInsurance.AEEmploymentInsuranceQuotePolicyHolderProperties'
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the policyholder.
        Employment:
          $ref: '#/components/schemas/AEInsurance.AEEmploymentInsuranceQuoteEmploymentProperties'
        ExistingInsurance:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceExistingInsuranceProperties'
          minItems: 1
          description: One-or-more existing insurance policies, omitted if none are held.
    AEInsurance.AEEngineProperties:
      anyOf:
        - type: object
          properties:
            EngineType:
              type: string
              enum:
                - Electric
              description: Engine type for fully-electric vehicles.
            BatteryCapacity:
              type: string
              description: The capacity of the battery.
            MotorPower:
              type: string
              description: The power of the vehicle motor.
          required:
            - EngineType
        - type: object
          properties:
            EngineType:
              type: string
              enum:
                - Hybrid
              description: Engine type for hybrid vehicles.
            BatteryCapacity:
              type: string
              description: The capacity of the battery.
            MotorPower:
              type: string
              description: The power of the vehicle motor.
            EngineCapacity:
              type: string
              description: The engine displacement volume in cubic centimetres (cc).
            CylinderCapacity:
              type: string
              description: The number of cylinders
          required:
            - EngineType
            - EngineCapacity
            - CylinderCapacity
        - type: object
          properties:
            EngineType:
              type: string
              enum:
                - InternalCombustionEngine
              description: Engine type for vehicles with an internal combustion engine.
            EngineCapacity:
              type: string
              description: The engine displacement volume in cubic centimetres (cc).
            CylinderCapacity:
              type: string
              description: The number of cylinders
          required:
            - EngineType
            - EngineCapacity
            - CylinderCapacity
      description: Details of the engine type for the vehicle
    AEInsurance.AEHealthInsuranceCreateQuoteResponseProperties:
      oneOf:
        - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteResponsePendingProperties'
        - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteResponseAvailableProperties'
      discriminator:
        propertyName: QuoteStatus
        mapping:
          Pending: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteResponsePendingProperties'
          Available: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteResponseAvailableProperties'
    AEInsurance.AEHealthInsuranceDataSharingClaimsHistoryStatusCodes:
      type: string
      enum:
        - Open
        - Outstanding
        - Closed
        - Reopened
        - Cancelled
        - Deleted
        - Rejected
        - Other
      description: |-
        Health Insurance status codes are defined as follows:

        * Open: The claim has been submitted.

        * Outstanding: The claim is under processing at the LFI.

        * Closed: The claim is settled and closed.
          
        * Reopened: The claim has been reopened.

        * Cancelled: The claim is cancelled.

        * Deleted: The claim was entered incorrectly and has been deleted.

        * Rejected: The claim was rejected by insurance company.

        * Other: Status at LFI does not matched to standards.
    AEInsurance.AEHealthInsuranceDataSharingInsuredParty:
      type: object
      required:
        - RelationshipToPolicyholder
        - FirstName
        - LastName
        - Gender
        - DateOfBirth
        - Nationality
      properties:
        RelationshipToPolicyholder:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
          description: The relationship to the policyholder.
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Insured person address details.
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: >-
            Identity information for the policyholder or insured person. Requires `ReadCustomerDetail` permission to be
            granted by the User for the policyholder identity to be provided.
        Employment:
          type: object
          properties:
            Profession:
              type: string
              minLength: 1
              maxLength: 70
              description: The individuals profession.
            EmployerName:
              type: string
              minLength: 1
              maxLength: 70
              description: Employer name.
            SalaryBand:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceSalaryBandCode'
              description: Monthly salary band of the individual's income
            EmploymentLocation:
              type: string
              description: Location of the individual's employer
          minProperties: 1
          description: Insured person employment details. Omitted if no details are held.
        PolicyCoverAndBenefits:
          type: array
          items:
            type: object
            properties:
              CoverType:
                type: string
                description: Type of cover as defined in company systems.
              Description:
                type: string
                description: Description of the cover / benefit.
              Required:
                type: boolean
                description: >-
                  To confirm whether the cover or benefit is required as part of the base insurance policy or is
                  optional.
              CoverLimit:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: When applicable, the benefit coverage limit that could be paid if a claim was made.
              CoverInclusionsAndExclusions:
                type: array
                items:
                  type: object
                  properties:
                    InclusionAndExclusionDescription:
                      type: string
                      description: Description of the inclusion or exclusion.
                  required:
                    - InclusionAndExclusionDescription
                minItems: 1
                description: included inclusions and exclusions for cover type.
              CoverExcess:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: When applicable, the amount that would be deductible from any claim.
              CareNetwork:
                type: string
                description: Care network for the insured party.
            required:
              - CoverType
              - Description
              - Required
          minItems: 1
          description: Cover and benefits provided by the policy for insured parties.
    AEInsurance.AEHealthInsuranceMedicalHistoryProperties:
      type: object
      required:
        - InsuredName
        - Height
        - Weight
      properties:
        InsuredName:
          type: string
          minLength: 1
          maxLength: 140
          description: The person who the medical responses relate to
        Height:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceHeightType'
          description: The policyholder or applicant height in centimeters at the time of application.
        Weight:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceWeightType'
          description: The policyholder or applicant weight in kilograms at the time of application.
        HigherRiskFactors:
          type: object
          properties:
            Alcohol:
              type: boolean
              description: >-
                Should the insurer follow up with you about exceeding the medical recommendations on consumption of
                alcohol?
            Tobacco:
              type: boolean
              description: Should the insurer follow up with you about smoking tobacco cigarettes, cigar, pipe, shisha, or chewing?
            Pregnancy:
              type: boolean
              description: >-
                Should the insurer follow up with you about pregnancy including complications, previous or upcoming
                caesarean births, attempts to get pregnant or any fertility treatments?
            Cardiovascular:
              type: boolean
              description: >-
                Should the insurer follow up with you about Rheumatic fever, high blood pressure, murmur, stroke, chest
                pain, heart attack, or any disorder of heart, blood, or blood vessels?
            Cancer:
              type: boolean
              description: Should the insurer follow up with you about cancer, tumor, or cyst?
            Endocrine:
              type: boolean
              description: >-
                Should the insurer follow up with you about diabetes, high blood sugar, thyroid disorder, or any
                endocrine disorder?
            Gastrointestinal:
              type: boolean
              description: >-
                Should the insurer follow up with you about hepatitis or any other liver, pancreas, gallbladder,
                stomach, or intestinal disorder?
            Kidney:
              type: boolean
              description: Should the insurer follow up with you about kidney, urinary, or reproductive disorders?
            Blood:
              type: boolean
              description: Should the insurer follow up with you about blood disorders or diseases?
            NervousSystem:
              type: boolean
              description: Should the insurer follow up with you about epilepsy, paralysis, or any other nervous disorders?
            Lung:
              type: boolean
              description: Should the insurer follow up with you about asthma, tuberculosis, respiratory or lung diseases?
            Mental:
              type: boolean
              description: >-
                Should the insurer follow up with you about mental or psychiatric illness including anxiety or
                depression?
            Musculoskeletal:
              type: boolean
              description: >-
                Should the insurer follow up with you about any disease or disorder of the muscles, spine, joints, and
                limbs including loss of feeling or tremor?
            Senses:
              type: boolean
              description: Should the insurer follow up with you about any disorder of sight, speech, or hearing?
            Hereditary:
              type: boolean
              description: Should the insurer follow up with you about any hereditary or congenital condition?
            Chronic:
              type: boolean
              description: >-
                Should the insurer follow up with you about any chronic condition, infirmity, or injury not mentioned
                above?
            AutoImmune:
              type: boolean
              description: >-
                Should the insurer follow up with you about any auto-immune disease or unexplained fatigue, weight loss,
                diarrhoea or unusual skin lesions?
            Medical:
              type: boolean
              description: >-
                Should the insurer follow up with you about any medical or surgical treatment, or investigative medical
                tests or hospitalizations or any diagnostic tests, hospitalization, surgery which was not completed?
            Hospitalization:
              type: boolean
              description: >-
                Should the insurer follow up with you about any hospitalizations or similar medical facilities in the
                last 5 years?
            Medications:
              type: boolean
              description: >-
                Should the insurer follow up with you about prescribed medications or treatments for more than seven
                days in the last 2 years?
            Future:
              type: boolean
              description: >-
                Should the insurer follow up with you about a future appointment with a medical practitioner or health
                care professional, a requirement for prescribed medication, or a need to be admitted to a hospital or
                medical facility?
          minProperties: 1
          description: Potential higher risk factors that the insurer should follow up with the customer directly.
    AEInsurance.AEHealthInsurancePremium:
      type: object
      required:
        - PremiumAmountExcludingVAT
        - VATAmount
        - TotalPremiumAmount
        - PaymentFrequency
      properties:
        Status:
          type: string
          enum:
            - Initial
            - StartingFrom
            - Final
          description: Confirmation whether the premium quoted is an initial premium, starting from, or final.
        TotalDiscountAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total discount amount applied to the final premium amount
        DiscountApplied:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumDiscountApplied'
          minItems: 1
          description: Details of the discounts applied
        PremiumAmountExcludingVAT:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The Premium Amount excluding any VAT amount
        VATAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The Premium VAT amount.
        VATPercentage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceVATPercentage'
          description: The VAT percentage rate charged to the premium.
        TotalPremiumAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total Premium amount including VAT
        PaymentFrequency:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentFrequency'
          description: The payment frequency the calculated Premium has been based on.
        InstallmentOptions:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentFrequency'
          minItems: 1
          description: The possible Premium instalment frequency options available to the customer
        PremiumAdditionalFees:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHealthInsurancePremiumAdditionalFees'
          minProperties: 1
          description: Objects confirming additional fees and charges that have been included in the premium quote.
    AEInsurance.AEHealthInsurancePremiumAdditionalFees:
      type: object
      properties:
        BasmahProgramFee:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceBasmahProgramFee'
          description: >-
            Object confirming the Basmah Program Fee that is applicable to the insurance policy and included in the
            premium quote
        HCVProgramFee:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceHCVProgramFee'
          description: >-
            Object confirming the Hepatitis C Virus (HCV) Patient Support Program Fee that is applicable to the
            insurance policy and included in the premium quote
        ICPProgramFee:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceICPProgramFee'
          description: >-
            Object confirming the Integrated Care Plans (ICPs) charges that is applicable to the insurance policy and
            included in the premium quote
    AEInsurance.AEHealthInsuranceProductData:
      type: object
      required:
        - Policy
      properties:
        Policy:
          type: object
          properties:
            CoverSubjects:
              type: string
              enum:
                - Self
                - SelfAndSpouse
                - Spouse
                - SelfAndFamily
                - Dependents
                - Other
              description: Confirmation whether the insurance cover is for the customer (self) or their dependents
            PolicyStartDate:
              type: string
              format: date
              description: Policy start date
            IsPolicyholderInsured:
              type: boolean
              description: >-
                When true confirmation that the Policyholder (customer) is also the Insured Person or when false
                confirmation that the Policyholder and the Insured Person(s) are different
            TypeOfPolicy:
              type: string
              enum:
                - HealthInsuranceIndividual
                - PersonalAccidentInsurance
              description: The type of health insurance plan selected
            PolicyTerm:
              type: string
              pattern: ^P(\d+Y)?(\d+M)?$
              format: duration
              description: The insurance policy term in years and months, using ISO 8601 compatible duration format
              example: P2Y3M
            CareNetwork:
              type: string
              minLength: 1
              maxLength: 140
              description: The network of healthcare providers, hospitals, and clinics covered under the policy
            RegionsCoverage:
              type: string
              minLength: 1
              maxLength: 140
              description: >-
                The geographical regions where the policyholder is covered for medical treatment (e.g., local, GCC,
                worldwide excluding the U.S., worldwide).
            Takaful:
              type: boolean
              description: Indicates whether the policy is Sharia compliant.
            ProductName:
              type: string
              description: Business name of the policy product as provided externally to the customer.
            PolicyEndDate:
              type: string
              format: date
              description: The date when the coverage will or has ended.
            PolicyExcess:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: When applicable, the amount that would be deductible from any claim.
            PolicyCoverAndBenefits:
              type: array
              items:
                type: object
                properties:
                  CoverType:
                    type: string
                    description: Type of cover as defined in company systems.
                  Description:
                    type: string
                    description: Description of the cover / benefit.
                  Required:
                    type: boolean
                    description: >-
                      To confirm whether the cover or benefit is required as part of the base insurance policy or is
                      optional.
                  CoverLimit:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                    description: When applicable, the benefit coverage limit that could be paid if a claim was made.
                  CoverInclusionsAndExclusions:
                    type: array
                    items:
                      type: object
                      properties:
                        InclusionAndExclusionDescription:
                          type: string
                          description: Description of the inclusion or exclusion.
                      required:
                        - InclusionAndExclusionDescription
                    minItems: 1
                    description: included inclusions and exclusions for cover type.
                  CoverExcess:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                    description: When applicable, the amount that would be deductible from any claim.
                  CoverID:
                    type: string
                    description: Insurers internal unique ID for specific cover.
                required:
                  - CoverType
                  - Description
                  - Required
              minItems: 1
              description: Cover and benefits provided by the policy.
            PolicyPurchaseChannelType:
              type: string
              enum:
                - Direct
                - Agent
                - Broker
                - Bank
                - InvFinInst
                - TPA
                - OnlineInsideUAE
                - OnlineOutsideUAE
                - Aggregation
                - Outside
                - Other
              description: Sales channel of policy.
          required:
            - CoverSubjects
            - PolicyStartDate
            - IsPolicyholderInsured
            - PolicyTerm
            - Takaful
            - ProductName
            - PolicyPurchaseChannelType
          description: Details of the what the insurance policy covers.
        InsuredParties:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceDataSharingInsuredParty'
          minItems: 1
          description: |-
            The persons insured under the policy, if different to the policyholder. 
            If the policyholder is the only insured person this property can be omitted.
        Sponsor:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceSponsorProperties'
          minItems: 1
          description: >-
            Details of sponsor(s), where required by the policyholder or one-or-more insured persons. Omitted if not
            required or not available.
    AEInsurance.AEHealthInsuranceQuoteAcceptQuoteRequestProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteReference
        - InsuranceSubType
        - Premium
        - Commission
        - CustomerSalary
        - QuoteCreationDateTime
      properties:
        QuoteStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAcceptedByUserQuoteStatusCodes'
          description: Quote status.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        InsuranceSubType:
          type: string
          minLength: 1
          maxLength: 140
          description: Insurance sub-type, describing the insurance type specific to the sector.
        Premium:
          type: object
          properties:
            Status:
              type: string
              enum:
                - Initial
                - StartingFrom
                - Final
              description: Confirmation whether the premium quoted is an initial premium, starting from, or final.
            TotalDiscountAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The total discount amount applied to the final premium amount
            DiscountApplied:
              type: array
              items:
                $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumDiscountApplied'
              minItems: 1
              description: Details of the discounts applied
            PremiumAmountExcludingVAT:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The Premium Amount excluding any VAT amount
            VATAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The Premium VAT amount.
            VATPercentage:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceVATPercentage'
              description: The VAT percentage rate charged to the premium.
            TotalPremiumAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The total Premium amount including VAT
            PaymentFrequency:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentFrequency'
              description: The payment frequency the calculated Premium has been based on.
            InstallmentOptions:
              type: array
              items:
                $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentFrequency'
              minItems: 1
              description: The possible Premium instalment frequency options available to the customer
            PremiumAdditionalFees:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEHealthInsurancePremiumAdditionalFees'
              minProperties: 1
              description: Objects confirming additional fees and charges that have been included in the premium quote.
          required:
            - PremiumAmountExcludingVAT
            - VATAmount
            - TotalPremiumAmount
            - PaymentFrequency
          description: Details of the quoted premium, as provided in the quote response.
        Commission:
          type: object
          properties:
            CommissionAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: >-
                The total monetary value of the commission paid to the TPP if the User proceeds with the quote
                application and purchases the policy based on the quote information provided.
            PaymentMethod:
              type: string
              enum:
                - DirectToTPP
                - ThroughAPIHub
              description: >-
                The method to be used to pay the commission to the TPP if the User elects to proceed with the
                application and successfully purchases the policy.
          required:
            - PaymentMethod
          description: Details of the commission, as provided in the quote response.
        CustomerSalary:
          type: string
          enum:
            - Under4K
            - Over4K
          description: >-
            Confirmation whether the customer monthly salary is less than or greater than AED 4,000 each month. Required
            for Health Insurance.
        QuoteCreationDateTime:
          type: string
          format: date-time
          description: The quote creation date and time, as supplied by the LFI in the property `CreationDateTime`.
        ExpirationDateTime:
          type: string
          format: date-time
          description: The expiration date of the quote, as provided in the quote response, if provided by the LFI.
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEDocumentProperties'
          description: >-
            Customer documents encoded for submission to the LFI. Omitted if not required or quote status is
            `ApplicationPending`.
        VerifiedDetails:
          type: object
          properties:
            Policy:
              type: object
              properties:
                Takaful:
                  type: boolean
                  description: Indicates whether the policy is Sharia compliant.
                CoverSubjects:
                  type: string
                  enum:
                    - Self
                    - SelfAndSpouse
                    - Spouse
                    - SelfAndFamily
                    - Dependents
                    - Other
                  description: Confirmation whether the insurance cover is for the customer (self) or their dependents
                PolicyStartDate:
                  type: string
                  format: date
                  description: Policy start date
                PolicyEndDate:
                  type: string
                  format: date
                  description: Policy end date
                IsPolicyholderInsured:
                  type: boolean
                  description: >-
                    When true confirmation that the Policyholder (customer) is also the Insured Person or when false
                    confirmation that the Policyholder and the Insured Person(s) are different
                AddOns:
                  type: object
                  properties:
                    DentalCover:
                      type: boolean
                      description: Dental cover included.
                    OpticalCover:
                      type: boolean
                      description: Optical cover included.
                    MaternityCover:
                      type: boolean
                      description: Maternity cover included.
                    Other:
                      type: string
                      description: Other types of cover included.
                  description: Additional policy cover items
              description: Details of the what the insurance policy covers.
            PolicyHolder:
              type: object
              properties:
                Salutation:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                  description: The salutation of the individual or customer.
                FirstName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: First Name of the individual.
                MiddleName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Middle Name of the individual.
                LastName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Last Name (Surname) of the individual.
                Gender:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                  description: The gender of the customer
                DateOfBirth:
                  type: string
                  format: date
                  description: Date of birth of the individual.
                MaritalStatus:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                  description: The marital status of the individual.
                ResidentialLocation:
                  type: string
                  description: Residential Location of the individual.
                LandlineNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  pattern: ^\+?[1-9]\d{1,14}$
                  description: The landline telephone number of the individual.
                Nationality:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                PrimaryLanguage:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                  description: Primary language spoken by the insurance policy customer
                MobileNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  description: The mobile telephone number of the individual.
                EmailAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                  description: Email address of the individual.
                Address:
                  type: array
                  items:
                    type: object
                    properties:
                      AddressType:
                        type: string
                        enum:
                          - Billing
                          - Business
                          - Correspondence
                          - DeliveryTo
                          - MailTo
                          - POBox
                          - Postal
                          - Permanent
                          - Residential
                          - Statement
                          - Other
                        description: The type of address.
                      AddressLine:
                        type: array
                        items:
                          $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                        minItems: 1
                        maxItems: 7
                        description: >-
                          Information that locates and identifies a specific address for a transaction entry, that is
                          presented in free format text.


                          This value should be used where the address is provided or stored as a single string.
                      BuildingNumber:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The unit, apartment, or villa number within a building or community
                      BuildingName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of the building or house.
                      Floor:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Floor or storey within a building.
                      StreetName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The name of the street or road where the property is located
                      DistrictName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The district, community, or neighbourhood where the property is located
                      PostBox:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The P.O. Box number assigned to the recipient for mail delivery
                      TownName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of a built-up area, such as a town or city
                      CountrySubDivision:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                        description: >-
                          Country subdivision, such as state or province. This is the Emirate where the address is
                          registered.
                      Country:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                        description: >-
                          The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                          code.
                    description: The template for adding optional properties.
                  minItems: 1
                  description: Address details
                Employment:
                  type: object
                  properties:
                    Profession:
                      type: string
                      minLength: 1
                      maxLength: 70
                      description: The individuals profession.
                    EmployerName:
                      type: string
                      minLength: 1
                      maxLength: 70
                      description: Employer name.
                    SalaryBand:
                      allOf:
                        - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceSalaryBandCode'
                      description: Monthly salary band of the individual's income
                    EmploymentLocation:
                      type: string
                      description: Location of the individual's employer
                  description: The template for adding optional properties.
                  minProperties: 1
                Identity:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                  minProperties: 1
                  description: Revised identity details, verified by the TPP.
              description: The policyholder for the proposed insurance policy.
            InsuredParties:
              type: array
              items:
                type: object
                properties:
                  RelationshipToPolicyholder:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
                    description: The relationship to the policyholder.
                  Salutation:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                    description: The salutation of the individual or customer.
                  FirstName:
                    type: string
                    minLength: 1
                    maxLength: 70
                    description: First Name of the individual.
                  MiddleName:
                    type: string
                    minLength: 1
                    maxLength: 70
                    description: Middle Name of the individual.
                  LastName:
                    type: string
                    minLength: 1
                    maxLength: 70
                    description: Last Name (Surname) of the individual.
                  Gender:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                    description: The gender of the customer
                  DateOfBirth:
                    type: string
                    format: date
                    description: Date of birth of the individual.
                  MaritalStatus:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                    description: The marital status of the individual.
                  ResidentialLocation:
                    type: string
                    description: Residential Location of the individual.
                  LandlineNumber:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                    pattern: ^\+?[1-9]\d{1,14}$
                    description: The landline telephone number of the individual.
                  Nationality:
                    type: string
                    pattern: ^[A-Z]{3}$
                    description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                  PrimaryLanguage:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                    description: Primary language spoken by the insurance policy customer
                  MobileNumber:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                    description: The mobile telephone number of the individual.
                  EmailAddress:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                    description: Email address of the individual.
                  Address:
                    type: array
                    items:
                      type: object
                      properties:
                        AddressType:
                          type: string
                          enum:
                            - Billing
                            - Business
                            - Correspondence
                            - DeliveryTo
                            - MailTo
                            - POBox
                            - Postal
                            - Permanent
                            - Residential
                            - Statement
                            - Other
                          description: The type of address.
                        AddressLine:
                          type: array
                          items:
                            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                          minItems: 1
                          maxItems: 7
                          description: >-
                            Information that locates and identifies a specific address for a transaction entry, that is
                            presented in free format text.


                            This value should be used where the address is provided or stored as a single string.
                        BuildingNumber:
                          type: string
                          minLength: 1
                          maxLength: 16
                          description: The unit, apartment, or villa number within a building or community
                        BuildingName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: Name of the building or house.
                        Floor:
                          type: string
                          minLength: 1
                          maxLength: 70
                          description: Floor or storey within a building.
                        StreetName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: The name of the street or road where the property is located
                        DistrictName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: The district, community, or neighbourhood where the property is located
                        PostBox:
                          type: string
                          minLength: 1
                          maxLength: 16
                          description: The P.O. Box number assigned to the recipient for mail delivery
                        TownName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: Name of a built-up area, such as a town or city
                        CountrySubDivision:
                          allOf:
                            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                          description: >-
                            Country subdivision, such as state or province. This is the Emirate where the address is
                            registered.
                        Country:
                          allOf:
                            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                          description: >-
                            The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                            code.
                      description: The template for adding optional properties.
                    minItems: 1
                    description: Address details
                  Employment:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteEmployment'
                    minProperties: 1
                  Identity:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                    description: Identification details of the insured party.
                description: The template for adding optional properties.
              description: >-
                Required when IsPolicyholderInsured is false (No). This object must be provided for each insured person
                who is not the policyholder.
            Sponsor:
              type: array
              items:
                type: object
                properties:
                  PersonSponsored:
                    type: string
                    description: Confirmation which person the Sponsor details relate to
                  SponsorEntityID:
                    type: string
                    description: The official ID of the sponsoring entity.
                  SponsorEntityIDType:
                    type: string
                    enum:
                      - FileNumber
                      - UID
                      - EstablishmentCode
                    description: Confirmation what the Sponsor Entity ID relates to
                  SponsorType:
                    type: string
                    enum:
                      - Resident
                      - Citizen
                      - Establishment
                      - PropertyOwner
                    description: The type of visa sponsorship being provided
                description: The template for adding optional properties.
              minItems: 1
              description: Required when the policy holder or one-or-more insured persons require a sponsor.
            ExistingInsurance:
              type: array
              items:
                type: object
                properties:
                  InsurerName:
                    type: string
                    description: The Health Insurance Company Name when an existing Health cover is held
                  ExistingPolicyNumber:
                    type: string
                    description: The Health Insurance Policy Number when an existing Health cover is held
                  PolicyStartDate:
                    type: string
                    format: date
                    description: Policy start date
                  PolicyEndDate:
                    type: string
                    format: date
                    description: Policy end date
              minItems: 1
              minProperties: 1
              description: One-or-more existing insurance policies, omitted if none are held.
          description: Verified details captured by the TPP, when the TPP is a Broker. Omitted if not required.
    AEInsurance.AEHealthInsuranceQuoteEmployment:
      type: object
      properties:
        Profession:
          type: string
          minLength: 1
          maxLength: 70
          description: The individuals profession.
        EmployerName:
          type: string
          minLength: 1
          maxLength: 70
          description: Employer name.
        SalaryBand:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceSalaryBandCode'
          description: Monthly salary band of the individual's income
        EmploymentLocation:
          type: string
          description: Location of the individual's employer
    AEInsurance.AEHealthInsuranceQuoteInsuredParty:
      type: object
      required:
        - RelationshipToPolicyholder
        - Gender
        - DateOfBirth
      properties:
        RelationshipToPolicyholder:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
          description: The relationship to the policyholder.
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
        Employment:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteEmployment'
          minProperties: 1
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the insured party.
    AEInsurance.AEHealthInsuranceQuotePolicyholder:
      type: object
      required:
        - Gender
        - DateOfBirth
        - MaritalStatus
        - Nationality
        - Address
      properties:
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
        Employment:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteEmployment'
          minProperties: 1
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the policyholder.
    AEInsurance.AEHealthInsuranceQuoteRequestProperties:
      type: object
      required:
        - CustomerId
        - QuoteReference
        - QuoteType
        - PolicyIssuanceRequest
        - Policy
        - PolicyHolder
      properties:
        CustomerId:
          type: string
          description: >-
            Identifier that uniquely and consistently identifies the existing policy customer or Broker unique Id for
            customer during policy purchase process.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        QuoteType:
          type: string
          enum:
            - New
            - Switch
            - Renewal
          description: |-
            Identification of quote type.

            The following quote type values are supported:

              * New: New Policy Quote

              * Switch: Customer would like to switch policies or brokers

              * Renewal: Customer would like renewal quote
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Policy:
          type: object
          properties:
            Takaful:
              type: boolean
              description: Indicates whether the policy is Sharia compliant.
            CoverSubjects:
              type: string
              enum:
                - Self
                - SelfAndSpouse
                - Spouse
                - SelfAndFamily
                - Dependents
                - Other
              description: Confirmation whether the insurance cover is for the customer (self) or their dependents
            PolicyStartDate:
              type: string
              format: date
              description: Policy start date
            PolicyEndDate:
              type: string
              format: date
              description: Policy end date
            IsPolicyholderInsured:
              type: boolean
              description: >-
                When true confirmation that the Policyholder (customer) is also the Insured Person or when false
                confirmation that the Policyholder and the Insured Person(s) are different
            AddOns:
              type: object
              properties:
                DentalCover:
                  type: boolean
                  description: Dental cover included.
                OpticalCover:
                  type: boolean
                  description: Optical cover included.
                MaternityCover:
                  type: boolean
                  description: Maternity cover included.
                Other:
                  type: string
                  description: Other types of cover included.
              description: Additional policy cover items
              minProperties: 1
          required:
            - Takaful
            - CoverSubjects
            - IsPolicyholderInsured
          description: Details of the what the insurance policy covers.
        PolicyHolder:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuotePolicyholder'
          description: The policyholder for the proposed insurance policy.
        InsuredParties:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteInsuredParty'
          description: >-
            Required when IsPolicyholderInsured is false (No). This object must be provided for each insured person who
            is not the policyholder.
        Sponsor:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceSponsorProperties'
          minItems: 1
          description: Required when the policy holder or one-or-more insured persons require a sponsor.
        ExistingInsurance:
          type: array
          items:
            type: object
            properties:
              InsurerName:
                type: string
                description: The Health Insurance Company Name when an existing Health cover is held
              ExistingPolicyNumber:
                type: string
                description: The Health Insurance Policy Number when an existing Health cover is held
              PolicyStartDate:
                type: string
                format: date
                description: Policy start date
              PolicyEndDate:
                type: string
                format: date
                description: Policy end date
            required:
              - InsurerName
          minItems: 1
          description: One-or-more existing insurance policies, omitted if none are held.
        MedicalQuestions:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceMedicalHistoryProperties'
          minItems: 1
          description: Pre-existing medical conditions questions to aid risk assessment
    AEInsurance.AEHealthInsuranceQuoteResponseAvailableProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteId
        - QuoteReference
        - CreationDateTime
        - ServiceRating
        - PolicyIssuanceAllowed
      properties:
        QuoteStatus:
          type: string
          enum:
            - Available
          description: The current status of the quote
        QuoteId:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteIdType'
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        CreationDateTime:
          type: string
          format: date-time
          description: The date and time at which the quote was created.
        ExpirationDateTime:
          type: string
          format: date-time
          description: >-
            The expiration date of the quote, after which it is no longer valid.  If no date is provided the quote will
            be valid for up to 30 days as per the Standards.
        PlanName:
          type: string
          minLength: 1
          maxLength: 140
          description: The specific name of the insurance plan.
        LevelOfCover:
          type: string
          minLength: 1
          maxLength: 140
          description: The level of insurance Cover offered in the quote
        Commission:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCommission'
          description: >-
            An object containing details of the commission amount that would be payable to the TPP if the User proceeded
            with the insurance application and purchased the policy based on the provided information
        PolicyCover:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceQuotePolicyCover'
          minItems: 1
          description: >-
            An array containing options for policy cover, which contain information about the cover and benefits
            included in the quoted policies.
        PolicyDocumentsUris:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteUri'
          minItems: 1
          description: >-
            A list of URLs linking to policy-related documents, such as terms and conditions, policy wording, or product
            disclosures
        AvailableAddOns:
          type: array
          items:
            type: object
            properties:
              CoverName:
                type: string
                minLength: 1
                maxLength: 70
                description: Name of the insurance cover add-on
              Description:
                type: string
                minLength: 1
                maxLength: 140
                description: Description of the insurance cover add-on
              Amount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: Premium value of the insurance cover add-on
              CoverLimit:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: When applicable, the benefit coverage limit that could be paid if a claim was made.
              CoverInclusionAndExclusionDescriptions:
                type: array
                items:
                  type: string
                minItems: 1
                description: Included inclusions and exclusions for cover type.
              PolicyExcess:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: When applicable, the amount that would be deductible from any claim.
            required:
              - CoverName
              - Description
          minItems: 1
          description: An object containing details of optional add-ons available for the quoted policy
        RequiredDocuments:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceDocumentRequirement'
          minItems: 1
          description: >-
            A list of documents required that must be provided by the User to the LFI to proceed with the policy
            purchase
        DiscountOffers:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumDiscountOffers'
          minItems: 1
          description: An object containing details of any discounts or offers applied to the quote
        ServiceRating:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRating'
          description: An object containing ratings or reviews of the insurer's service quality
        SpecialConditionsApplicable:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceSpecialConditions'
          description: >-
            Provides special conditions or clauses applicable to the policy specified by the LFI, which must be
            displayed to the User if provided.
        PolicyIssuanceAllowed:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker allowed to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker allowed to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker allowed to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Takaful:
          type: boolean
          description: Indicates whether the policy is Sharia compliant.
        AlternativeBrandName:
          type: string
          description: Provides and alternative brand name where the product is Sharia compliant
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHealthInsurancePremium'
          minProperties: 1
          description: An object containing details of the quoted insurance premium
    AEInsurance.AEHealthInsuranceQuoteResponsePendingProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteId
        - QuoteReference
      properties:
        QuoteStatus:
          type: string
          enum:
            - Pending
          description: The current status of the quote
        QuoteId:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteIdType'
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        PremiumTargetDateTime:
          type: string
          format: date-time
          description: >-
            The target date and time at which the insurer will generate a quote premium. Maximum allowed time is 24
            hours from quote resource creation.
    AEInsurance.AEHealthInsuranceQuoteTypeOfSmokingCodes:
      type: string
      enum:
        - Tobacco
        - Cigarettes
        - Pipe
        - Shisha
        - ECigarettes
        - Vape
        - ChewingTobacco
    AEInsurance.AEHealthInsuranceSalaryBandCode:
      type: string
      enum:
        - NoSalary
        - BelowAED4000PerMonth
        - AED4000ToAED12000PerMonth
        - AED12001AndAbove
    AEInsurance.AEHealthInsuranceSponsorProperties:
      type: object
      required:
        - PersonSponsored
        - SponsorEntityID
        - SponsorType
      properties:
        PersonSponsored:
          type: string
          description: Confirmation which person the Sponsor details relate to
        SponsorEntityID:
          type: string
          description: The official ID of the sponsoring entity.
        SponsorEntityIDType:
          type: string
          enum:
            - FileNumber
            - UID
            - EstablishmentCode
          description: Confirmation what the Sponsor Entity ID relates to
        SponsorType:
          type: string
          enum:
            - Resident
            - Citizen
            - Establishment
            - PropertyOwner
          description: The type of visa sponsorship being provided
    AEInsurance.AEHomeInsuranceBuildingsCoverProperties:
      type: object
      properties:
        BuildingValue:
          type: number
          description: The total estimated value of the insured building structure, excluding land value
    AEInsurance.AEHomeInsuranceDomesticHelperIndividualDetailsProperties:
      type: object
      required:
        - FirstName
        - LastName
        - Nationality
        - DateOfBirth
      properties:
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        PassportNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerPassportNumberType'
          description: Passport Number of the individual.
    AEInsurance.AEHomeInsuranceDomesticHelperProperties:
      type: object
      required:
        - NumberOfDomesticHelpers
      properties:
        NumberOfDomesticHelpers:
          type: integer
          description: Required when Domestic Helpers cover is required. Confirms the number of Domestic Helpers to be covered
        IndividualDetails:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceDomesticHelperIndividualDetailsProperties'
          description: Domestic Helpers details when included in the insurance cover
    AEInsurance.AEHomeInsuranceMortgageProperties:
      type: object
      properties:
        BankName:
          type: string
          description: >-
            Required when PropertyMortgage is true (Yes) to confirm the name of the financial institution providing the
            mortgage finance
        BranchName:
          type: string
          description: The Bank's Branch name
        BankAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
          description: The address details of the customer's Bank Branch
        ContactDetails:
          type: string
          description: The contact details of the Bank
        MortgageBalanceAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The amount or outstanding balance of the mortgage
    AEInsurance.AEHomeInsuranceProductData:
      type: object
      required:
        - Policy
        - PropertyDetails
      properties:
        Policy:
          type: object
          properties:
            PolicyStartDate:
              type: string
              format: date
              description: Policy start date
            PolicyEndDate:
              type: string
              format: date
              description: Policy end date
            Takaful:
              type: boolean
              description: Indicates whether the policy is Sharia compliant.
            ProductName:
              type: string
              description: Business name of the policy product as provided externally to the customer.
            PolicyExcess:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: When applicable, the amount that would be deductible from any claim.
            PolicyCoverAndBenefits:
              type: array
              items:
                type: object
                properties:
                  CoverType:
                    type: string
                    description: Type of cover as defined in company systems.
                  Description:
                    type: string
                    description: Description of the cover / benefit.
                  Required:
                    type: boolean
                    description: >-
                      To confirm whether the cover or benefit is required as part of the base insurance policy or is
                      optional.
                  CoverLimit:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                    description: When applicable, the benefit coverage limit that could be paid if a claim was made.
                  CoverInclusionsAndExclusions:
                    type: array
                    items:
                      type: object
                      properties:
                        InclusionAndExclusionDescription:
                          type: string
                          description: Description of the inclusion or exclusion.
                      required:
                        - InclusionAndExclusionDescription
                    minItems: 1
                    description: included inclusions and exclusions for cover type.
                  CoverExcess:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                    description: When applicable, the amount that would be deductible from any claim.
                  CoverID:
                    type: string
                    description: Insurers internal unique ID for specific cover.
                required:
                  - CoverType
                  - Description
                  - Required
              minItems: 1
              description: Cover and benefits provided by the policy.
            PolicyPurchaseChannelType:
              type: string
              enum:
                - Direct
                - Agent
                - Broker
                - Bank
                - InvFinInst
                - TPA
                - OnlineInsideUAE
                - OnlineOutsideUAE
                - Aggregation
                - Outside
                - Other
              description: Sales channel of policy.
          required:
            - PolicyStartDate
            - Takaful
            - ProductName
            - PolicyCoverAndBenefits
            - PolicyPurchaseChannelType
          description: Details of the policy.
        PropertyDetails:
          type: object
          properties:
            TypeOfProperty:
              type: string
              enum:
                - House
                - Villa
                - Apartment
                - Flat
                - Other
              description: Based on enumeration values.
            OwnershipStatus:
              type: string
              enum:
                - Owner
                - OwnerWithMortgage
                - Landlord
                - Tenant
              description: Based on enumeration values.
            Construction:
              type: string
              enum:
                - ClassA
                - ClassB
                - ClassC
              description: Type of construction
            OverTenYears:
              type: boolean
              description: Confirmation whether the property is over 10 years old
            FloodDamage:
              type: boolean
              description: >-
                Confirmation whether the buildings and/or contents have suffered damage by storm, tempest or flood
                during the past five years
            NumberOfAdults:
              type: integer
              description: The number of adults that will be living in the home
            NumberOfChildren:
              type: integer
              description: The number of children that will be living in the home
            NumberOfFloors:
              type: integer
              description: The total number of floors in the insured property, including all above-ground levels.
            NumberOfRooms:
              type: integer
              description: 'The total number of rooms within the property, excluding bathrooms. '
            InsuredPropertyAddress:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
              description: The full address of the property to be insured
            SafetySecurityFeatures:
              type: object
              properties:
                DistanceFromShoreline:
                  type: string
                  description: 'The shortest distance from the insured property to the nearest coastline, measured in meters '
                DistanceAboveSeaLevel:
                  type: string
                  description: The elevation of the insured property above sea level, measured in meters
                InDesignatedFloodZone:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured is in a Designated Flood Zone
                WaterLeakDetectionSystems:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has Water Leak Detection Systems
                BurglarAlarm:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has a burglar installed
                SurveillanceCameras:
                  type: boolean
                  description: >-
                    Confirmation whether the property to be insured or is being insured has Surveillance or Security
                    Cameras
                DoorCamera:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has a door camera
                SecurityGuards:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has Security Guards employed
                SmokeDetectors:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has Smoke Detectors installed
                FireExtinguishers:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has Fire Extinguishers
                SprinklerSystem:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has Sprinkler System installed
                DeadboltLocks:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has Dead bolt Locks installed
                WindowLocks:
                  type: boolean
                  description: Confirmation whether the property to be insured or is being insured has Window Locks installed
              description: Details of property safety and security features.
            YearOfConstruction:
              type: string
              pattern: ^[0-9]{4}$
              description: Year of construction
            ConstructionType:
              type: string
              enum:
                - Concrete
                - Wood
                - Mixed
                - Other
              description: Construction type, based on enumeration values.
            FoundationType:
              type: string
              enum:
                - Slab
                - CrawlSpace
                - Basement
              description: Foundation type, based on enumeration values.
            ExteriorWalls:
              type: string
              enum:
                - Brick
                - Stone
                - Concrete
                - Stucco
                - Wood
                - Other
              description: Exterior wall construction, based on enumeration values.
            RoofType:
              type: string
              enum:
                - Tile
                - Shingle
                - Metal
                - Other
              description: Type of rooting, based on enumeration values.
            PropertyCondition:
              type: string
              enum:
                - Excellent
                - Good
                - Fair
                - Poor
              description: Property condition, based on enumeration values.
            UsageByApplicant:
              type: string
              enum:
                - PrimaryResidence
                - SecondaryResidence
                - RentalProperty
                - VacantProperty
                - Other
              description: Property usage, based on enumeration values.
            NumberOfCurrentOccupants:
              type: integer
              description: The total number of people currently residing or will be residing in the insured property.
            TotalBuiltUpArea:
              type: integer
              description: Total built-up area in square meters.
            NumberOfBathrooms:
              type: integer
              description: The total number of bathrooms in the property, including full and half-bathrooms
            NumberOfBedrooms:
              type: integer
              description: The total number of bedrooms in the insured property
            PresenceOfAttic:
              type: boolean
              description: Indicates whether the insured property has an attic
            PresenceOfBasement:
              type: boolean
              description: Indicates whether the insured property has a basement
            TypeOfCoolingSystem:
              type: string
              minLength: 1
              maxLength: 70
              description: The primary cooling system installed in the property
            AgeOfCoolingSystem:
              type: string
              description: Age of the cooling system in years.
            TypeOfHeatingSystem:
              type: string
              minLength: 1
              maxLength: 70
              description: The primary heating system used in the property
            AgeOfHeatingSystem:
              type: string
              description: Age of the heating system in years
            AdditionalStructures:
              type: array
              items:
                type: string
              minItems: 1
              description: >-
                Any detached structures on the property, such as garages, sheds, guesthouses, or swimming pools. Omitted
                if none present at property.
            ConsecutiveDaysUnoccupied:
              type: integer
              description: >-
                The maximum number of consecutive days the property is expected to be unoccupied during the policy
                period
          required:
            - TypeOfProperty
          description: Details of the property.
        PropertyValue:
          type: object
          properties:
            MarketValueAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: Only numeric answers allowed (in AED)
            MostRecentAppraisalDate:
              type: string
              format: date
              description: The date of the most recent property appraisal for valuation purposes.
            MostRecentAppraisalValueAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: Only numeric answers allowed (in AED)
            DateOfPurchase:
              type: string
              format: date
              description: The date when the insured property was purchased.
            PurchasePrice:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The original purchase price of the property at the time of acquisition.
          required:
            - MostRecentAppraisalValueAmount
          description: Details of the property value.
        BuildingsCover:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceBuildingsCoverProperties'
          description: Required when Cover is BuildingsCover
        ContentsCoverDetails:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingContentsCoverDetails'
          description: Required when Cover is ContentsCover
        PersonalBelongings:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPersonalBelongings'
          description: Required when cover is personal belongings
        Mortgage:
          type: object
          properties:
            BankName:
              type: string
              description: >-
                Required when PropertyMortgage is true (Yes) to confirm the name of the financial institution providing
                the mortgage finance
            BranchName:
              type: string
              description: The Bank's Branch name
            BankAddress:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
              description: The address details of the customer's Bank Branch
            ContactDetails:
              type: string
              description: The contact details of the Bank
            MortgageBalanceAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The amount or outstanding balance of the mortgage
            MonthlyPaymentAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The monthly amount paid for the mortgage.
            AccountNumber:
              type: string
              minLength: 1
              maxLength: 70
              description: The account number associated with the mortgage finance against the property.
          description: Details of the mortgage against the property. Omitted when the property is not mortgaged.
        DomesticHelpers:
          $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceDomesticHelperProperties'
        ImportantQuestions:
          type: object
          properties:
            PrimaryResidence:
              type: boolean
              description: Confirmation whether the property is the customer's primary residence
            BusinessPurposes:
              type: boolean
              description: Confirmation whether the property will be used for business purposes
            PropertyOccupation:
              type: boolean
              description: >-
                Confirmation whether the property will be occupied solely by the customer, their family and Domestic
                Helper?
            DayTimeOccupation:
              type: boolean
              description: Confirmation whether the home will be occupied during the day time.
            UnoccupiedOverSixtyDays:
              type: boolean
              description: Confirmation whether the property will be left un-occupied for more than 60 days.
          description: The template for adding optional properties.
    AEInsurance.AEHomeInsuranceQuoteAcceptQuoteRequestProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteReference
        - InsuranceSubType
        - Premium
        - Commission
        - QuoteCreationDateTime
      properties:
        QuoteStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAcceptedByUserQuoteStatusCodes'
          description: Quote status.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        InsuranceSubType:
          type: string
          minLength: 1
          maxLength: 140
          description: Insurance sub-type, describing the insurance type specific to the sector.
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumProperties'
          description: Details of the quoted premium, as provided in the quote response.
        Commission:
          type: object
          properties:
            CommissionAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: >-
                The total monetary value of the commission paid to the TPP if the User proceeds with the quote
                application and purchases the policy based on the quote information provided.
            PaymentMethod:
              type: string
              enum:
                - DirectToTPP
                - ThroughAPIHub
              description: >-
                The method to be used to pay the commission to the TPP if the User elects to proceed with the
                application and successfully purchases the policy.
          required:
            - PaymentMethod
          description: Details of the commission, as provided in the quote response.
        CustomerSalary:
          type: string
          enum:
            - Under4K
            - Over4K
          description: >-
            Confirmation whether the customer monthly salary is less than or greater than AED 4,000 each month. Required
            for Health Insurance.
        QuoteCreationDateTime:
          type: string
          format: date-time
          description: The quote creation date and time, as supplied by the LFI in the property `CreationDateTime`.
        ExpirationDateTime:
          type: string
          format: date-time
          description: The expiration date of the quote, as provided in the quote response, if provided by the LFI.
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEDocumentProperties'
          description: >-
            Customer documents encoded for submission to the LFI. Omitted if not required or quote status is
            `ApplicationPending`.
        VerifiedDetails:
          type: object
          properties:
            Policy:
              type: object
              properties:
                Takaful:
                  type: boolean
                  description: Indicates whether the policy is Sharia compliant.
                TypeOfCover:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteTypeOfCover'
                  description: The type of Home or Renter insurance cover required
                PolicyStartDate:
                  type: string
                  format: date
                  description: Policy start date
                PolicyEndDate:
                  type: string
                  format: date
                  description: Policy end date
                AddOns:
                  type: object
                  properties:
                    AccidentalDamageCover:
                      type: boolean
                      description: Confirmation whether the customer wishes to include Accidental Damage cover.
                    PersonalBelongingsCover:
                      type: boolean
                      description: Confirmation whether the customer wishes to include Personal Belongings cover.
                    LiabilityCover:
                      type: boolean
                      description: Confirmation whether the customer wishes to include Liability cover.
                    DomesticHelpersCover:
                      type: boolean
                ClaimsInLastThreeYears:
                  type: boolean
              description: Revised details, verified by the TPP.
              minProperties: 1
            PolicyHolder:
              type: object
              properties:
                Salutation:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                  description: The salutation of the individual or customer.
                FirstName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: First Name of the individual.
                MiddleName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Middle Name of the individual.
                LastName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Last Name (Surname) of the individual.
                Gender:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                  description: The gender of the customer
                DateOfBirth:
                  type: string
                  format: date
                  description: Date of birth of the individual.
                MaritalStatus:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                  description: The marital status of the individual.
                ResidentialLocation:
                  type: string
                  description: Residential Location of the individual.
                LandlineNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  pattern: ^\+?[1-9]\d{1,14}$
                  description: The landline telephone number of the individual.
                Nationality:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                PrimaryLanguage:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                  description: Primary language spoken by the insurance policy customer
                MobileNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  description: The mobile telephone number of the individual.
                EmailAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                  description: Email address of the individual.
                Address:
                  type: array
                  items:
                    type: object
                    properties:
                      AddressType:
                        type: string
                        enum:
                          - Billing
                          - Business
                          - Correspondence
                          - DeliveryTo
                          - MailTo
                          - POBox
                          - Postal
                          - Permanent
                          - Residential
                          - Statement
                          - Other
                        description: The type of address.
                      AddressLine:
                        type: array
                        items:
                          $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                        minItems: 1
                        maxItems: 7
                        description: >-
                          Information that locates and identifies a specific address for a transaction entry, that is
                          presented in free format text.


                          This value should be used where the address is provided or stored as a single string.
                      BuildingNumber:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The unit, apartment, or villa number within a building or community
                      BuildingName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of the building or house.
                      Floor:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Floor or storey within a building.
                      StreetName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The name of the street or road where the property is located
                      DistrictName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The district, community, or neighbourhood where the property is located
                      PostBox:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The P.O. Box number assigned to the recipient for mail delivery
                      TownName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of a built-up area, such as a town or city
                      CountrySubDivision:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                        description: >-
                          Country subdivision, such as state or province. This is the Emirate where the address is
                          registered.
                      Country:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                        description: >-
                          The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                          code.
                    description: The template for adding optional properties.
                  minItems: 1
                  description: Address details
                Identity:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                  description: Identification details of the policyholder.
                EmployerName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Employer name.
              description: Revised details, verified by the TPP.
              minProperties: 1
            PropertyDetails:
              type: object
              properties:
                TypeOfProperty:
                  type: string
                  enum:
                    - House
                    - Villa
                    - Apartment
                    - Flat
                    - Other
                  description: Based on enumeration values.
                OwnershipStatus:
                  type: string
                  enum:
                    - Owner
                    - OwnerWithMortgage
                    - Landlord
                    - Tenant
                  description: Based on enumeration values.
                Construction:
                  type: string
                  enum:
                    - ClassA
                    - ClassB
                    - ClassC
                  description: Type of construction
                OverTenYears:
                  type: boolean
                  description: Confirmation whether the property is over 10 years old
                FloodDamage:
                  type: boolean
                  description: >-
                    Confirmation whether the buildings and/or contents have suffered damage by storm, tempest or flood
                    during the past five years
                NumberOfAdults:
                  type: integer
                  description: The number of adults that will be living in the home
                NumberOfChildren:
                  type: integer
                  description: The number of children that will be living in the home
                NumberOfFloors:
                  type: integer
                  description: The total number of floors in the insured property, including all above-ground levels.
                NumberOfRooms:
                  type: integer
                  description: 'The total number of rooms within the property, excluding bathrooms. '
                InsuredPropertyAddress:
                  type: object
                  properties:
                    AddressLine:
                      type: array
                      items:
                        $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                      minItems: 1
                      maxItems: 7
                      description: >-
                        Information that locates and identifies a specific address for a transaction entry, that is
                        presented in free format text.


                        This value should be used where the address is provided or stored as a single string.
                    BuildingNumber:
                      type: string
                      minLength: 1
                      maxLength: 16
                      description: The unit, apartment, or villa number within a building or community
                    BuildingName:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: Name of the building or house.
                    Floor:
                      type: string
                      minLength: 1
                      maxLength: 70
                      description: Floor or storey within a building.
                    StreetName:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: The name of the street or road where the property is located
                    DistrictName:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: The district, community, or neighbourhood where the property is located
                    PostBox:
                      type: string
                      minLength: 1
                      maxLength: 16
                      description: The P.O. Box number assigned to the recipient for mail delivery
                    TownName:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: Name of a built-up area, such as a town or city
                    CountrySubDivision:
                      allOf:
                        - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                      description: >-
                        Country subdivision, such as state or province. This is the Emirate where the address is
                        registered.
                    Country:
                      allOf:
                        - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                      description: The country associated with the address, represented using the ISO 3166-1 alpha-2 country code.
                  description: The full address of the property to be insured
                SafetySecurityFeatures:
                  type: object
                  properties:
                    DistanceFromShoreline:
                      type: string
                      description: 'The shortest distance from the insured property to the nearest coastline, measured in meters '
                    DistanceAboveSeaLevel:
                      type: string
                      description: The elevation of the insured property above sea level, measured in meters
                    InDesignatedFloodZone:
                      type: boolean
                      description: >-
                        Confirmation whether the property to be insured or is being insured is in a Designated Flood
                        Zone
                    WaterLeakDetectionSystems:
                      type: boolean
                      description: >-
                        Confirmation whether the property to be insured or is being insured has Water Leak Detection
                        Systems
                    BurglarAlarm:
                      type: boolean
                      description: Confirmation whether the property to be insured or is being insured has a burglar installed
                    SurveillanceCameras:
                      type: boolean
                      description: >-
                        Confirmation whether the property to be insured or is being insured has Surveillance or Security
                        Cameras
                    DoorCamera:
                      type: boolean
                      description: Confirmation whether the property to be insured or is being insured has a door camera
                    SecurityGuards:
                      type: boolean
                      description: Confirmation whether the property to be insured or is being insured has Security Guards employed
                    SmokeDetectors:
                      type: boolean
                      description: >-
                        Confirmation whether the property to be insured or is being insured has Smoke Detectors
                        installed
                    FireExtinguishers:
                      type: boolean
                      description: Confirmation whether the property to be insured or is being insured has Fire Extinguishers
                    SprinklerSystem:
                      type: boolean
                      description: >-
                        Confirmation whether the property to be insured or is being insured has Sprinkler System
                        installed
                    DeadboltLocks:
                      type: boolean
                      description: >-
                        Confirmation whether the property to be insured or is being insured has Dead bolt Locks
                        installed
                    WindowLocks:
                      type: boolean
                      description: Confirmation whether the property to be insured or is being insured has Window Locks installed
                  description: Details of property safety and security features.
              description: Revised details, verified by the TPP.
              minProperties: 1
            Mortgage:
              type: object
              properties:
                BankName:
                  type: string
                  description: >-
                    Required when PropertyMortgage is true (Yes) to confirm the name of the financial institution
                    providing the mortgage finance
                BranchName:
                  type: string
                  description: The Bank's Branch name
                BankAddress:
                  type: object
                  properties:
                    AddressLine:
                      type: array
                      items:
                        $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                      minItems: 1
                      maxItems: 7
                      description: >-
                        Information that locates and identifies a specific address for a transaction entry, that is
                        presented in free format text.


                        This value should be used where the address is provided or stored as a single string.
                    BuildingNumber:
                      type: string
                      minLength: 1
                      maxLength: 16
                      description: The unit, apartment, or villa number within a building or community
                    BuildingName:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: Name of the building or house.
                    Floor:
                      type: string
                      minLength: 1
                      maxLength: 70
                      description: Floor or storey within a building.
                    StreetName:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: The name of the street or road where the property is located
                    DistrictName:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: The district, community, or neighbourhood where the property is located
                    PostBox:
                      type: string
                      minLength: 1
                      maxLength: 16
                      description: The P.O. Box number assigned to the recipient for mail delivery
                    TownName:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: Name of a built-up area, such as a town or city
                    CountrySubDivision:
                      allOf:
                        - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                      description: >-
                        Country subdivision, such as state or province. This is the Emirate where the address is
                        registered.
                    Country:
                      allOf:
                        - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                      description: The country associated with the address, represented using the ISO 3166-1 alpha-2 country code.
                  description: The address details of the customer's Bank Branch
                ContactDetails:
                  type: string
                  description: The contact details of the Bank
                MortgageBalanceAmount:
                  type: object
                  properties:
                    Currency:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                    Amount:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                  description: The amount or outstanding balance of the mortgage
              description: Revised details, verified by the TPP.
              minProperties: 1
            DomesticHelpers:
              type: object
              properties:
                NumberOfDomesticHelpers:
                  type: integer
                  description: >-
                    Required when Domestic Helpers cover is required. Confirms the number of Domestic Helpers to be
                    covered
                IndividualDetails:
                  type: array
                  items:
                    type: object
                    properties:
                      FirstName:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: First Name of the individual.
                      LastName:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Last Name (Surname) of the individual.
                      Nationality:
                        type: string
                        pattern: ^[A-Z]{3}$
                        description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                      DateOfBirth:
                        type: string
                        format: date
                        description: Date of birth of the individual.
                      PassportNumber:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerPassportNumberType'
                        description: Passport Number of the individual.
                    description: The template for adding optional properties.
                  description: Domestic Helpers details when included in the insurance cover
              minProperties: 1
              description: Revised details, verified by the TPP.
            ExistingHomeInsurance:
              type: object
              properties:
                CoverType:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteTypeOfCover'
                  description: The type of existing insurance cover held.
                ProviderName:
                  type: string
                  description: The name of the existing home insurance provider.
                ExpiryDate:
                  type: string
                  format: date
                  description: The expiry date of the existing home insurance cover.
                ReplacementCover:
                  type: boolean
                  description: Confirm whether this proposal will replace the existing insurance cover.
              description: Revised details, verified by the TPP.
              minProperties: 1
          description: Verified details captured by the TPP, when the TPP is a Broker. Omitted if not required.
    AEInsurance.AEHomeInsuranceQuoteExistingHomeInsuranceProperties:
      type: object
      required:
        - CoverType
        - ProviderName
        - ExpiryDate
        - ReplacementCover
      properties:
        CoverType:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteTypeOfCover'
          description: The type of existing insurance cover held.
        ProviderName:
          type: string
          description: The name of the existing home insurance provider.
        ExpiryDate:
          type: string
          format: date
          description: The expiry date of the existing home insurance cover.
        ReplacementCover:
          type: boolean
          description: Confirm whether this proposal will replace the existing insurance cover.
    AEInsurance.AEHomeInsuranceQuotePolicyHolderProperties:
      type: object
      required:
        - Gender
        - DateOfBirth
        - Nationality
      properties:
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the policyholder.
        EmployerName:
          type: string
          minLength: 1
          maxLength: 70
          description: Employer name.
    AEInsurance.AEHomeInsuranceQuotePolicyProperties:
      type: object
      required:
        - Takaful
        - TypeOfCover
        - PolicyStartDate
        - AddOns
      properties:
        Takaful:
          type: boolean
          description: Indicates whether the policy is Sharia compliant.
        TypeOfCover:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteTypeOfCover'
          description: The type of Home or Renter insurance cover required
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
        PolicyEndDate:
          type: string
          format: date
          description: Policy end date
        AddOns:
          type: object
          properties:
            AccidentalDamageCover:
              type: boolean
              description: Confirmation whether the customer wishes to include Accidental Damage cover.
            PersonalBelongingsCover:
              type: boolean
              description: Confirmation whether the customer wishes to include Personal Belongings cover.
            LiabilityCover:
              type: boolean
              description: Confirmation whether the customer wishes to include Liability cover.
            DomesticHelpersCover:
              type: boolean
          required:
            - AccidentalDamageCover
            - PersonalBelongingsCover
            - LiabilityCover
            - DomesticHelpersCover
        ClaimsInLastThreeYears:
          type: boolean
    AEInsurance.AEHomeInsuranceQuotePropertyDetailsProperties:
      type: object
      required:
        - TypeOfProperty
      properties:
        TypeOfProperty:
          type: string
          enum:
            - House
            - Villa
            - Apartment
            - Flat
            - Other
          description: Based on enumeration values.
        OwnershipStatus:
          type: string
          enum:
            - Owner
            - OwnerWithMortgage
            - Landlord
            - Tenant
          description: Based on enumeration values.
        Construction:
          type: string
          enum:
            - ClassA
            - ClassB
            - ClassC
          description: Type of construction
        OverTenYears:
          type: boolean
          description: Confirmation whether the property is over 10 years old
        FloodDamage:
          type: boolean
          description: >-
            Confirmation whether the buildings and/or contents have suffered damage by storm, tempest or flood during
            the past five years
        NumberOfAdults:
          type: integer
          description: The number of adults that will be living in the home
        NumberOfChildren:
          type: integer
          description: The number of children that will be living in the home
        NumberOfFloors:
          type: integer
          description: The total number of floors in the insured property, including all above-ground levels.
        NumberOfRooms:
          type: integer
          description: 'The total number of rooms within the property, excluding bathrooms. '
        InsuredPropertyAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
          description: The full address of the property to be insured
        SafetySecurityFeatures:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSafetySecurityFeatures'
          description: Details of property safety and security features.
    AEInsurance.AEHomeInsuranceQuoteRequestProperties:
      type: object
      required:
        - CustomerId
        - QuoteReference
        - QuoteType
        - PolicyIssuanceRequest
        - Policy
        - PropertyDetails
      properties:
        CustomerId:
          type: string
          description: >-
            Identifier that uniquely and consistently identifies the existing policy customer or Broker unique Id for
            customer during policy purchase process.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        QuoteType:
          type: string
          enum:
            - New
            - Switch
            - Renewal
          description: |-
            Identification of quote type.

            The following quote type values are supported:

              * New: New Policy Quote

              * Switch: Customer would like to switch policies or brokers

              * Renewal: Customer would like renewal quote
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Policy:
          $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceQuotePolicyProperties'
        PolicyHolder:
          $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceQuotePolicyHolderProperties'
        PropertyDetails:
          $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceQuotePropertyDetailsProperties'
        BuildingsCover:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceBuildingsCoverProperties'
          description: Required when Cover is BuildingsCover
        ContentsCoverDetails:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteContentsCoverDetails'
          description: Required when Cover is ContentsCover
        PersonalBelongings:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuotePersonalBelongings'
        Mortgage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceMortgageProperties'
          description: Details of the mortgage against the property. Omitted when the property is not mortgaged.
        DomesticHelpers:
          $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceDomesticHelperProperties'
        PropertyClaims:
          type: array
          items:
            type: object
            properties:
              DateOfClaim:
                type: string
                format: date
                description: Date the property claim was made
              ClaimAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The value of the claim
              Reason:
                type: string
                description: Details of the claim made or nature of the loss
              Outcome:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEInsurancePropertyClaimOutcomeCodes'
                description: What was the outcome of the claim
            required:
              - DateOfClaim
              - ClaimAmount
              - Reason
              - Outcome
          minItems: 1
          description: >-
            Confirmation whether the customer has suffered any property losses (claims) in the previous 3 years. This
            property can be omitted when the customer confirms that no claims have been made in the last 3 years.
        ExistingHomeInsurance:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEHomeInsuranceQuoteExistingHomeInsuranceProperties'
          description: >-
            Confirmation of the existing cover. This property can be omitted when the customer confirms that there is no
            existing cover on the property.
        PreviousApplications:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuotePreviousApplications'
        ImportantQuestions:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteImportantQuestions'
    AEInsurance.AEInsuranceAcceptedByUserQuoteStatusCodes:
      type: string
      enum:
        - ApplicationPending
        - KYCCaptured
    AEInsurance.AEInsuranceAccountSchemeName:
      type: string
      enum:
        - AccountNumber
        - IBAN
      description: Name of the identification scheme for the account
    AEInsurance.AEInsuranceAddress:
      type: object
      required:
        - AddressLine
        - Country
      properties:
        AddressType:
          type: string
          enum:
            - Billing
            - Business
            - Correspondence
            - DeliveryTo
            - MailTo
            - POBox
            - Postal
            - Permanent
            - Residential
            - Statement
            - Other
          description: The type of address.
        AddressLine:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
          minItems: 1
          maxItems: 7
          description: >-
            Information that locates and identifies a specific address for a transaction entry, that is presented in
            free format text.


            This value should be used where the address is provided or stored as a single string.
        BuildingNumber:
          type: string
          minLength: 1
          maxLength: 16
          description: The unit, apartment, or villa number within a building or community
        BuildingName:
          type: string
          minLength: 1
          maxLength: 140
          description: Name of the building or house.
        Floor:
          type: string
          minLength: 1
          maxLength: 70
          description: Floor or storey within a building.
        StreetName:
          type: string
          minLength: 1
          maxLength: 140
          description: The name of the street or road where the property is located
        DistrictName:
          type: string
          minLength: 1
          maxLength: 140
          description: The district, community, or neighbourhood where the property is located
        PostBox:
          type: string
          minLength: 1
          maxLength: 16
          description: The P.O. Box number assigned to the recipient for mail delivery
        TownName:
          type: string
          minLength: 1
          maxLength: 140
          description: Name of a built-up area, such as a town or city
        CountrySubDivision:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
          description: Country subdivision, such as state or province. This is the Emirate where the address is registered.
        Country:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
          description: The country associated with the address, represented using the ISO 3166-1 alpha-2 country code.
    AEInsurance.AEInsuranceAddressLine:
      type: string
      minLength: 1
      maxLength: 70
    AEInsurance.AEInsuranceAddressProperties:
      type: object
      required:
        - AddressLine
        - Country
      properties:
        AddressLine:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
          minItems: 1
          maxItems: 7
          description: >-
            Information that locates and identifies a specific address for a transaction entry, that is presented in
            free format text.


            This value should be used where the address is provided or stored as a single string.
        BuildingNumber:
          type: string
          minLength: 1
          maxLength: 16
          description: The unit, apartment, or villa number within a building or community
        BuildingName:
          type: string
          minLength: 1
          maxLength: 140
          description: Name of the building or house.
        Floor:
          type: string
          minLength: 1
          maxLength: 70
          description: Floor or storey within a building.
        StreetName:
          type: string
          minLength: 1
          maxLength: 140
          description: The name of the street or road where the property is located
        DistrictName:
          type: string
          minLength: 1
          maxLength: 140
          description: The district, community, or neighbourhood where the property is located
        PostBox:
          type: string
          minLength: 1
          maxLength: 16
          description: The P.O. Box number assigned to the recipient for mail delivery
        TownName:
          type: string
          minLength: 1
          maxLength: 140
          description: Name of a built-up area, such as a town or city
        CountrySubDivision:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
          description: Country subdivision, such as state or province. This is the Emirate where the address is registered.
        Country:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
          description: The country associated with the address, represented using the ISO 3166-1 alpha-2 country code.
    AEInsurance.AEInsuranceBankIdentification:
      type: object
      properties:
        BICFI:
          type: string
          pattern: ^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$
          description: Bank Identification Code (BIC)
        Name:
          type: string
          minLength: 1
          maxLength: 140
          description: Bank Name
        Identification:
          type: string
          minLength: 1
          maxLength: 140
          description: Branch Name
    AEInsurance.AEInsuranceBasmahProgramFee:
      type: object
      required:
        - FeeAmountExcludingVAT
        - VATPercentage
        - TotalFeeAmount
      properties:
        FeeAmountExcludingVAT:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The amount of the Basmah fee excluding VAT
        VATPercentage:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceVATPercentage'
        VATAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The VAT amount to be added to the base Basmah fee
        TotalFeeAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total Basmah fee included in the insurance premium including VAT
    AEInsurance.AEInsuranceCashAccount:
      type: object
      required:
        - Identification
        - SchemeName
        - Name
      properties:
        Identification:
          type: string
          minLength: 1
          maxLength: 34
          description: Account identification
        SchemeName:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceAccountSchemeName'
        Name:
          type: string
          minLength: 1
          maxLength: 70
          description: Account Name
    AEInsurance.AEInsuranceCommission:
      type: object
      required:
        - CommissionAmount
        - CommissionPercentage
      properties:
        CommissionAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: >-
            The total monetary value of the commission paid to the TPP if the User proceeds with the quote application
            and purchases the policy based on the quote information provided.
        CommissionPercentage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePercentageValue'
          description: The percentage of the policy premium allocated as commission to the TPP
        PaymentMethod:
          type: string
          enum:
            - DirectToTPP
            - ThroughAPIHub
          description: >-
            The method to be used to pay the commission to the TPP if the User elects to proceed with the application
            and successfully purchases the policy.
    AEInsurance.AEInsuranceCountryCode:
      type: string
      pattern: '[A-Z]{2}'
      description: Country code that conforms with ISO 3166, 3 character alpha code
    AEInsurance.AEInsuranceCreatePolicyData1:
      type: object
      required:
        - QuoteId
      properties:
        QuoteId:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
          description: Unique identifier for a quote created by an LFI
          example: 47409fec-4b04-4356-b3a1-6f5508524a5a
        PaymentReferenceId:
          type: string
          description: Payment reference generated when the Broker collects the payment from the customer on behalf of the LFI.
        PaymentDetails:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentDetails'
          description: |-
            Customer payment details that can optionally provided by the TPP, based on data
            retrieved from an insurance
        PostIssuanceRequest:
          type: object
          properties:
            ClaimsAllowed:
              type: boolean
              description: Indicates whether the Broker requests to handle customer claims processes after policy issuance.
            EndorsementsAllowed:
              type: boolean
              description: Indicates whether the Broker requests to handle policy endorsements after policy issuance.
            RenewalsAllowed:
              type: boolean
              description: Indicates whether the Broker requests to handle the policy renewal process.
            CancellationAllowed:
              type: boolean
              description: Indicates whether the Broker requests to handle the policy cancellation when requested by the customer.
          required:
            - ClaimsAllowed
            - EndorsementsAllowed
            - RenewalsAllowed
            - CancellationAllowed
          description: 'Broker requests accountability for the following post-policy issuance activities:'
        SupplementaryData:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSupplementaryData'
          description: >-
            Additional information optionally supplied by the TPP that is not described by the Open Finance Framework
            standards.
    AEInsurance.AEInsuranceCreateQuoteResponseProperties:
      oneOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteResponsePendingProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteResponseAvailableProperties'
      discriminator:
        propertyName: QuoteStatus
        mapping:
          Pending: '#/components/schemas/AEInsurance.AEInsuranceQuoteResponsePendingProperties'
          Available: '#/components/schemas/AEInsurance.AEInsuranceQuoteResponseAvailableProperties'
    AEInsurance.AEInsuranceCustomerActivitiesAerialSports:
      type: string
      enum:
        - BaseJumping
        - BungeeJumping
        - Flying
        - FreeOrHighDiving
        - Gliding
        - HangGliding
        - Paragliding
        - HotAirBallooning
        - MicroLighting
        - Parachuting
        - Parascending
        - Skydiving
        - Other
    AEInsurance.AEInsuranceCustomerActivitiesLandSports:
      type: string
      enum:
        - Abseiling
        - BigGameHunting
        - Boxing
        - Canyoning
        - CavingOrPotHoling
        - Coasteering
        - CompetitiveFootball
        - CycleRacing
        - BMXStuntRiding
        - Expeditions
        - HorseJumping
        - MartialArts
        - Motorcycling
        - Mountaineering
        - MountainBikingRacing
        - Polo
        - ProfessionalOrSemiProfessionalSports
        - QuadBiking
        - RockClimbing
        - Rugby
        - StreetHockey
        - Weightlifting
        - Wrestling
        - Other
    AEInsurance.AEInsuranceCustomerActivitiesWaterSports:
      type: string
      enum:
        - CanoeingOrKayaking
        - JetSkiing
        - KiteSurfing
        - ScubaDiving
        - SharkDiving
        - WaterSkiing
        - WhiteBlackWaterRafting
        - Other
    AEInsurance.AEInsuranceCustomerActivitiesWinterSports:
      type: string
      enum:
        - IceClimbing
        - IceHockey
        - OffPisteSkiingSnowboarding
        - SkiJumping
        - Skiing
        - Snowboarding
        - Snowmobiling
        - Other
    AEInsurance.AEInsuranceCustomerHighRiskActivityProperties:
      type: object
      properties:
        AerialSports:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerActivitiesAerialSports'
          minItems: 1
          description: |-
            Describes the aerial sports the insured person undertakes, or wishes to include cover for in a quote.

            Aerial sports includes activities such as paragliding, bungee jumping, hang gliding, and skydiving.

            If included this value must include at least one item.
        WaterSports:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerActivitiesWaterSports'
          minItems: 1
          description: |-
            Describes the aerial sports the insured person undertakes, or wishes to include cover for in a quote.

            Aerial sports includes activities such as kite surfing or white-water rafting.

            If included this value must include at least one item.
        WinterSports:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerActivitiesWinterSports'
          minItems: 1
          description: |-
            Describes the winter sports the insured person undertakes, or wishes to include cover for in a quote.

            Winter sports includes activities such as skiing and snowboarding.

            If included this value must include at least one item.
        LandSports:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerActivitiesLandSports'
          minItems: 1
          description: |-
            Describes the land sports the insured person undertakes, or wishes to include cover for in a quote.

            Land sports includes activities such as mountain biking or rock climbing.

            If included this value must include at least one item.
    AEInsurance.AEInsuranceCustomerPassportNumberType:
      type: string
      pattern: ^[A-Z0-9]+$
    AEInsurance.AEInsuranceCustomerQuoteProperties:
      type: object
      required:
        - FirstName
        - LastName
        - Gender
        - DateOfBirth
        - Nationality
        - MobileNumber
        - EmailAddress
        - Address
      properties:
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
    AEInsurance.AEInsuranceDataSharingClaimsSummaryProperties:
      type: object
      required:
        - NumberOfMonthsInPeriod
        - Claims
        - ApprovedClaims
        - TotalGrossApprovedClaimAmount
        - TotalGrossPaidAmount
      properties:
        NumberOfMonthsInPeriod:
          type: integer
          description: The number of months in the summary period.
        Claims:
          type: integer
          description: Number of claims made during the period.
        ApprovedClaims:
          type: integer
          description: Number of claims approved during the period.
        TotalGrossApprovedClaimAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: >-
            As per CBUAE schema, total gross value of all approved claims during the period including Direct + Third
            party + Coinsurance / deductible + Loss Adjusters + VAT.
        TotalGrossPaidAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Total amount paid
      description: >-
        Summary of previous claims. `NumberOfPreviousMonths` value must appear only once, and can be provided based on
        LFI reporting periods and policy behaviors.


        If no claims have been made then an array element with `NumberOfPreviousMonths` set to zero must be provided,
        and all claim amounts must be set to zero, to provide a positive assertion that no claims have been made.
        Currency must be set to AED for this case.
    AEInsurance.AEInsuranceDataSharingClaimsWithLossCauseProperties:
      type: object
      required:
        - Summary
      properties:
        Summary:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingClaimsSummaryProperties'
          minItems: 1
          description: >-
            Summary of previous claims. `NumberOfPreviousMonths` value must appear only once.


            If no claims have been made then an array element with `NumberOfPreviousMonths` set to zero must be
            provided, and all claim amounts must be set to zero, to provide a positive assertion that no claims have
            been made. Currency must be set to AED for this case.
        ClaimsHistory:
          type: array
          items:
            type: object
            properties:
              ClaimUniqueID:
                type: string
                minLength: 1
                maxLength: 128
                description: Unique reference that identifies the claim
              ClaimDate:
                type: string
                format: date
                description: The original date the claim was submitted.
              TotalGrossClaimAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: >-
                  As per CBUAE scheme, total gross claim amount including Direct + Third party + Coinsurance /
                  deductible + Loss Adjusters + VAT.
              ClaimPayments:
                type: array
                items:
                  type: object
                  properties:
                    Currency:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                    Amount:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                    PaymentDate:
                      type: string
                      format: date
                      description: The date on which the claim payment was made.
                  required:
                    - Currency
                    - Amount
                    - PaymentDate
                minItems: 1
                description: The amounts paid with amount, currency, and date.
              DeductibleGrossClaimAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: Deductible and co-insurance amount paid by customer.
              PolicyClaimedBenefits:
                type: array
                items:
                  type: object
                  properties:
                    ClaimedBenefitType:
                      type: string
                    ClaimedBenefitDescription:
                      type: string
                  required:
                    - ClaimedBenefitType
                    - ClaimedBenefitDescription
                description: All the claimed policy benefits.
              ClaimApprovalDate:
                type: string
                format: date
                description: The most recent approval date for any portion of the claim.
              ClaimLastUpdateDate:
                type: string
                format: date
                description: Last update date of the claim.
              DirectGrossClaimAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: Amount of the claim paid directly.
              ThirdPartyGrossClaimAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: Amount of claim to be paid via third party insurance company.
              ThirdPartyRecoveryCompany:
                type: string
                description: Name of recovery third party insurance company.
              ThirdPartyRecoveryStatus:
                type: string
                enum:
                  - Approved
                  - Reopened
                  - RecoveryOpened
                  - Paid
                  - RecoveryReopenedAndClaimClosed
                  - Rejected
                  - InProgress
                description: Status of recovery.
              LossAdjusterGrossClaimAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: Loss Adjusters fees on above claims.
              OutstandingPayAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: Claim payment amount outstanding.
              Status:
                type: string
                enum:
                  - Open
                  - Outstanding
                  - Closed
                  - Reopened
                  - Cancelled
                  - Deleted
                  - Rejected
                description: |-
                  The status of the claim, based on the following CBUAE standard definitions:

                  * `Open`: Once the claim is submitted.

                  * `Outstanding`: The claim is under processing.

                  * `Closed`: Once the claim is settled & closed.

                  * `Reopened`: The claim is reopened.

                  * `Cancelled`: The claim cancelled.

                  * `Deleted`: The claim entered incorrectly and deleted.

                  * `Rejected`: Company rejected the claim.
              IncidentStartDate:
                type: string
                format: date
                description: Start date of the incident.
              LossCause:
                type: string
                description: Loss cause resulting in claim.
            required:
              - ClaimUniqueID
              - ClaimDate
              - TotalGrossClaimAmount
              - PolicyClaimedBenefits
              - ClaimLastUpdateDate
              - Status
              - IncidentStartDate
              - LossCause
          minItems: 1
          description: Claims history. Only required if claims have been made against the policy.
      description: Details of insurance policy claims
    AEInsurance.AEInsuranceDataSharingContentsCoverDetails:
      type: object
      required:
        - TotalContentsValue
        - HighValueContent
      properties:
        TotalContentsValue:
          type: string
          enum:
            - UP_TO_75K
            - UP_TO_150K
            - UP_TO_250K
            - UP_TO_350K
            - OVER_350K
          description: The total value of the contents to be insured
        DeclaredValueAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Required when the `TotalContentsValue` is `OVER_350K`
        HighValueContent:
          type: boolean
          description: Confirmation whether the customer owns an individual content item that has a value above AED 25,000
        HighValueContentDetails:
          type: array
          items:
            type: object
            properties:
              ItemDescription:
                type: string
                minLength: 1
                maxLength: 140
                description: The description of the high value contents item
              ItemValueAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The value of the high value contents item
              ItemType:
                type: string
                enum:
                  - Appliances
                  - Antiques
                  - Art
                  - Electronics
                  - Furniture
                  - PreciousMetals
                  - RugsOrCarpets
                  - StampCoinOrMedalCollections
                  - Other
                description: Confirmation of the type of high value contents item that will be covered within the insurance policy
              ReceiptsProofOfPurchase:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer has the receipt to provide proof of purchase of the high
                  value contents item
              PhotographicOrDocumentaryEvidence:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer has photographic or documentary evidence of the high value
                  contents item
              LatestAppraisalReports:
                type: boolean
                description: Indicator to confirm whether the customer an appraisal report of the high value contents item
            required:
              - ItemDescription
              - ItemValueAmount
          minItems: 1
          description: Required when the customer has declared that they have a content item with a value above AED 25,000
      description: Required when Cover is ContentsCover
    AEInsurance.AEInsuranceDataSharingCustomerBasicProperties:
      type: object
      required:
        - FirstName
        - LastName
        - Gender
        - DateOfBirth
        - Nationality
        - MobileNumber
        - EmailAddress
        - Address
      properties:
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
        PreviousNameDetails:
          type: object
          properties:
            MaidenName:
              type: string
              description: The maiden name of the customer
            AliasName:
              type: string
              description: >-
                Any name, whether legal or casual, that the customer uses or has used on any forms in addition to their
                birth name.  This includes shortened versions of their name.
          description: >-
            Required if the applicant or policy was known by a previous name. One of MaidenName or AliasName must be
            populated. This property can be omitted if the customer confirms they held no previous names.
        SecondNationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: Confirmation of the policyholder's second nationality when they have dual nationality
        CountryOfBirth:
          type: string
          pattern: ^[A-Z]{3}$
          description: Place of Birth of the Insured Person
    AEInsurance.AEInsuranceDataSharingPaymentFrequencyCode:
      type: string
      enum:
        - Annually
        - OneTime
        - Monthly
        - Quarterly
        - BiAnnual
        - Other
    AEInsurance.AEInsuranceDataSharingPaymentModeCode:
      type: string
      enum:
        - DirectDebit
        - StandingOrder
        - CreditCard
        - BankTransfer
        - OpenFinance
        - Cash
        - Other
    AEInsurance.AEInsuranceDataSharingPersonalBelongings:
      type: object
      required:
        - TotalPersonalBelongingsValue
        - HighValueBelongings
      properties:
        TotalPersonalBelongingsValue:
          type: string
          enum:
            - UP_TO_25K
            - UP_TO_50K
            - UP_TO_100K
            - UP_TO_150K
            - OVER_150K
          description: The total value of the Personal Belongings to be insured
        DeclaredValueAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Required when the  'TotalPersonalBelongingsValue' is 'OVER_150K'
        HighValueBelongings:
          type: boolean
          description: Confirmation whether the customer owns an individual content item that has a value above AED 10,000
        HighValueBelongingsDetails:
          type: array
          items:
            type: object
            properties:
              ItemDescription:
                type: string
                description: The description of the high value Personal Belongings item
              ItemValueAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The value of the high value Personal Belongings item
              ItemType:
                type: string
                enum:
                  - Watches
                  - Jewellery
                  - Clothes
                  - Luggage
                  - SportsEquipment
                  - PortableElectronics
                  - PhotographicEquipment
                  - MusicalInstruments
                  - Other
                description: >-
                  Confirmation of the type of high value Personal Belongings item that will be covered within the
                  insurance policy
              ReceiptsProofOfPurchase:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer has the receipt to provide proof of purchase of the high
                  value Personal Belongings item
              PhotographicOrDocumentaryEvidence:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer has photographic or documentary evidence of the high value
                  Personal Belongings item
              LatestAppraisalReports:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer an appraisal report of the high value Personal Belongings
                  item
            required:
              - ItemDescription
              - ItemValueAmount
          description: Required when the customer has declared that they have a content item with a value above AED 10,000
      description: Required when personal belongings cover is included.
    AEInsurance.AEInsuranceDataSharingPremiumProperties:
      type: object
      required:
        - TotalPremiumAmount
        - PaymentFrequency
      properties:
        PremiumAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The Premium Amount excluding any VAT amount
        VatAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: 'The Premium VAT amount '
        TotalPremiumAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total Premium amount including VAT
        PaymentFrequency:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPaymentFrequencyCode'
          description: The frequency the insurance premium is being paid or can be paid
        PaymentMode:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPaymentModeCode'
          description: 'Confirmation of the payment method used or being used by the customer to pay the insurance premium '
        NextDue:
          type: string
          format: date
          description: The date the next Premium is due
        LastReceived:
          type: object
          properties:
            ReceivedDate:
              type: string
              format: date
              description: The date the last premium was received
            PremiumAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The amount of the last premium received
          description: The details of the last premium received
        OutstandingBalance:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Confirmation of any outstanding premium balance
        Discount:
          type: object
          properties:
            DiscountName:
              type: string
              description: The name of the discount applied to the insurance premium
            DiscountPercentage:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsurancePercentageValue'
              description: The percentage reduction applied to the insurance premium as part of the discount.
            DiscountAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The monetary value of the discount applied to the insurance premium
          minProperties: 1
          description: Details of any discount applied.
        Adjustments:
          type: array
          items:
            type: object
            properties:
              AdjustmentDate:
                type: string
                format: date
                description: When the premium has been adjusted confirmation of the date the adjustment was made
              Reason:
                type: string
                description: The reason why the premium has been adjusted
              AdjustmentAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The premium adjustment amount
          minItems: 1
          description: Details of any adjustments to the premium.
        PaymentHistory:
          type: array
          items:
            type: object
            properties:
              PaymentDate:
                type: string
                format: date
                description: The date when the premium payment was made.
              PremiumAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The amount of the previously paid insurance premium.
              ReceiptNumber:
                type: string
                description: The unique reference number associated with the premium payment receipt.
              InstallmentNumber:
                type: string
                description: The instalment number if the premium was paid in multiple instalments
              PaymentMode:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPaymentModeCode'
                description: The method used for premium payment (e.g., credit card, bank transfer, direct debit, cash).
              PaymentStatus:
                type: string
                enum:
                  - Paid
                  - Pending
                  - Failed
                  - Refunded
                  - Outstanding
                description: The status of the premium payment installment
          minItems: 1
          description: Details of payment history.
        RenewalPremium:
          type: object
          properties:
            RenewalDate:
              type: string
              format: date
              description: The date when the existing insurance policy is scheduled for renewal
            RenewalAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The base premium amount for policy renewal
            VatAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The VAT amount applied to the renewal premium.
            TotalRenewalAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The total amount due for policy renewal, including taxes and fees.
            PaymentFrequency:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceDataSharingPaymentFrequencyCode'
              description: The frequency of renewal premium payments
          description: Details of renewal premium.
      description: Details of the insurance policy premium.
    AEInsurance.AEInsuranceDocumentRequirement:
      type: string
      minLength: 1
      maxLength: 500
    AEInsurance.AEInsuranceEmailAddressType:
      type: string
      pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
      example: ali.hamad@example.openfinanceplatform.ae
    AEInsurance.AEInsuranceEmirate:
      type: string
      enum:
        - AbuDhabi
        - Ajman
        - Dubai
        - Fujairah
        - RasAlKhaimah
        - Sharjah
        - UmmAlQuwain
    AEInsurance.AEInsuranceEmiratesIdPassportOptionalVisa:
      type: object
      required:
        - EmiratesId
        - Passport
      properties:
        EmiratesId:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceNationalIdentifierProperties'
          description: Details of the Emirates ID held by the policyholder or insured person.
        Passport:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePassportProperties'
          description: Details of passport held by policyholder or insured person.
        Visa:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceVisaProperties'
          description: Details of visa issued to insured person. Omitted if not required or information not held.
      description: Details of the Emirates ID and passport held by the policyholder or insured person.
    AEInsurance.AEInsuranceEmploymentStatus:
      type: string
      enum:
        - Employed
        - SelfEmployed
        - BusinessOwner
        - Unemployed
        - Dependent
        - Retired
        - Student
        - DomesticWorker
        - Other
      description: The applicant or policyholder employment status
    AEInsurance.AEInsuranceExistingInsuranceProperties:
      type: object
      required:
        - InsurerName
        - ExistingPolicyNumber
        - PolicyStartDate
        - PolicyEndDate
      properties:
        InsurerName:
          type: string
          description: The Insurance Company Name when an existing cover is held.
        ExistingPolicyNumber:
          type: string
          description: The Insurance Policy Number when an existing cover is held.
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
        PolicyEndDate:
          type: string
          format: date
          description: Policy end date
    AEInsurance.AEInsuranceGender:
      type: string
      enum:
        - Male
        - Female
        - Other
    AEInsurance.AEInsuranceHCVProgramFee:
      type: object
      required:
        - FeeAmountExcludingVAT
        - VATPercentage
        - TotalFeeAmount
      properties:
        FeeAmountExcludingVAT:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The amount of the HCV fee excluding VAT
        VATPercentage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceVATPercentage'
          description: The VAT percentage rate charged to the HCV fee
        VATAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The VAT amount to be added to the base HCV fee
        TotalFeeAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total HCV fee included in the insurance premium including VAT
    AEInsurance.AEInsuranceHeightType:
      type: integer
    AEInsurance.AEInsuranceICPProgramFee:
      type: object
      required:
        - FeeAmountExcludingVAT
        - VATPercentage
        - TotalFeeAmount
      properties:
        FeeAmountExcludingVAT:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The amount of the ICP fee excluding VAT
        VATPercentage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceVATPercentage'
          description: The VAT percentage rate charged to the ICP fee
        VATAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The VAT amount to be added to the base ICP fee
        TotalFeeAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total ICP fee included in the insurance premium including VAT
    AEInsurance.AEInsuranceIdentityEmiratesIdOptionalVisa:
      type: object
      required:
        - EmiratesId
      properties:
        EmiratesId:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceNationalIdentifierProperties'
          description: Details of the Emirates ID held by the policyholder or insured person.
        Visa:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceVisaProperties'
          description: Details of visa issued to insured person. Omitted if not required or information not held.
      description: Details of the Emirates ID held by the policyholder or insured person.
    AEInsurance.AEInsuranceIdentityTypes:
      oneOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityEmiratesIdOptionalVisa'
        - $ref: '#/components/schemas/AEInsurance.AEInsurancePassportOptionalVisa'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmiratesIdPassportOptionalVisa'
    AEInsurance.AEInsuranceInsurancePolicyResponseData1:
      type: object
      required:
        - InsurancePolicyId
      properties:
        InsurancePolicyId:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
          description: Unique identifier for a given insurance policy
          example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
        PostIssuanceResponse:
          type: object
          properties:
            ClaimsAllowed:
              type: boolean
              description: Indicates whether the LFI allows the TPP to handle customer claims processes after policy issuance.
            EndorsementsAllowed:
              type: boolean
              description: Indicates whether the LFI allows the TPP to handle policy endorsements after policy issuance.
            RenewalsAllowed:
              type: boolean
              description: Indicates whether the LFI allows the TPP to handle the policy renewal process.
            CancellationAllowed:
              type: boolean
              description: >-
                Indicates whether the LFI allows the TPP to handle the policy cancellation when requested by the
                customer.
          required:
            - ClaimsAllowed
            - EndorsementsAllowed
            - RenewalsAllowed
            - CancellationAllowed
          description: >-
            Defines whether the LFI allows or rejects the TPPs request for accountability over specific post-policy
            issuance activities.
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEDocumentProperties'
          minItems: 1
          description: Policy documents to be issued to the Customer via the TPP.
    AEInsurance.AEInsuranceMaritalStatus:
      type: string
      enum:
        - Single
        - Married
        - Divorced
        - Widowed
        - Separated
        - Other
    AEInsurance.AEInsuranceNationalIdentifierProperties:
      type: object
      required:
        - EmiratesIdNumber
      properties:
        EmiratesIdNumber:
          type: string
          pattern: ^784-?[0-9]{4}-?[0-9]{7}-?[0-9]{1}$
          description: Emirates identification number
        EmiratesIdExpiryDate:
          type: string
          format: date
          description: Emirates ID expiry date
    AEInsurance.AEInsurancePassportOptionalVisa:
      type: object
      required:
        - Passport
      properties:
        Passport:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePassportProperties'
          description: Details of passport held by policyholder or insured person.
        Visa:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceVisaProperties'
          description: Details of visa issued to insured person. Omitted if not required or information not held.
      description: Details of passport held by policyholder or insured person.
    AEInsurance.AEInsurancePassportProperties:
      type: object
      required:
        - PassportNumber
      properties:
        PassportNumber:
          type: string
          pattern: ^[A-Z0-9]+$
          description: Passport number
        IssuingCountry:
          type: string
          pattern: ^[A-Z]{3,3}$
          description: The country the passport is issued by.
        NameOnPassport:
          type: string
          minLength: 1
          maxLength: 140
          description: The applicant, policyholder or insured person name as detailed on their passport
        IssueDate:
          type: string
          format: date
          description: The passport issue date
        ExpiryDate:
          type: string
          format: date
          description: The passport expiry date
    AEInsurance.AEInsurancePaymentDetails:
      type: object
      required:
        - Account
        - Bank
      properties:
        Account:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCashAccount'
          description: Properties of the customer bank account
        Bank:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceBankIdentification'
          description: Properties of the bank and branch of the account-holder bank
        AccountType:
          type: string
          minLength: 1
          maxLength: 35
          description: Account Type
    AEInsurance.AEInsurancePaymentFrequency:
      type: string
      enum:
        - Annually
        - OneTime
        - Monthly
        - Quarterly
        - BiAnnual
        - Other
        - Limited
      description: Frequencies
    AEInsurance.AEInsurancePercentageValue:
      type: number
      format: decimal
      minimum: 0
      maximum: 100
    AEInsurance.AEInsurancePhoneNumberType:
      type: string
      pattern: ^\+?[1-9]\d{1,14}$
      example: '+971501234567'
    AEInsurance.AEInsurancePolicyStatusCodes:
      type: string
      enum:
        - New
        - Renewed
        - Expired
        - Lapsed
        - Cancelled
        - PaidUp
        - Converted
        - Surrendered
        - DeathClaim
        - RiderClaim
      description: |
        The status of the policy, with the following definitions:

        * `New`: New policy issued

        * `Renewed`: The reissuing of the same policy for a subsequent term

        * `Expired`: Policy has been expired by date

        * `Lapsed`: No longer valid policy

        * `Cancelled`: Policy cancelled by insurer or insured

        * `PaidUp`: Policy paid up in full

        * `Converted`: Policy converted to another plan

        * `Surrendered`: Policy has been surrendered

        * `DeathClaim`: Policy paid due to death (only for Life)

        * `RiderClaim`: Rider paid (only for Life)
    AEInsurance.AEInsurancePremiumDiscountApplied:
      type: object
      required:
        - DiscountName
        - DiscountAmount
      properties:
        DiscountName:
          type: string
          minLength: 1
          maxLength: 140
          description: The name of the discount applied to the insurance premium
        DiscountPercentage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePercentageValue'
          description: The percentage reduction applied to the insurance premium as part of the discount.
        DiscountAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The monetary value of the discount applied to the insurance premium
      description: Details of discounts applied to the insurance premium
    AEInsurance.AEInsurancePremiumDiscountOffers:
      type: object
      properties:
        Type:
          type: string
          description: The category or type of discount offer available
        Name:
          type: string
          description: The name of the specific discount offer applied or available.
        Description:
          type: string
          description: A brief description of the discount offer, including key details and eligibility requirements.
        Criteria:
          type: string
          description: The conditions that must be met to qualify for the discount offer
        OfferAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total monetary value of the discount offer.
        DiscountPercentage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePercentageValue'
          description: The percentage reduction applied to the insurance premium as part of the discount.
    AEInsurance.AEInsurancePremiumJWE:
      type: string
      description: >-
        Insurance premium data provided as a JWE by the LFI. Please refer to the business rules for a description of the
        approach to decrypting this data.
      example: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ....
    AEInsurance.AEInsurancePremiumProperties:
      type: object
      required:
        - PremiumAmountExcludingVAT
        - VATAmount
        - TotalPremiumAmount
        - PaymentFrequency
      properties:
        Status:
          type: string
          enum:
            - Initial
            - StartingFrom
            - Final
          description: Confirmation whether the premium quoted is an initial premium, starting from, or final.
        TotalDiscountAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total discount amount applied to the final premium amount
        DiscountApplied:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumDiscountApplied'
          minItems: 1
          description: Details of the discounts applied
        PremiumAmountExcludingVAT:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The Premium Amount excluding any VAT amount
        VATAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The Premium VAT amount.
        VATPercentage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceVATPercentage'
          description: The VAT percentage rate charged to the premium.
        TotalPremiumAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The total Premium amount including VAT
        PaymentFrequency:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentFrequency'
          description: The payment frequency the calculated Premium has been based on.
        InstallmentOptions:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsurancePaymentFrequency'
          minItems: 1
          description: The possible Premium instalment frequency options available to the customer
    AEInsurance.AEInsurancePropertyClaimOutcomeCodes:
      type: string
      enum:
        - Ongoing
        - Paid
        - PartiallyPaid
        - Rejected
        - Other
    AEInsurance.AEInsuranceQuoteContentsCoverDetails:
      type: object
      required:
        - HighValueContent
      properties:
        DeclaredValueAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Required when the `TotalContentsValue` is `OVER_350K`
        HighValueContent:
          type: boolean
          description: Confirmation whether the customer owns an individual content item that has a value above AED 25,000
        HighValueContentDetails:
          type: array
          items:
            type: object
            properties:
              ItemDescription:
                type: string
                minLength: 1
                maxLength: 140
                description: The description of the high value contents item
              ItemValueAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The value of the high value contents item
              ItemType:
                type: string
                enum:
                  - Appliances
                  - Antiques
                  - Art
                  - Electronics
                  - Furniture
                  - PreciousMetals
                  - RugsOrCarpets
                  - StampCoinOrMedalCollections
                  - Other
                description: Confirmation of the type of high value contents item that will be covered within the insurance policy
              ReceiptsProofOfPurchase:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer has the receipt to provide proof of purchase of the high
                  value contents item
              PhotographicOrDocumentaryEvidence:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer has photographic or documentary evidence of the high value
                  contents item
              LatestAppraisalReports:
                type: boolean
                description: Indicator to confirm whether the customer an appraisal report of the high value contents item
            required:
              - ItemDescription
              - ItemValueAmount
              - ItemType
          minItems: 1
          description: Required when the customer has declared that they have a content item with a value above AED 25,000
      description: Required when Cover is ContentsCover
    AEInsurance.AEInsuranceQuoteIdType:
      type: string
      description: A unique identifier assigned to the generated insurance quote by the LFI
    AEInsurance.AEInsuranceQuoteImportantQuestions:
      type: object
      required:
        - UnoccupiedOverSixtyDays
      properties:
        PrimaryResidence:
          type: boolean
          description: Confirmation whether the property is the customer's primary residence
        BusinessPurposes:
          type: boolean
          description: Confirmation whether the property will be used for business purposes
        PropertyOccupation:
          type: boolean
          description: Confirmation whether the property will be occupied solely by the customer, their family and Domestic Helper?
        DayTimeOccupation:
          type: boolean
          description: Confirmation whether the home will be occupied during the day time.
        UnoccupiedOverSixtyDays:
          type: boolean
          description: Confirmation whether the property will be left un-occupied for more than 60 days.
    AEInsurance.AEInsuranceQuotePersonalBelongings:
      type: object
      required:
        - TotalPersonalBelongingsValue
        - HighValueBelongings
      properties:
        TotalPersonalBelongingsValue:
          type: string
          enum:
            - UP_TO_25K
            - UP_TO_50K
            - UP_TO_100K
            - UP_TO_150K
            - OVER_150K
          description: The total value of the Personal Belongings to be insured
        DeclaredValueAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Required when the  'TotalPersonalBelongingsValue' is 'OVER_150K'
        HighValueBelongings:
          type: boolean
          description: Confirmation whether the customer owns an individual content item that has a value above AED 10,000
        HighValueBelongingsDetails:
          type: array
          items:
            type: object
            properties:
              ItemDescription:
                type: string
                description: The description of the high value Personal Belongings item
              ItemValueAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The value of the high value Personal Belongings item
              ItemType:
                type: string
                enum:
                  - Watches
                  - Jewellery
                  - Clothes
                  - Luggage
                  - SportsEquipment
                  - PortableElectronics
                  - PhotographicEquipment
                  - MusicalInstruments
                  - Other
                description: >-
                  Confirmation of the type of high value Personal Belongings item that will be covered within the
                  insurance policy
              ReceiptsProofOfPurchase:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer has the receipt to provide proof of purchase of the high
                  value Personal Belongings item
              PhotographicOrDocumentaryEvidence:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer has photographic or documentary evidence of the high value
                  Personal Belongings item
              LatestAppraisalReports:
                type: boolean
                description: >-
                  Indicator to confirm whether the customer an appraisal report of the high value Personal Belongings
                  item
            required:
              - ItemDescription
              - ItemValueAmount
              - ItemType
          description: Required when the customer has declared that they have a content item with a value above AED 10,000
      description: Required when personal belongings cover is included.
    AEInsurance.AEInsuranceQuotePolicyCover:
      type: object
      required:
        - CoverType
        - Description
        - CoverIncludedByDefaultIndicator
      properties:
        CoverId:
          type: string
          description: Insurers internal unique ID for specific cover
        CoverType:
          type: string
          description: The category of Cover provided under the insurance policy
        Description:
          type: string
          description: A description of the cover type
        CoverIncludedByDefaultIndicator:
          type: boolean
          description: Indicates whether this Cover is included in the policy by default
        CoverLimitAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: >-
            Required if PolicyCoverIncluded is true (Yes) to provide confirmation of the maximum financial amount the
            insurer will cover for this specific Cover.
        PolicyFeatures:
          type: string
          description: The benefits or additional details related to the specific policy cover.
        PolicyExcess:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: >-
            Required if PolicyCoverIncluded is true (Yes) to confirm the deductible or out-of-pocket (excess) amount the
            policyholder must pay before the insurer covers the remaining claim.
        CoverInclusionAndExclusionDescriptions:
          type: array
          items:
            type: string
          minItems: 1
          description: Included inclusions and exclusions for cover type.
    AEInsurance.AEInsuranceQuotePreviousApplications:
      type: object
      required:
        - Declined
        - SpecialConditions
        - RenewalRefused
      properties:
        Declined:
          type: boolean
          description: Confirmation whether a previous home insurance application has been declined
        SpecialConditions:
          type: boolean
          description: >-
            Confirmation whether a previous home insurance application was accepted with an increased premium rate
            and/or imposed special condition(s)
        RenewalRefused:
          type: boolean
          description: Confirmation whether the existing home insurance provider has refused to renew the home insurance cover
        Reason:
          type: string
          description: >-
            Required when any response in this object is true to confirm the reason for the decline, the special
            condition imposed or the renewal refusal
    AEInsurance.AEInsuranceQuoteProperties:
      type: object
      required:
        - QuoteId
        - QuoteReference
        - CreationDateTime
        - ServiceRating
        - PolicyIssuanceAllowed
      properties:
        QuoteId:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteIdType'
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        CreationDateTime:
          type: string
          format: date-time
          description: The date and time at which the quote was created.
        ExpirationDateTime:
          type: string
          format: date-time
          description: >-
            The expiration date of the quote, after which it is no longer valid.  If no date is provided the quote will
            be valid for up to 30 days as per the Standards.
        PlanName:
          type: string
          minLength: 1
          maxLength: 140
          description: The specific name of the insurance plan.
        LevelOfCover:
          type: string
          minLength: 1
          maxLength: 140
          description: The level of insurance Cover offered in the quote
        Commission:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCommission'
          description: >-
            An object containing details of the commission amount that would be payable to the TPP if the User proceeded
            with the insurance application and purchased the policy based on the provided information
        PolicyCover:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceQuotePolicyCover'
          minItems: 1
          description: >-
            An array containing options for policy cover, which contain information about the cover and benefits
            included in the quoted policies.
        PolicyDocumentsUris:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteUri'
          minItems: 1
          description: >-
            A list of URLs linking to policy-related documents, such as terms and conditions, policy wording, or product
            disclosures
        AvailableAddOns:
          type: array
          items:
            type: object
            properties:
              CoverName:
                type: string
                minLength: 1
                maxLength: 70
                description: Name of the insurance cover add-on
              Description:
                type: string
                minLength: 1
                maxLength: 140
                description: Description of the insurance cover add-on
              Amount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: Premium value of the insurance cover add-on
              CoverLimit:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: When applicable, the benefit coverage limit that could be paid if a claim was made.
              CoverInclusionAndExclusionDescriptions:
                type: array
                items:
                  type: string
                minItems: 1
                description: Included inclusions and exclusions for cover type.
              PolicyExcess:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: When applicable, the amount that would be deductible from any claim.
            required:
              - CoverName
              - Description
          minItems: 1
          description: An object containing details of optional add-ons available for the quoted policy
        RequiredDocuments:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceDocumentRequirement'
          minItems: 1
          description: >-
            A list of documents required that must be provided by the User to the LFI to proceed with the policy
            purchase
        DiscountOffers:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumDiscountOffers'
          minItems: 1
          description: An object containing details of any discounts or offers applied to the quote
        ServiceRating:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRating'
          description: An object containing ratings or reviews of the insurer's service quality
        SpecialConditionsApplicable:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceSpecialConditions'
          description: >-
            Provides special conditions or clauses applicable to the policy specified by the LFI, which must be
            displayed to the User if provided.
        PolicyIssuanceAllowed:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker allowed to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker allowed to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker allowed to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Takaful:
          type: boolean
          description: Indicates whether the policy is Sharia compliant.
        AlternativeBrandName:
          type: string
          description: Provides and alternative brand name where the product is Sharia compliant
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumProperties'
          minProperties: 1
          description: An object containing details of the quoted insurance premium.
    AEInsurance.AEInsuranceQuotePropertyClaims:
      type: object
      required:
        - PreviousClaims
      properties:
        PreviousClaims:
          type: boolean
          description: Confirmation whether the customer has suffered any property losses (claims) in the previous 3 years?
        PreviousClaimsDetails:
          type: array
          items:
            type: object
            properties:
              DateOfClaim:
                type: string
                format: date
                description: Date the property claim was made
              ClaimAmount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The value of the claim
              Reason:
                type: string
                description: Details of the claim made or nature of the loss
              Outcome:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEInsurancePropertyClaimOutcomeCodes'
                description: What was the outcome of the claim
            required:
              - DateOfClaim
              - ClaimAmount
              - Reason
              - Outcome
          description: Required when `PreviousClaims` is true
      description: Details of previous property claims.
    AEInsurance.AEInsuranceQuoteReadApplicationApprovedResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - ApplicationApproved
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadApplicationPendingResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - ApplicationPending
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadAvailableResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - Available
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadCompletedResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - Completed
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadCustomerCancelledResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - CustomerCancelled
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadExpiredResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - Expired
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadKYCCapturedResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - KYCCaptured
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadLFICancelledResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - LFICancelled
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadPaymentRequiredResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - PaymentRequired
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadPendingResponseProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteId
        - QuoteReference
      properties:
        QuoteStatus:
          type: string
          enum:
            - Pending
        QuoteId:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteIdType'
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        PremiumTargetDateTime:
          type: string
          format: date-time
          description: >-
            The target date and time at which the insurer will generate a quote premium. Maximum allowed time is 24
            hours from quote resource creation.
    AEInsurance.AEInsuranceQuoteReadPolicyIssuedResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - PolicyIssued
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadRejectedResponseProperties:
      type: object
      required:
        - QuoteStatus
      properties:
        QuoteStatus:
          type: string
          enum:
            - Rejected
      allOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteProperties'
    AEInsurance.AEInsuranceQuoteReadResponseProperties:
      type: object
      oneOf:
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadPendingResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadAvailableResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadApplicationApprovedResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadApplicationPendingResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadCompletedResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadCustomerCancelledResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadExpiredResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadKYCCapturedResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadLFICancelledResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadPaymentRequiredResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadPolicyIssuedResponseProperties'
        - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadRejectedResponseProperties'
      discriminator:
        propertyName: QuoteStatus
        mapping:
          Pending: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadPendingResponseProperties'
          Available: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadAvailableResponseProperties'
          ApplicationApproved: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadApplicationApprovedResponseProperties'
          ApplicationPending: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadApplicationPendingResponseProperties'
          Completed: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadCompletedResponseProperties'
          CustomerCancelled: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadCustomerCancelledResponseProperties'
          Expired: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadExpiredResponseProperties'
          KYCCaptured: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadKYCCapturedResponseProperties'
          LFICancelled: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadLFICancelledResponseProperties'
          PaymentRequired: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadPaymentRequiredResponseProperties'
          PolicyIssued: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadPolicyIssuedResponseProperties'
          Rejected: '#/components/schemas/AEInsurance.AEInsuranceQuoteReadRejectedResponseProperties'
    AEInsurance.AEInsuranceQuoteReferenceType:
      type: string
      description: The unique quote reference number generated by the TPP for tracking the quote
    AEInsurance.AEInsuranceQuoteResponseAvailableProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteId
        - QuoteReference
        - CreationDateTime
        - ServiceRating
        - PolicyIssuanceAllowed
      properties:
        QuoteStatus:
          type: string
          enum:
            - Available
          description: The current status of the quote
        QuoteId:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteIdType'
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        CreationDateTime:
          type: string
          format: date-time
          description: The date and time at which the quote was created.
        ExpirationDateTime:
          type: string
          format: date-time
          description: >-
            The expiration date of the quote, after which it is no longer valid.  If no date is provided the quote will
            be valid for up to 30 days as per the Standards.
        PlanName:
          type: string
          minLength: 1
          maxLength: 140
          description: The specific name of the insurance plan.
        LevelOfCover:
          type: string
          minLength: 1
          maxLength: 140
          description: The level of insurance Cover offered in the quote
        Commission:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCommission'
          description: >-
            An object containing details of the commission amount that would be payable to the TPP if the User proceeded
            with the insurance application and purchased the policy based on the provided information
        PolicyCover:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceQuotePolicyCover'
          minItems: 1
          description: >-
            An array containing options for policy cover, which contain information about the cover and benefits
            included in the quoted policies.
        PolicyDocumentsUris:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteUri'
          minItems: 1
          description: >-
            A list of URLs linking to policy-related documents, such as terms and conditions, policy wording, or product
            disclosures
        AvailableAddOns:
          type: array
          items:
            type: object
            properties:
              CoverName:
                type: string
                minLength: 1
                maxLength: 70
                description: Name of the insurance cover add-on
              Description:
                type: string
                minLength: 1
                maxLength: 140
                description: Description of the insurance cover add-on
              Amount:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: Premium value of the insurance cover add-on
              CoverLimit:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: When applicable, the benefit coverage limit that could be paid if a claim was made.
              CoverInclusionAndExclusionDescriptions:
                type: array
                items:
                  type: string
                minItems: 1
                description: Included inclusions and exclusions for cover type.
              PolicyExcess:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: When applicable, the amount that would be deductible from any claim.
            required:
              - CoverName
              - Description
          minItems: 1
          description: An object containing details of optional add-ons available for the quoted policy
        RequiredDocuments:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceDocumentRequirement'
          minItems: 1
          description: >-
            A list of documents required that must be provided by the User to the LFI to proceed with the policy
            purchase
        DiscountOffers:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumDiscountOffers'
          minItems: 1
          description: An object containing details of any discounts or offers applied to the quote
        ServiceRating:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRating'
          description: An object containing ratings or reviews of the insurer's service quality
        SpecialConditionsApplicable:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceSpecialConditions'
          description: >-
            Provides special conditions or clauses applicable to the policy specified by the LFI, which must be
            displayed to the User if provided.
        PolicyIssuanceAllowed:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker allowed to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker allowed to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker allowed to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Takaful:
          type: boolean
          description: Indicates whether the policy is Sharia compliant.
        AlternativeBrandName:
          type: string
          description: Provides and alternative brand name where the product is Sharia compliant
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumProperties'
          minProperties: 1
          description: An object containing details of the quoted insurance premium.
    AEInsurance.AEInsuranceQuoteResponsePendingProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteId
        - QuoteReference
      properties:
        QuoteStatus:
          type: string
          enum:
            - Pending
          description: The current status of the quote
        QuoteId:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteIdType'
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        PremiumTargetDateTime:
          type: string
          format: date-time
          description: >-
            The target date and time at which the insurer will generate a quote premium. Maximum allowed time is 24
            hours from quote resource creation.
    AEInsurance.AEInsuranceQuoteTypeOfCover:
      type: string
      enum:
        - BuildingsOnly
        - ContentsOnly
        - BuildingsAndContents
      description: The type of Home or Renter insurance cover required
    AEInsurance.AEInsuranceQuoteUri:
      type: string
      format: uri
    AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties:
      type: object
      properties:
        EmiratesId:
          type: object
          properties:
            EmiratesIdNumber:
              type: string
              pattern: ^784-?[0-9]{4}-?[0-9]{7}-?[0-9]{1}$
              description: Emirates identification number
            EmiratesIdExpiryDate:
              type: string
              format: date
              description: Emirates ID expiry date
          description: Verified Emirates ID details, captured by the TPP.
        Passport:
          type: object
          properties:
            PassportNumber:
              type: string
              pattern: ^[A-Z0-9]+$
              description: Passport number
            IssuingCountry:
              type: string
              pattern: ^[A-Z]{3,3}$
              description: The country the passport is issued by.
            NameOnPassport:
              type: string
              minLength: 1
              maxLength: 140
              description: The applicant, policyholder or insured person name as detailed on their passport
            IssueDate:
              type: string
              format: date
              description: The passport issue date
            ExpiryDate:
              type: string
              format: date
              description: The passport expiry date
          description: Verified Passport details, captured by the TPP.
        Visa:
          type: object
          properties:
            VisaType:
              type: string
              enum:
                - Employment
                - Residence
                - Business
                - Investor
                - Freelance
                - VirtualWork
                - Retirement
                - Student
                - Family
                - Green
                - Golden
                - Blue
              description: The type of visa issues, based on an available code list
            VisaNumber:
              type: string
              pattern: ^[0-9]+$
              description: Visa number
            IssueDate:
              type: string
              format: date
              description: The visa issue date
            ExpiryDate:
              type: string
              format: date
              description: The visa expiry date
            IssuingEmirate:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
              description: Emirate that issued the visa
          description: Verified Passport details, captured by the TPP.
    AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes:
      type: string
      enum:
        - Self
        - Spouse
        - Child
        - Parent
        - Other
      description: Relationship to proposer
    AEInsurance.AEInsuranceResourceIdentifierType:
      type: string
      minLength: 1
      maxLength: 128
      format: uuid
      description: Unique identifier for a given insurance policy
    AEInsurance.AEInsuranceSafetySecurityFeatures:
      type: object
      required:
        - InDesignatedFloodZone
        - WaterLeakDetectionSystems
        - BurglarAlarm
        - SurveillanceCameras
        - DoorCamera
        - SecurityGuards
        - SmokeDetectors
        - FireExtinguishers
        - SprinklerSystem
        - DeadboltLocks
        - WindowLocks
      properties:
        DistanceFromShoreline:
          type: string
          description: 'The shortest distance from the insured property to the nearest coastline, measured in meters '
        DistanceAboveSeaLevel:
          type: string
          description: The elevation of the insured property above sea level, measured in meters
        InDesignatedFloodZone:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured is in a Designated Flood Zone
        WaterLeakDetectionSystems:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has Water Leak Detection Systems
        BurglarAlarm:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has a burglar installed
        SurveillanceCameras:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has Surveillance or Security Cameras
        DoorCamera:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has a door camera
        SecurityGuards:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has Security Guards employed
        SmokeDetectors:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has Smoke Detectors installed
        FireExtinguishers:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has Fire Extinguishers
        SprinklerSystem:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has Sprinkler System installed
        DeadboltLocks:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has Dead bolt Locks installed
        WindowLocks:
          type: boolean
          description: Confirmation whether the property to be insured or is being insured has Window Locks installed
    AEInsurance.AEInsuranceSalutationCodes:
      type: string
      enum:
        - Mr
        - Mrs
        - Ms
        - Miss
        - Dr
        - Prof
        - Other
    AEInsurance.AEInsuranceServiceRating:
      type: object
      required:
        - FinancialStrength
        - ClaimsServicePerformance
        - CustomerServiceComplaintHandling
        - PolicyDigitalConvenience
      properties:
        FinancialStrength:
          type: object
          properties:
            SolvencyRatio:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRatingRateOrRatio'
              description: >-
                The Solvency Capital Requirement (SCR) is a measure used to determine the minimum amount of capital that
                insurance companies must hold to ensure they can meet their obligations even under extreme financial
                stress.
            YearsInBusiness:
              type: integer
              description: >-
                The length of time the insurer LFI has been licensed in the UAE market to provide the type of insurance
                requested in the quote
          required:
            - SolvencyRatio
            - YearsInBusiness
          description: >-
            Key indicators to assess the financial strength and stability of the insurer LFI in terms of their ability
            to meet obligations to policyholders.
        ClaimsServicePerformance:
          type: object
          properties:
            AverageClaimSettlementTime:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRatingRateOrRatio'
              description: >-
                Represents the average number of calendar days taken by the insurer to settle (pay) a claim, measured
                from the date the claim was filed, for the specific type of insurance coverage requested in this quote.
            ClaimSettlementRatio:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRatingRateOrRatio'
              description: >-
                Indicates the percentage of claims successfully paid by the insurer (LFI) out of the total number of
                claims filed for the type of insurance coverage requested in this quote.
            ClaimRejectionRate:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRatingRateOrRatio'
              description: >-
                Represents the percentage of claims that were rejected or denied by the insurer (LFI) relative to the
                total number of claims received for the type of insurance coverage requested in this quote.
            ClaimsPaymentCapacityRatio:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRatingRateOrRatio'
              description: >-
                Indicates the insurer’s short-term ability to meet claims obligations using its liquid assets. The
                calculation is: Liquid assets divided by total claims payable.
          required:
            - AverageClaimSettlementTime
            - ClaimSettlementRatio
            - ClaimRejectionRate
            - ClaimsPaymentCapacityRatio
          description: >-
            Provides performance metrics related to the insurer’s claims handling process for the specified insurance
            type.
        CustomerServiceComplaintHandling:
          type: object
          properties:
            CustomerComplaintRate:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceServiceRatingRateOrRatio'
              description: >-
                Indicates the number of customer complaints received per 1,000 active policies for the type of insurance
                requested in this quote.
            ComplaintResolutionTime:
              type: integer
              description: >-
                Represents the average number of calendar days taken to resolve a customer complaint, measured from the
                date it was lodged, for the type of insurance requested in this quote.
            NetPromoterScore:
              type: integer
              minimum: -100
              maximum: 100
              description: >-
                A customer satisfaction metric that reflects how likely customers are to recommend the insurer (LFI) to
                others for the type of insurance requested in this quote. Scores range from -100 to +100.
          required:
            - CustomerComplaintRate
            - ComplaintResolutionTime
            - NetPromoterScore
          description: >-
            Represents key customer service metrics and complaint handling indicators for the specific type of insurance
            requested in the quote. These measures reflect the insurers responsiveness, resolution efficiency, and
            customer sentiment.
        PolicyDigitalConvenience:
          type: object
          properties:
            InstantDigitalPolicyIssuance:
              type: boolean
              description: >-
                Indicates whether the insurer supports instant or fully digital policy issuance for the specific type of
                insurance requested in the quote. A value of true means the policy can be issued immediately online upon
                purchase.
            DigitalClaimsFiling:
              type: boolean
              description: >-
                Specifies whether customers can file claims digitally at any time (24/7) for the insurance type
                associated with the quote. A value of true indicates full-time online claim filing availability.
            SelfServiceOptions:
              type: array
              items:
                type: string
                enum:
                  - MobileApp
                  - WebPortal
                  - Other
              minItems: 1
              description: >-
                Confirms whether customers have access to digital self-service tools (e.g., mobile app or web portal) to
                manage the policy for the insurance type quoted. This includes functions like viewing, updating, or
                renewing the policy.  
            CustomerSupportAvailability:
              type: array
              items:
                type: string
                enum:
                  - LiveChat
                  - CallCenter
                  - InPerson
                  - MobileAppChat
                  - Email
                  - WhatsApp
                  - Chatbot
                  - MessagingApp
                  - Other
              minItems: 1
              description: Indicates the customer support channels available to the User.
          required:
            - InstantDigitalPolicyIssuance
            - DigitalClaimsFiling
            - SelfServiceOptions
            - CustomerSupportAvailability
          description: >-
            Contains indicators related to the insurer’s digital capabilities and customer convenience features for the
            specific type of insurance requested in the quote.
    AEInsurance.AEInsuranceServiceRatingRateOrRatio:
      type: number
      maximum: 100
      multipleOf: 0.1
      description: Provides a rate or ratio as decimal, to one decimal place.
    AEInsurance.AEInsuranceSpecialConditions:
      type: string
      minLength: 1
      maxLength: 500
    AEInsurance.AEInsuranceSupplementaryData:
      type: object
      description: |-
        Additional data sent by the TPP to finalise the quote ready for completion by the User
        at the LFI
    AEInsurance.AEInsuranceVATPercentage:
      type: number
      format: decimal
      minimum: 0
      maximum: 100
    AEInsurance.AEInsuranceVisaProperties:
      type: object
      required:
        - VisaType
        - VisaNumber
      properties:
        VisaType:
          type: string
          enum:
            - Employment
            - Residence
            - Business
            - Investor
            - Freelance
            - VirtualWork
            - Retirement
            - Student
            - Family
            - Green
            - Golden
            - Blue
          description: The type of visa issues, based on an available code list
        VisaNumber:
          type: string
          pattern: ^[0-9]+$
          description: Visa number
        IssueDate:
          type: string
          format: date
          description: The visa issue date
        ExpiryDate:
          type: string
          format: date
          description: The visa expiry date
        IssuingEmirate:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
          description: Emirate that issued the visa
    AEInsurance.AEInsuranceWeightType:
      type: integer
    AEInsurance.AELifeInsuranceLifeStyleProperties:
      type: object
      required:
        - Alcohol
        - Smoking
      properties:
        Alcohol:
          type: object
          properties:
            ConsumeAlcohol:
              type: boolean
              description: Indicates whether the insured individual consumes alcohol
            AlcoholUnitsPerWeek:
              type: integer
              description: The average number of alcohol units consumed per week
          required:
            - ConsumeAlcohol
          description: Questions about whether the individual consumes alcohol
        Smoking:
          type: object
          properties:
            SmokeCurrent:
              type: boolean
              description: 'Indicates whether the insured individual is a current smoker '
            TypeOfSmoking:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteTypeOfSmokingCodes'
              description: Specifies the type of smoking product currently used
            SmokingQuantityPerDay:
              type: integer
              description: The average number of smoking products consumed per day.
            SmokePrevious:
              type: boolean
              description: 'Indicates whether the insured individual previously smoker '
            TypeOfPreviousSmoking:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteTypeOfSmokingCodes'
              description: Specifies the type of smoking product previously used by the insured individual
            PreviousSmokingQuantityPerDay:
              type: integer
              description: The average number of smoking products consumed per day before quitting.
            HowLongSmoked:
              type: object
              properties:
                SmokingYears:
                  type: integer
                  description: The total number of years the insured individual has smoked or previously smoked.
                SmokingMonths:
                  type: integer
                  description: >-
                    The total number of months the insured individual has smoked or previously smoked, in addition to
                    full years.
                WhenStoppedSmoking:
                  type: string
                  description: The date or year when the insured individual stopped smoking.
                WhyStoppedSmoking:
                  type: string
                  description: The reason for quitting smoking (e.g., health concerns, doctor’s recommendation, lifestyle change).
              description: How long has the individual smoked in years and months
          required:
            - SmokeCurrent
            - SmokePrevious
    AEInsurance.AELifeInsurancePolicyStatusCodes:
      type: string
      enum:
        - New
        - Renewed
        - Expired
        - Lapsed
        - Cancelled
        - PaidUp
        - Converted
        - Surrendered
        - DeathClaim
        - RiderClaim
        - InForce
    AEInsurance.AELifeInsuranceQuoteAcceptQuoteRequestProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteReference
        - InsuranceSubType
        - Premium
        - Commission
        - QuoteCreationDateTime
      properties:
        QuoteStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAcceptedByUserQuoteStatusCodes'
          description: Quote status.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        InsuranceSubType:
          type: string
          minLength: 1
          maxLength: 140
          description: Insurance sub-type, describing the insurance type specific to the sector.
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumProperties'
          description: Details of the quoted premium, as provided in the quote response.
        Commission:
          type: object
          properties:
            CommissionAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: >-
                The total monetary value of the commission paid to the TPP if the User proceeds with the quote
                application and purchases the policy based on the quote information provided.
            PaymentMethod:
              type: string
              enum:
                - DirectToTPP
                - ThroughAPIHub
              description: >-
                The method to be used to pay the commission to the TPP if the User elects to proceed with the
                application and successfully purchases the policy.
          required:
            - PaymentMethod
          description: Details of the commission, as provided in the quote response.
        CustomerSalary:
          type: string
          enum:
            - Under4K
            - Over4K
          description: >-
            Confirmation whether the customer monthly salary is less than or greater than AED 4,000 each month. Required
            for Health Insurance.
        QuoteCreationDateTime:
          type: string
          format: date-time
          description: The quote creation date and time, as supplied by the LFI in the property `CreationDateTime`.
        ExpirationDateTime:
          type: string
          format: date-time
          description: The expiration date of the quote, as provided in the quote response, if provided by the LFI.
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEDocumentProperties'
          description: >-
            Customer documents encoded for submission to the LFI. Omitted if not required or quote status is
            `ApplicationPending`.
        VerifiedDetails:
          type: object
          properties:
            Policy:
              type: object
              properties:
                Takaful:
                  type: boolean
                  description: Indicates whether the policy is Sharia compliant.
                CoverType:
                  type: string
                  enum:
                    - Sole
                    - Joint
                  description: Indicates whether life Cover is required for a single person or jointly for multiple individuals
                IsPolicyholderLifeAssured:
                  type: boolean
                  description: >-
                    True (Yes) when that the Policyholder (customer) is also the Life Assured or one of the Life
                    Assured, or false (No) when confirmation that the Policyholder and the Life Assured(s) are different
                RelationshipToLifeInsured:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
                  description: >-
                    Required when the IsPolicyholderLifeAssured is false (No) to confirm the relationship between the
                    Policyholder and Insured Person.
                ReasonDifferent:
                  type: string
                  description: >-
                    Required when RelationshipToLifeInsured is Other to confirm that there is an insurable interest
                    between the Policyholder and the Life Assured
                TypeOfLifeInsurance:
                  type: string
                  enum:
                    - WholeLifeInsurance
                    - LevelTermInsurance
                    - DecreasingTermInsurance
                  description: The type of life insurance required
                InsurancePurpose:
                  type: string
                  enum:
                    - PersonalCover
                    - FamilyProtection
                    - MortgageCover
                  description: The purpose of the life insurance cover
                SumAssuredAmount:
                  type: object
                  properties:
                    Currency:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                    Amount:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                  description: The sum assured amount and currency.
                PolicyTerm:
                  type: string
                  pattern: ^P(\d+Y)?(\d+M)?$
                  format: duration
                  description: The insurance policy term in years and months, using ISO 8601 compatible duration format
                  example: P2Y3M
                PolicyStartDate:
                  type: string
                  format: date
                  description: Policy start date
                PolicyEndDate:
                  type: string
                  format: date
                  description: Policy end date
                IsFinanceAgainstPolicy:
                  type: boolean
                  description: Confirmation whether insurance cover is being taken out in connection with a finance / mortgage
                FrequencyPremiumPayment:
                  type: string
                  enum:
                    - Annually
                    - OneTime
                    - Monthly
                    - Quarterly
                    - BiAnnual
                    - Limited
                    - Other
                  description: Frequency of premium payments.
                PremiumPaymentTerm:
                  type: string
                  pattern: ^P(\d+Y)?(\d+M)?$
                  description: Term of payments.
                RequiredAddons:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  description: Required add-ons to be included in the quote based on Cover Name.
              description: Revised details, verified by the TPP.
              minProperties: 1
            InsuredParties:
              type: array
              items:
                type: object
                properties:
                  RelationshipToPolicyholder:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
                    description: The relationship to the policyholder.
                  Salutation:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                    description: The salutation of the individual or customer.
                  FirstName:
                    type: string
                    minLength: 1
                    maxLength: 70
                    description: First Name of the individual.
                  MiddleName:
                    type: string
                    minLength: 1
                    maxLength: 70
                    description: Middle Name of the individual.
                  LastName:
                    type: string
                    minLength: 1
                    maxLength: 70
                    description: Last Name (Surname) of the individual.
                  Gender:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                    description: The gender of the customer
                  DateOfBirth:
                    type: string
                    format: date
                    description: Date of birth of the individual.
                  MaritalStatus:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                    description: The marital status of the individual.
                  ResidentialLocation:
                    type: string
                    description: Residential Location of the individual.
                  MobileNumber:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                    description: The mobile telephone number of the individual.
                  LandlineNumber:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                    pattern: ^\+?[1-9]\d{1,14}$
                    description: The landline telephone number of the individual.
                  EmailAddress:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                    description: Email address of the individual.
                  Nationality:
                    type: string
                    pattern: ^[A-Z]{3}$
                    description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                  PrimaryLanguage:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                    description: Primary language spoken by the insurance policy customer
                  Address:
                    type: array
                    items:
                      type: object
                      properties:
                        AddressType:
                          type: string
                          enum:
                            - Billing
                            - Business
                            - Correspondence
                            - DeliveryTo
                            - MailTo
                            - POBox
                            - Postal
                            - Permanent
                            - Residential
                            - Statement
                            - Other
                          description: The type of address.
                        AddressLine:
                          type: array
                          items:
                            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                          minItems: 1
                          maxItems: 7
                          description: >-
                            Information that locates and identifies a specific address for a transaction entry, that is
                            presented in free format text.


                            This value should be used where the address is provided or stored as a single string.
                        BuildingNumber:
                          type: string
                          minLength: 1
                          maxLength: 16
                          description: The unit, apartment, or villa number within a building or community
                        BuildingName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: Name of the building or house.
                        Floor:
                          type: string
                          minLength: 1
                          maxLength: 70
                          description: Floor or storey within a building.
                        StreetName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: The name of the street or road where the property is located
                        DistrictName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: The district, community, or neighbourhood where the property is located
                        PostBox:
                          type: string
                          minLength: 1
                          maxLength: 16
                          description: The P.O. Box number assigned to the recipient for mail delivery
                        TownName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: Name of a built-up area, such as a town or city
                        CountrySubDivision:
                          allOf:
                            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                          description: >-
                            Country subdivision, such as state or province. This is the Emirate where the address is
                            registered.
                        Country:
                          allOf:
                            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                          description: >-
                            The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                            code.
                      description: The template for adding optional properties.
                    minItems: 1
                    description: Address details
                  PreviousNameDetails:
                    type: object
                    properties:
                      MaidenName:
                        type: string
                        description: The maiden name of the customer
                      AliasName:
                        type: string
                        description: >-
                          Any name, whether legal or casual, that the customer uses or has used on any forms in addition
                          to their birth name.  This includes shortened versions of their name.
                    minProperties: 1
                    description: >-
                      Required if the applicant or policy was known by a previous name.  One of MaidenName or AliasName
                      must be populated. This property can be omitted if the customer confirms they held no previous
                      names.
                  SecondNationality:
                    type: string
                    pattern: ^[A-Z]{3}$
                    description: Confirmation of the policyholder's second nationality when they have dual nationality
                  CountryOfBirth:
                    type: string
                    pattern: ^[A-Z]{3}$
                    description: Country of birth of the insured person expressed as an ISO 3166 3 character code.
                  Identity:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                    minProperties: 1
                    description: Revised identity details, verified by the TPP.
                  Height:
                    type: integer
                  Weight:
                    type: integer
                  Employment:
                    type: object
                    properties:
                      EmploymentType:
                        type: string
                        enum:
                          - PrivateSalaried
                          - FederalGovernment
                          - SelfEmployed
                          - Retired
                          - NotEmployed
                          - Other
                        description: Individual's employment type
                      JobTitle:
                        type: string
                        description: Individual's job title
                      EmployerName:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Employer name.
                      NatureOfEmployerBusiness:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Nature of employer business
                      EmploymentStartDate:
                        type: string
                        format: date
                        description: Individual's employment start date
                      MonthlyIncome:
                        type: object
                        properties:
                          Currency:
                            $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                          Amount:
                            $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                        description: Monthly income amount and currency
                      AnnualIncome:
                        type: object
                        properties:
                          Currency:
                            $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                          Amount:
                            $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                        description: Annual income amount and currency
                    description: The template for adding optional properties.
                    minProperties: 1
                  LifeStyle:
                    type: object
                    properties:
                      Alcohol:
                        type: object
                        properties:
                          ConsumeAlcohol:
                            type: boolean
                            description: Indicates whether the insured individual consumes alcohol
                          AlcoholUnitsPerWeek:
                            type: integer
                            description: The average number of alcohol units consumed per week
                        minProperties: 1
                        description: Questions about whether the individual consumes alcohol
                      Smoking:
                        type: object
                        properties:
                          SmokeCurrent:
                            type: boolean
                            description: 'Indicates whether the insured individual is a current smoker '
                          TypeOfSmoking:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteTypeOfSmokingCodes'
                            description: Specifies the type of smoking product currently used
                          SmokingQuantityPerDay:
                            type: integer
                            description: The average number of smoking products consumed per day.
                          SmokePrevious:
                            type: boolean
                            description: 'Indicates whether the insured individual previously smoker '
                          TypeOfPreviousSmoking:
                            allOf:
                              - $ref: '#/components/schemas/AEInsurance.AEHealthInsuranceQuoteTypeOfSmokingCodes'
                            description: Specifies the type of smoking product previously used by the insured individual
                          PreviousSmokingQuantityPerDay:
                            type: integer
                            description: The average number of smoking products consumed per day before quitting.
                          HowLongSmoked:
                            type: object
                            properties:
                              SmokingYears:
                                type: integer
                                description: The total number of years the insured individual has smoked or previously smoked.
                              SmokingMonths:
                                type: integer
                                description: >-
                                  The total number of months the insured individual has smoked or previously smoked, in
                                  addition to full years.
                              WhenStoppedSmoking:
                                type: string
                                description: The date or year when the insured individual stopped smoking.
                              WhyStoppedSmoking:
                                type: string
                                description: >-
                                  The reason for quitting smoking (e.g., health concerns, doctor’s recommendation,
                                  lifestyle change).
                            description: How long has the individual smoked in years and months
                    description: The template for adding optional properties.
                    minProperties: 1
              minItems: 1
              description: Revised details, verified by the TPP.
            PolicyHolder:
              type: object
              properties:
                Salutation:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                  description: The salutation of the individual or customer.
                FirstName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: First Name of the individual.
                MiddleName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Middle Name of the individual.
                LastName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Last Name (Surname) of the individual.
                Gender:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                  description: The gender of the customer
                DateOfBirth:
                  type: string
                  format: date
                  description: Date of birth of the individual.
                MaritalStatus:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                  description: The marital status of the individual.
                ResidentialLocation:
                  type: string
                  description: Residential Location of the individual.
                MobileNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  description: The mobile telephone number of the individual.
                LandlineNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  pattern: ^\+?[1-9]\d{1,14}$
                  description: The landline telephone number of the individual.
                EmailAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                  description: Email address of the individual.
                Nationality:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                PrimaryLanguage:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                  description: Primary language spoken by the insurance policy customer
                Address:
                  type: array
                  items:
                    type: object
                    properties:
                      AddressType:
                        type: string
                        enum:
                          - Billing
                          - Business
                          - Correspondence
                          - DeliveryTo
                          - MailTo
                          - POBox
                          - Postal
                          - Permanent
                          - Residential
                          - Statement
                          - Other
                        description: The type of address.
                      AddressLine:
                        type: array
                        items:
                          $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                        minItems: 1
                        maxItems: 7
                        description: >-
                          Information that locates and identifies a specific address for a transaction entry, that is
                          presented in free format text.


                          This value should be used where the address is provided or stored as a single string.
                      BuildingNumber:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The unit, apartment, or villa number within a building or community
                      BuildingName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of the building or house.
                      Floor:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Floor or storey within a building.
                      StreetName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The name of the street or road where the property is located
                      DistrictName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The district, community, or neighbourhood where the property is located
                      PostBox:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The P.O. Box number assigned to the recipient for mail delivery
                      TownName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of a built-up area, such as a town or city
                      CountrySubDivision:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                        description: >-
                          Country subdivision, such as state or province. This is the Emirate where the address is
                          registered.
                      Country:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                        description: >-
                          The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                          code.
                    description: The template for adding optional properties.
                  minItems: 1
                  description: Address details
                PreviousNameDetails:
                  type: object
                  properties:
                    MaidenName:
                      type: string
                      description: The maiden name of the customer
                    AliasName:
                      type: string
                      description: >-
                        Any name, whether legal or casual, that the customer uses or has used on any forms in addition
                        to their birth name.  This includes shortened versions of their name.
                  minProperties: 1
                  description: >-
                    Required if the applicant or policy was known by a previous name.  One of MaidenName or AliasName
                    must be populated. This property can be omitted if the customer confirms they held no previous
                    names.
                SecondNationality:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: Confirmation of the policyholder's second nationality when they have dual nationality
                CountryOfBirth:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: Country of birth of the insured person expressed as an ISO 3166 3 character code.
                Identity:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                  description: Identification details of the policyholder.
                Employment:
                  type: object
                  properties:
                    EmploymentType:
                      type: string
                      enum:
                        - PrivateSalaried
                        - FederalGovernment
                        - SelfEmployed
                        - Retired
                        - NotEmployed
                        - Other
                      description: Individual's employment type
                    JobTitle:
                      type: string
                      description: Individual's job title
                    EmployerName:
                      type: string
                      minLength: 1
                      maxLength: 70
                      description: Employer name.
                    NatureOfEmployerBusiness:
                      type: string
                      minLength: 1
                      maxLength: 140
                      description: Nature of employer business
                    EmploymentStartDate:
                      type: string
                      format: date
                      description: Individual's employment start date
                    MonthlyIncome:
                      type: object
                      properties:
                        Currency:
                          $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                        Amount:
                          $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                      description: Monthly income amount and currency
                    AnnualIncome:
                      type: object
                      properties:
                        Currency:
                          $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                        Amount:
                          $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                      description: Annual income amount and currency
                  description: Customer employment details
                  minProperties: 1
              description: Revised details, verified by the TPP.
              minProperties: 1
          description: Verified details captured by the TPP, when the TPP is a Broker. Omitted if not required.
    AEInsurance.AELifeInsuranceQuoteCustomerProperties:
      type: object
      required:
        - FirstName
        - LastName
        - Gender
        - DateOfBirth
      properties:
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
        PreviousNameDetails:
          type: object
          properties:
            MaidenName:
              type: string
              description: The maiden name of the customer
            AliasName:
              type: string
              description: >-
                Any name, whether legal or casual, that the customer uses or has used on any forms in addition to their
                birth name.  This includes shortened versions of their name.
          minProperties: 1
          description: >-
            Required if the applicant or policy was known by a previous name.  One of MaidenName or AliasName must be
            populated. This property can be omitted if the customer confirms they held no previous names.
        SecondNationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: Confirmation of the policyholder's second nationality when they have dual nationality
        CountryOfBirth:
          type: string
          pattern: ^[A-Z]{3}$
          description: Country of birth of the insured person expressed as an ISO 3166 3 character code.
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the policyholder.
        Employment:
          type: object
          properties:
            EmploymentType:
              type: string
              enum:
                - PrivateSalaried
                - FederalGovernment
                - SelfEmployed
                - Retired
                - NotEmployed
                - Other
              description: Individual's employment type
            JobTitle:
              type: string
              description: Individual's job title
            EmployerName:
              type: string
              minLength: 1
              maxLength: 70
              description: Employer name.
            NatureOfEmployerBusiness:
              type: string
              minLength: 1
              maxLength: 140
              description: Nature of employer business
            EmploymentStartDate:
              type: string
              format: date
              description: Individual's employment start date
            MonthlyIncome:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: Monthly income amount and currency
            AnnualIncome:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: Annual income amount and currency
          description: Customer employment details
          minProperties: 1
    AEInsurance.AELifeInsuranceQuoteEmploymentProperties:
      type: object
      required:
        - JobTitle
      properties:
        EmploymentType:
          type: string
          enum:
            - PrivateSalaried
            - FederalGovernment
            - SelfEmployed
            - Retired
            - NotEmployed
            - Other
          description: Individual's employment type
        JobTitle:
          type: string
          description: Individual's job title
        EmployerName:
          type: string
          minLength: 1
          maxLength: 70
          description: Employer name.
        NatureOfEmployerBusiness:
          type: string
          minLength: 1
          maxLength: 140
          description: Nature of employer business
        EmploymentStartDate:
          type: string
          format: date
          description: Individual's employment start date
        MonthlyIncome:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Monthly income amount and currency
        AnnualIncome:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: Annual income amount and currency
    AEInsurance.AELifeInsuranceQuoteInsuredPartiesProperties:
      type: object
      required:
        - RelationshipToPolicyholder
        - Salutation
        - FirstName
        - LastName
        - Gender
        - DateOfBirth
        - MaritalStatus
        - Nationality
        - Height
        - Weight
        - LifeStyle
      properties:
        RelationshipToPolicyholder:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
          description: The relationship to the policyholder.
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
        PreviousNameDetails:
          type: object
          properties:
            MaidenName:
              type: string
              description: The maiden name of the customer
            AliasName:
              type: string
              description: >-
                Any name, whether legal or casual, that the customer uses or has used on any forms in addition to their
                birth name.  This includes shortened versions of their name.
          minProperties: 1
          description: >-
            Required if the applicant or policy was known by a previous name.  One of MaidenName or AliasName must be
            populated. This property can be omitted if the customer confirms they held no previous names.
        SecondNationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: Confirmation of the policyholder's second nationality when they have dual nationality
        CountryOfBirth:
          type: string
          pattern: ^[A-Z]{3}$
          description: Country of birth of the insured person expressed as an ISO 3166 3 character code.
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the insured party.
        Height:
          type: integer
        Weight:
          type: integer
        Employment:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AELifeInsuranceQuoteEmploymentProperties'
          minProperties: 1
          description: Customer employment details
        LifeStyle:
          $ref: '#/components/schemas/AEInsurance.AELifeInsuranceLifeStyleProperties'
    AEInsurance.AELifeInsuranceQuotePolicyProperties:
      type: object
      required:
        - Takaful
        - SumAssuredAmount
        - FrequencyPremiumPayment
      properties:
        Takaful:
          type: boolean
          description: Indicates whether the policy is Sharia compliant.
        CoverType:
          type: string
          enum:
            - Sole
            - Joint
          description: Indicates whether life Cover is required for a single person or jointly for multiple individuals
        IsPolicyholderLifeAssured:
          type: boolean
          description: >-
            True (Yes) when that the Policyholder (customer) is also the Life Assured or one of the Life Assured, or
            false (No) when confirmation that the Policyholder and the Life Assured(s) are different
        RelationshipToLifeInsured:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceRelationshipToInsuredPartyCodes'
          description: >-
            Required when the IsPolicyholderLifeAssured is false (No) to confirm the relationship between the
            Policyholder and Insured Person.
        ReasonDifferent:
          type: string
          description: >-
            Required when RelationshipToLifeInsured is Other to confirm that there is an insurable interest between the
            Policyholder and the Life Assured
        TypeOfLifeInsurance:
          type: string
          enum:
            - WholeLifeInsurance
            - LevelTermInsurance
            - DecreasingTermInsurance
          description: The type of life insurance required
        InsurancePurpose:
          type: string
          enum:
            - PersonalCover
            - FamilyProtection
            - MortgageCover
          description: The purpose of the life insurance cover
        SumAssuredAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The sum assured amount and currency.
        PolicyTerm:
          type: string
          pattern: ^P(\d+Y)?(\d+M)?$
          format: duration
          description: The insurance policy term in years and months, using ISO 8601 compatible duration format
          example: P2Y3M
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
        PolicyEndDate:
          type: string
          format: date
          description: Policy end date
        IsFinanceAgainstPolicy:
          type: boolean
          description: Confirmation whether insurance cover is being taken out in connection with a finance / mortgage
        FrequencyPremiumPayment:
          type: string
          enum:
            - Annually
            - OneTime
            - Monthly
            - Quarterly
            - BiAnnual
            - Limited
            - Other
          description: Frequency of premium payments.
        PremiumPaymentTerm:
          type: string
          pattern: ^P(\d+Y)?(\d+M)?$
          description: Term of payments.
        RequiredAddons:
          type: array
          items:
            type: string
          minItems: 1
          description: Required add-ons to be included in the quote based on Cover Name.
      description: Details of policy
    AEInsurance.AELifeInsuranceQuoteRequestProperties:
      type: object
      required:
        - CustomerId
        - QuoteReference
        - QuoteType
        - PolicyIssuanceRequest
        - Policy
        - InsuredParties
      properties:
        CustomerId:
          type: string
          description: >-
            Identifier that uniquely and consistently identifies the existing policy customer or Broker unique Id for
            customer during policy purchase process.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        QuoteType:
          type: string
          enum:
            - New
            - Switch
            - Renewal
          description: |-
            Identification of quote type.

            The following quote type values are supported:

              * New: New Policy Quote

              * Switch: Customer would like to switch policies or brokers

              * Renewal: Customer would like renewal quote
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Policy:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AELifeInsuranceQuotePolicyProperties'
          description: Details of policy
        InsuredParties:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AELifeInsuranceQuoteInsuredPartiesProperties'
          minItems: 1
          description: Details of persons included in proposed insurance policy.
        PolicyHolder:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AELifeInsuranceQuoteCustomerProperties'
          description: Details of policy holder. Required when the  Policyholder is not one of the Insured Person.
        ExistingLifeInsurance:
          type: array
          items:
            type: object
            properties:
              InsurerName:
                type: string
                description: The Life Insurance Company Name the existing Life cover is held with
              ExistingPolicyNumber:
                type: string
              SumAssured:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                description: The minimum amount payable to the assured or his/her dependants on the death of the life assured
              PolicyStartDate:
                type: string
                format: date
                description: Life cover start date
              PolicyEndDate:
                type: string
                format: date
                description: Life cover maturity (end) date
            required:
              - InsurerName
          description: One-or-more existing insurance policies, omitted if none are held
    AEInsurance.AEMotorInsuranceDataSharingCarRegistration:
      type: object
      required:
        - EmirateOfRegistration
      properties:
        EmirateOfRegistration:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
          description: The Emirate where the insured motor vehicle was registered
        DateOfFirstRegistration:
          type: string
          format: date
          description: Date the motor vehicle was first registered
        RegistrationExpiry:
          type: string
          format: date
          description: Date when the current registration expires.
        ValidMulkiyaHeld:
          type: boolean
          description: >-
            Confirmation whether the Mulkiya (vehicle registration card) is held by the applicant/customer. The Mulkiya
            document is collected by the LFI if the Customer elects to proceed with the quote.
      description: Details of car registration.
    AEInsurance.AEMotorInsuranceEngineTypeCodes:
      type: string
      enum:
        - Electric
        - Hybrid
        - InternalCombustionEngine
      description: Details of the engine type for the vehicle.
    AEInsurance.AEMotorInsuranceProductData:
      type: object
      required:
        - Policy
        - VehicleDetails
        - CarRegistration
        - DrivingLicenseHistory
      properties:
        Policy:
          type: object
          properties:
            TypeOfPolicy:
              $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteCoverTypes'
            RegistrationType:
              type: string
              enum:
                - New
                - RenewalOfExistingVehicle
              description: >-
                Indicates whether the policy is for a brand new car, renewal of registration and insurance or a change
                of ownership (purchasing a pre-owned / 'second-hand' car)
            PolicyStartDate:
              type: string
              format: date
              description: Policy start date
            PolicyEndDate:
              type: string
              format: date
              description: Policy end date
            CarUsage:
              type: string
              enum:
                - Private
                - Commercial
              description: The primary purpose of the vehicle usage
            CarValuation:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The assessed value of the insured vehicle
            PolicyNumber:
              type: string
              minLength: 1
              maxLength: 140
              description: >-
                The official reference number assigned to the policy by the LFI for identification and tracking and is
                known by User
            PurchaseDate:
              type: string
              format: date
              description: The date when the insurance policy was purchased by the policyholder.
            Takaful:
              type: boolean
              description: Indicates whether the policy is Sharia compliant.
            ProductName:
              type: string
              description: Business name of the policy product as provided externally to the customer.
            PolicyExcess:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: When applicable, the amount that would be deductible from any claim.
            PolicyCoverAndBenefits:
              type: array
              items:
                type: object
                properties:
                  CoverType:
                    type: string
                    description: Type of cover as defined in company systems.
                  Description:
                    type: string
                    description: Description of the cover / benefit.
                  Required:
                    type: boolean
                    description: >-
                      To confirm whether the cover or benefit is required as part of the base insurance policy or is
                      optional.
                  CoverLimit:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                    description: When applicable, the benefit coverage limit that could be paid if a claim was made.
                  CoverInclusionsAndExclusions:
                    type: array
                    items:
                      type: object
                      properties:
                        InclusionAndExclusionDescription:
                          type: string
                          description: Description of the inclusion or exclusion.
                      required:
                        - InclusionAndExclusionDescription
                    minItems: 1
                    description: included inclusions and exclusions for cover type.
                  CoverExcess:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                    description: When applicable, the amount that would be deductible from any claim.
                  CoverID:
                    type: string
                    description: Insurers internal unique ID for specific cover.
                required:
                  - CoverType
                  - Description
                  - Required
              minItems: 1
              description: Cover and benefits provided by the policy.
            PolicyPurchaseChannelType:
              type: string
              enum:
                - Direct
                - Agent
                - Broker
                - Bank
                - InvFinInst
                - TPA
                - OnlineInsideUAE
                - OnlineOutsideUAE
                - Aggregation
                - Outside
                - Other
              description: Sales channel of policy.
          required:
            - TypeOfPolicy
            - PolicyStartDate
            - CarUsage
            - PolicyNumber
            - PurchaseDate
            - Takaful
            - ProductName
            - PolicyCoverAndBenefits
            - PolicyPurchaseChannelType
          description: Details of the policy.
        VehicleDetails:
          type: object
          properties:
            EngineNumber:
              type: string
              description: The identification of the motor vehicle engine
            ModelYear:
              type: string
              pattern: ^[0-9]{4}$
              description: The manufacturing year of the vehicle.
            Make:
              type: string
              description: The brand or manufacturer of the vehicle.
            Model:
              type: string
              description: The specific model name of the vehicle.
            Trim:
              type: string
              description: The variant or trim level of the vehicle, indicating features and specifications
            BodyType:
              type: string
              enum:
                - Saloon
                - 4WD
                - Pickup
                - Truck
                - TrailerHead
                - Trailer
                - Water
                - Fuel Tanker
                - Buses
                - Dumper
                - Agriculture
                - Forklift
                - Heavy Equipment
                - Motorcycle
                - Others
              description: 'The type motor vehicle like saloon, Station/SUV, coupe '
            Color:
              type: string
              description: The exterior colour of the vehicle.
            LoadingCapacity:
              type: string
              description: The maximum weight the vehicle can carry, including passengers and cargo
            Weight:
              type: integer
              description: The total weight of the vehicle when empty to nearest kilograms
            CountryOfOrigin:
              type: string
              pattern: ^[A-Z]{3}$
              description: The country where the vehicle was manufactured
            NoOfPassengersIncDriver:
              type: integer
              description: The number of passengers that can be carried in the car
            Mileage:
              type: integer
              description: Vehicle mileage to nearest kilometre
            EngineProperties:
              type: object
              properties:
                EngineType:
                  $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceEngineTypeCodes'
                BatteryCapacity:
                  type: string
                  description: The capacity of the battery.
                MotorPower:
                  type: string
                  description: The power of the vehicle motor.
                EngineCapacity:
                  type: string
                  description: The engine displacement volume in cubic centimetres (cc).
                CylinderCapacity:
                  type: string
                  description: The number of cylinders
              minProperties: 1
              description: Properties of the vehicle engine.
            ChassisNumber:
              type: string
              minLength: 17
              maxLength: 17
              description: The chassis number (Vehicle Identification Number - VIN) of the motor vehicle to be insured
            PlateCode:
              type: string
              description: Plate code of the vehicle registration plate that identifies the Emirate where the vehicle is registered
            PlateNumber:
              type: string
              description: Vehicle registration plate number
            PlateSource:
              type: string
              enum:
                - AUH
                - DXB
                - SHJ
                - AJM
                - UAQ
                - RAK
                - FUJ
              description: The abbreviation of the Emirate where a vehicle's license plate is registered
            Transmission:
              type: string
              enum:
                - Automatic
                - Manual
              description: The type of transmission system in the vehicle
            Specification:
              type: string
              enum:
                - GCC
                - NonGCC
              description: Confirm whether the car specification is a Gulf Cooperation Council (GCC) specification.
          required:
            - ModelYear
            - Make
            - Model
            - Trim
            - BodyType
            - NoOfPassengersIncDriver
        CarRegistration:
          $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceDataSharingCarRegistration'
        DrivingLicenseHistory:
          type: object
          properties:
            DrivingLicenseNumber:
              type: string
              description: The policyholder or applicant driving license number.
            DrivingLicenseIssuingEmirate:
              $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
            TimeDrivingInUAE:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEDurationYearsAndMonths'
              description: >-
                The total duration (in years and months) that the policyholder or applicant has been actively driving in
                the UAE
            DrivingLicenseIssueDate:
              type: string
              format: date
              description: The date when the policyholder or applicant UAE driving license was issued.
            HomeCountryDrivingLicenseNumber:
              type: string
              description: The driving license number that was issued by the customer's home country
            TrafficIdNumber:
              type: string
              description: >-
                The Traffic Code Number (TC number) as detailed on the vehicle registration card (Mulkiya) or the
                driver's driving licence.
            HomeCountryDrivingExperience:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEDurationYearsAndMonths'
              description: The length of time driving in home country, as a duration in years and months.
          required:
            - DrivingLicenseNumber
          description: Details of policyholder driving license history.
        AdditionalDrivers:
          type: array
          items:
            type: object
            properties:
              RelationshipToMainDriver:
                type: string
                enum:
                  - Spouse
                  - Parent
                  - Sibling
                  - Child
                  - Friend
                  - Employee
                  - Other
                description: The additional driver's relationship to the main driver
              FullName:
                type: string
                minLength: 1
                maxLength: 140
                description: Full name of the additional driver
              DateOfBirth:
                type: string
                format: date
                description: Date of birth of the individual.
              Gender:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                description: The gender of the customer
              Nationality:
                type: string
                pattern: ^[A-Z]{3}$
                description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
              DrivingLicenseNumber:
                type: string
                description: The policyholder or applicant driving license number.
              DrivingLicenseIssuingEmirate:
                $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
              TimeDrivingInUAE:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEDurationYearsAndMonths'
                description: >-
                  The total duration (in years and months) that the policyholder or applicant has been actively driving
                  in the UAE
              DrivingLicenseIssueDate:
                type: string
                format: date
                description: The date when the policyholder or applicant UAE driving license was issued.
              EmiratesIdNumber:
                type: string
                pattern: ^784-?[0-9]{4}-?[0-9]{7}-?[0-9]{1}$
                description: Emirates identification number
            required:
              - FullName
          description: Details of additional drivers on the policy. Omitted if no additional drivers are insured.
        CarFinance:
          type: object
          properties:
            BankName:
              type: string
              minLength: 1
              maxLength: 70
              description: Confirm the Bank or registered finance company providing the car finance.
            FinanceAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The finance amount secured against the car.
            FinanceStartDate:
              type: string
              format: date
              description: Finance start date
            FinanceEndDate:
              type: string
              format: date
              description: Finance end date
            FinanceTerm:
              type: integer
              description: The finance term in months
            FinanceInterestRate:
              type: number
              description: Finance interest rate
            OutstandingFinanceBalance:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: Confirmation of the outstanding finance balance.
          required:
            - BankName
          description: Details of any finance on the insured vehicle. Omitted if no finance held or recorded.
    AEInsurance.AEMotorInsuranceQuoteAcceptQuoteRequestProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteReference
        - InsuranceSubType
        - Premium
        - Commission
        - QuoteCreationDateTime
      properties:
        QuoteStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAcceptedByUserQuoteStatusCodes'
          description: Quote status.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        InsuranceSubType:
          type: string
          minLength: 1
          maxLength: 140
          description: Insurance sub-type, describing the insurance type specific to the sector.
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumProperties'
          description: Details of the quoted premium, as provided in the quote response.
        Commission:
          type: object
          properties:
            CommissionAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: >-
                The total monetary value of the commission paid to the TPP if the User proceeds with the quote
                application and purchases the policy based on the quote information provided.
            PaymentMethod:
              type: string
              enum:
                - DirectToTPP
                - ThroughAPIHub
              description: >-
                The method to be used to pay the commission to the TPP if the User elects to proceed with the
                application and successfully purchases the policy.
          required:
            - PaymentMethod
          description: Details of the commission, as provided in the quote response.
        CustomerSalary:
          type: string
          enum:
            - Under4K
            - Over4K
          description: >-
            Confirmation whether the customer monthly salary is less than or greater than AED 4,000 each month. Required
            for Health Insurance.
        QuoteCreationDateTime:
          type: string
          format: date-time
          description: The quote creation date and time, as supplied by the LFI in the property `CreationDateTime`.
        ExpirationDateTime:
          type: string
          format: date-time
          description: The expiration date of the quote, as provided in the quote response, if provided by the LFI.
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEDocumentProperties'
          description: >-
            Customer documents encoded for submission to the LFI. Omitted if not required or quote status is
            `ApplicationPending`.
        VerifiedDetails:
          type: object
          properties:
            Policy:
              type: object
              properties:
                Takaful:
                  type: boolean
                  description: Indicates whether the policy is Sharia compliant.
                CoverType:
                  $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteCoverTypes'
                RegistrationType:
                  type: string
                  enum:
                    - New
                    - RenewalOfExistingVehicle
                  description: >-
                    Indicates whether the policy is for a brand new car, renewal of registration and insurance or a
                    change of ownership (purchasing a pre-owned / 'second-hand' car)
                PolicyStartDate:
                  type: string
                  format: date
                  description: Policy start date
                PolicyEndDate:
                  type: string
                  format: date
                  description: Policy end date
                CarUsage:
                  type: string
                  enum:
                    - Private
                    - Commercial
                  description: The primary purpose of the vehicle usage
                CarValuation:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                  description: The assessed value of the insured vehicle
                OptionalCoverAddOns:
                  $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteOptionalCoverAddOnsProperties'
              required:
                - OptionalCoverAddOns
              minProperties: 1
              description: Revised details, verified by the TPP.
            VehicleDetails:
              type: object
              properties:
                EngineNumber:
                  type: string
                  description: The identification of the motor vehicle engine
                ModelYear:
                  type: string
                  pattern: ^[0-9]{4}$
                  description: The manufacturing year of the vehicle.
                Make:
                  type: string
                  description: The brand or manufacturer of the vehicle.
                Model:
                  type: string
                  description: The specific model name of the vehicle.
                Trim:
                  type: string
                  description: The variant or trim level of the vehicle, indicating features and specifications
                BodyType:
                  type: string
                  enum:
                    - Saloon
                    - 4WD
                    - Pickup
                    - Truck
                    - TrailerHead
                    - Trailer
                    - Water
                    - Fuel Tanker
                    - Buses
                    - Dumper
                    - Agriculture
                    - Forklift
                    - Heavy Equipment
                    - Motorcycle
                    - Others
                  description: 'The type motor vehicle like saloon, Station/SUV, coupe '
                Color:
                  type: string
                  description: The exterior colour of the vehicle.
                LoadingCapacity:
                  type: string
                  description: The maximum weight the vehicle can carry, including passengers and cargo
                Weight:
                  type: integer
                  description: The total weight of the vehicle when empty to nearest kilograms
                CountryOfOrigin:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The country where the vehicle was manufactured
                NoOfPassengersIncDriver:
                  type: integer
                  description: The number of passengers that can be carried in the car
                Mileage:
                  type: integer
                  description: Vehicle mileage to nearest kilometre
                EngineProperties:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEEngineProperties'
                  description: Properties of the vehicle engine.
                ChassisNumber:
                  type: string
                  minLength: 17
                  maxLength: 17
                  description: The chassis number (Vehicle Identification Number - VIN) of the motor vehicle to be insured
                PlateCode:
                  type: string
                  description: >-
                    Plate code of the vehicle registration plate that identifies the Emirate where the vehicle is
                    registered
                PlateNumber:
                  type: string
                  description: Vehicle registration plate number
                PlateSource:
                  type: string
                  enum:
                    - AUH
                    - DXB
                    - SHJ
                    - AJM
                    - UAQ
                    - RAK
                    - FUJ
                  description: The abbreviation of the Emirate where a vehicle's license plate is registered
                Transmission:
                  type: string
                  enum:
                    - Automatic
                    - Manual
                  description: The type of transmission system in the vehicle
                Specification:
                  type: string
                  enum:
                    - GCC
                    - NonGCC
                  description: Confirm whether the car specification is a Gulf Cooperation Council (GCC) specification.
              required:
                - ModelYear
                - Make
                - Model
                - Trim
                - BodyType
                - Color
                - CountryOfOrigin
                - NoOfPassengersIncDriver
                - EngineProperties
                - Specification
            CarRegistration:
              $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteCarRegistrationProperties'
            MainDriver:
              type: object
              properties:
                Salutation:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                  description: The salutation of the individual or customer.
                FirstName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: First Name of the individual.
                MiddleName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Middle Name of the individual.
                LastName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Last Name (Surname) of the individual.
                Gender:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                  description: The gender of the customer
                DateOfBirth:
                  type: string
                  format: date
                  description: Date of birth of the individual.
                MaritalStatus:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                  description: The marital status of the individual.
                ResidentialLocation:
                  type: string
                  description: Residential Location of the individual.
                LandlineNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  pattern: ^\+?[1-9]\d{1,14}$
                  description: The landline telephone number of the individual.
                Nationality:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                PrimaryLanguage:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                  description: Primary language spoken by the insurance policy customer
                MobileNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  description: The mobile telephone number of the individual.
                EmailAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                  description: Email address of the individual.
                Address:
                  type: array
                  items:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
                  minItems: 1
                  description: Customer's address details
                Identity:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                  minProperties: 1
                  description: Revised identity details, verified by the TPP.
                DrivingLicenseHistory:
                  type: object
                  properties:
                    DrivingLicenseNumber:
                      type: string
                      description: The policyholder or applicant driving license number.
                    DrivingLicenseIssuingEmirate:
                      $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                    TimeDrivingInUAE:
                      allOf:
                        - $ref: '#/components/schemas/AEInsurance.AEDurationYearsAndMonths'
                      description: >-
                        The total duration (in years and months) that the policyholder or applicant has been actively
                        driving in the UAE
                    DrivingLicenseIssueDate:
                      type: string
                      format: date
                      description: The date when the policyholder or applicant UAE driving license was issued.
                    DrivingLicenseExpiryDate:
                      type: string
                      format: date
                      description: The date the driving license will expire
                    TCNumber:
                      type: string
                      pattern: ^[0-9]{8}$
                      description: Unique ID which links individual traffic file to driver and car registration
                    VCCNumber:
                      type: string
                    HiyazaCertificateNumber:
                      type: string
                  required:
                    - TimeDrivingInUAE
                    - DrivingLicenseExpiryDate
                    - TCNumber
                    - VCCNumber
                    - HiyazaCertificateNumber
                  description: Confirmation of the main driver's driving license details and driving history
                MotorClaims:
                  type: object
                  properties:
                    MotorClaimInLast24Months:
                      type: boolean
                      description: Indicates whether the insured has made a motor insurance claim in the last 24 months
                    MotorLastClaimMade:
                      type: string
                      format: date
                      description: The date when the most recent motor insurance claim was made
                    NoClaimsCertificate:
                      type: string
                      enum:
                        - NoNCD
                        - 1Year
                        - 2Years
                        - 3Years
                        - 4Years
                        - 5+Years
                      description: >-
                        Confirmation whether the insured has a No Claim Certificate issued by the previous insurer
                        confirming the insured's no-claims history.  The customer must be advised that the No Claims
                        Certificate will be required by the LFI if they decide to proceed with the application
                  required:
                    - MotorClaimInLast24Months
                    - NoClaimsCertificate
                  description: Details of motor insurance claims made by the proposer.
              required:
                - DateOfBirth
                - Nationality
                - Address
                - DrivingLicenseHistory
                - MotorClaims
            AdditionalDrivers:
              type: array
              items:
                type: object
                properties:
                  RelationshipToMainDriver:
                    type: string
                    enum:
                      - Spouse
                      - Parent
                      - Sibling
                      - Child
                      - Friend
                      - Employee
                      - Other
                    description: The additional driver's relationship to the main driver
                  FullName:
                    type: string
                    minLength: 1
                    maxLength: 140
                    description: Full name of the additional driver
                  DateOfBirth:
                    type: string
                    format: date
                    description: Date of birth of the individual.
                  Gender:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                    description: The gender of the customer
                  Nationality:
                    type: string
                    pattern: ^[A-Z]{3}$
                    description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                  DrivingLicenseNumber:
                    type: string
                    description: The policyholder or applicant driving license number.
                  DrivingLicenseIssuingEmirate:
                    $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                  TimeDrivingInUAE:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEDurationYearsAndMonths'
                    description: >-
                      The total duration (in years and months) that the policyholder or applicant has been actively
                      driving in the UAE
                  DrivingLicenseIssueDate:
                    type: string
                    format: date
                    description: The date when the policyholder or applicant UAE driving license was issued.
                  DrivingLicenseExpiryDate:
                    type: string
                    format: date
                    description: The date the driving license will expire
                  Identity:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                    minProperties: 1
                    description: Revised identity details, verified by the TPP.
                required:
                  - RelationshipToMainDriver
                  - FullName
                  - DateOfBirth
                  - Nationality
                  - DrivingLicenseNumber
                  - DrivingLicenseIssueDate
                  - DrivingLicenseExpiryDate
              minItems: 1
              description: Required if additional drivers are to be covered under the motor insurance cover
            ExistingPolicy:
              type: object
              properties:
                InsurerName:
                  type: string
                  description: The Insurance Company Name when existing motor insurance cover is held
                ExistingPolicyNumber:
                  type: string
                  description: The Insurance Policy Number when existing motor insurance cover is held
                CurrentInsuranceActive:
                  type: boolean
                  description: Indicator to confirm the car is currently covered by an existing active insurance policy
                TypeOfCurrentInsurance:
                  $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteCoverTypes'
                CurrentInsuranceExpiryDate:
                  type: string
                  format: date
                  description: The date the existing insurance cover will expire
                AgencyRepairsIncluded:
                  type: boolean
                  description: >-
                    Yes' / 'No' confirmation  whether the existing policy includes repairs at the authorized dealer or
                    manufacturers service centre
                BreakdownCoverIncluded:
                  type: boolean
                  description: Yes' / 'No' confirmation whether the policy includes breakdown roadside assistance Cover
              required:
                - InsurerName
                - CurrentInsuranceActive
                - TypeOfCurrentInsurance
                - CurrentInsuranceExpiryDate
              description: Required when the RegistrationType selected is Renewal
            CarFinance:
              type: object
              properties:
                BankName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Confirm the Bank or registered finance company providing the car finance.
                FinanceAmount:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                  description: The finance amount secured against the car.
                FinanceStartDate:
                  type: string
                  format: date
                  description: Finance start date
                FinanceEndDate:
                  type: string
                  format: date
                  description: Finance end date
                FinanceTerm:
                  type: integer
                  description: The finance term in months
              required:
                - BankName
              description: >-
                Confirmation whether a finance will be or is being used to purchase the car and the finance is secured
                by a mortgage over the car. This value can be omitted when the finance is for other purposes.
          required:
            - Policy
            - VehicleDetails
            - CarRegistration
          description: Verified details captured by the TPP, when the TPP is a Broker. Omitted if not required.
    AEInsurance.AEMotorInsuranceQuoteCarRegistrationProperties:
      type: object
      required:
        - EmirateOfRegistration
      properties:
        EmirateOfRegistration:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
          description: The Emirate where the insured motor vehicle was registered
        DateOfFirstRegistration:
          type: string
          format: date
          description: Date the motor vehicle was first registered
        RegistrationExpiry:
          type: string
          format: date
          description: Date when the current registration expires.
        ValidMulkiyaHeld:
          type: boolean
          description: >-
            Confirmation whether the Mulkiya (vehicle registration card) is held by the applicant/customer. The Mulkiya
            document is collected by the LFI if the Customer elects to proceed with the quote.
    AEInsurance.AEMotorInsuranceQuoteCoverTypes:
      type: string
      enum:
        - Comprehensive
        - ThirdPartyLiability
      description: Specifies whether the motor insurance policy is Comprehensive or Third Party Liability.
    AEInsurance.AEMotorInsuranceQuoteOptionalCoverAddOnsProperties:
      type: object
      required:
        - DriverCover
        - PassengerCover
        - RoadsideAssistance
        - ProtectedNoClaims
        - AgencyRepairs
        - LossOfKeys
        - HireCar
        - GCC
        - OmanCover
      properties:
        DriverCover:
          type: boolean
          description: >-
            Indicates whether the Customer wants to include personal accident cover for the driver in the motor
            insurance policy.
        PassengerCover:
          type: boolean
          description: >-
            Indicates whether the Customer wants to include personal accident cover for passengers in the insured
            vehicle. 
        RoadsideAssistance:
          type: boolean
          description: Indicates whether the Customer wants to include roadside assistance services in the motor insurance policy.
        ProtectedNoClaims:
          type: boolean
          description: 'Indicates whether the Customer wants to protect their No Claims Discount (NCD) in the event of a claim. '
        AgencyRepairs:
          type: boolean
          description: >-
            Indicates whether the Customer wants repairs to be carried out at the vehicle manufacturer’s authorized
            service center (agency repairs) rather than at non-agency garages. 
        LossOfKeys:
          type: boolean
          description: Indicates whether the Customer wants Cover for the cost of replacing lost, stolen, or damaged car keys.
        HireCar:
          type: boolean
          description: >-
            Indicates whether the Customer wants to include a temporary replacement vehicle (rental car) in case their
            insured vehicle is under repair due to a covered claim.
        GCC:
          type: boolean
          description: >-
            Indicates whether the Customer wants to extend the motor insurance Cover to other Gulf Cooperation Council
            (GCC) countries.
        OmanCover:
          type: boolean
          description: Indicates whether the Customer wants to extend the motor insurance Cover to Oman
    AEInsurance.AEMotorInsuranceQuotePolicyProperties:
      type: object
      required:
        - Takaful
        - CarUsage
        - CarValuation
        - OptionalCoverAddOns
      properties:
        Takaful:
          type: boolean
          description: Indicates whether the policy is Sharia compliant.
        CoverType:
          $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteCoverTypes'
        RegistrationType:
          type: string
          enum:
            - New
            - RenewalOfExistingVehicle
          description: >-
            Indicates whether the policy is for a brand new car, renewal of registration and insurance or a change of
            ownership (purchasing a pre-owned / 'second-hand' car)
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
        PolicyEndDate:
          type: string
          format: date
          description: Policy end date
        CarUsage:
          type: string
          enum:
            - Private
            - Commercial
          description: The primary purpose of the vehicle usage
        CarValuation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The assessed value of the insured vehicle
        OptionalCoverAddOns:
          $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteOptionalCoverAddOnsProperties'
    AEInsurance.AEMotorInsuranceQuoteRequestProperties:
      type: object
      required:
        - CustomerId
        - QuoteReference
        - QuoteType
        - PolicyIssuanceRequest
        - Policy
        - VehicleDetails
        - CarRegistration
      properties:
        CustomerId:
          type: string
          description: >-
            Identifier that uniquely and consistently identifies the existing policy customer or Broker unique Id for
            customer during policy purchase process.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        QuoteType:
          type: string
          enum:
            - New
            - Switch
            - Renewal
          description: |-
            Identification of quote type.

            The following quote type values are supported:

              * New: New Policy Quote

              * Switch: Customer would like to switch policies or brokers

              * Renewal: Customer would like renewal quote
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Policy:
          $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuotePolicyProperties'
        VehicleDetails:
          type: object
          properties:
            EngineNumber:
              type: string
              description: The identification of the motor vehicle engine
            ModelYear:
              type: string
              pattern: ^[0-9]{4}$
              description: The manufacturing year of the vehicle.
            Make:
              type: string
              description: The brand or manufacturer of the vehicle.
            Model:
              type: string
              description: The specific model name of the vehicle.
            Trim:
              type: string
              description: The variant or trim level of the vehicle, indicating features and specifications
            BodyType:
              type: string
              enum:
                - Saloon
                - 4WD
                - Pickup
                - Truck
                - TrailerHead
                - Trailer
                - Water
                - Fuel Tanker
                - Buses
                - Dumper
                - Agriculture
                - Forklift
                - Heavy Equipment
                - Motorcycle
                - Others
              description: 'The type motor vehicle like saloon, Station/SUV, coupe '
            Color:
              type: string
              description: The exterior colour of the vehicle.
            LoadingCapacity:
              type: string
              description: The maximum weight the vehicle can carry, including passengers and cargo
            Weight:
              type: integer
              description: The total weight of the vehicle when empty to nearest kilograms
            CountryOfOrigin:
              type: string
              pattern: ^[A-Z]{3}$
              description: The country where the vehicle was manufactured
            NoOfPassengersIncDriver:
              type: integer
              description: The number of passengers that can be carried in the car
            Mileage:
              type: integer
              description: Vehicle mileage to nearest kilometre
            EngineProperties:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEEngineProperties'
              description: Properties of the vehicle engine.
            ChassisNumber:
              type: string
              minLength: 17
              maxLength: 17
              description: The chassis number (Vehicle Identification Number - VIN) of the motor vehicle to be insured
            PlateCode:
              type: string
              description: Plate code of the vehicle registration plate that identifies the Emirate where the vehicle is registered
            PlateNumber:
              type: string
              description: Vehicle registration plate number
            PlateSource:
              type: string
              enum:
                - AUH
                - DXB
                - SHJ
                - AJM
                - UAQ
                - RAK
                - FUJ
              description: The abbreviation of the Emirate where a vehicle's license plate is registered
            Transmission:
              type: string
              enum:
                - Automatic
                - Manual
              description: The type of transmission system in the vehicle
            Specification:
              type: string
              enum:
                - GCC
                - NonGCC
              description: Confirm whether the car specification is a Gulf Cooperation Council (GCC) specification.
          required:
            - ModelYear
            - Make
            - Model
            - Trim
            - BodyType
            - NoOfPassengersIncDriver
            - EngineProperties
            - Specification
        CarRegistration:
          type: object
          properties:
            EmirateOfRegistration:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
              description: The Emirate where the insured motor vehicle was registered
            DateOfFirstRegistration:
              type: string
              format: date
              description: Date the motor vehicle was first registered
            RegistrationExpiry:
              type: string
              format: date
              description: Date when the current registration expires.
            ValidMulkiyaHeld:
              type: boolean
              description: >-
                Confirmation whether the Mulkiya (vehicle registration card) is held by the applicant/customer. The
                Mulkiya document is collected by the LFI if the Customer elects to proceed with the quote.
          required:
            - EmirateOfRegistration
        MainDriver:
          type: object
          properties:
            Salutation:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
              description: The salutation of the individual or customer.
            FirstName:
              type: string
              minLength: 1
              maxLength: 70
              description: First Name of the individual.
            MiddleName:
              type: string
              minLength: 1
              maxLength: 70
              description: Middle Name of the individual.
            LastName:
              type: string
              minLength: 1
              maxLength: 70
              description: Last Name (Surname) of the individual.
            Gender:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
              description: The gender of the customer
            DateOfBirth:
              type: string
              format: date
              description: Date of birth of the individual.
            MaritalStatus:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
              description: The marital status of the individual.
            ResidentialLocation:
              type: string
              description: Residential Location of the individual.
            LandlineNumber:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
              pattern: ^\+?[1-9]\d{1,14}$
              description: The landline telephone number of the individual.
            Nationality:
              type: string
              pattern: ^[A-Z]{3}$
              description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
            PrimaryLanguage:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
              description: Primary language spoken by the insurance policy customer
            MobileNumber:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
              description: The mobile telephone number of the individual.
            EmailAddress:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
              description: Email address of the individual.
            Address:
              type: array
              items:
                $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
              minItems: 1
              description: Customer's address details
            Identity:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
              description: Identification details of the main driver.
            DrivingLicenseHistory:
              type: object
              properties:
                DrivingLicenseNumber:
                  type: string
                  description: The policyholder or applicant driving license number.
                DrivingLicenseIssuingEmirate:
                  $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                TimeDrivingInUAE:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEDurationYearsAndMonths'
                  description: >-
                    The total duration (in years and months) that the policyholder or applicant has been actively
                    driving in the UAE
                DrivingLicenseIssueDate:
                  type: string
                  format: date
                  description: The date when the policyholder or applicant UAE driving license was issued.
                DrivingLicenseExpiryDate:
                  type: string
                  format: date
                  description: The date the driving license will expire
                TCNumber:
                  type: string
                  pattern: ^[0-9]{8}$
                  description: Unique ID which links individual traffic file to driver and car registration
                VCCNumber:
                  type: string
                HiyazaCertificateNumber:
                  type: string
              required:
                - TimeDrivingInUAE
              description: Confirmation of the main driver's driving license details and driving history
            MotorClaims:
              type: object
              properties:
                MotorClaimInLast24Months:
                  type: boolean
                  description: Indicates whether the insured has made a motor insurance claim in the last 24 months
                MotorLastClaimMade:
                  type: string
                  format: date
                  description: The date when the most recent motor insurance claim was made
                NoClaimsCertificate:
                  type: string
                  enum:
                    - NoNCD
                    - 1Year
                    - 2Years
                    - 3Years
                    - 4Years
                    - 5+Years
                  description: >-
                    Confirmation whether the insured has a No Claim Certificate issued by the previous insurer
                    confirming the insured's no-claims history.  The customer must be advised that the No Claims
                    Certificate will be required by the LFI if they decide to proceed with the application
              required:
                - MotorClaimInLast24Months
                - NoClaimsCertificate
              description: Details of motor insurance claims made by the proposer.
          required:
            - DateOfBirth
            - Nationality
            - DrivingLicenseHistory
            - MotorClaims
        AdditionalDrivers:
          type: array
          items:
            type: object
            properties:
              RelationshipToMainDriver:
                type: string
                enum:
                  - Spouse
                  - Parent
                  - Sibling
                  - Child
                  - Friend
                  - Employee
                  - Other
                description: The additional driver's relationship to the main driver
              FullName:
                type: string
                minLength: 1
                maxLength: 140
                description: Full name of the additional driver
              DateOfBirth:
                type: string
                format: date
                description: Date of birth of the individual.
              Gender:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                description: The gender of the customer
              Nationality:
                type: string
                pattern: ^[A-Z]{3}$
                description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
              DrivingLicenseNumber:
                type: string
                description: The policyholder or applicant driving license number.
              DrivingLicenseIssuingEmirate:
                $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
              TimeDrivingInUAE:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEDurationYearsAndMonths'
                description: >-
                  The total duration (in years and months) that the policyholder or applicant has been actively driving
                  in the UAE
              DrivingLicenseIssueDate:
                type: string
                format: date
                description: The date when the policyholder or applicant UAE driving license was issued.
              DrivingLicenseExpiryDate:
                type: string
                format: date
                description: The date the driving license will expire
              Identity:
                allOf:
                  - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
                description: Identification details of the additional driver.
            required:
              - RelationshipToMainDriver
              - FullName
              - DateOfBirth
              - Nationality
              - DrivingLicenseNumber
              - DrivingLicenseIssueDate
          minItems: 1
          description: Required if additional drivers are to be covered under the motor insurance cover
        ExistingPolicy:
          type: object
          properties:
            InsurerName:
              type: string
              description: The Insurance Company Name when existing motor insurance cover is held
            ExistingPolicyNumber:
              type: string
              description: The Insurance Policy Number when existing motor insurance cover is held
            CurrentInsuranceActive:
              type: boolean
              description: Indicator to confirm the car is currently covered by an existing active insurance policy
            TypeOfCurrentInsurance:
              $ref: '#/components/schemas/AEInsurance.AEMotorInsuranceQuoteCoverTypes'
            CurrentInsuranceExpiryDate:
              type: string
              format: date
              description: The date the existing insurance cover will expire
            AgencyRepairsIncluded:
              type: boolean
              description: >-
                Yes' / 'No' confirmation  whether the existing policy includes repairs at the authorized dealer or
                manufacturers service centre
            BreakdownCoverIncluded:
              type: boolean
              description: Yes' / 'No' confirmation whether the policy includes breakdown roadside assistance Cover
          required:
            - InsurerName
            - CurrentInsuranceActive
            - TypeOfCurrentInsurance
            - CurrentInsuranceExpiryDate
          description: Required when the RegistrationType selected is Renewal
        CarFinance:
          type: object
          properties:
            BankName:
              type: string
              minLength: 1
              maxLength: 70
              description: Confirm the Bank or registered finance company providing the car finance.
            FinanceAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: The finance amount secured against the car.
            FinanceStartDate:
              type: string
              format: date
              description: Finance start date
            FinanceEndDate:
              type: string
              format: date
              description: Finance end date
            FinanceTerm:
              type: integer
              description: The finance term in months
          required:
            - BankName
          description: >-
            Confirmation whether a finance will be or is being used to purchase the car and the finance is secured by a
            mortgage over the car. This value can be omitted when the finance is for other purposes.
    AEInsurance.AERentersInsuranceImportantQuestions:
      type: object
      required:
        - UnoccupiedOverSixtyDays
      properties:
        PrimaryResidence:
          type: boolean
          description: Confirmation whether the property is the customer's primary residence
        BusinessPurposes:
          type: boolean
          description: Confirmation whether the property will be used for business purposes
        PropertyOccupation:
          type: boolean
          description: Confirmation whether the property will be occupied solely by the customer, their family and Domestic Helper?
        DayTimeOccupation:
          type: boolean
          description: Confirmation whether the home will be occupied during the day time.
        UnoccupiedOverSixtyDays:
          type: boolean
          description: Confirmation whether the property will be left un-occupied for more than 60 days.
        NumberOfTenants:
          type: integer
          description: The number of other tenants when the property will not be solely occupied by the customer and their family.
    AEInsurance.AERentersInsuranceQuoteAcceptQuoteRequestProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteReference
        - InsuranceSubType
        - Premium
        - Commission
        - QuoteCreationDateTime
      properties:
        QuoteStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAcceptedByUserQuoteStatusCodes'
          description: Quote status.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        InsuranceSubType:
          type: string
          minLength: 1
          maxLength: 140
          description: Insurance sub-type, describing the insurance type specific to the sector.
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumProperties'
          description: Details of the quoted premium, as provided in the quote response.
        Commission:
          type: object
          properties:
            CommissionAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: >-
                The total monetary value of the commission paid to the TPP if the User proceeds with the quote
                application and purchases the policy based on the quote information provided.
            PaymentMethod:
              type: string
              enum:
                - DirectToTPP
                - ThroughAPIHub
              description: >-
                The method to be used to pay the commission to the TPP if the User elects to proceed with the
                application and successfully purchases the policy.
          required:
            - PaymentMethod
          description: Details of the commission, as provided in the quote response.
        CustomerSalary:
          type: string
          enum:
            - Under4K
            - Over4K
          description: >-
            Confirmation whether the customer monthly salary is less than or greater than AED 4,000 each month. Required
            for Health Insurance.
        QuoteCreationDateTime:
          type: string
          format: date-time
          description: The quote creation date and time, as supplied by the LFI in the property `CreationDateTime`.
        ExpirationDateTime:
          type: string
          format: date-time
          description: The expiration date of the quote, as provided in the quote response, if provided by the LFI.
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEDocumentProperties'
          description: >-
            Customer documents encoded for submission to the LFI. Omitted if not required or quote status is
            `ApplicationPending`.
        VerifiedDetails:
          type: object
          properties:
            Policy:
              type: object
              properties:
                Takaful:
                  type: boolean
                  description: Indicates whether the policy is Sharia compliant.
                ContentsCover:
                  type: boolean
                  description: 'Confirmation whether the customer wishes to include Contents cover '
                AccidentalDamageCover:
                  type: boolean
                  description: Confirmation whether the customer wishes to include Accidental Damage cover.
                PersonalBelongingsCover:
                  type: boolean
                  description: Confirmation whether the customer wishes to include Personal Belongings cover.
                LiabilityCover:
                  type: boolean
                  description: Confirmation whether the customer wishes to include Liability cover.
                AlternativeAccommodation:
                  type: boolean
                  description: >-
                    Confirmation whether the customer wishes to include cover for temporary housing expenses if the
                    rented property becomes uninhabitable due to an insured peril.
                PolicyStartDate:
                  type: string
                  format: date
                  description: Policy start date
                PolicyEndDate:
                  type: string
                  format: date
                  description: Policy end date
              description: Revised details, verified by the TPP.
              minProperties: 1
            PolicyHolder:
              type: object
              properties:
                Salutation:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
                  description: The salutation of the individual or customer.
                FirstName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: First Name of the individual.
                MiddleName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Middle Name of the individual.
                LastName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Last Name (Surname) of the individual.
                Gender:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                  description: The gender of the customer
                DateOfBirth:
                  type: string
                  format: date
                  description: Date of birth of the individual.
                MaritalStatus:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
                  description: The marital status of the individual.
                ResidentialLocation:
                  type: string
                  description: Residential Location of the individual.
                LandlineNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  pattern: ^\+?[1-9]\d{1,14}$
                  description: The landline telephone number of the individual.
                Nationality:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                PrimaryLanguage:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
                  description: Primary language spoken by the insurance policy customer
                MobileNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  description: The mobile telephone number of the individual.
                EmailAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                  description: Email address of the individual.
                Address:
                  type: array
                  items:
                    type: object
                    properties:
                      AddressType:
                        type: string
                        enum:
                          - Billing
                          - Business
                          - Correspondence
                          - DeliveryTo
                          - MailTo
                          - POBox
                          - Postal
                          - Permanent
                          - Residential
                          - Statement
                          - Other
                        description: The type of address.
                      AddressLine:
                        type: array
                        items:
                          $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                        minItems: 1
                        maxItems: 7
                        description: >-
                          Information that locates and identifies a specific address for a transaction entry, that is
                          presented in free format text.


                          This value should be used where the address is provided or stored as a single string.
                      BuildingNumber:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The unit, apartment, or villa number within a building or community
                      BuildingName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of the building or house.
                      Floor:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Floor or storey within a building.
                      StreetName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The name of the street or road where the property is located
                      DistrictName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The district, community, or neighbourhood where the property is located
                      PostBox:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The P.O. Box number assigned to the recipient for mail delivery
                      TownName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of a built-up area, such as a town or city
                      CountrySubDivision:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                        description: >-
                          Country subdivision, such as state or province. This is the Emirate where the address is
                          registered.
                      Country:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                        description: >-
                          The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                          code.
                    description: The template for adding optional properties.
                  minItems: 1
                  description: Address details
                Identity:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                  description: Identification details of the policyholder.
                EmployerName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Employer name.
                Profession:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: The individuals profession.
              description: Revised details, verified by the TPP.
              minProperties: 1
            DomesticHelpers:
              type: object
              properties:
                NumberOfDomesticHelpers:
                  type: integer
                  description: >-
                    Required when Domestic Helpers cover is required.  Confirms the number of Domestic Helpers to be
                    covered
                IndividualDetails:
                  type: array
                  items:
                    type: object
                    properties:
                      FirstName:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: First Name of the individual.
                      LastName:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Last Name (Surname) of the individual.
                      Nationality:
                        type: string
                        pattern: ^[A-Z]{3}$
                        description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                      DateOfBirth:
                        type: string
                        format: date
                        description: Date of birth of the individual.
                      PassportNumber:
                        type: string
                        description: Passport number
                    description: The template for adding optional properties.
                  description: Domestic Helpers details when included in the insurance cover
              minProperties: 1
              description: Revised details, verified by the TPP.
            LeaseDetails:
              type: object
              properties:
                TermType:
                  type: string
                  description: >-
                    Confirmation whether the lease duration is a short-term lease, one-year lease or long-term lease
                    when greater than one year.
                StartDate:
                  type: string
                  format: date
                  description: The date when the lease agreement for the rented property begins.
                EndDate:
                  type: string
                  format: date
                  description: The date when the lease agreement for the rented property ends.
                FurnishingStatus:
                  type: string
                  enum:
                    - Furnished
                    - SemiFurnished
                    - Unfurnished
                  description: Furnishing status at start of lease
                LandlordFullName:
                  type: string
                  minLength: 1
                  maxLength: 140
                  description: The Landlord's full name
                LandlordTelephoneNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  description: Phone number of the property Landlord
                LandlordEmailAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                  description: Email address of the property Landlord
                MonthlyRentAmount:
                  type: object
                  properties:
                    Currency:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricCurrencyCode'
                    Amount:
                      $ref: '#/components/schemas/AEInsurance.AEActiveOrHistoricAmount'
                  description: The agreed monthly rental amount for the leased property.
              description: Revised details, verified by the TPP.
              minProperties: 1
            ExistingInsurance:
              type: object
              properties:
                CoverType:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteTypeOfCover'
                  description: The type of existing insurance cover held
                ProviderName:
                  type: string
                  description: The name of the existing home insurance provider
                ExpiryDate:
                  type: string
                  description: The expiry date of the existing home insurance cover
                ReplacementCover:
                  type: boolean
                  description: Confirmation of whether this proposal will replace the existing insurance cover
              description: Revised details, verified by the TPP.
              minProperties: 1
          description: Verified details captured by the TPP, when the TPP is a Broker. Omitted if not required.
    AEInsurance.AERentersInsuranceQuoteDomesticHelperIndividualDetailsProperties:
      type: object
      required:
        - FirstName
        - LastName
        - Nationality
        - DateOfBirth
      properties:
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        PassportNumber:
          type: string
          description: Passport number
    AEInsurance.AERentersInsuranceQuoteDomesticHelperProperties:
      type: object
      required:
        - NumberOfDomesticHelpers
      properties:
        NumberOfDomesticHelpers:
          type: integer
          description: Required when Domestic Helpers cover is required.  Confirms the number of Domestic Helpers to be covered
        IndividualDetails:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuoteDomesticHelperIndividualDetailsProperties'
          description: Domestic Helpers details when included in the insurance cover
    AEInsurance.AERentersInsuranceQuoteExistingInsuranceProperties:
      type: object
      required:
        - CoverType
        - ProviderName
        - ExpiryDate
        - ReplacementCover
      properties:
        CoverType:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteTypeOfCover'
          description: The type of existing insurance cover held
        ProviderName:
          type: string
          description: The name of the existing home insurance provider
        ExpiryDate:
          type: string
          description: The expiry date of the existing home insurance cover
        ReplacementCover:
          type: boolean
          description: Confirmation of whether this proposal will replace the existing insurance cover
    AEInsurance.AERentersInsuranceQuoteLeaseProperties:
      type: object
      required:
        - TermType
        - StartDate
        - LandlordFullName
        - LandlordTelephoneNumber
      properties:
        TermType:
          type: string
          description: >-
            Confirmation whether the lease duration is a short-term lease, one-year lease or long-term lease when
            greater than one year.
        StartDate:
          type: string
          format: date
          description: The date when the lease agreement for the rented property begins.
        EndDate:
          type: string
          format: date
          description: The date when the lease agreement for the rented property ends.
        FurnishingStatus:
          type: string
          enum:
            - Furnished
            - SemiFurnished
            - Unfurnished
          description: Furnishing status at start of lease
        LandlordFullName:
          type: string
          minLength: 1
          maxLength: 140
          description: The Landlord's full name
        LandlordTelephoneNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: Phone number of the property Landlord
        LandlordEmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the property Landlord
        MonthlyRentAmount:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
          description: The agreed monthly rental amount for the leased property.
    AEInsurance.AERentersInsuranceQuotePolicyHolderProperties:
      type: object
      properties:
        Salutation:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceSalutationCodes'
          description: The salutation of the individual or customer.
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        MiddleName:
          type: string
          minLength: 1
          maxLength: 70
          description: Middle Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        MaritalStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceMaritalStatus'
          description: The marital status of the individual.
        ResidentialLocation:
          type: string
          description: Residential Location of the individual.
        LandlineNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          pattern: ^\+?[1-9]\d{1,14}$
          description: The landline telephone number of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        PrimaryLanguage:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AECustomerPrimaryLanguage'
          description: Primary language spoken by the insurance policy customer
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
          description: Customer's address details
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the policyholder.
        EmployerName:
          type: string
          minLength: 1
          maxLength: 70
          description: Employer name.
        Profession:
          type: string
          minLength: 1
          maxLength: 70
          description: The individuals profession.
    AEInsurance.AERentersInsuranceQuotePolicyProperties:
      type: object
      required:
        - Takaful
      properties:
        Takaful:
          type: boolean
          description: Indicates whether the policy is Sharia compliant.
        ContentsCover:
          type: boolean
          description: 'Confirmation whether the customer wishes to include Contents cover '
        AccidentalDamageCover:
          type: boolean
          description: Confirmation whether the customer wishes to include Accidental Damage cover.
        PersonalBelongingsCover:
          type: boolean
          description: Confirmation whether the customer wishes to include Personal Belongings cover.
        LiabilityCover:
          type: boolean
          description: Confirmation whether the customer wishes to include Liability cover.
        AlternativeAccommodation:
          type: boolean
          description: >-
            Confirmation whether the customer wishes to include cover for temporary housing expenses if the rented
            property becomes uninhabitable due to an insured peril.
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
        PolicyEndDate:
          type: string
          format: date
          description: Policy end date
    AEInsurance.AERentersInsuranceQuoteRequestProperties:
      type: object
      required:
        - CustomerId
        - QuoteReference
        - QuoteType
        - PolicyIssuanceRequest
        - Policy
        - PropertyDetails
        - PropertyClaims
      properties:
        CustomerId:
          type: string
          description: >-
            Identifier that uniquely and consistently identifies the existing policy customer or Broker unique Id for
            customer during policy purchase process.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        QuoteType:
          type: string
          enum:
            - New
            - Switch
            - Renewal
          description: |-
            Identification of quote type.

            The following quote type values are supported:

              * New: New Policy Quote

              * Switch: Customer would like to switch policies or brokers

              * Renewal: Customer would like renewal quote
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Policy:
          $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuotePolicyProperties'
        PolicyHolder:
          $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuotePolicyHolderProperties'
        PropertyDetails:
          type: object
          properties:
            TypeOfRentalProperty:
              type: string
              enum:
                - House
                - Villa
                - Apartment
                - Flat
                - SharedAccommodation
                - Other
              description: Based on enumeration values.
            OwnershipStatus:
              type: string
              enum:
                - Owner
                - OwnerWithMortgage
                - Landlord
                - Tenant
              description: Based on enumeration values.
            Construction:
              type: string
              enum:
                - ClassA
                - ClassB
                - ClassC
              description: Type of construction
            OverTenYears:
              type: boolean
              description: Confirmation whether the property is over 10 years old
            FloodDamage:
              type: boolean
              description: >-
                Confirmation whether the buildings and/or contents have suffered damage by storm, tempest or flood
                during the past five years
            NumberOfAdults:
              type: integer
              description: The number of adults that will be living in the home
            NumberOfChildren:
              type: integer
              description: The number of children that will be living in the home
            NumberOfFloors:
              type: integer
              description: The total number of floors in the insured property, including all above-ground levels.
            NumberOfRooms:
              type: integer
              description: 'The total number of rooms within the property, excluding bathrooms. '
            InsuredPropertyAddress:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressProperties'
              description: The full address of the property to be insured
            SafetySecurityFeatures:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEInsuranceSafetySecurityFeatures'
              description: Details of property safety and security features.
          required:
            - TypeOfRentalProperty
        ContentsCoverDetails:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteContentsCoverDetails'
        PersonalBelongings:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuotePersonalBelongings'
        DomesticHelpers:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuoteDomesticHelperProperties'
          description: >-
            Details of domestic helper cover to be included in the policy. Omitted if cover for domestic helpers if not
            required.
        LeaseDetails:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuoteLeaseProperties'
          description: Details of the lease.
        PropertyClaims:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuotePropertyClaims'
          description: Details of property claims.
        ExistingInsurance:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AERentersInsuranceQuoteExistingInsuranceProperties'
          description: >-
            Details of existing insurance. This property can be omitted when the applicant or policyholder does not have
            existing insurance.
        PreviousApplications:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuotePreviousApplications'
          description: Details of previous applications.
        ImportantQuestions:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AERentersInsuranceImportantQuestions'
          description: Important questions to be provided with quote.
    AEInsurance.AETravelInsuranceDestinationCountry:
      type: string
      pattern: ^[A-Z]{3}$
    AEInsurance.AETravelInsuranceQuoteAcceptQuoteRequestProperties:
      type: object
      required:
        - QuoteStatus
        - QuoteReference
        - InsuranceSubType
        - Premium
        - Commission
        - QuoteCreationDateTime
      properties:
        QuoteStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceAcceptedByUserQuoteStatusCodes'
          description: Quote status.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        InsuranceSubType:
          type: string
          minLength: 1
          maxLength: 140
          description: Insurance sub-type, describing the insurance type specific to the sector.
        Premium:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePremiumProperties'
          description: Details of the quoted premium, as provided in the quote response.
        Commission:
          type: object
          properties:
            CommissionAmount:
              allOf:
                - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
              description: >-
                The total monetary value of the commission paid to the TPP if the User proceeds with the quote
                application and purchases the policy based on the quote information provided.
            PaymentMethod:
              type: string
              enum:
                - DirectToTPP
                - ThroughAPIHub
              description: >-
                The method to be used to pay the commission to the TPP if the User elects to proceed with the
                application and successfully purchases the policy.
          required:
            - PaymentMethod
          description: Details of the commission, as provided in the quote response.
        CustomerSalary:
          type: string
          enum:
            - Under4K
            - Over4K
          description: >-
            Confirmation whether the customer monthly salary is less than or greater than AED 4,000 each month. Required
            for Health Insurance.
        QuoteCreationDateTime:
          type: string
          format: date-time
          description: The quote creation date and time, as supplied by the LFI in the property `CreationDateTime`.
        ExpirationDateTime:
          type: string
          format: date-time
          description: The expiration date of the quote, as provided in the quote response, if provided by the LFI.
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Documents:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEDocumentProperties'
          description: >-
            Customer documents encoded for submission to the LFI. Omitted if not required or quote status is
            `ApplicationPending`.
        VerifiedDetails:
          type: object
          properties:
            Policy:
              type: object
              properties:
                PolicyStartDate:
                  type: string
                  format: date
                  description: Policy start date
                PolicyEndDate:
                  type: string
                  format: date
                  description: Policy end date
                NumberOfInsuredCompanions:
                  type: integer
                  description: >-
                    The total number of individuals traveling with the insured person who will also be covered under the
                    policy.
                Takaful:
                  type: boolean
                  description: Indicates whether the policy is Sharia compliant.
                CoverType:
                  type: string
                  enum:
                    - Single
                    - MultiTrip
                  description: The type and extent of insurance Cover selected for the trip
                PurposeOfTravel:
                  type: string
                  enum:
                    - Personal
                    - Business
                  description: The primary reason for travel
                TravellingWith:
                  type: string
                  enum:
                    - Individual
                    - Couple
                    - Family
                    - Group
                  description: The relationship of the insured individual's travel companions
                TravelDestinationRegion:
                  type: string
                  enum:
                    - WithinUAE
                    - Worldwide
                    - WorldwideExcludingUSAandCanada
                  description: The geographical region where the insured individual will be traveling
                TravelDestinationCountries:
                  type: array
                  items:
                    $ref: '#/components/schemas/AEInsurance.AETravelInsuranceDestinationCountry'
                  description: The ISO 3166 alpha-3 code of the country or countries of destination.
                AgesOfInsured:
                  type: array
                  items:
                    type: integer
                  description: Ages of all insured parties
                OriginCountry:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The ISO 3166 alpha-3 code of the country of origin.
                OptionalTravelCoverOptions:
                  type: object
                  properties:
                    Gadgets:
                      type: boolean
                      description: >-
                        Indicator whether the Customer wishes to include the optional Gadgets insurance cover within the
                        policy Cover
                    WinterSports:
                      type: boolean
                      description: >-
                        Indicator whether the Customer wishes to include the optional winter sports insurance cover
                        within the policy Cover
                    Cruise:
                      type: boolean
                      description: >-
                        Indicator whether the Customer wishes to include the optional Cruise insurance cover within the
                        policy Cover
                    Business:
                      type: boolean
                      description: >-
                        Indicator whether the Customer wishes to include the optional Business insurance cover within
                        the policy Cover
                    Golf:
                      type: boolean
                      description: >-
                        Indicator whether the Customer wishes to include the optional Golf insurance cover within the
                        policy Cover
                    ScubaDiving:
                      type: boolean
                      description: >-
                        Indicator whether the Customer wishes to include the optional Scuba Diving insurance cover
                        within the policy Cover
                    AdventureSports:
                      type: boolean
                      description: >-
                        Indicator whether the Customer wishes to include the optional Adventure Sports insurance cover
                        within the policy Cover
                    TerrorismExtension:
                      type: boolean
                      description: >-
                        Indicator whether the Customer wishes to include the optional Terrorism Extension insurance
                        cover within the policy
                  minProperties: 1
              description: Revised details, verified by the TPP.
              minProperties: 1
            PolicyHolder:
              type: object
              properties:
                FirstName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: First Name of the individual.
                LastName:
                  type: string
                  minLength: 1
                  maxLength: 70
                  description: Last Name (Surname) of the individual.
                DateOfBirth:
                  type: string
                  format: date
                  description: Date of birth of the individual.
                Nationality:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                Gender:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                  description: The gender of the customer
                EmailAddress:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                  description: Email address of the individual.
                MobileNumber:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                  description: The mobile telephone number of the individual.
                Address:
                  type: array
                  items:
                    type: object
                    properties:
                      AddressType:
                        type: string
                        enum:
                          - Billing
                          - Business
                          - Correspondence
                          - DeliveryTo
                          - MailTo
                          - POBox
                          - Postal
                          - Permanent
                          - Residential
                          - Statement
                          - Other
                        description: The type of address.
                      AddressLine:
                        type: array
                        items:
                          $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                        minItems: 1
                        maxItems: 7
                        description: >-
                          Information that locates and identifies a specific address for a transaction entry, that is
                          presented in free format text.


                          This value should be used where the address is provided or stored as a single string.
                      BuildingNumber:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The unit, apartment, or villa number within a building or community
                      BuildingName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of the building or house.
                      Floor:
                        type: string
                        minLength: 1
                        maxLength: 70
                        description: Floor or storey within a building.
                      StreetName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The name of the street or road where the property is located
                      DistrictName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: The district, community, or neighbourhood where the property is located
                      PostBox:
                        type: string
                        minLength: 1
                        maxLength: 16
                        description: The P.O. Box number assigned to the recipient for mail delivery
                      TownName:
                        type: string
                        minLength: 1
                        maxLength: 140
                        description: Name of a built-up area, such as a town or city
                      CountrySubDivision:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                        description: >-
                          Country subdivision, such as state or province. This is the Emirate where the address is
                          registered.
                      Country:
                        allOf:
                          - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                        description: >-
                          The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                          code.
                    description: The template for adding optional properties.
                  minItems: 1
                  minProperties: 1
                Identity:
                  allOf:
                    - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                  minProperties: 1
                  description: Revised identity details, verified by the TPP.
              minProperties: 1
              description: Revised details, verified by the TPP.
            InsuredTravelers:
              type: array
              items:
                type: object
                properties:
                  IsPrimaryTraveller:
                    type: boolean
                    description: Is the individual the primary traveler?
                  RelationshipToPrimaryTraveller:
                    type: string
                    enum:
                      - Spouse
                      - Child
                      - FamilyMember
                      - GroupMember
                  FirstName:
                    type: string
                    minLength: 1
                    maxLength: 70
                    description: First Name of the individual.
                  LastName:
                    type: string
                    minLength: 1
                    maxLength: 70
                    description: Last Name (Surname) of the individual.
                  DateOfBirth:
                    type: string
                    format: date
                    description: Date of birth of the individual.
                  Nationality:
                    type: string
                    pattern: ^[A-Z]{3}$
                    description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
                  Gender:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
                    description: The gender of the customer
                  EmailAddress:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
                    description: Email address of the individual.
                  MobileNumber:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
                    description: The mobile telephone number of the individual.
                  Address:
                    type: array
                    items:
                      type: object
                      properties:
                        AddressType:
                          type: string
                          enum:
                            - Billing
                            - Business
                            - Correspondence
                            - DeliveryTo
                            - MailTo
                            - POBox
                            - Postal
                            - Permanent
                            - Residential
                            - Statement
                            - Other
                          description: The type of address.
                        AddressLine:
                          type: array
                          items:
                            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddressLine'
                          minItems: 1
                          maxItems: 7
                          description: >-
                            Information that locates and identifies a specific address for a transaction entry, that is
                            presented in free format text.


                            This value should be used where the address is provided or stored as a single string.
                        BuildingNumber:
                          type: string
                          minLength: 1
                          maxLength: 16
                          description: The unit, apartment, or villa number within a building or community
                        BuildingName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: Name of the building or house.
                        Floor:
                          type: string
                          minLength: 1
                          maxLength: 70
                          description: Floor or storey within a building.
                        StreetName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: The name of the street or road where the property is located
                        DistrictName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: The district, community, or neighbourhood where the property is located
                        PostBox:
                          type: string
                          minLength: 1
                          maxLength: 16
                          description: The P.O. Box number assigned to the recipient for mail delivery
                        TownName:
                          type: string
                          minLength: 1
                          maxLength: 140
                          description: Name of a built-up area, such as a town or city
                        CountrySubDivision:
                          allOf:
                            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmirate'
                          description: >-
                            Country subdivision, such as state or province. This is the Emirate where the address is
                            registered.
                        Country:
                          allOf:
                            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCountryCode'
                          description: >-
                            The country associated with the address, represented using the ISO 3166-1 alpha-2 country
                            code.
                      description: The template for adding optional properties.
                    minItems: 1
                  Identity:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteVerifiedIdentityProperties'
                    description: Identification details of the insured traveler.
                description: The template for adding optional properties.
              minItems: 1
              minProperties: 1
              description: Revised details, verified by the TPP.
          description: Verified details captured by the TPP, when the TPP is a Broker. Omitted if not required.
    AEInsurance.AETravelInsuranceQuoteHighRiskActivityProperties:
      type: object
      required:
        - TravellerName
        - Activities
      properties:
        TravellerName:
          type: string
          description: The name of the traveller who will be participating in the hazardous activities.
        Activities:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceCustomerHighRiskActivityProperties'
          minProperties: 1
    AEInsurance.AETravelInsuranceQuoteInsuredTravelersProperties:
      type: object
      required:
        - RelationshipToPrimaryTraveller
        - DateOfBirth
      properties:
        IsPrimaryTraveller:
          type: boolean
          description: Is the individual the primary traveler?
        RelationshipToPrimaryTraveller:
          type: string
          enum:
            - Spouse
            - Child
            - FamilyMember
            - GroupMember
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the insured traveler.
    AEInsurance.AETravelInsuranceQuoteOptionalTravelCoverOptionProperties:
      type: object
      required:
        - Gadgets
        - WinterSports
        - Cruise
        - Business
        - Golf
        - ScubaDiving
        - AdventureSports
      properties:
        Gadgets:
          type: boolean
          description: >-
            Indicator whether the Customer wishes to include the optional Gadgets insurance cover within the policy
            Cover
        WinterSports:
          type: boolean
          description: >-
            Indicator whether the Customer wishes to include the optional winter sports insurance cover within the
            policy Cover
        Cruise:
          type: boolean
          description: Indicator whether the Customer wishes to include the optional Cruise insurance cover within the policy Cover
        Business:
          type: boolean
          description: >-
            Indicator whether the Customer wishes to include the optional Business insurance cover within the policy
            Cover
        Golf:
          type: boolean
          description: Indicator whether the Customer wishes to include the optional Golf insurance cover within the policy Cover
        ScubaDiving:
          type: boolean
          description: >-
            Indicator whether the Customer wishes to include the optional Scuba Diving insurance cover within the policy
            Cover
        AdventureSports:
          type: boolean
          description: >-
            Indicator whether the Customer wishes to include the optional Adventure Sports insurance cover within the
            policy Cover
    AEInsurance.AETravelInsuranceQuotePolicyHolderProperties:
      type: object
      required:
        - DateOfBirth
      properties:
        FirstName:
          type: string
          minLength: 1
          maxLength: 70
          description: First Name of the individual.
        LastName:
          type: string
          minLength: 1
          maxLength: 70
          description: Last Name (Surname) of the individual.
        DateOfBirth:
          type: string
          format: date
          description: Date of birth of the individual.
        Nationality:
          type: string
          pattern: ^[A-Z]{3}$
          description: The nationality of the individual based on the ISO 3166-1 alpha-3 codes
        Gender:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceGender'
          description: The gender of the customer
        EmailAddress:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceEmailAddressType'
          description: Email address of the individual.
        MobileNumber:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePhoneNumberType'
          description: The mobile telephone number of the individual.
        Address:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceAddress'
          minItems: 1
        Identity:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceIdentityTypes'
          description: Identification details of the policyholder.
    AEInsurance.AETravelInsuranceQuotePolicyProperties:
      type: object
      required:
        - PolicyStartDate
        - NumberOfInsuredCompanions
        - Takaful
        - CoverType
        - TravelDestinationRegion
        - AgesOfInsured
        - OriginCountry
      properties:
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
        PolicyEndDate:
          type: string
          format: date
          description: Policy end date
        NumberOfInsuredCompanions:
          type: integer
          description: The total number of individuals traveling with the insured person who will also be covered under the policy.
        Takaful:
          type: boolean
          description: Indicates whether the policy is Sharia compliant.
        CoverType:
          type: string
          enum:
            - Single
            - MultiTrip
          description: The type and extent of insurance Cover selected for the trip
        PurposeOfTravel:
          type: string
          enum:
            - Personal
            - Business
          description: The primary reason for travel
        TravellingWith:
          type: string
          enum:
            - Individual
            - Couple
            - Family
            - Group
          description: The relationship of the insured individual's travel companions
        TravelDestinationRegion:
          type: string
          enum:
            - WithinUAE
            - Worldwide
            - WorldwideExcludingUSAandCanada
          description: The geographical region where the insured individual will be traveling
        TravelDestinationCountries:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AETravelInsuranceDestinationCountry'
          description: The ISO 3166 alpha-3 code of the country or countries of destination.
        AgesOfInsured:
          type: array
          items:
            type: integer
          description: Ages of all insured parties
        OriginCountry:
          type: string
          pattern: ^[A-Z]{3}$
          description: The ISO 3166 alpha-3 code of the country of origin.
        OptionalTravelCoverOptions:
          type: object
          properties:
            Gadgets:
              type: boolean
              description: >-
                Indicator whether the Customer wishes to include the optional Gadgets insurance cover within the policy
                Cover
            WinterSports:
              type: boolean
              description: >-
                Indicator whether the Customer wishes to include the optional winter sports insurance cover within the
                policy Cover
            Cruise:
              type: boolean
              description: >-
                Indicator whether the Customer wishes to include the optional Cruise insurance cover within the policy
                Cover
            Business:
              type: boolean
              description: >-
                Indicator whether the Customer wishes to include the optional Business insurance cover within the policy
                Cover
            Golf:
              type: boolean
              description: >-
                Indicator whether the Customer wishes to include the optional Golf insurance cover within the policy
                Cover
            ScubaDiving:
              type: boolean
              description: >-
                Indicator whether the Customer wishes to include the optional Scuba Diving insurance cover within the
                policy Cover
            AdventureSports:
              type: boolean
              description: >-
                Indicator whether the Customer wishes to include the optional Adventure Sports insurance cover within
                the policy Cover
            TerrorismExtension:
              type: boolean
              description: >-
                Indicator whether the Customer wishes to include the optional Terrorism Extension insurance cover within
                the policy
          minProperties: 1
    AEInsurance.AETravelInsuranceQuoteRequestProperties:
      type: object
      required:
        - CustomerId
        - QuoteReference
        - QuoteType
        - PolicyIssuanceRequest
        - Policy
      properties:
        CustomerId:
          type: string
          description: >-
            Identifier that uniquely and consistently identifies the existing policy customer or Broker unique Id for
            customer during policy purchase process.
        QuoteReference:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceQuoteReferenceType'
        QuoteType:
          type: string
          enum:
            - New
            - Switch
            - Renewal
          description: |-
            Identification of quote type.

            The following quote type values are supported:

              * New: New Policy Quote

              * Switch: Customer would like to switch policies or brokers

              * Renewal: Customer would like renewal quote
        PolicyIssuanceRequest:
          type: object
          properties:
            CustomerVerification:
              type: boolean
              description: Broker request to complete capture of customer verification information and documents for this quote.
            Payment:
              type: boolean
              description: Broker request to host payment checkout.
            PolicyDocuments:
              type: boolean
              description: Broker request to provide policy documents to customer.
          required:
            - CustomerVerification
            - Payment
            - PolicyDocuments
          description: Broker requests to handle following steps of policy issuance process.
        Policy:
          $ref: '#/components/schemas/AEInsurance.AETravelInsuranceQuotePolicyProperties'
        PolicyHolder:
          $ref: '#/components/schemas/AEInsurance.AETravelInsuranceQuotePolicyHolderProperties'
        InsuredTravelers:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AETravelInsuranceQuoteInsuredTravelersProperties'
          minItems: 1
          description: Required when additional travelers are insured with proposer.
        MedicalQuestions:
          type: array
          items:
            type: object
            properties:
              PastTreatment:
                type: boolean
                description: >-
                  Confirmation whether any of the Travellers have been been prescribed medication, received treatment or
                  had a consultation for any medical condition in the past two years?
              HeartRespiratory:
                type: boolean
                description: >-
                  Confirmation whether any of the Travellers have been diagnosed with or treated for a heart or
                  respiratory condition
              Circulatory:
                type: boolean
                description: >-
                  Confirmation whether any of the Travellers have been diagnosed with or treated for a Circulatory
                  condition
              Liver:
                type: boolean
                description: Confirmation whether any of the Travellers have been diagnosed with or treated for a liver condition
              Cancerous:
                type: boolean
                description: >-
                  Confirmation whether any of the Travellers have been diagnosed with or treated for a cancerous
                  condition
              Terminal:
                type: boolean
                description: Confirmation whether any of the Travellers have been diagnosed with a terminal condition
              WaitingList:
                type: boolean
                description: >-
                  Confirmation whether any of the Travellers are currently on a waiting list for treatment or
                  investigation
              MentalHealth:
                type: boolean
                description: >-
                  Confirmation whether any of the Travellers have been diagnosed with or treated for any mental health
                  conditions
              ConditionDetails:
                type: array
                items:
                  type: object
                  properties:
                    TravellerName:
                      type: string
                      description: The name of the Traveller the medical 'Yes' response relates to
                    QuestionName:
                      type: string
                      description: >-
                        The Question property name of the 'Yes' response. For example, if `PastTreatment` is true this
                        value should be set to `PastTreatment`.
                    Description:
                      type: string
                      description: The description of the medical condition, diagnosis or treatment
                    CurrentDiagnosis:
                      type: string
                      enum:
                        - NoSymptoms
                        - OngoingSymptoms
                        - OngoingHospitalization
                        - PendingHospitalization
                        - OngoingTreatment
                        - PendingTreatment
                      description: The current diagnosis of the declared condition.
                    Treated:
                      type: string
                      enum:
                        - Outpatient
                        - Hospitalized
                        - Both
                        - NotApplicable
                      description: Whether the condition relates to hospital treatment
                  required:
                    - TravellerName
                    - QuestionName
                    - Description
                    - CurrentDiagnosis
                    - Treated
                minItems: 1
                description: Required when one or more of the medical questions have a 'Yes' response
            description: The template for adding optional properties.
          minItems: 1
          description: Indications of whether any travellers have medical conditions that need to be reported for the quote.
        PreviousClaims:
          type: object
          properties:
            PreviousClaim:
              type: boolean
              description: Confirmation whether the customer made any travel insurance claims in the previous 3 years.
            PreviousClaimDetails:
              type: array
              items:
                type: object
                properties:
                  DateOfClaim:
                    type: string
                    format: date
                    description: Date the claim was made.
                  ClaimAmount:
                    allOf:
                      - $ref: '#/components/schemas/AEInsurance.AEActiveCurrencyAmount'
                    description: The value of the claim.
                  Reason:
                    type: string
                    description: Details of the claim made or nature of the loss.
                  Outcome:
                    type: string
                    enum:
                      - Ongoing
                      - Paid
                      - PartiallyPaid
                      - Rejected
                      - Other
                required:
                  - DateOfClaim
                  - ClaimAmount
                  - Reason
                  - Outcome
              minItems: 1
              description: Details of previous claims.
          required:
            - PreviousClaim
          description: Details of previous travel insurance claims
        ExistingInsurance:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurance.AEInsuranceExistingInsuranceProperties'
          minItems: 1
          description: One-or-more existing insurance policies, omitted if none are held.
    AEInsuranceCreatePolicyResponse1:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/AEInsurance.AEInsuranceInsurancePolicyResponseData1'
        links:
          type: object
          properties:
            CreateInsurancePolicyRedirectUrl:
              type: string
              format: uri
              description: >-
                A redirect URL provided by the LFI to complete creating the insurance policy. The TPP must redirect the
                User to this URL.

                The URL is optional as the LFI may have all required information through party data to complete account
                creation.
          minProperties: 1
          description: Links to other resources. Can be omitted where `CreateInsurancePolicyRedirectUrl` is not returned.
    AEInsurancePolicies1:
      type: object
      required:
        - Policies
      properties:
        Policies:
          type: array
          items:
            $ref: '#/components/schemas/AEInsurancePolicyProperties'
          description: List of available insurance policies.
    AEInsurancePolicyProperties:
      type: object
      required:
        - InsurancePolicyId
        - PolicyNumber
        - PolicyStatus
        - PolicyStartDate
      properties:
        InsurancePolicyId:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
          description: Unique identifier for a given insurance policy
          example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
        PolicyNumber:
          type: string
          description: The policy number assigned by the LFI.
        PolicyStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePolicyStatusCodes'
          description: The current status of the policy.
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
    AELifeInsurancePolicies1:
      type: object
      required:
        - Policies
      properties:
        Policies:
          type: array
          items:
            $ref: '#/components/schemas/AELifeInsurancePolicyProperties'
          description: List of available insurance policies.
    AELifeInsurancePolicyProperties:
      type: object
      required:
        - InsurancePolicyId
        - PolicyNumber
        - PolicyStatus
        - PolicyStartDate
      properties:
        InsurancePolicyId:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
          description: Unique identifier for a given insurance policy
          example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
        PolicyNumber:
          type: string
          description: The policy number assigned by the LFI.
        PolicyStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AELifeInsurancePolicyStatusCodes'
          description: The current status of the policy.
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
    AEMotorInsurancePolicies1:
      type: object
      required:
        - Policies
      properties:
        Policies:
          type: array
          items:
            $ref: '#/components/schemas/AEMotorInsurancePolicyProperties'
          description: List of available insurance policies.
    AEMotorInsurancePolicyProperties:
      type: object
      required:
        - InsurancePolicyId
        - PolicyNumber
        - PolicyStatus
        - PolicyStartDate
      properties:
        InsurancePolicyId:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsuranceResourceIdentifierType'
          description: Unique identifier for a given insurance policy
          example: d330c5bb-0889-4596-86bb-17cc9a4a17b5
        PolicyNumber:
          type: string
          description: The policy number assigned by the LFI.
        PolicyStatus:
          allOf:
            - $ref: '#/components/schemas/AEInsurance.AEInsurancePolicyStatusCodes'
          description: The current status of the policy.
        PolicyStartDate:
          type: string
          format: date
          description: Policy start date
    AEReadInsurancePolicies1:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/AEInsurancePolicies1'
        meta:
          allOf:
            - $ref: '#/components/schemas/PaginatedMetadata'
          description: Metadata related to pagination. Can be omitted if response data is not paginated.
    AEReadLifeInsurancePolicies1:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/AELifeInsurancePolicies1'
        meta:
          allOf:
            - $ref: '#/components/schemas/PaginatedMetadata'
          description: Metadata related to pagination. Can be omitted if response data is not paginated.
    AEReadMotorInsurancePolicies1:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/AEMotorInsurancePolicies1'
        meta:
          allOf:
            - $ref: '#/components/schemas/PaginatedMetadata'
          description: Metadata related to pagination. Can be omitted if response data is not paginated.
    OzoneConnect.AEDefaultErrorCode:
      type: string
      description: Custom error code without prefix, retained for compatibility with version 1.2.
    OzoneConnect.DefaultError:
      type: object
      properties:
        errorCode:
          allOf:
            - $ref: '#/components/schemas/OzoneConnect.AEDefaultErrorCode'
          description: >-
            Generic error code set by the LFI. Non-namespaced error codes are allowed for compatibility versions prior
            to v2.0.
        errorMessage:
          type: string
          description: Message describing what problem has occurred
    OzoneConnect.Error400:
      type: object
      required:
        - errorCode
        - errorMessage
      properties:
        errorCode:
          anyOf:
            - $ref: '#/components/schemas/AEError400Codes'
            - $ref: '#/components/schemas/AECustomErrorCode'
            - $ref: '#/components/schemas/OzoneConnect.AEDefaultErrorCode'
          description: >-
            Error code identifying the problem that occurred. This may either be one of the prescribed Error Code(s) or
            a namespaced Error Code where the namespace is the system or organisation that has responded with the error,
            and the code is the code specific to the system or organisation. organisation or system.


            LFIs should implement error codes based on the prescribed codes or guidance in the standards, with
            non-specific codes maintained for backward compatibility with version 1.2.
        errorMessage:
          type: string
          description: Message describing what problem has occurred
      description: Default error response payload structure for Ozone Connect
    OzoneConnect.Error403:
      type: object
      required:
        - errorCode
        - errorMessage
      properties:
        errorCode:
          anyOf:
            - $ref: '#/components/schemas/AEError403Codes'
            - $ref: '#/components/schemas/AECustomErrorCode'
            - $ref: '#/components/schemas/OzoneConnect.AEDefaultErrorCode'
          description: >-
            Error code identifying the problem that occurred. This may either be one of the prescribed Error Code(s) or
            a namespaced Error Code where the namespace is the system or organisation that has responded with the error,
            and the code is the code specific to the system or organisation.
                  
            LFIs should implement error codes based on the prescribed codes or guidance in the standards, with
            non-specific codes maintained for backward compatibility with version 1.2.
        errorMessage:
          type: string
          description: Message describing what problem has occurred
      description: >-
        Error code identifying the problem that occurred. The first part of the code is the namespace, which is the name
        of the organisation or system that is rejecting the payment, and the second part is the specific rejection
        reason code for the originating organisation or system.
    OzoneConnect.Error409:
      type: object
      required:
        - errorCode
        - errorMessage
      properties:
        errorCode:
          anyOf:
            - $ref: '#/components/schemas/AEErrorGenericCodes'
            - $ref: '#/components/schemas/AECustomErrorCode'
            - $ref: '#/components/schemas/OzoneConnect.AEDefaultErrorCode'
          description: >-
            Error code identifying the problem that occurred. This may either be one of the prescribed Error Code(s) or
            a namespaced Error Code where the namespace is the system or organisation that has responded with the error,
            and the code is the code specific to the system or organisation.


            LFIs should implement error codes based on the prescribed codes or guidance in the standards, with
            non-specific codes maintained for backward compatibility with version 1.2.
        errorMessage:
          type: string
          description: Message describing what problem has occurred
      description: >-
        Error code identifying the problem that occurred. The first part of the code is the namespace, which is the name
        of the organisation or system that is rejecting the payment, and the second part is the specific rejection
        reason code for the originating organisation or system.
    OzoneConnect.Error500:
      type: object
      required:
        - errorCode
        - errorMessage
      properties:
        errorCode:
          anyOf:
            - $ref: '#/components/schemas/AEErrorGenericCodes'
            - $ref: '#/components/schemas/AECustomErrorCode'
            - $ref: '#/components/schemas/OzoneConnect.AEDefaultErrorCode'
          description: >-
            Error code identifying the problem that occurred. This may either be one of the prescribed Error Code(s) or
            a namespaced Error Code where the namespace is the system or organisation that has responded with the error,
            and the code is the code specific to the system or organisation.


            LFIs should implement error codes based on the prescribed codes or guidance in the standards, with
            non-specific codes maintained for backward compatibility with version 1.2.
        errorMessage:
          type: string
          description: Message describing what problem has occurred
      description: >-
        Error code identifying the problem that occurred. The first part of the code is the namespace, which is the name
        of the organisation or system that is rejecting the payment, and the second part is the specific rejection
        reason code for the originating organisation or system.
    PaginatedMetadata:
      type: object
      required:
        - page
        - pageSize
        - totalPages
        - totalRecords
      properties:
        page:
          type: integer
          minimum: 1
          description: The current page number.
        pageSize:
          type: integer
          minimum: 1
          description: Number of records in the current page.
        totalPages:
          type: integer
          minimum: 1
          description: Total number of pages available for response.
        totalRecords:
          type: integer
          minimum: 1
          description: Total number of records across all pages
      description: Provides information on paginated data
  responses:
    error400Response:
      description: Operation failed due to a invalid request parameter
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OzoneConnect.Error400'
    error403Response:
      description: Operation failed as access to the requested resource is forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OzoneConnect.Error403'
    error409Response:
      description: Operation failed due to a conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OzoneConnect.Error409'
    error500Response:
      description: Operation failed due to an internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OzoneConnect.Error500'
    errorResponse:
      description: Default error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OzoneConnect.DefaultError'
  securitySchemes:
    OzoneConnectApiKey:
      description: >-
        Communications between the API Hub and the LFI Ozone Connect implementation are secured using an API Key, which
        is a secret shared between the API Hub and the LFI.
      type: apiKey
      in: header
      name: Authorization
    OzoneConnectClientCredentials:
      type: oauth2
      description: >
        Communications between the API Hub and the LFI Ozone Connect implementation are secured using a Client
        Credentials grant type.


        LFIs must host an OAuth 2.0 Authorization Server to utilise this security pattern. Scope values are set during
        the onboarding process, and represented by a placeholder in this API description.
      flows:
        clientCredentials:
          tokenUrl: https://example.lfi.ae/token
          scopes:
            placeholder: Placeholder for scopes, which are set by the LFI during onboarding
    OzoneConnectJwtAuth:
      description: >
        Communications between the API Hub and the LFI Ozone Connect implementation are secured using the "JWT Auth"
        mechanism, where the Client presents a signed JSON Web Token as a credential.


        The Server MUST verify the signature in order to authenticate the Client.


        Please note that the value of the `scheme` parameter is not a registered HTTP Authentication Scheme, to indicate
        it is specific to Ozone Connect. Please refer to API Hub documentation for further details.
      type: http
      scheme: Ozone-Connect-JWT-Auth
    OzoneConnectServiceInitiationToken:
      description: >
        Communications between the API Hub and the LFI Ozone Connect implementation are secured using a Service
        Initiation Token.


        The API Hub will set an Access Token based on a value set by the LFI, which has been patched onto the associated
        consent. The value will be transmitted in the `Authorization` header, which is represented as a `Bearer` in this
        Security Scheme Object.
      type: http
      scheme: Bearer
servers:
  - url: https://<your-ozone-connect-server>
    description: ''
    variables: {}
security:
  - {}
  - OzoneConnectApiKey: []
  - OzoneConnectClientCredentials:
      - placeholder
  - OzoneConnectJwtAuth: []
