openapi: 3.0.0
servers:
  - description: Mock server
    url: https://api-portal.complai.com/_mock/complai-api
info:
  version: 1.0.0
  title: Complai API
  description: This is Complai REST API documentation
security:
  - bearer:
      - read
      - write
tags:
  - name: Base Assets
    description: Operations related to base assets
  - name: Base Assets by external ids
    description: Operations by external ids related to base assets
  - name: Assets
    description: Operations related to assets
  - name: Assets by external ids
    description: Operations by external ids related to assets
  - name: Manufacturers
    description: Operations related to manufacturers
  - name: Manufacturers by external ids
    description: Operations by external ids related to manufacturers
paths:
  /api/v2/base-assets/search:
    post:
      operationId: BaseAssetsController_searchAssets
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridPagingRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Paginated'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/BaseAsset'
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets
      security:
        - bearer: []
  /api/v2/base-assets/{baseAssetId}:
    get:
      operationId: BaseAssetsController_getAsset
      parameters:
        - name: baseAssetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAsset'
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets
      security:
        - bearer: []
    put:
      operationId: BaseAssetsController_updateBaseAsset
      parameters:
        - name: baseAssetId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BaseAssetUpdateDto'
      responses:
        '204':
          description: ''
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets
      security:
        - bearer: []
    delete:
      operationId: BaseAssetsController_deleteAsset
      parameters:
        - name: baseAssetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets
      security:
        - bearer: []
  /api/v2/base-assets/external/{baseAssetId}:
    get:
      operationId: BaseAssetsController_external_getAsset
      parameters:
        - name: baseAssetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAsset'
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets by external ids
      security:
        - bearer: []
    put:
      operationId: BaseAssetsController_external_updateBaseAsset
      parameters:
        - name: baseAssetId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BaseAssetUpdateDto'
      responses:
        '204':
          description: ''
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets by external ids
      security:
        - bearer: []
    delete:
      operationId: BaseAssetsController_external_deleteAsset
      parameters:
        - name: baseAssetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets by external ids
      security:
        - bearer: []
  /api/v2/base-assets:
    post:
      operationId: BaseAssetsController_createBaseAsset
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BaseAssetCreateDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseAsset'
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets
      security:
        - bearer: []
  /api/v2/base-assets/upsert/async:
    post:
      operationId: BaseAssetsController_upsertBaseAssetsAsync
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BaseAssetsUpsertDto'
      responses:
        '201':
          description: ''
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Base Assets
      security:
        - bearer: []
  /api/v2/assets-registry/search:
    post:
      operationId: AssetRegistryController_searchAssets
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridPagingRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Paginated'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Asset'
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/{assetId}:
    get:
      operationId: AssetRegistryController_getAsset
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
    put:
      operationId: AssetRegistryController_updateAsset
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
    delete:
      operationId: AssetRegistryController_deleteAsset
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/external/{assetId}:
    get:
      operationId: AssetRegistryController_external_getAsset
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets by external ids
      security:
        - bearer: []
    put:
      operationId: AssetRegistryController_external_updateAsset
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets by external ids
      security:
        - bearer: []
    delete:
      operationId: AssetRegistryController_external_deleteAsset
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets by external ids
      security:
        - bearer: []
  /api/v2/assets-registry:
    post:
      operationId: AssetRegistryController_createAssets
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetCreateDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
    delete:
      operationId: AssetRegistryController_deleteAssets
      parameters:
        - name: cleanAuditRooms
          required: true
          in: query
          schema:
            type: boolean
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/external:
    post:
      operationId: AssetRegistryController_external_createAssets
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetCreateDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets by external ids
      security:
        - bearer: []
  /api/v2/assets-registry/publish:
    put:
      operationId: AssetRegistryController_publishAsset
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrcodeBulkRequestDto'
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/unpublish:
    put:
      operationId: AssetRegistryController_unpublishAsset
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QrcodeBulkRequestDto'
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/{assetId}/inventory-status:
    put:
      operationId: AssetRegistryController_updateAssetInventoryStatus
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetInventoryDto'
      responses:
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/external/{assetId}/inventory-status:
    put:
      operationId: AssetRegistryController_external_updateAssetInventoryStatus
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetInventoryDto'
      responses:
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets by external ids
      security:
        - bearer: []
  /api/v2/assets-registry/{assetId}/usage:
    get:
      operationId: AssetRegistryController_getAssetUsage
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/external/{assetId}/usage:
    get:
      operationId: AssetRegistryController_external_getAssetUsage
      parameters:
        - name: assetId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets by external ids
      security:
        - bearer: []
  /api/v2/assets-registry/import:
    post:
      operationId: AssetRegistryController_importAssetsFromFile
      parameters:
        - name: delimiter
          required: true
          in: query
          schema:
            type: string
        - name: type
          required: true
          in: query
          schema:
            enum:
              - asset
              - company
              - base-asset
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/import/template:
    get:
      operationId: AssetRegistryController_prepareAssetSample
      parameters:
        - name: templateId
          required: false
          in: query
          schema:
            type: string
        - name: allowForAllTemplates
          required: false
          in: query
          schema:
            type: boolean
        - name: type
          required: true
          in: query
          schema:
            enum:
              - asset
              - company
              - base-asset
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/upsert/async:
    post:
      operationId: AssetRegistryController_upsertAssetsAsync
      parameters:
        - name: partialIngest
          required: false
          in: query
          schema:
            type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetCreateDto'
      responses:
        '201':
          description: ''
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets
      security:
        - bearer: []
  /api/v2/assets-registry/external/upsert/async:
    post:
      operationId: AssetRegistryController_external_upsertAssetsAsync
      parameters:
        - name: partialIngest
          required: false
          in: query
          schema:
            type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetCreateDto'
      responses:
        '201':
          description: ''
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Assets by external ids
      security:
        - bearer: []
  /api/v2/manufacturers-registry/search:
    post:
      operationId: ManufacturersRegistryController_searchManufacturers
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridPagingRequestDto'
      responses:
        '201':
          description: ''
      tags:
        - Manufacturers
  /api/v2/manufacturers-registry/{manufacturerId}:
    get:
      operationId: ManufacturersRegistryController_getManufacturer
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetManufacturer'
      tags:
        - Manufacturers
    put:
      operationId: ManufacturersRegistryController_updateManufacturer
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Manufacturers
    delete:
      operationId: ManufacturersRegistryController_deleteAsset
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Manufacturers
  /api/v2/manufacturers-registry/external/{manufacturerId}:
    get:
      operationId: ManufacturersRegistryController_external_getManufacturer
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetManufacturer'
      tags:
        - Manufacturers by external ids
    put:
      operationId: ManufacturersRegistryController_external_updateManufacturer
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Manufacturers by external ids
    delete:
      operationId: ManufacturersRegistryController_external_deleteAsset
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Manufacturers by external ids
  /api/v2/manufacturers-registry:
    post:
      operationId: ManufacturersRegistryController_createManufacturers
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetManufacturerCreateDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AssetManufacturer'
      tags:
        - Manufacturers
    delete:
      operationId: ManufacturersRegistryController_deleteManufacturers
      parameters:
        - name: cleanAuditRooms
          required: true
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: ''
      tags:
        - Manufacturers
  /api/v2/manufacturers-registry/{manufacturerId}/inventory-status:
    put:
      operationId: ManufacturersRegistryController_updateManufacturerInventoryStatus
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetInventoryDto'
      responses:
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Manufacturers
      security:
        - bearer: []
  /api/v2/manufacturers-registry/{manufacturerId}/usage:
    get:
      operationId: ManufacturersRegistryController_getAssetUsage
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Manufacturers
      security:
        - bearer: []
  /api/v2/manufacturers-registry/external/{manufacturerId}/usage:
    get:
      operationId: ManufacturersRegistryController_external_getAssetUsage
      parameters:
        - name: manufacturerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Manufacturers by external ids
      security:
        - bearer: []
  /api/v2/manufacturers-registry/import:
    post:
      operationId: ManufacturersRegistryController_importAssetsFromFile
      parameters:
        - name: delimiter
          required: true
          in: query
          schema:
            type: string
        - name: type
          required: true
          in: query
          schema:
            enum:
              - asset
              - company
              - base-asset
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ImportedAssetManufacturer'
      tags:
        - Manufacturers
  /api/v2/manufacturers-registry/import/template:
    get:
      operationId: ManufacturersRegistryController_prepareAssetSample
      parameters:
        - name: templateId
          required: false
          in: query
          schema:
            type: string
        - name: allowForAllTemplates
          required: false
          in: query
          schema:
            type: boolean
        - name: type
          required: true
          in: query
          schema:
            enum:
              - asset
              - company
              - base-asset
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Manufacturers
  /api/v2/manufacturers-registry/upsert/async:
    post:
      operationId: ManufacturersRegistryController_upsertBaseAssetsAsync
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetManufacturerCreateDto'
      responses:
        '201':
          description: ''
        '400':
          description: Bad request. Invalid payload has been provided
        '401':
          description: Unauthorized user
        '403':
          description: Forbidden resource
      tags:
        - Manufacturers
      security:
        - bearer: []
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
  schemas:
    Asset:
      type: object
      properties:
        id:
          type: string
        extId:
          type: string
        organizationId:
          type: string
        name:
          type: string
        inventoryStatus:
          type: string
        manufacturerId:
          type: string
        manufacturerName:
          type: string
        extManufacturerId:
          type: string
        baseAssetId:
          type: string
          nullable: true
        assetTemplateId:
          type: string
          nullable: true
        assetTemplateName:
          type: string
          nullable: true
        assetTemplateVersion:
          type: string
          nullable: true
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        hasHierarchyUsage:
          type: boolean
        assetCode:
          type: string
          nullable: true
        metadata:
          type: object
        hierarchyChildren:
          type: array
          items:
            type: string
        image:
          type: string
          nullable: true
        isPublished:
          type: boolean
        type:
          type: number
          enum: []
      required:
        - id
        - extId
        - organizationId
        - name
        - inventoryStatus
        - manufacturerId
        - manufacturerName
        - extManufacturerId
        - baseAssetId
        - assetTemplateId
        - assetTemplateName
        - assetTemplateVersion
        - createdAt
        - updatedAt
        - hasHierarchyUsage
        - assetCode
        - metadata
        - hierarchyChildren
        - image
        - isPublished
        - type
    AssetManufacturer:
      type: object
      properties:
        id:
          type: string
        extId:
          type: string
        name:
          type: string
        assetTemplateId:
          type: string
          nullable: true
        assetTemplateName:
          type: string
          nullable: true
        assetTemplateVersion:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        address:
          type: string
          nullable: true
        contact:
          type: string
          nullable: true
        contactEmail:
          type: string
          nullable: true
        gln:
          type: string
          nullable: true
        metadata:
          type: object
        organizationId:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        inventoryStatus:
          type: string
        image:
          type: string
          nullable: true
        type:
          type: number
          enum: []
      required:
        - id
        - extId
        - name
        - assetTemplateId
        - assetTemplateName
        - assetTemplateVersion
        - country
        - state
        - zip
        - city
        - address
        - contact
        - contactEmail
        - gln
        - metadata
        - organizationId
        - createdAt
        - updatedAt
        - inventoryStatus
        - image
        - type
    AssetUpdateDto:
      type: object
      properties:
        id:
          type: string
        extId:
          type: string
        baseAssetId:
          type: string
          nullable: true
        assetTemplateId:
          type: string
          nullable: true
        name:
          type: string
        inventoryStatus:
          type: string
          default: Active
        manufacturerId:
          type: string
        assetCode:
          type: string
        metadata:
          type: object
        type:
          type: number
          enum: []
        image:
          type: string
      required:
        - baseAssetId
        - assetTemplateId
        - name
        - inventoryStatus
        - manufacturerId
    AssetCreateDto:
      type: object
      properties:
        assets:
          type: array
          items:
            $ref: '#/components/schemas/AssetUpdateDto'
      required:
        - assets
    AssetInventoryDto:
      type: object
      properties:
        inventoryStatus:
          type: string
        shouldUpdateForms:
          type: boolean
      required:
        - inventoryStatus
        - shouldUpdateForms
    QrcodeBulkRequestDto:
      type: object
      properties:
        assetIds:
          type: array
          items:
            type: string
      required:
        - assetIds
    Paginated:
      type: object
      properties:
        data:
          type: array
          items:
            type: string
        count:
          example: 10
          type: number
      required:
        - data
        - count
    BaseAsset:
      type: object
      properties:
        id:
          type: string
        extId:
          type: string
        organizationId:
          type: string
        name:
          type: string
        assetTemplateId:
          type: string
          nullable: true
        assetTemplateName:
          type: string
          nullable: true
        assetTemplateVersion:
          type: string
          nullable: true
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        hasHierarchyUsage:
          type: boolean
        assetCode:
          type: string
          nullable: true
        metadata:
          type: object
        hierarchyChildren:
          type: array
          items:
            type: string
      required:
        - id
        - extId
        - organizationId
        - name
        - assetTemplateId
        - assetTemplateName
        - assetTemplateVersion
        - createdAt
        - updatedAt
        - hasHierarchyUsage
        - assetCode
        - metadata
        - hierarchyChildren
        - type
    BaseAssetCreateDto:
      type: object
      properties:
        extId:
          type: string
        assetTemplateId:
          type: string
          nullable: true
        name:
          type: string
        assetCode:
          type: string
        metadata:
          type: object
      required:
        - assetTemplateId
        - name
    BaseAssetsUpsertDto:
      type: object
      properties:
        assets:
          type: array
          items:
            $ref: '#/components/schemas/BaseAssetCreateDto'
      required:
        - assets
    BaseAssetUpdateDto:
      type: object
      properties:
        name:
          type: string
        assetCode:
          type: string
        metadata:
          type: object
      required:
        - name
    GridPagingRequestDto:
      type: object
      properties:
        page:
          type: number
        pageSize:
          type: number
        sorting:
          type: array
          items:
            $ref: '#/components/schemas/SortDto'
        filters:
          $ref: '#/components/schemas/GridFilterParam'
    SortDto:
      type: object
      properties:
        field:
          type: string
        sort:
          type: object
      required:
        - field
        - sort
    GridFilterParamItem:
      type: object
      properties:
        field:
          type: string
        operator:
          type: string
          enum:
            - contains
            - equals
            - startsWith
            - endsWith
            - isEmpty
            - isNotEmpty
            - is
            - not
            - isAnyOf
            - has
            - has not
            - array overlap
            - in
            - before
            - after
            - onOrBefore
            - onOrAfter
            - '='
            - '!='
            - '>'
            - '>='
            - <
            - <=
        value:
          type: object
        options:
          type: object
          properties:
            caseInsensitive:
              type: boolean
      required:
        - field
        - operator
        - value
        - options
    GridFilterParam:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/GridFilterParamItem'
        logicOperator:
          type: string
          enum:
            - and
            - or
      required:
        - items
    AssetManufacturerUpdateDto:
      type: object
      properties:
        id:
          type: string
        extId:
          type: string
        name:
          type: string
        assetTemplateId:
          type: string
          nullable: true
        country:
          type: string
        state:
          type: string
        zip:
          type: string
        city:
          type: string
        address:
          type: string
        contact:
          type: string
        contactEmail:
          type: string
        gln:
          type: string
        inventoryStatus:
          type: string
          default: Active
        metadata:
          type: object
        type:
          type: number
          enum: []
        image:
          type: string
      required:
        - name
        - inventoryStatus
    AssetManufacturerCreateDto:
      type: object
      properties:
        assets:
          type: array
          items:
            $ref: '#/components/schemas/AssetManufacturerUpdateDto'
      required:
        - assets
    ImportedAssetManufacturer:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        inventoryStatus:
          type: string
        country:
          type: string
        state:
          type: string
        zip:
          type: string
        city:
          type: string
        address:
          type: string
        contact:
          type: string
        contactEmail:
          type: string
        gln:
          type: string
        metadata:
          type: object
        assetTemplateId:
          type: string
        type:
          type: number
          enum: []
      required:
        - id
        - name
        - inventoryStatus
        - metadata
        - type
x-internal: true
