openapi: 3.0.0
info:
  description: |
    Services to manage access and global configuration for CDQ Cloud Platform.
  version: '2'
  title: Identity Management API
servers:
  - description: Production
    url: https://api.cdq.com/identity-management/rest
    x-cdq-soap-url: https://api.corporate-data-league.ch/identity-management/soap/v2
security:
  - apiKey: []
tags:
  - name: Global Settings
    description: >-
      Manage global settings. It includes operations such as listing all data
      source settings for a specific organization.
paths:
  /v2/organizations/{id}/globalsettings/datapoolaccesssettings:
    parameters:
      - $ref: '#/components/parameters/authorization'
      - name: id
        description: Organization ID.
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/OrganizationId'
    get:
      parameters:
        - name: pageSize
          description: Number of items per page.
          in: query
          required: false
          schema:
            type: integer
            default: 50
            example: '50'
        - name: page
          description: Page number.
          in: query
          required: false
          schema:
            type: integer
            default: 0
            example: '0'
      tags:
        - Global Settings
      summary: List Data Source Settings
      description: List all data source settings for a specific organization.
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataPoolAccessSettingsPage'
  /v2/organizations/{id}/globalsettings/datapoolaccesssettings/{dataSourceTechnicalKey}:
    parameters:
      - $ref: '#/components/parameters/authorization'
      - name: id
        description: Organization ID.
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/OrganizationId'
      - name: dataSourceTechnicalKey
        description: Data Source Technical Key.
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/DataSourceTechnicalKey'
    get:
      tags:
        - Global Settings
      summary: Read Data Source Settings
      description: Read data source settings for a specific organization.
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceSettings'
  /organizations/{id}/globalsettings/datapoolaccesssettings/{dataSourceTechnicalKey}:
    parameters:
      - name: id
        description: Organization ID.
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/OrganizationId'
      - name: dataSourceTechnicalKey
        description: Data Source Technical Key.
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/DataSourceTechnicalKey'
    put:
      tags:
        - Organizations
      summary: Update Data Pool Access Settings
      description: Update data pool access settings for a specific organization.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSourceSettingsUpdate'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataPoolAccessSettings'
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
  parameters:
    authorization:
      name: Authorization
      description: Authorization header with Bearer Token.
      in: header
      required: true
      schema:
        type: string
        example: Bearer eyJhbGciOiJIUzI1(...)
    workspaceId:
      name: workspaceId
      description: Workspace ID.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/WorkspaceId'
    organizationId:
      name: organizationId
      description: Organization ID.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/OrganizationId'
    organizationAdminId:
      name: organizationAdminId
      description: Organization Admin ID.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/OrganizationId'
    userId:
      name: userId
      description: User ID.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UserId'
    sortType:
      name: sortType
      description: Sort type.
      required: false
      in: query
      schema:
        type: string
        default: DESC
        example: DESC
    sortBy:
      name: sortBy
      description: Filed by which the results will be sorted.
      in: query
      required: false
      schema:
        type: string
        default: CREATED_AT
        example: CREATED_AT
    pageSize:
      name: pageSize
      description: Number of items per page.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/PageSize'
    page:
      name: page
      description: Current page number.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/Page'
    defaultWorkspace:
      name: defaultWorkspace
      description: Default workspace ID.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/DefaultWorkspace'
    clientId:
      name: clientId
      description: The Client Id of an api key
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/ClientId'
    usernameHeaderParam:
      name: X-Credential-Username
      description: >
        Username that is passed as header parameter with the name
        X-Credential-Username.

        The header can take form of:
          * username (e.g. "johndoe")
          * user id (e.g. "87b1bdb1-ba87-4522-b363-c5a0e6e917b3")
      in: header
      required: true
      schema:
        type: string
        example: 87b1bdb1-ba87-4522-b363-c5a0e6e917b3
    workspaceIdQuery:
      name: workspaceId
      description: Workspace ID.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/WorkspaceId'
    limitQuery:
      name: limit
      description: Maximum number of configurations to return. Used for pagination.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/schemas-Limit'
    startAfterQuery:
      name: startAfter
      description: >-
        ID of the last configuration returned in the previous request. Used for
        pagination.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/StartAfter'
    configurationId:
      name: configurationId
      description: Workspace Configuration ID.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/ConfigurationId'
    defaultConfiguration:
      name: defaultConfiguration
      description: Default configuration.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/DefaultWorkspaceConfiguration'
  schemas:
    OrganizationSearchResult:
      type: object
      description: Organization search result.
      properties:
        id:
          $ref: '#/components/schemas/OrganizationId'
        name:
          $ref: '#/components/schemas/OrganizationName'
        assignableRoles:
          type: array
          description: Assignable roles for a user.
          items:
            type: string
            description: Assignable roles for a user.
            example: DATA_MIRROR_APP_USER
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        modifiedAt:
          $ref: '#/components/schemas/ModifiedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
        modifiedBy:
          $ref: '#/components/schemas/ModifiedBy'
        status:
          $ref: '#/components/schemas/OrganizationStatusEnum'
        tags:
          type: array
          description: >-
            Tags for grouping organizations. For example organization created
            via linkedin has tag linkedin.
          items:
            $ref: '#/components/schemas/Tag'
    Tag:
      type: string
      description: Assigned tags.
      example: linkedin
    OrganizationStatusEnum:
      type: string
      description: Status of the organization.
      example: ACTIVE
      enum:
        - ACTIVE
        - INACTIVE
        - DELETED
    DataPoolAccessSettingsPage:
      type: object
      description: Page of data pool access settings.
      properties:
        page:
          $ref: '#/components/schemas/Page'
        pageSize:
          $ref: '#/components/schemas/PageSize'
        total:
          $ref: '#/components/schemas/PageTotal'
        values:
          type: array
          description: List of data pool access settings.
          items:
            $ref: '#/components/schemas/DataSourceSettings'
    DataSourceSettings:
      type: object
      description: |
        Organizational settings to configure access to a Data Source.
      properties:
        dataSource:
          $ref: '#/components/schemas/schemas-DataSource'
        activationStatus:
          $ref: '#/components/schemas/DataSourceActivationStatus'
        activatedAt:
          $ref: '#/components/schemas/ActivatedAt'
        activatedBy:
          $ref: '#/components/schemas/ActivatedBy'
        deactivatedAt:
          $ref: '#/components/schemas/DeactivatedAt'
        deactivatedBy:
          $ref: '#/components/schemas/DeactivatedBy'
        termsAcceptanceStatus:
          $ref: '#/components/schemas/schemas-TermsAcceptanceStatus'
        termsAcceptedAt:
          $ref: '#/components/schemas/TermsAcceptedAt'
        termsAcceptedBy:
          $ref: '#/components/schemas/TermsAcceptedBy'
        termsUnacceptedAt:
          $ref: '#/components/schemas/TermsUnacceptedAt'
        termsUnacceptedBy:
          $ref: '#/components/schemas/TermsUnacceptedBy'
        licenceUrl:
          $ref: '#/components/schemas/LicenceUrl'
        termsType:
          $ref: '#/components/schemas/TermsType'
        allowedCredentialTypes:
          type: array
          description: |
            Describes which credentials should be set for the data source
          items:
            $ref: '#/components/schemas/AllowedCredentialType'
        credentials:
          type: array
          description: >
            Organization-specific credentials to access a data source. Only
            masked credentials are returned.
          items:
            $ref: '#/components/schemas/DataSourceCredential'
    DataSourceCredential:
      type: object
      description: Generic credential value and type
      properties:
        type:
          $ref: '#/components/schemas/DataSourceCredentialType'
        fields:
          type: array
          description: List of credential fields.
          items:
            $ref: '#/components/schemas/DataSourceCredentialField'
    DataSourceCredentialType:
      type: object
      description: Credential type.
      properties:
        technicalKey:
          $ref: '#/components/schemas/schemas-CredentialType'
        label:
          type: string
          description: Label of the credential type.
          example: API Key
    DataSourceCredentialField:
      type: object
      description: Credential field.
      properties:
        type:
          $ref: '#/components/schemas/DataSourceCredentialFieldType'
        value:
          $ref: '#/components/schemas/DataSourceCredentialValue'
    DataSourceCredentialValue:
      type: string
      description: >-
        Generic credential value. If CredentialType is PASSWORD, the value is
        masked.
      example: '********'
    DataSourceCredentialFieldType:
      type: object
      description: Credential field type.
      properties:
        technicalKey:
          $ref: '#/components/schemas/DataSourceCredentialTechnicalKey'
        label:
          type: string
          description: Label of the credential field type.
          example: API Key
        type:
          type: string
          description: Type of the credential field type.
          example: API Key
    LicenceUrl:
      type: string
      description: >
        URL that provides information on the licence of the target, see
        https://meta.cdq.com/Property:Has_licence_URL
      example: https://www.cdq.ch/legal/dsc-terms-of-use
    DeactivatedAt:
      type: string
      description: >-
        The date when a data source was deactivated by a user of an
        organization.
      example: '2025-08-29T09:46:58Z'
    DeactivatedBy:
      type: string
      description: The user ID of the user who deactivated a data source.
      example: tom.sawyer@twain.com
    TermsUnacceptedAt:
      type: string
      description: >-
        The date when a user of an organization revoked acceptation the terms of
        use of a data source.
      example: '2025-08-29T09:46:58Z'
    TermsUnacceptedBy:
      type: string
      description: >-
        The user ID of the user who revoked acceptation the terms of use of a
        data source.
      example: huckleberry.finn@twain.com
    TermsType:
      type: string
      description: >
        The type of terms of use of a data source. See
        https://meta.cdq.com/Property:Has_terms_type
      example: https://meta.cdq.com/Data_source/AT.FON
    AllowedCredentialType:
      type: string
      description: The type of credentials that are allowed for a data source.
      example: BVD_CREDENTIALS
    ApiKey:
      type: object
      description: API Key for a consuming system.
      properties:
        id:
          $ref: '#/components/schemas/ApiKeyId'
        name:
          $ref: '#/components/schemas/ApiKeyName'
        credentials:
          $ref: '#/components/schemas/ApiKeyCredentials'
        roles:
          type: array
          description: Roles assigned to the API key.
          items:
            $ref: '#/components/schemas/ApiKeyRoleEnum'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        deleted:
          type: boolean
          description: API key is deleted.
          example: 'false'
        deletedAt:
          $ref: '#/components/schemas/DeletedAt'
        deletedBy:
          $ref: '#/components/schemas/DeletedBy'
    ApiKeyCredentials:
      type: object
      description: API Key credentials.
      properties:
        clientId:
          $ref: '#/components/schemas/ClientId'
        clientSecret:
          $ref: '#/components/schemas/ClientSecret'
    WorkspaceConfigurationCopiedFrom:
      type: object
      description: The configuration from which the new configuration is copied.
      required:
        - configurationId
        - workspaceId
      properties:
        configurationId:
          $ref: '#/components/schemas/ConfigurationId'
        workspaceId:
          $ref: '#/components/schemas/WorkspaceId'
    TransactionId:
      type: string
      description: >-
        ID of the transaction, pass it in subsequent requests to make them part
        of the transaction
      example: 8e37da1e-ee9d-4ee0-b03d-24a1f89988f2
    WorkspaceConfigurationName:
      type: string
      description: The name of the configuration.
      example: MyConfiguration
    WorkspaceConfigurationContent:
      type: object
      additionalProperties: true
      description: >-
        Configuration content. Depending on the domain the content can be
        different.
    WorkspaceConfigurationType:
      type: object
      description: Configuration type.
      properties:
        name:
          type: string
          description: Display name of the configuration type. Always null.
          example: 'null'
        technicalKey:
          type: string
          description: >-
            Type of the workspace configuration. Must be written in
            SCREAMING_SNAKE_CASE.
          example: BUSINESS_PARTNER_LOOKUP
    RelatedConfiguration:
      type: object
      description: ID of the related configuration.
      properties:
        id:
          $ref: '#/components/schemas/RelatedConfigurationId'
        owner:
          $ref: '#/components/schemas/RelatedConfigurationOwner'
    RelatedConfigurationId:
      type: string
      description: ID of the related configuration.
      example: a0200062daa56952a8640005
    RelatedConfigurationOwner:
      type: object
      description: Configuration which relates to the root configuration.
      properties:
        service:
          $ref: '#/components/schemas/RelatedConfigurationOwnerService'
        path:
          $ref: '#/components/schemas/RelatedConfigurationOwnerPath'
    RelatedConfigurationOwnerService:
      type: string
      description: Name of the service which is the owner of the configuration.
      example: reference-data-api
    RelatedConfigurationOwnerPath:
      type: string
      description: Endpoint used to read the related configuration.
      example: /public/configurations/businesspartnerlookup
    DefaultWorkspaceConfiguration:
      type: boolean
      description: >-
        Is default workspace configuration. Only one configuration of the same
        type can be a default configuration in a given workspace.
      example: true
    WorkspaceConfiguration:
      type: object
      description: Workspace configuration.
      properties:
        id:
          $ref: '#/components/schemas/ConfigurationId'
        name:
          $ref: '#/components/schemas/WorkspaceConfigurationName'
        version:
          $ref: '#/components/schemas/WorkspaceConfigurationVersionNumber'
        configuration:
          $ref: '#/components/schemas/WorkspaceConfigurationContent'
        type:
          $ref: '#/components/schemas/WorkspaceConfigurationType'
        relatedConfigurations:
          type: array
          description: List of related configurations.
          items:
            $ref: '#/components/schemas/RelatedConfiguration'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        modifiedAt:
          $ref: '#/components/schemas/ModifiedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
        modifiedBy:
          $ref: '#/components/schemas/ModifiedBy'
        defaultConfiguration:
          $ref: '#/components/schemas/DefaultWorkspaceConfiguration'
        transactionId:
          $ref: '#/components/schemas/TransactionId'
    WorkspaceConfigurationVersionNumber:
      type: integer
      description: Version number of a configuration.
      example: 1
    WorkspaceRole:
      type: string
      description: Workspace role.
      example: VIEWER
    WorkspaceRoleEnum:
      type: string
      description: Workspace role enum.
      example: VIEWER
      enum:
        - ADMIN
        - EDITOR
        - VIEWER
      x-enumDescriptions:
        ADMIN: Admin role.
        EDITOR: Editor role.
        VIEWER: Viewer role.
    QuotaResourceTechnicalKeyParam:
      type: string
      description: Quota resource technical key enum.
      example: API_KEYS
      enum:
        - API_KEYS
        - WORKSPACES
        - USERS
      x-enumDescriptions:
        API_KEYS: API keys.
        WORKSPACES: Workspaces.
    WorkspaceResourceQuotaSearchResult:
      type: object
      description: Workspace resource quota.
      properties:
        id:
          $ref: '#/components/schemas/WorkspaceResourceQuotaId'
        workspaceId:
          $ref: '#/components/schemas/WorkspaceId'
        quota:
          $ref: '#/components/schemas/ResourceQuota'
        resource:
          $ref: '#/components/schemas/WorkspaceResourceQuotaResourceItem'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
        modifiedAt:
          $ref: '#/components/schemas/ModifiedAt'
        modifiedBy:
          $ref: '#/components/schemas/ModifiedBy'
    OrganizationResourceQuotaSearchResult:
      type: object
      description: Organization resource quota.
      properties:
        id:
          $ref: '#/components/schemas/OrganizationResourceQuotaId'
        organizationId:
          $ref: '#/components/schemas/OrganizationId'
        quota:
          $ref: '#/components/schemas/ResourceQuota'
        resource:
          $ref: '#/components/schemas/OrganizationResourceQuotaResourceItem'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
        modifiedAt:
          $ref: '#/components/schemas/ModifiedAt'
        modifiedBy:
          $ref: '#/components/schemas/ModifiedBy'
    OrganizationResourceQuotaResourceItem:
      type: object
      description: Organization resource quota resource item.
      required:
        - technicalKey
      properties:
        technicalKey:
          $ref: '#/components/schemas/QuotaResourceTechnicalKeyParam'
    WorkspaceResourceQuotaResourceItem:
      type: object
      description: Workspace resource quota resource item.
      required:
        - technicalKey
      properties:
        technicalKey:
          $ref: '#/components/schemas/WorkspaceQuotaResourceTechnicalKey'
    WorkspaceQuotaResourceTechnicalKey:
      type: string
      description: >
        Workspace quota resource technical key enum. This can be any technical
        key of a configuration type  or an API_KEYS. The value is not checked.
        If the technical key is wrongly set then quota will not  be enforced.
      example: API_KEYS
    OrganizationResourceQuotaId:
      type: string
      description: Organization resource quota ID.
      example: organization-resource-quota-id
    WorkspaceResourceQuotaId:
      type: string
      description: Workspace resource quota ID.
      example: 6633348b2b5f2b772013eb91
    ResourceQuota:
      type: integer
      description: Quota.
      example: '1'
    QuotaUsage:
      type: integer
      description: The current usage of a quota.
      example: '1'
    SettingsFeature:
      type: string
      description: Feature to be activated or deactivated.
      example: MASK_CREDENTIALS
      enum:
        - MASK_CREDENTIALS
      x-enumDescriptions:
        MASK_CREDENTIALS: Mask credentials.
    CredentialType:
      type: string
      description: Credential type.
      example: AT.FON.TID
      enum:
        - AT.FON.TID
        - AT.FON.BENID
        - EU_VAT_ID_AT
        - BZST
        - NL.BR
        - DNB
        - DNB_MASTER_DATA_BASIC
        - DNB_MASTER_DATA_EXTENDED
        - DNB_LNKELI
        - SGW
      x-enumDescriptions:
        AT.FON.TID: Austrian tax identification number.
        AT.FON.BENID: Austrian beneficiary identification number.
        EU_VAT_ID_AT: Austrian VAT identification number.
        BZST: German Federal Central Tax Office.
        NL.BR: Dutch Chamber of Commerce.
        DNB: Duns & Bradstreet data source.
        DNB_MASTER_DATA_BASIC: Duns & Bradstreet master data basic.
        DNB_MASTER_DATA_EXTENDED: Duns & Bradstreet master data extended.
        DNB_LNKELI: Duns & Bradstreet LNKELI.
        SGW: Swiss government.
    AssignableRoles:
      type: string
      description: Assignable roles for a user.
      example: APPS_TESTER
      enum:
        - AML_GUARD_MANAGER
        - AML_GUARD_USER
        - AML_GUARD_VIEWER
        - APPS_TESTER
        - BUREAUCRAT
        - CDQ_ADMINISTRATOR
        - COLLABORATION_APP_MANAGER
        - COLLABORATION_APP_USER
        - CURATION_APP_USER
        - DATA_MIRROR_APP_MANAGER
        - DATA_MIRROR_APP_USER
        - DEMO_PROSPECT_USER
        - EMAIL_DOMAIN_GUARD_MANAGER
        - EMAIL_DOMAIN_GUARD_USER
        - EXTENDED_DATA_QUALITY_ASSESSMENT_APP_USER
        - FRAUD_APP_MANAGER
        - FRAUD_APP_USER
        - IMPERSONATE
        - LAB_DASHBOARDS
        - LOOKUP_APP_USER
        - LOOKUP_SYSTEM_BANK_DATA_USER
        - MATCHING_APP_USER
        - ORGANIZATIONAL_SETTINGS_APP_MANAGER
        - SANCTION_LIST_APP_USER
        - VALIDATION_APP_USER
        - WHITELIST_APP_MANAGER
        - WHITELIST_APP_USER
        - WORKSPACES_ADMIN
      x-enumDEscriptions:
        AML_GUARD_MANAGER: AML Guard Manager.
        AML_GUARD_USER: AML Guard User.
        AML_GUARD_VIEWER: AML Guard Viewer.
        APPS_TESTER: Application tester.
        BUREAUCRAT: Bureaucrat.
        CDQ_ADMINISTRATOR: CDQ administrator.
        COLLABORATION_APP_MANAGER: Collaboration app manager.
        COLLABORATION_APP_USER: Collaboration app user.
        CURATION_APP_USER: Curation app user.
        DATA_MIRROR_APP_MANAGER: Data mirror app manager.
        DATA_MIRROR_APP_USER: Data mirror app user.
        DEMO_PROSPECT_USER: Demo prospect user.
        EXTENDED_DATA_QUALITY_ASSESSMENT_APP_USER: Extended data quality assessment app user.
        FRAUD_APP_MANAGER: Fraud app manager.
        FRAUD_APP_USER: Fraud app user.
        IMPERSONATE: Impersonate.
        LAB_DASHBOARDS: Lab dashboards.
        LOOKUP_APP_USER: Lookup app user.
        LOOKUP_SYSTEM_BANK_DATA_USER: Lookup system bank data user.
        MATCHING_APP_USER: Matching app user.
        ORGANIZATIONAL_SETTINGS_APP_MANAGER: Organizational settings app manager.
        SANCTION_LIST_APP_USER: Sanction list app user.
        VALIDATION_APP_USER: Validation app user.
        WHITELIST_APP_MANAGER: Whitelist app manager.
        WHITELIST_APP_USER: Whitelist app user.
        WORKSPACES_ADMIN: Workspaces admin.
    User:
      type: object
      description: User details.
      properties:
        id:
          $ref: '#/components/schemas/UserId'
        firstName:
          $ref: '#/components/schemas/UserFirstName'
        lastName:
          $ref: '#/components/schemas/UserLastName'
        fullName:
          $ref: '#/components/schemas/UserFullName'
        email:
          $ref: '#/components/schemas/UserEmail'
        disabledApps:
          type: boolean
          description: User is disabled in all apps.
          example: 'false'
        phone:
          $ref: '#/components/schemas/UserPhone'
        roles:
          type: array
          description: List of roles.
          items:
            $ref: '#/components/schemas/RoleId'
        assignableRoles:
          type: array
          description: List of assignable roles.
          items:
            type: string
            description: Assignable roles for a user.
            example: APPS_TESTER
        organization:
          $ref: '#/components/schemas/OrganizationId'
        organizationName:
          $ref: '#/components/schemas/OrganizationName'
        resetPassword:
          type: boolean
          description: User must reset password.
          example: 'true'
        passwordExpires:
          type: string
          description: Password expiration date.
          example: '2025-08-29T09:46:58Z'
        deleted:
          type: boolean
          description: User is deleted.
          example: 'false'
        deletedAt:
          $ref: '#/components/schemas/DeletedAt'
        deletedBy:
          $ref: '#/components/schemas/DeletedBy'
        lastLoginAt:
          $ref: '#/components/schemas/LastLoginAt'
    LastLoginAt:
      type: string
      description: Last login date.
      example: '2025-08-29T09:46:58Z'
    OrganizationalSettings:
      type: object
      description: Organizational settings.
      allOf:
        - $ref: '#/components/schemas/Settings'
        - type: object
          description: Organizational settings.
          properties:
            id:
              $ref: '#/components/schemas/OrganizationId'
            organization:
              $ref: '#/components/schemas/OrganizationName'
    Settings:
      type: object
      description: Settings.
      properties:
        credentials:
          type: array
          description: List of credentials.
          items:
            $ref: '#/components/schemas/Credential'
        dataMirrors:
          type: array
          description: List of data mirrors.
          items:
            $ref: '#/components/schemas/DataMirrorSettings'
        dnbStorages:
          type: array
          description: List of DNB storages.
          items:
            $ref: '#/components/schemas/DnbStorageSettings'
        sgwStorages:
          type: array
          description: List of SGW storages.
          items:
            $ref: '#/components/schemas/SgwStorageSettings'
        dataCurationRules:
          type: array
          description: List of data curation rules.
          items:
            $ref: '#/components/schemas/DataCurationRule'
        confirmBankAccount:
          $ref: '#/components/schemas/ConfirmBankAccountSettings'
        searchIndexId:
          $ref: '#/components/schemas/SearchIndexId'
        dataComplianceSettings:
          $ref: '#/components/schemas/DataComplianceSettings'
        requestors:
          $ref: '#/components/schemas/RequestorsSettings'
        upsertBusinessPartnerSettings:
          $ref: '#/components/schemas/UpsertBusinessPartnerSettings'
    SettingsParam:
      type: object
      description: Settings.
      properties:
        credentials:
          type: array
          description: List of credentials.
          items:
            $ref: '#/components/schemas/CredentialParam'
        dataMirrors:
          type: array
          description: List of data mirrors.
          items:
            $ref: '#/components/schemas/DataMirrorSettings'
        dnbStorages:
          type: array
          description: List of DNB storages.
          items:
            $ref: '#/components/schemas/DnbStorageSettings'
        sgwStorages:
          type: array
          description: List of SGW storages.
          items:
            $ref: '#/components/schemas/SgwStorageSettings'
        dataCurationRules:
          type: array
          description: List of data curation rules.
          items:
            $ref: '#/components/schemas/DataCurationRule'
        confirmBankAccount:
          $ref: '#/components/schemas/ConfirmBankAccountSettings'
        searchIndexId:
          $ref: '#/components/schemas/SearchIndexId'
        dataComplianceSettings:
          $ref: '#/components/schemas/DataComplianceSettingsParam'
        requestors:
          $ref: '#/components/schemas/RequestorsSettings'
        upsertBusinessPartnerSettings:
          $ref: '#/components/schemas/UpsertBusinessPartnerSettings'
    DataComplianceSettings:
      type: object
      description: Data compliance settings.
      properties:
        disclosedDataSource:
          type: array
          description: List of disclosed data sources.
          items:
            $ref: '#/components/schemas/ComplianceDataSource'
    DataComplianceSettingsParam:
      type: object
      description: Data compliance settings.
      properties:
        disclosedDataSource:
          type: array
          description: List of disclosed data sources.
          items:
            $ref: '#/components/schemas/ComplianceDataSourceParam'
    ComplianceDataSource:
      type: object
      description: Compliance data source.
      properties:
        technicalKey:
          type: string
          description: Compliance data source technical key.
          example: WATCHLIST
    ComplianceDataSourceParam:
      type: object
      description: Compliance data source.
      properties:
        technicalKey:
          $ref: '#/components/schemas/ComplianceDataSourceTechnicalKeyParam'
    ComplianceDataSourceTechnicalKeyParam:
      type: string
      description: Compliance data source technical key.
      example: WATCHLIST
      enum:
        - SANCTION_LIST
        - WATCHLIST
        - PEP
      x-enumDescriptions:
        SANCTION_LIST: Sanction list.
        WATCHLIST: Watchlist.
        PEP: Politically exposed person.
    SearchIndexId:
      type: string
      description: UUID of a Search Index.
      example: basf-5cdcc759d9-9pz6r
    DataMirrorSettings:
      type: object
      description: Data mirror settings.
      properties:
        storageId:
          type: string
          description: >-
            This property is no longer supported. Please use `storage.id`
            instead.
          deprecated: true
          example: 72d6900fce6b326088f5d9d91049e3e6
        storage:
          $ref: '#/components/schemas/BusinessPartnerStorage'
        featuresOn:
          type: array
          description: |-
            Features to be activated for the data mirror:

              * `CATENA_X_REPLICA`: Storage is a replica of CX.POOL with filled CX_BPN identifier. Singleton workspace.
              * `CATENA_X_SHARING`: Storage sharing in CX.POOL.
              * `CDQ_POOL_SHARING`: Storage sharing in CDQ.POOL.
          items:
            $ref: '#/components/schemas/DataMirrorFeatureParam'
    DataMirrorFeatureParam:
      type: string
      description: Data mirror feature.
      example: CATENA_X_REPLICA
      enum:
        - CATENA_X_REPLICA
        - CATENA_X_SHARING
        - CDQ_POOL_SHARING
      x-enumDEscriptions:
        CATENA_X_REPLICA: >-
          Storage is a replica of CX.POOL with filled CX_BPN identifier.
          Singleton workspace.
        CATENA_X_SHARING: Storage sharing in CX.POOL.
        CDQ_POOL_SHARING: Storage sharing in CDQ.POOL.
    BusinessPartnerStorage:
      type: object
      description: Business Partner storage.
      properties:
        id:
          $ref: '#/components/schemas/BusinessPartnerStorageId'
    BusinessPartnerStorageUpdate:
      type: object
      description: Business Partner storage update.
      properties:
        id:
          $ref: '#/components/schemas/BusinessPartnerStorageId'
    DnbStorageSettings:
      type: object
      description: DNB storage settings.
      properties:
        type:
          $ref: '#/components/schemas/DnbStorageSettingsType'
        storageId:
          $ref: '#/components/schemas/BusinessPartnerStorageId'
    DnbStorageSettingsType:
      type: object
      description: DNB storage settings type.
      properties:
        technicalKey:
          type: string
          description: DNB storage settings type technical key.
          example: DNB_TechnicalKey
    SgwStorageSettings:
      type: object
      description: SGW storage settings.
      properties:
        storageId:
          $ref: '#/components/schemas/BusinessPartnerStorageId'
    OrganizationRegistrationDataMirror:
      type: object
      description: Data Mirror for organization registration.
      properties:
        labels:
          type: array
          description: Labels to categorize the Data Mirror.
          maxItems: 10
          uniqueItems: true
          items:
            type: string
            minLength: 1
            maxLength: 20
            description: Label to categorize the Data Mirror.
            example: label
    OrganizationRegistrationUser:
      type: object
      description: Organization registration user.
      properties:
        email:
          $ref: '#/components/schemas/UserEmail'
        password:
          $ref: '#/components/schemas/CredentialPassword'
    OrganizationRegistrationOrganization:
      type: object
      description: Organization registration organization.
      properties:
        id:
          $ref: '#/components/schemas/OrganizationId'
        name:
          $ref: '#/components/schemas/OrganizationName'
    OrganizationRegistrationApiKey:
      type: object
      description: Organization registration api key.
      properties:
        base64:
          $ref: '#/components/schemas/ApiKeyCredentialsBase64'
    OrganizationRegistrationWorkspace:
      type: object
      description: Organization registration workspace.
      properties:
        id:
          $ref: '#/components/schemas/WorkspaceId'
        name:
          $ref: '#/components/schemas/WorkspaceName'
        dataMirror:
          $ref: '#/components/schemas/OrganizationRegistrationWorkspaceDataMirror'
    OrganizationRegistrationWorkspaceDataMirror:
      type: object
      description: Data Mirror for organization registration.
      properties:
        id:
          $ref: '#/components/schemas/BusinessPartnerStorageId'
    ApiKeyCredentialsBase64:
      type: string
      description: Base 64 decoded api credentials.
      example: YXBpS2V5OmFwaUtleQ==
    Credential:
      type: object
      description: Credential details.
      properties:
        username:
          $ref: '#/components/schemas/CredentialUserName'
        password:
          $ref: '#/components/schemas/CredentialPassword'
        type:
          $ref: '#/components/schemas/schemas-CredentialType'
        baseUrl:
          $ref: '#/components/schemas/CredentialBaseUrl'
    CredentialParam:
      type: object
      description: Credential details.
      properties:
        username:
          $ref: '#/components/schemas/CredentialUserName'
        password:
          $ref: '#/components/schemas/CredentialPassword'
        baseUrl:
          $ref: '#/components/schemas/CredentialBaseUrl'
        type:
          $ref: '#/components/schemas/CredentialType'
    RuleContext:
      type: object
      description: Rule context for Data Curation.
      properties:
        country:
          $ref: '#/components/schemas/Country'
    ConfirmBankAccountSettings:
      type: object
      description: Confirm bank account settings.
      properties:
        trustScoreIntervals:
          type: array
          description: List of trust score intervals.
          minLength: 1
          items:
            $ref: '#/components/schemas/TrustScoreInterval'
        enableAccountOwnerVerification:
          type: boolean
          default: false
          description: Enable account owner verification.
          example: 'true'
    TrustScoreInterval:
      type: object
      description: Trust score interval.
      required:
        - trustScore
      properties:
        fromNumberOfTransactions:
          type: integer
          minimum: 0
          description: Minimum number of transactions.
          example: '100'
        toNumberOfTransactions:
          type: integer
          minimum: 0
          description: Maximum number of transactions.
          example: '100'
        trustScore:
          type: integer
          minimum: 0
          description: Trust score.
          example: '100'
    RequestorsSettings:
      type: object
      description: Requestors settings.
      properties:
        vatDeRequestor:
          $ref: '#/components/schemas/Requestor'
        vatAtRequestor:
          $ref: '#/components/schemas/Requestor'
        vatEuRequestor:
          $ref: '#/components/schemas/Requestor'
    UpsertBusinessPartnerSettings:
      type: object
      description: Upsert Business Partner settings.
      properties:
        featuresOn:
          type: array
          description: List of features to be activated.
          items:
            type: string
            description: Feature to be activated.
            example: FEATURE
    Requestor:
      type: object
      description: VAT identifier which is used during qualifications.
      properties:
        value:
          type: string
          description: VAT identifier.
          example: ATU12345678
    DataCurationRule:
      type: object
      description: Data curation rule.
      properties:
        context:
          $ref: '#/components/schemas/RuleContext'
        addressCurationLevelThreshold:
          $ref: >-
            #/components/schemas/schemas-DataCurationRuleAddressCurationLevelThreshold
        outputLanguage:
          deprecated: true
          type: string
          description: Output language.
          example: en
        outputLanguageTechnicalKey:
          type: string
          description: Output language technical key.
          example: en
        outputCharsets:
          type: array
          description: List of output charsets.
          items:
            $ref: '#/components/schemas/OutputCharset'
        profile:
          $ref: '#/components/schemas/BusinessPartnerCurationProfile'
        featuresOn:
          type: array
          description: List of features to be activated.
          items:
            $ref: '#/components/schemas/DataCurationRuleFeature'
        featuresOff:
          type: array
          description: List of features to be deactivated.
          items:
            $ref: '#/components/schemas/DataCurationRuleFeature'
        addressDataSources:
          $ref: '#/components/schemas/AddressDataSources'
        numberSeparator:
          $ref: '#/components/schemas/DataCurationRuleNumberSeparator'
        inputAddressConceptsIgnored:
          type: array
          description: List of input address concepts to be ignored.
          items:
            $ref: '#/components/schemas/schemas-InputAddressConcept'
    DataCurationRuleNumberSeparator:
      type: object
      description: >-
        Number separator for features `JOIN_THOROUGHFARE_NUMBER_PREFIX`,
        `JOIN_THOROUGHFARE_NUMBER_POSTFIX`.
      properties:
        value:
          type: string
          description: Number separator value for features.
          example: ','
    OutputCharset:
      type: object
      description: Output character set.
      properties:
        concept:
          type: string
          description: Concept of the output charset.
          example: ISO-8859-1
        charset:
          $ref: '#/components/schemas/CharacterSetTechnicalKey'
    Country:
      type: object
      description: >-
        Country consisting of the country name and country code (ISO 3166-1
        alpha-2).
      properties:
        shortName:
          $ref: '#/components/schemas/CountryShortName'
    DefaultWorkspace:
      type: boolean
      description: Is this workspace a default workspace for the organization.
      example: 'false'
    WorkspaceOrganization:
      type: object
      description: Organization of the workspace.
      properties:
        id:
          $ref: '#/components/schemas/OrganizationId'
    ApiKeyRoleEnum:
      type: string
      description: API Key role based on ApiKeyRoleEnum.
      example: SYSTEM
      enum:
        - SYSTEM
        - DELEGABLE
      x-enumDEscriptions:
        SYSTEM: Can only be used by the owner of the API key.
        DELEGABLE: >-
          Can be assigned or transferred to another user or entity to access and
          interact with an API on behalf of the original owner.
    WorkspaceConfigurations:
      type: object
      description: Workspace configurations.
      properties:
        workspaceConfigurations:
          type: array
          description: List of workspace configurations.
          items:
            $ref: '#/components/schemas/WorkspaceConfiguration'
    WorkspaceTypeEnum:
      type: string
      description: Workspace type.
      example: PRODUCTION
      enum:
        - PRODUCTION
        - SANDBOX
      x-enumDescription:
        PRODUCTION: Production workspace.
        SANDBOX: Sandbox workspace.
    WorkspaceSearchResult:
      type: object
      description: Workspace search result.
      properties:
        id:
          $ref: '#/components/schemas/WorkspaceId'
        name:
          $ref: '#/components/schemas/WorkspaceName'
        type:
          $ref: '#/components/schemas/WorkspaceTypeEnum'
        organization:
          $ref: '#/components/schemas/OrganizationSearchResult'
        settings:
          $ref: '#/components/schemas/WorkspaceSettings'
        defaultWorkspace:
          $ref: '#/components/schemas/DefaultWorkspace'
    ApiKeySearchResult:
      type: object
      description: Searched API key result.
      properties:
        id:
          $ref: '#/components/schemas/ApiKeyId'
        name:
          $ref: '#/components/schemas/ApiKeyName'
        roles:
          type: array
          description: List of roles assigned to the API key.
          items:
            $ref: '#/components/schemas/ApiKeyRoleEnum'
    ConfigurationParam:
      type: object
      description: Configuration parameter.
      properties:
        id:
          $ref: '#/components/schemas/ConfigurationId'
    WorkspaceSettings:
      type: object
      description: Workspace settings.
      properties:
        dataMirrorSettings:
          $ref: '#/components/schemas/DataMirrorSettings'
        summaryMailSettings:
          $ref: '#/components/schemas/SummaryMailSettings'
    SummaryMailSettings:
      type: object
      description: Toggles the regular.
      properties:
        enabled:
          $ref: '#/components/schemas/SummaryMailToggle'
        frequency:
          $ref: '#/components/schemas/SummaryMailFrequency'
    SummaryMailSettingsUpdate:
      type: object
      description: Toggles the regular
      properties:
        enabled:
          $ref: '#/components/schemas/SummaryMailToggle'
        frequency:
          $ref: '#/components/schemas/SummaryMailFrequency'
    DataPoolAccessSettings:
      type: object
      description: Organizational settings to configure access to the CDQ Data Pool.
      properties:
        dataSourceSettings:
          type: array
          description: List of data source settings.
          items:
            $ref: '#/components/schemas/DataSourceSettings'
    OrganizationAdminSearchResult:
      type: object
      description: An organization administrator search result.
      properties:
        id:
          $ref: '#/components/schemas/OrganizationAdminId'
        userId:
          $ref: '#/components/schemas/UserId'
        userEmail:
          $ref: '#/components/schemas/UserEmail'
        firstName:
          $ref: '#/components/schemas/UserFirstName'
        lastName:
          $ref: '#/components/schemas/UserLastName'
        organizationId:
          $ref: '#/components/schemas/OrganizationId'
        organizationName:
          $ref: '#/components/schemas/OrganizationName'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
        deletedAt:
          $ref: '#/components/schemas/DeletedAt'
        deletedBy:
          $ref: '#/components/schemas/DeletedBy'
        deleted:
          $ref: '#/components/schemas/Deleted'
    OrganizationAdminId:
      type: string
      description: >-
        Technical ID of an organization administrator with which the admin can
        be removed.
      example: ae4d2a76-efe8-415c-8908-3fc142ffb032
    DataSourceSettingsUpdate:
      type: object
      description: |
        Organizational settings to configure access to a data source.
      properties:
        activationStatus:
          $ref: '#/components/schemas/DataSourceActivationStatus'
        termsAcceptanceStatus:
          $ref: '#/components/schemas/schemas-TermsAcceptanceStatus'
        credentials:
          type: array
          description: List of credentials.
          items:
            $ref: '#/components/schemas/DataSourceCredential'
    DataMirrorSettingsUpdate:
      type: object
      description: Configuration for the data mirror.
      properties:
        storage:
          $ref: '#/components/schemas/BusinessPartnerStorageUpdate'
    CheckPermissionResultStatus:
      type: string
      description: >
        * AUTHORIZED: The requestor is authorized for this resource *
        UNAUTHORIZED: The requestor is not authorized for this resource. Please
        check scopes and roles.
      example: AUTHORIZED
    Scope:
      type: object
      description: Scope of the permission.
      properties:
        technicalKey:
          $ref: '#/components/schemas/ScopeTechnicalKey'
    Role:
      type: object
      description: Role of the permission.
      properties:
        technicalKey:
          $ref: '#/components/schemas/RoleTechnicalKey'
    RateLimitQuotaUpsert:
      type: object
      description: Quota to upsert.
      required:
        - service
      properties:
        service:
          $ref: '#/components/schemas/RateLimitQuotaServiceUpsert'
        organization:
          $ref: '#/components/schemas/RateLimitQuotaOrganizationUpsert'
        workspace:
          $ref: '#/components/schemas/RateLimitQuotaWorkspaceUpsert'
        maxAmount:
          $ref: '#/components/schemas/QuotaAmount'
        reset:
          $ref: '#/components/schemas/QuotaReset'
    RateLimitQuotaOrganizationUpsert:
      type: object
      description: >
        Should remain empty for regular customer use cases (will throw 400 if
        provided)

        Available values:

        * `system` - applicable only for users with CDQ_ADMINISTRATOR.
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/OrganizationId'
    RateLimitQuotaWorkspaceUpsert:
      type: object
      description: Workspace to upsert.
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/WorkspaceId'
    RateLimitQuotaServiceUpsert:
      type: object
      description: Service to upsert.
      required:
        - technicalKey
      properties:
        technicalKey:
          $ref: '#/components/schemas/DataSourceTechnicalKey'
    ReadQuotasFeatureParam:
      type: string
      description: Features to be used during the reading of quotas.
      example: FETCH_QUOTA_USAGE
      enum:
        - FETCH_QUOTA_USAGE
        - DERIVE_STATUSES
        - FETCH_WORKSPACE_NAME
        - FETCH_WORKSPACE_QUOTAS
        - FETCH_SERVICE_DETAILS
        - FETCH_SYSTEM_QUOTAS
      x-enumDEscriptions:
        FETCH_QUOTA_USAGE: Fill usedQuota field. By default, turned on.
        DERIVE_STATUSES: >-
          Fill statuses of returned quotas. Can be activated only when
          FETCH_QUOTA_USAGE is activated. By default, turned off.
        FETCH_WORKSPACE_NAME: Fetch workspace name
        FETCH_WORKSPACE_QUOTAS: >-
          Fetch workspace quotas additionally when organizationId provided and
          workspaceId is not provided. By default, turned off.
        FETCH_SERVICE_DETAILS: Fetch service details like e.g. name. By default, turned off.
        FETCH_SYSTEM_QUOTAS: >-
          Fetch system quota. To be used by service usage api only (not UI). By
          default, turned off.
    RateLimitQuotaService:
      type: object
      description: Rate limit quota service.
      properties:
        name:
          $ref: '#/components/schemas/DataSourceName'
        shortName:
          type: string
          description: >
            For Data Sources, an Alei Prefix. For other sources, short version
            of a name.
          example: AT.FON
        technicalKey:
          $ref: '#/components/schemas/DataSourceTechnicalKey'
        countries:
          type: array
          description: List of countries.
          items:
            $ref: '#/components/schemas/RateLimitQuotaServiceCountry'
        quotasApplicable:
          type: boolean
          description: |
            If true, quotas are applicable for this service.
            If false, quotas are not applicable for this service.
          example: 'true'
    RateLimitQuotaServiceCountry:
      type: object
      description: Rate limit quota service country.
      properties:
        shortName:
          $ref: '#/components/schemas/CountryShortName'
    RateLimitQuotaOrganization:
      type: object
      description: Rate limit quota organization.
      properties:
        id:
          $ref: '#/components/schemas/OrganizationId'
    RateLimitQuotaWorkspace:
      type: object
      description: Rate limit quota workspace.
      properties:
        id:
          $ref: '#/components/schemas/WorkspaceId'
        name:
          $ref: '#/components/schemas/WorkspaceName'
    RateLimitQuotaServiceSearchResult:
      type: object
      description: Rate limit quota service search result.
      properties:
        service:
          $ref: '#/components/schemas/RateLimitQuotaService'
        quotas:
          type: array
          description: List of quotas.
          items:
            $ref: '#/components/schemas/RateLimitQuotaSearchResult'
    RateLimitQuotaSearchResult:
      type: object
      description: Rate limit quota search result.
      properties:
        organization:
          $ref: '#/components/schemas/RateLimitQuotaOrganization'
        workspace:
          $ref: '#/components/schemas/RateLimitQuotaWorkspace'
        usedQuota:
          $ref: '#/components/schemas/QuotaAmount'
        control:
          $ref: '#/components/schemas/QuotaControl'
        defaultQuota:
          $ref: '#/components/schemas/RateLimit'
        customQuota:
          $ref: '#/components/schemas/CustomRateLimit'
        effectiveQuota:
          $ref: '#/components/schemas/RateLimit'
        status:
          $ref: '#/components/schemas/RateLimitQuotaStatus'
        statusDetails:
          type: string
          description: >
            Available values:

            * `OK` - quota can still be used (green)

            * `FULL_ORGANIZATION_QUOTA_CONSUMED` - when in workspace quota is >
            0 and organization quota is consumed fully (orange)

            * `FULL_EFFECTIVE_QUOTA_CONSUMED` - when effective quota is > 0 and
            is consumed fully (orange)

            * `FULL_SYSTEM_QUOTA_CONSUMED` - when system quota is consumed fully
            (orange)

            * `DEACTIVATED_BY_QUOTA` - when custom quota of workspace or
            organization is 0 (red)

            * `DATA_SOURCE_DEACTIVATED` - when data source is disabled
            (globalSettings.dataPoolAccessSettings.dataSourceSettings[dataSource.technicalKey=service.technicalKey].activationStatus
            of organization) (red)


            For system quotas only OK and FULL_SYSTEM_QUOTA_CONSUMED are
            applicable.
          example: OK
    RateLimitQuotaStatus:
      type: string
      description: >
        Available values:

        * `OK` - when details is ok (green)

        * `WARNING` - `FULL_ORGANIZATION_QUOTA_CONSUMED` or
        `FULL_EFFECTIVE_QUOTA_CONSUMED` or `FULL_SYSTEM_QUOTA_CONSUMED` (orange)

        * `NOT_APPLICABLE` - `DEACTIVATED_BY_QUOTA` or `DATA_SOURCE_DEACTIVATED`
        (red)


        For system quotas only OK and NOT_APPLICABLE are applicable.
      example: OK
    CustomRateLimit:
      type: object
      description: Custom rate limit.
      allOf:
        - $ref: '#/components/schemas/RateLimit'
        - type: object
          description: Custom rate limit.
          properties:
            status:
              type: string
              description: >
                Available values:

                * `OK`

                * `OVER_DEFAULT_QUOTA` - when organization or workspace custom
                quota exceeds default quota when control=CDQ

                * `OVER_ORGANIZATION_QUOTA` - when workspace effective quota
                exceeds organization effective quota


                For system quota always OK.
              example: OK
    RateLimit:
      type: object
      description: Rate limit.
      properties:
        maxAmount:
          $ref: '#/components/schemas/QuotaAmount'
        reset:
          $ref: '#/components/schemas/QuotaReset'
    ProductPackagesSearchResult:
      type: object
      description: A product package search result.
      properties:
        id:
          $ref: '#/components/schemas/ProductPackageId'
        name:
          $ref: '#/components/schemas/ProductPackageName'
        description:
          $ref: '#/components/schemas/ProductPackageDescription'
        type:
          $ref: '#/components/schemas/ProductPackageType'
        apiScopes:
          type: array
          description: List of API scopes.
          items:
            $ref: '#/components/schemas/Scope'
        apps:
          type: array
          description: List of apps.
          items:
            $ref: '#/components/schemas/App'
    ProductPackageType:
      type: object
      description: A product package can be of type BASIC or ADD-ON.
      properties:
        name:
          $ref: '#/components/schemas/ProductPackageTypeName'
        technicalKey:
          $ref: '#/components/schemas/ProductPackageTypeTechnicalKey'
    App:
      type: object
      description: An app.
      properties:
        technicalKey:
          $ref: '#/components/schemas/AppTechnicalKey'
    TransactionFeaturesOn:
      description: |
        Features to be enabled. 
          * CREATE_TRANSACTION: Creates a new transaction and makes the current request a part of it. By default, turned off.
          * COMMIT_TRANSACTION: Commit transaction. By default, turned off.
        Do not use CREATE_TRANSACTION and COMMIT_TRANSACTION at the same time.
      type: array
      items:
        $ref: '#/components/schemas/TransactionFeatureParam'
    TransactionFeatureParam:
      type: string
      description: Feature used to control transaction process.
      example: CREATE_TRANSACTION
      enum:
        - CREATE_TRANSACTION
        - COMMIT_TRANSACTION
      x-enumDescriptions:
        CREATE_TRANSACTION: >-
          Creates a new transaction and makes the current request a part of it.
          By default, turned off.
        COMMIT_TRANSACTION: Commit transaction. By default, turned off.
    Status:
      type: object
      description: Details about status or error of a service.
      properties:
        code:
          $ref: '#/components/schemas/HttpStatusCode'
        technicalKey:
          $ref: '#/components/schemas/HttpStatusTechnicalKey'
        details:
          type: array
          description: List of details about the status or error.
          items:
            $ref: '#/components/schemas/StatusDetails'
        path:
          $ref: '#/components/schemas/HttpPath'
        timestamp:
          $ref: '#/components/schemas/StatusTimestamp'
    StatusDetails:
      type: object
      description: Details about this status or error.
      required:
        - id
        - message
      properties:
        id:
          $ref: '#/components/schemas/StatusDetailsMessageId'
        message:
          $ref: '#/components/schemas/StatusDetailsMessage'
        technicalKey:
          $ref: '#/components/schemas/StatusDetailsTechnicalKey'
        jsonPath:
          $ref: '#/components/schemas/JsonPath'
        jsonRecord:
          $ref: '#/components/schemas/JsonObject'
    WorkspaceId:
      type: string
      description: Uniquely identifying ID of the workspace.
      example: c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4
    ApiKeyName:
      type: string
      description: Display name of the API key.
      example: SAP ERP
    ClientId:
      type: string
      description: Uniquely identifying ID of the client.
      example: 12345678-1234-5678-1234-567812345678
    ClientSecret:
      type: string
      description: Secret for the client credentials.
      example: 5eg879873sp0f
    ApiKeyId:
      type: string
      description: Uniquely identifying ID of the API key.
      example: '12234324324324'
    CreatedBy:
      type: string
      description: Creator of a resource.
      example: '76248934691294444'
    CreatedAt:
      type: string
      description: Date of creation (ISO 8601-compliant).
      example: '2025-08-29T09:46:58Z'
    DeletedAt:
      type: string
      description: Date of deletion (ISO 8601-compliant).
      example: '2025-08-29T09:46:58Z'
    DeletedBy:
      type: string
      description: Id of identity which deleted a resource.
      example: '76248934691294444'
    OrganizationName:
      type: string
      description: Name of the organization.
      example: Adidas AG
    StartAfter:
      type: string
      description: The ID which is used to read the page.
      example: '5712566172571652'
    NextStartAfter:
      type: string
      description: Provides a value to be used as a startAfter in next page request.
      example: '5712566172571652'
    PageTotal:
      description: Total number of items which can be paged.
      example: '67'
      type: integer
    OrganizationId:
      type: string
      description: Uniquely identifying ID of the organization.
      example: cdq_monitor
    ModifiedAt:
      type: string
      description: Date of modification (ISO 8601-compliant).
      example: '2025-08-29T09:46:58Z'
    ModifiedBy:
      type: string
      description: User or Client UUID which modified the resource.
      example: '76248934691294444'
    Page:
      type: integer
      description: Current page number.
      example: '1'
      default: 0
      minimum: 0
    PageSize:
      type: integer
      description: Number of items per page.
      example: '100'
      default: 10
      minimum: 1
      maximum: 1000
    DataSourceUrl:
      type: string
      description: Documentation of the data source in the CDQ Wiki.
      example: https://meta.cdq.com/Data_source/BR.RF
    DataSourceName:
      type: string
      description: Name of the data source.
      example: Receita Federal Brazil
    DataSourceTechnicalKey:
      type: string
      description: Technical key of the data source.
      example: BR_RF
    schemas-DataSource:
      type: object
      description: Data Source of the Data Pool.
      properties:
        url:
          $ref: '#/components/schemas/DataSourceUrl'
        name:
          $ref: '#/components/schemas/DataSourceName'
        technicalKey:
          $ref: '#/components/schemas/DataSourceTechnicalKey'
    DataSourceActivationStatus:
      type: string
      description: Whether an organization has activated a data source.
      example: ACTIVE
      default: INACTIVE
      enum:
        - ACTIVE
        - INACTIVE
      x-enumDescriptions:
        ACTIVE: The data source is activated for the organization.
        INACTIVE: The data source is not activated for the organization.
    ActivatedAt:
      type: string
      description: The date when a data source was activated by a user of an organization.
      example: '2025-08-29T09:46:58Z'
    ActivatedBy:
      type: string
      description: The user ID of the user who activated a data source.
      example: tom.sawyer@twain.com
    schemas-TermsAcceptanceStatus:
      type: string
      description: Whether an organization has accepted the terms of use of a data source.
      example: ACCEPTED
      default: NOT_ACCEPTED
      enum:
        - ACCEPTED
        - NOT_ACCEPTED
      x-enumDescriptions:
        ACCEPTED: The terms of use of the data source are accepted by the organization.
        NOT_ACCEPTED: >-
          The terms of use of the data source are not accepted by the
          organization.
    TermsAcceptedAt:
      type: string
      description: >-
        The date when a user of an organization accepted the terms of use of a
        data source.
      example: '2025-08-29T09:46:58Z'
    TermsAcceptedBy:
      type: string
      description: The user ID of the user who accepted the terms of use of a data source.
      example: huckleberry.finn@twain.com
    schemas-CredentialType:
      deprecated: true
      type: string
      description: Type of credential. Use DataSourceCredentialType instead
      example: AT.FON.TID
    DataSourceCredentialTechnicalKey:
      type: string
      description: Type of a generic credential value
      example: USERNAME
    UserEmail:
      type: string
      description: Email address of a user.
      example: info@cdq.ch
    RequestorId:
      type: string
      description: Client or User ID.
      example: 3425457z56756
    ResourceId:
      type: string
      description: ID of the resource.
      example: '89453938475483975398'
    ResourceTypeTechnicalKey:
      type: string
      description: Technical key of the resource type.
      example: STORAGES
    ScopeTechnicalKey:
      type: string
      description: Technical key of a scope.
      example: WORKSPACE:CREATE
    RoleTechnicalKey:
      type: string
      description: Technical key of role.
      example: CDQ_ADMINISTRATOR
    WorkspaceName:
      type: string
      description: Display name of the workspace.
      example: This is a workspace.
    Deleted:
      type: boolean
      description: When true means a resource is deleted.
      example: 'true'
    ConfigurationId:
      type: string
      description: Uniquely identifies a configuration.
      example: c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4
    BusinessPartnerStorageId:
      type: string
      description: Unique identifier of the Storage.
      example: 72d6900fce6b326088f5d9d91049e3e6
    SummaryMailToggle:
      type: boolean
      description: Toggles the regular summary mail.
      default: 'false'
      example: 'true'
    SummaryMailFrequency:
      type: string
      description: Summary mail frequency.
      example: BI-WEEKLY
    UserId:
      type: string
      description: Unique ID of a user.
      example: johndoe
    UserFirstName:
      type: string
      description: First name of a user.
      example: John
    UserLastName:
      type: string
      description: Last name of a user.
      example: Doe
    CredentialUserName:
      type: string
      description: Username for a credential.
      example: user
    CredentialPassword:
      type: string
      description: Password for a credential.
      example: password
    CredentialBaseUrl:
      type: string
      description: Base URL for an authorization.
      example: https://api.cdq.com/data-exchange/rest
    CountryShortName:
      type: string
      description: Country code (ISO 3166-1 alpha-2).
      example: CH
    schemas-DataCurationRuleAddressCurationLevelThreshold:
      type: string
      description: >-
        Defines threshold for address found in external source like HERE above
        which it is consider as good. Range 0..1.
      example: '0.5'
    CharacterSetTechnicalKey:
      type: string
      description: >-
        Technical key of character set. Supported character sets can be found
        [here](https://meta.cdq.com/Address/version/character_set).
      example: INTERNATIONAL
    BusinessPartnerCurationProfile:
      type: string
      description: Profile for curation.
      example: BUSINESS_PARTNER_ONLY
    DataCurationRuleFeature:
      type: string
      description: Defines the feature for a rule.
      example: N/A
    AddressDataSourceTechnicalKey:
      type: string
      description: Technical key for Address Data Source.
      example: HERE
    AddressDataSourceThreshold:
      type: number
      description: >-
        Threshold for the address data source. The threshold is a value between
        0.0 and 1.0.
      format: double
      minimum: 0
      maximum: 1
      default: '0.0'
      example: '0.4'
    AddressDataSource:
      type: object
      description: Data source for curation.
      properties:
        technicalKey:
          $ref: '#/components/schemas/AddressDataSourceTechnicalKey'
        threshold:
          $ref: '#/components/schemas/AddressDataSourceThreshold'
    AddressDataSources:
      type: object
      description: >-
        Preferred data sources for curation. Default PrimaryAddressDataSource is
        HERE. Default SecondaryAddressDataSource is CDQ.
      properties:
        primaryAddressDataSource:
          $ref: '#/components/schemas/AddressDataSource'
        secondaryAddressDataSources:
          type: array
          items:
            $ref: '#/components/schemas/AddressDataSource'
    schemas-InputAddressConcept:
      type: string
      description: Defines address concept.
      example: POST_CODE
    UserFullName:
      type: string
      description: Full name of a user.
      example: John Doe
    UserPhone:
      type: string
      description: Phone number of a user.
      example: +41 71 544 10 36
    RoleId:
      type: string
      description: Uniquely identifying ID of the organization.
      example: 12345678-1234-5678-1234-567812345678
    ApiErrorTimestamp:
      type: string
      deprecated: true
      description: ISO 8601 representation of the timestamp.
      example: '2025-08-29T09:46:58Z'
    ApiErrorMessage:
      type: string
      deprecated: true
      description: Details about the error.
      example: This user is not allowed to access this service.
    HttpError:
      type: string
      description: RFC 7231 error which belongs to the status code.
      example: BAD_REQUEST
      deprecated: true
    HttpPath:
      type: string
      description: Requested path which caused this error.
      example: /v2/businesspartners/lookup
    HttpStatus:
      type: integer
      description: RFC 7231 status code for this error.
      example: '400'
      deprecated: true
    UserResetPassword:
      type: boolean
      description: Flag indicating whether a user has to reset his password.
      example: 'true'
    UserPasswordExpires:
      type: string
      description: Date when the password expires.
      example: '2025-08-29T09:46:58Z'
    QuotaAmount:
      type: integer
      format: int64
      description: Defines the amount of the quota.
      example: '20000'
    QuotaControl:
      type: string
      description: Defines who is able to maintain this quota.
      example: CLIENT
    QuotaReset:
      type: string
      description: Defines after which time interval to reset the amount of the quota.
      example: WEEK
    schemas-Limit:
      type: integer
      description: Number of items per page.
      example: '100'
    ConfigurationName:
      type: string
      description: Display name for a configuration.
      example: Client configuration.
    ProductPackageId:
      type: string
      description: Unique identifier for the product package.
      example: 6284ff33-797b-4df6-a76c-ca80766895fa
    ProductPackageName:
      type: string
      description: Name of the product package.
      example: Silver
    ProductPackageDescription:
      type: string
      description: Description of the product package.
      example: The best product in the world.
    ProductPackageTypeName:
      type: string
      description: Name of the product package type.
      example: Basic Package
    ProductPackageTypeTechnicalKey:
      type: string
      description: Technical key of the product package type.
      example: BASIC
    AppTechnicalKey:
      type: string
      description: Technical Key of an app.
      example: FIRST_TIME_RIGHT_APP
    DataSourcePrefix:
      type: string
      description: Identifies external Data Source.
      example: VIES
    HttpStatusCode:
      type: integer
      description: RFC 7231 status code for this error.
      example: '400'
    HttpStatusTechnicalKey:
      type: string
      description: Technical key describing the status or error
      example: OK
    StatusDetailsMessageId:
      type: integer
      description: 9-digit code which is uniquely identifying a message
      example: 200000004
    StatusDetailsMessage:
      type: string
      description: Human-readable message which may also be presented in user interface.
      example: Business Partner Name is mandatory.
    StatusDetailsTechnicalKey:
      type: string
      description: Technical key to uniquely identify a message.
      example: JOB_FINISHED
    JsonPath:
      type: string
      description: JSONPath as specified by the IETF standard
      example: $.businessPartner.names[0].value
    JsonObject:
      type: string
      description: Object provided in plain JSON format.
      example: '{ "key" : "value"}'
      additionalProperties: true
    StatusTimestamp:
      type: string
      description: ISO 8601 representation of the timestamp.
      example: '2025-08-29T09:46:58Z'
