TMF629 Customer Management

The Customer Management API provides a consistent interface for managing customer accounts, customer hierarchy, and customer engagement across telecom BSS systems, supporting B2C and B2B customer lifecycle operations.

OpenAPI Specification

tm-forum-tmf629-customer-management-openapi.yaml Raw ↑
openapi: 3.0.1
info:
  title: Customer Management
  description: '**TMF API Reference : TMF - 629 Customer Management**'
  version: 5.0.1
servers:
- url: '{apiRoot}/tmf-api/customer/v5/'
  variables:
    apiRoot:
      default: 'https://serverRoot'
      enum:
      - 'https://serverRoot'
tags:
- name: customer
  description: Operations for Customer Resource
- name: notification listener
  description: Notifications for Resource Lifecycle and event notifications
- name: events subscription
  description: Endpoints to register and terminate an Event Listener
paths:
  /customer:
    get:
      tags:
      - customer
      summary: TM Forum List or Find Customer Objects
      description: List or find Customer objects
      operationId: listCustomer
      parameters:
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/200CustomerArray'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    post:
      tags:
      - customer
      summary: TM Forum Creates a Customer
      description: This operation creates a Customer entity.
      operationId: createCustomer
      parameters:
      - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/Customer_FVO'
      responses:
        '201':
          $ref: '#/components/responses/201Customer'
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  '/customer/{id}':
    get:
      tags:
      - customer
      summary: TM Forum Retrieves a Customer by ID
      description: >-
        This operation retrieves a Customer entity. Attribute selection enabled for all first level
        attributes.
      operationId: retrieveCustomer
      parameters:
      - $ref: '#/components/parameters/Id'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200Customer_Get'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    patch:
      tags:
      - customer
      summary: TM Forum Updates Partially a Customer
      description: This operation updates partially a Customer entity.
      operationId: patchCustomer
      parameters:
      - $ref: '#/components/parameters/Id'
      - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/Customer_MVO'
      responses:
        '200':
          $ref: '#/components/responses/200Customer_Patch'
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    delete:
      tags:
      - customer
      summary: TM Forum Deletes a Customer
      description: This operation deletes a Customer entity.
      operationId: deleteCustomer
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /hub:
    post:
      operationId: createHub
      summary: TM Forum Create a Subscription (hub) to Receive Events
      description: Sets the communication endpoint to receive Events.
      tags:
      - events subscription
      requestBody:
        $ref: '#/components/requestBodies/Hub_FVO'
      responses:
        '201':
          $ref: '#/components/responses/Hub'
        default:
          $ref: '#/components/responses/Error'
  '/hub/{id}':
    get:
      operationId: hubGet
      summary: TM Forum Retrieve a Subscription (hub)
      description: ''
      tags:
      - events subscription
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '200':
          $ref: '#/components/responses/Hub'
        default:
          $ref: '#/components/responses/Error'
    delete:
      operationId: hubDelete
      summary: TM Forum Remove a Subscription (hub) to Receive Events
      description: ''
      tags:
      - events subscription
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: Deleted
        default:
          $ref: '#/components/responses/Error'
  /listener/customerAttributeValueChangeEvent:
    post:
      tags:
      - notification listener
      summary: TM Forum Client Listener for Entity CustomerAttributeValueChangeEvent
      description: >-
        Example of a client listener for receiving the notification
        CustomerAttributeValueChangeEvent
      operationId: customerAttributeValueChangeEvent
      requestBody:
        $ref: '#/components/requestBodies/CustomerAttributeValueChangeEvent'
      responses:
        '204':
          description: Notified
        default:
          $ref: '#/components/responses/Error'
  /listener/customerCreateEvent:
    post:
      tags:
      - notification listener
      summary: TM Forum Client Listener for Entity CustomerCreateEvent
      description: Example of a client listener for receiving the notification CustomerCreateEvent
      operationId: customerCreateEvent
      requestBody:
        $ref: '#/components/requestBodies/CustomerCreateEvent'
      responses:
        '204':
          description: Notified
        default:
          $ref: '#/components/responses/Error'
  /listener/customerDeleteEvent:
    post:
      tags:
      - notification listener
      summary: TM Forum Client Listener for Entity CustomerDeleteEvent
      description: Example of a client listener for receiving the notification CustomerDeleteEvent
      operationId: customerDeleteEvent
      requestBody:
        $ref: '#/components/requestBodies/CustomerDeleteEvent'
      responses:
        '204':
          description: Notified
        default:
          $ref: '#/components/responses/Error'
  /listener/customerStateChangeEvent:
    post:
      tags:
      - notification listener
      summary: TM Forum Client Listener for Entity CustomerStateChangeEvent
      description: Example of a client listener for receiving the notification CustomerStateChangeEvent
      operationId: customerStateChangeEvent
      requestBody:
        $ref: '#/components/requestBodies/CustomerStateChangeEvent'
      responses:
        '204':
          description: Notified
        default:
          $ref: '#/components/responses/Error'
components:
  schemas:
    AccountRef:
      type: object
      description: Account reference. A account may be a party account or a financial account.
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          AccountRef: '#/components/schemas/AccountRef'
    AccountRef_FVO:
      type: object
      description: Account reference. A account may be a party account or a financial account.
      allOf:
      - $ref: '#/components/schemas/EntityRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          AccountRef: '#/components/schemas/AccountRef_FVO'
    AccountRef_MVO:
      type: object
      description: Account reference. A account may be a party account or a financial account.
      allOf:
      - $ref: '#/components/schemas/EntityRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          AccountRef: '#/components/schemas/AccountRef_MVO'
    Addressable:
      type: object
      description: Base schema for addressable entities
      properties:
        href:
          type: string
          description: Hyperlink reference
        id:
          type: string
          description: unique identifier
    Addressable_FVO:
      type: object
      description: Base schema for addressable entities
    Addressable_MVO:
      type: object
      description: Base schema for addressable entities
    AgreementRef:
      type: object
      description: >-
        Agreement reference. An agreement represents a contract or arrangement, either written or
        verbal and sometimes enforceable by law, such as a service level agreement or a customer
        price agreement. An agreement involves a number of other business entities, such as
        products, services, and resources and/or their specifications.
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          AgreementRef: '#/components/schemas/AgreementRef'
    AgreementRef_FVO:
      type: object
      description: >-
        Agreement reference. An agreement represents a contract or arrangement, either written or
        verbal and sometimes enforceable by law, such as a service level agreement or a customer
        price agreement. An agreement involves a number of other business entities, such as
        products, services, and resources and/or their specifications.
      allOf:
      - $ref: '#/components/schemas/EntityRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          AgreementRef: '#/components/schemas/AgreementRef_FVO'
    AgreementRef_MVO:
      type: object
      description: >-
        Agreement reference. An agreement represents a contract or arrangement, either written or
        verbal and sometimes enforceable by law, such as a service level agreement or a customer
        price agreement. An agreement involves a number of other business entities, such as
        products, services, and resources and/or their specifications.
      allOf:
      - $ref: '#/components/schemas/EntityRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          AgreementRef: '#/components/schemas/AgreementRef_MVO'
    Attachment:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - type: object
        description: >-
          Complements the description of an element (for instance a product) through video,
          pictures...
        properties:
          name:
            type: string
            description: The name of the attachment
          description:
            type: string
            description: A narrative text describing the content of the attachment
            example: Photograph of the Product
          url:
            type: string
            description: 'Uniform Resource Locator, is a web page address (a subset of URI)'
            example: 'https://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f'
          content:
            type: string
            format: base64
            description: 'The actual contents of the attachment object, if embedded, encoded as base64'
          size:
            $ref: '#/components/schemas/Quantity'
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          attachmentType:
            type: string
            description: >-
              a business characterization of the purpose of the attachment, for example logo,
              instructionManual, contractCopy
          mimeType:
            type: string
            description: a technical characterization of the attachment content format using IETF Mime Types
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment'
    AttachmentRef:
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      - type: object
        description: >-
          Attachment reference. An attachment complements the description of an element (for
          instance a product) through video, pictures
        properties:
          description:
            type: string
            description: A narrative text describing the content of the attachment
          url:
            description: Link to the attachment media/content
            type: string
      discriminator:
        propertyName: '@type'
        mapping:
          AttachmentRef: '#/components/schemas/AttachmentRef'
    AttachmentRefOrValue:
      type: object
      description: >-
        The polymorphic attributes @type, @schemaLocation & @referredType are related to the
        Attachment entity and not the AttachmentRefOrValue class itself
      oneOf:
      - $ref: '#/components/schemas/Attachment'
      - $ref: '#/components/schemas/AttachmentRef'
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment'
          AttachmentRef: '#/components/schemas/AttachmentRef'
    AttachmentRefOrValue_FVO:
      type: object
      description: >-
        The polymorphic attributes @type, @schemaLocation & @referredType are related to the
        Attachment entity and not the AttachmentRefOrValue class itself
      oneOf:
      - $ref: '#/components/schemas/Attachment_FVO'
      - $ref: '#/components/schemas/AttachmentRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment_FVO'
          AttachmentRef: '#/components/schemas/AttachmentRef_FVO'
    AttachmentRefOrValue_MVO:
      type: object
      description: >-
        The polymorphic attributes @type, @schemaLocation & @referredType are related to the
        Attachment entity and not the AttachmentRefOrValue class itself
      oneOf:
      - $ref: '#/components/schemas/Attachment_MVO'
      - $ref: '#/components/schemas/AttachmentRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment_MVO'
          AttachmentRef: '#/components/schemas/AttachmentRef_MVO'
    AttachmentRef_FVO:
      allOf:
      - $ref: '#/components/schemas/EntityRef_FVO'
      - type: object
        description: >-
          Attachment reference. An attachment complements the description of an element (for
          instance a product) through video, pictures
        properties:
          description:
            type: string
            description: A narrative text describing the content of the attachment
          url:
            description: Link to the attachment media/content
            type: string
      discriminator:
        propertyName: '@type'
        mapping:
          AttachmentRef: '#/components/schemas/AttachmentRef_FVO'
    AttachmentRef_MVO:
      allOf:
      - $ref: '#/components/schemas/EntityRef_MVO'
      - type: object
        description: >-
          Attachment reference. An attachment complements the description of an element (for
          instance a product) through video, pictures
        properties:
          description:
            type: string
            description: A narrative text describing the content of the attachment
          url:
            description: Link to the attachment media/content
            type: string
      discriminator:
        propertyName: '@type'
        mapping:
          AttachmentRef: '#/components/schemas/AttachmentRef_MVO'
    Attachment_FVO:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - type: object
        description: >-
          Complements the description of an element (for instance a product) through video,
          pictures...
        properties:
          name:
            type: string
            description: The name of the attachment
          description:
            type: string
            description: A narrative text describing the content of the attachment
            example: Photograph of the Product
          url:
            type: string
            description: 'Uniform Resource Locator, is a web page address (a subset of URI)'
            example: 'https://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f'
          content:
            type: string
            format: base64
            description: 'The actual contents of the attachment object, if embedded, encoded as base64'
          size:
            $ref: '#/components/schemas/Quantity'
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          attachmentType:
            type: string
            description: >-
              a business characterization of the purpose of the attachment, for example logo,
              instructionManual, contractCopy
          mimeType:
            type: string
            description: a technical characterization of the attachment content format using IETF Mime Types
        required:
        - attachmentType
        - mimeType
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment_FVO'
    Attachment_MVO:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - type: object
        description: >-
          Complements the description of an element (for instance a product) through video,
          pictures...
        properties:
          name:
            type: string
            description: The name of the attachment
          description:
            type: string
            description: A narrative text describing the content of the attachment
            example: Photograph of the Product
          url:
            type: string
            description: 'Uniform Resource Locator, is a web page address (a subset of URI)'
            example: 'https://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f'
          content:
            type: string
            format: base64
            description: 'The actual contents of the attachment object, if embedded, encoded as base64'
          size:
            $ref: '#/components/schemas/Quantity'
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          attachmentType:
            type: string
            description: >-
              a business characterization of the purpose of the attachment, for example logo,
              instructionManual, contractCopy
          mimeType:
            type: string
            description: a technical characterization of the attachment content format using IETF Mime Types
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment_MVO'
    BaseEvent:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - type: object
        description: Base event with common attributes.
        properties:
          event:
            type: object
            description: The event linked to the involved resource object
          eventId:
            type: string
            description: The identifier of the notification.
          eventTime:
            type: string
            format: date-time
            description: Time of the event occurrence.
          eventType:
            type: string
            description: The type of the notification.
          correlationId:
            type: string
            description: The correlation id for this event.
          domain:
            type: string
            description: The domain of the event.
          title:
            type: string
            description: The title of the event.
          description:
            type: string
            description: An explanatory of the event.
          priority:
            type: string
            description: A priority.
          timeOcurred:
            type: string
            format: date-time
            description: The time the event occurred.
      discriminator:
        propertyName: '@type'
        mapping:
          BaseEvent: '#/components/schemas/BaseEvent'
    BooleanArrayCharacteristic:
      allOf:
      - $ref: '#/components/schemas/Characteristic'
      - type: object
        description: A characteristic which value is an array of Boolean(s).
        properties:
          value:
            type: array
            description: A characteristic which value is an array of Boolean(s).
            items:
              type: boolean
              description: Characteristic item boolean value
    BooleanArrayCharacteristic_FVO:
      allOf:
      - $ref: '#/components/schemas/Characteristic_FVO'
      - type: object
        description: A characteristic which value is an array of Boolean(s).
        properties:
          value:
            type: array
            description: A characteristic which value is an array of Boolean(s).
            items:
              type: boolean
              description: Characteristic item boolean value
        required:
        - value
    BooleanArrayCharacteristic_MVO:
      allOf:
      - $ref: '#/components/schemas/Characteristic_MVO'
      - type: object
        description: A characteristic which value is an array of Boolean(s).
        properties:
          value:
            type: array
            description: A characteristic which value is an array of Boolean(s).
            items:
              type: boolean
              description: Characteristic item boolean value
    BooleanCharacteristic:
      allOf:
      - $ref: '#/components/schemas/Characteristic'
      - type: object
        description: A characteristic which value is a Boolean.
        properties:
          value:
            type: boolean
            description: Value of the characteristic
    BooleanCharacteristic_FVO:
      allOf:
      - $ref: '#/components/schemas/Characteristic_FVO'
      - type: object
        description: A characteristic which value is a Boolean.
        properties:
          value:
            type: boolean
            description: Value of the characteristic
        required:
        - value
    BooleanCharacteristic_MVO:
      allOf:
      - $ref: '#/components/schemas/Characteristic_MVO'
      - type: object
        description: A characteristic which value is a Boolean.
        properties:
          value:
            type: boolean
            description: Value of the characteristic
    BusinessPartner:
      type: object
      description: 'When business partner is the BusinessPartner '
      allOf:
      - $ref: '#/components/schemas/PartyRole'
    BusinessPartner_FVO:
      type: object
      description: 'When business partner is the BusinessPartner '
      allOf:
      - $ref: '#/components/schemas/PartyRole_FVO'
    BusinessPartner_MVO:
      type: object
      description: 'When business partner is the BusinessPartner '
      allOf:
      - $ref: '#/components/schemas/PartyRole_MVO'
    Characteristic:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: >-
          Describes a given characteristic of an object or entity through a name/value pair. This
          is an abstract base class, the actual value is in one of the strongly-typed subclasses :
          StringCharacteristic, ObjectCharacteristic, FloatCharacteristic, BooleanCharacteristic,
          NumberCharacteristic, IntegerCharacteristic, StringArrayCharacteristic,
          ObjectArrayCharacteristic, BooleanArrayCharacteristic, NumberArrayCharacteristic,
          IntegerArrayCharacteristic...
        properties:
          id:
            type: string
            description: Unique identifier of the characteristic
          name:
            type: string
            description: Name of the characteristic
          valueType:
            type: string
            description: Data type of the value of the characteristic
          characteristicRelationship:
            type: array
            description: Collection of characteristic relationships
            items:
              $ref: '#/components/schemas/CharacteristicRelationship'
      discriminator:
        propertyName: '@type'
        mapping:
          Characteristic: '#/components/schemas/Characteristic'
          BooleanArrayCharacteristic: '#/components/schemas/BooleanArrayCharacteristic'
          BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic'
          FloatCharacteristic: '#/components/schemas/FloatCharacteristic'
          IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic'
          IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic'
          NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic'
          NumberCharacteristic: '#/components/schemas/NumberCharacteristic'
          ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic'
          ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic'
          StringArrayCharacteristic: '#/components/schemas/StringArrayCharacteristic'
          StringCharacteristic: '#/components/schemas/StringCharacteristic'
    CharacteristicRelationship:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: Another Characteristic that is related to the current Characteristic;
        properties:
          id:
            type: string
            description: Unique identifier of the characteristic
          relationshipType:
            type: string
            description: The type of relationship
      discriminator:
        propertyName: '@type'
        mapping:
          CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship'
    CharacteristicRelationship_FVO:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: Another Characteristic that is related to the current Characteristic;
        properties:
          id:
            type: string
            description: Unique identifier of the characteristic
          relationshipType:
            type: string
            description: The type of relationship
        required:
        - id
        - relationshipType
      discriminator:
        propertyName: '@type'
        mapping:
          CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_FVO'
    CharacteristicRelationship_MVO:
      allOf:
      - $ref: '#/components/schemas/Extensible_MVO'
      - type: object
        description: Another Characteristic that is related to the current Characteristic;
        properties:
          id:
            type: string
            description: Unique identifier of the characteristic
          relationshipType:
            type: string
            description: The type of relationship
      discriminator:
        propertyName: '@type'
        mapping:
          CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_MVO'
    Characteristic_FVO:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: >-
          Describes a given characteristic of an object or entity through a name/value pair. This
          is an abstract base class, the actual value is in one of the strongly-typed subclasses :
          StringCharacteristic, ObjectCharacteristic, FloatCharacteristic, BooleanCharacteristic,
          NumberCharacteristic, IntegerCharacteristic, StringArrayCharacteristic,
          ObjectArrayCharacteristic, BooleanArrayCharacteristic, NumberArrayCharacteristic,
          IntegerArrayCharacteristic...
        properties:
          name:
            type: string
            description: Name of the characteristic
          valueType:
            type: string
            description: Data type of the value of the characteristic
          characteristicRelationship:
            type: array
            description: Collection of characteristic relationships
            items:
              $ref: '#/components/schemas/CharacteristicRelationship_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Characteristic: '#/components/schemas/Characteristic_FVO'
          BooleanArrayCharacteristic: '#/components/schemas/BooleanArrayCharacteristic_FVO'
          BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic_FVO'
          FloatCharacteristic: '#/components/schemas/FloatCharacteristic_FVO'
          IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic_FVO'
          IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic_FVO'
          NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic_FVO'
          NumberCharacteristic: '#/components/schemas/NumberCharacteristic_FVO'
          ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic_FVO'
          ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic_FVO'
          StringArrayCharacteristic: '#/components/schemas/StringArrayCharacteristic_FVO'
          StringCharacteristic: '#/components/schemas/StringCharacteristic_FVO'
    Characteristic_MVO:
      allOf:
      - $ref: '#/components/schemas/Extensible_MVO'
      - type: object
        description: >-
          Describes a given characteristic of an object or entity through a name/value pair. This
          is an abstract base class, the actual value is in one of the strongly-typed subclasses :
          StringCharacteristic, ObjectCharacteristic, FloatCharacteristic, BooleanCharacteristic,
          NumberCharacteristic, IntegerCharacteristic, StringArrayCharacteristic,
          ObjectArrayCharacteristic, BooleanArrayCharacteristic, NumberArrayCharacteristic,
          IntegerArrayCharacteristic...
        properties:
          name:
            type: string
            description: Name of the characteristic
          valueType:
            type: string
            description: Data type of the value of the characteristic
          characteristicRelationship:
            type: array
            description: Collection of characteristic relationships
            items:
              $ref: '#/components/schemas/CharacteristicRelationship_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Characteristic: '#/components/schemas/Characteristic_MVO'
          BooleanArrayCharacteristic: '#/components/schemas/BooleanArrayCharacteristic_MVO'
          BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic_MVO'
          FloatCharacteristic: '#/components/schemas/FloatCharacteristic_MVO'
          IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic_MVO'
          IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic_MVO'
          NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic_MVO'
          NumberCharacteristic: '#/components/schemas/NumberCharacteristic_MVO'
          ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic_MVO'
          ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic_MVO'
          StringArrayCharacteristic: '#

# --- truncated at 32 KB (177 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-tmf629-customer-management-openapi.yaml