Terabase Energy Inverter API

The Inverter API from Terabase Energy — 8 operation(s) for inverter.

OpenAPI Specification

terabase-energy-inverter-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PlantPredict Inverter API
  description: The HTTP API used by the PlantPredict web application. This API can also be accessed directly
    by having your Company Admin generate API credentials. If you do not know your Company Admin, contact
    support@plantpredict.com for assistance.
  contact:
    name: PlantPredict Support
    url: https://plantpredict.com/contact/
    email: support@plantpredict.com
  version: current
security:
- Bearer: []
tags:
- name: Inverter
paths:
  /Inverter/{id}:
    get:
      tags:
      - Inverter
      summary: Get an Inverter by Id.
      parameters:
      - name: id
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
    delete:
      tags:
      - Inverter
      summary: Delete an Inverter by Id.
      parameters:
      - name: id
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
    put:
      tags:
      - Inverter
      summary: Update an Inverter.
      description: This operation may attach a X-Message header on the response carrying an informational
        message about the updated entity.
      parameters:
      - name: id
        in: path
        description: Inverter ID from URL
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
      responses:
        '200':
          description: OK
  /Inverter:
    get:
      tags:
      - Inverter
      summary: Get a list of all Inverters to which you have access.
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
    post:
      tags:
      - Inverter
      summary: Create a new Inverter.
      description: This operation may attach a X-Message header on the response carrying an informational
        message about the new entity.
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.CreateEntityInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.CreateEntityInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.CreateEntityInfo'
  /Inverter/InverterOverview:
    get:
      tags:
      - Inverter
      summary: Get overview data for all Inverters for which you have access.
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.InverterItem'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.InverterItem'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.InverterItem'
  /Inverter/CheckMatch:
    post:
      tags:
      - Inverter
      summary: 'Pre-save content-match check (PP-2570). Returns the accessible library record whose

        content matches the posted inverter - selected by status hierarchy Global > Active >

        Draft-Private > Draft-Shared - or null when nothing matches. Name is excluded from

        identity; Retired records never match. Persists nothing.'
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Inverter'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.AssetMatchResult'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.AssetMatchResult'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.AssetMatchResult'
  /Inverter/{inverterId}/kVA:
    get:
      tags:
      - Inverter
      summary: Get the kVA rating of an Inverter by Id.
      description: Temperature Adjusted kVA sizing of the inverter is determined using the cooling design
        temperature and the elevation and temperature derate curves if applicable, otherwise the 50°C
        kVA rating is used.
      parameters:
      - name: inverterId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: elevation
        in: query
        description: Meters
        schema:
          type: number
          format: double
      - name: temperature
        in: query
        description: Degrees Celsius
        schema:
          type: number
          format: double
      - name: useCoolingTemp
        in: query
        description: ''
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.InverterKvaInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.InverterKvaInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.InverterKvaInfo'
  /Inverter/{inverterId}/Note:
    get:
      tags:
      - Inverter
      summary: Get the Notes for an Inverter by Inverter Id.
      parameters:
      - name: inverterId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Note'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Note'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Note'
  /Inverter/{inverterId}/Note/{noteId}:
    delete:
      tags:
      - Inverter
      summary: Delete a Note for an Inverter by Note Id and Inverter Id.
      parameters:
      - name: inverterId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: noteId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: boolean
            application/json:
              schema:
                type: boolean
            text/json:
              schema:
                type: boolean
  /Inverter/Status:
    post:
      tags:
      - Inverter
      summary: Update the Status of a list of Inverters by list of Ids.
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.Asset'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.Asset'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.Asset'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.Asset'
      responses:
        '200':
          description: OK
components:
  schemas:
    PlantPredict.Entities.Enums.MaxNumOfTablesPerColumnOptions:
      enum:
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      type: integer
      format: int32
    PlantPredict.Entities.Enums.EntityType:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      type: integer
      format: int32
    PlantPredict.Entities.Types.IAMFactor:
      required:
      - factor
      - incidenceAngle
      type: object
      properties:
        id:
          type: integer
          format: int32
        incidenceAngle:
          maximum: 90
          minimum: 0
          type: number
          format: double
        factor:
          maximum: 1
          minimum: 0
          type: number
          format: double
      additionalProperties: false
    PlantPredict.Entities.Inverter:
      required:
      - apparentPower
      - maxAbsoluteVoltage
      - maxCurrent
      - maxElevation
      - maxMPPVoltage
      - minDCPowerThreshold
      - minVoltage
      - outputVoltage
      - powerRated
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          maxLength: 250
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        companyId:
          type: integer
          format: int32
        company:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.Company'
        ownerId:
          type: integer
          format: int32
        owner:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ApplicationUser'
        createdDate:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        lastModifiedById:
          type: integer
          format: int32
        lastModifiedBy:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ApplicationUser'
        status:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.LibraryStatusEnum'
        model:
          maxLength: 100
          type:
          - string
          - 'null'
        manufacturer:
          maxLength: 100
          type:
          - string
          - 'null'
        powerRated:
          maximum: 100000
          minimum: 0
          type: number
          format: double
        apparentPower:
          maximum: 100000
          minimum: 0
          type: number
          format: double
        minDCPowerThreshold:
          maximum: 10000000
          minimum: 0.01
          type: number
          format: double
        minVoltage:
          maximum: 3000
          minimum: 1
          type: number
          format: double
        maxMPPVoltage:
          maximum: 5000
          minimum: 1
          type: number
          format: double
        maxAbsoluteVoltage:
          maximum: 5000
          minimum: 1
          type: number
          format: double
        maxCurrent:
          maximum: 100000
          minimum: 0
          type: number
          format: double
        maxElevation:
          maximum: 9000
          minimum: -500
          type: number
          format: double
        outputVoltage:
          maximum: 100000
          minimum: 1
          type: number
          format: double
        usekVACurves:
          type: boolean
        usePQCurves:
          type: boolean
        dataSource:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.DataSourceType'
        efficiencyCurves:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.Types.EfficiencyCurve'
        kVACurves:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.Types.kVACurve'
        pqCurves:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.Types.PQCurve'
        tempCorrectedPowerMax:
          type: number
          format: double
        inverterType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.InverterType'
      additionalProperties: false
    PlantPredict.Entities.DTO.InverterItem:
      type: object
      properties:
        id:
          type: integer
          format: int64
        ownerId:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.LibraryStatusEnum'
        lastModified:
          type: string
          format: date-time
        lastModifiedBy:
          $ref: '#/components/schemas/PlantPredict.Entities.DTO.InverterItemApplicationUser'
        model:
          type:
          - string
          - 'null'
        manufacturer:
          type:
          - string
          - 'null'
        powerRated:
          type: number
          format: double
        outputVoltage:
          type: number
          format: double
        minVoltage:
          type: number
          format: double
        maxMPPVoltage:
          type: number
          format: double
        inverterType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.InverterType'
      additionalProperties: false
    PlantPredict.Entities.Authentication.ApplicationUser:
      type: object
      properties:
        id:
          type: integer
          format: int32
        normalizedUserName:
          type:
          - string
          - 'null'
        email:
          type:
          - string
          - 'null'
        normalizedEmail:
          type:
          - string
          - 'null'
        concurrencyStamp:
          type:
          - string
          - 'null'
        company:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.Company'
        companyId:
          type: integer
          format: int32
        firstName:
          maxLength: 100
          type:
          - string
          - 'null'
        lastName:
          maxLength: 100
          type:
          - string
          - 'null'
        jobTitle:
          maxLength: 100
          type:
          - string
          - 'null'
        createdByUserId:
          type:
          - integer
          - 'null'
          format: int32
        createdByUser:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ApplicationUser'
        status:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.UserStatusEnum'
        eulaAcceptedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdDateUtc:
          type:
          - string
          - 'null'
          format: date-time
        settings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ApplicationUserSettings'
        costCenter:
          type:
          - string
          - 'null'
        migrationAgreementAcceptance:
          type:
          - boolean
          - 'null'
        migrationAgreementResponseDate:
          type:
          - string
          - 'null'
          format: date-time
        emailConfirmed:
          type: boolean
        passwordHash:
          type:
          - string
          - 'null'
        securityStamp:
          type:
          - string
          - 'null'
        phoneNumber:
          type:
          - string
          - 'null'
        phoneNumberConfirmed:
          type: boolean
        twoFactorEnabled:
          type: boolean
        lockoutEnd:
          type:
          - string
          - 'null'
          format: date-time
        lockoutEnabled:
          type: boolean
        accessFailedCount:
          type: integer
          format: int32
        userName:
          type:
          - string
          - 'null'
        clientCredentialsCreatedBy:
          type:
          - integer
          - 'null'
          format: int32
        clientCredentialsCreatedByUser:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ApplicationUser'
        clientCredentialsCreatedOnUTC:
          type:
          - string
          - 'null'
          format: date-time
        uuid:
          type:
          - string
          - 'null'
          format: uuid
        apiUserUUID:
          type:
          - string
          - 'null'
          format: uuid
        apiUserAppId:
          type:
          - string
          - 'null'
        pvradarapiUserUUID:
          type:
          - string
          - 'null'
          format: uuid
        pvradarapiUserAppId:
          type:
          - string
          - 'null'
        terabaseAPIUserUUID:
          type:
          - string
          - 'null'
          format: uuid
        terabaseAPIUserAppId:
          type:
          - string
          - 'null'
        powerUQAPIUserUUID:
          type:
          - string
          - 'null'
          format: uuid
        powerUQAPIUserAppId:
          type:
          - string
          - 'null'
        userWeatherDownloads:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.UserWeatherDownload'
        lastLoginDateUTC:
          type:
          - string
          - 'null'
          format: date-time
        roles:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ApplicationUserRole'
        logins:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ApplicationUserLogin'
      additionalProperties: false
    PlantPredict.Entities.Authentication.Company:
      required:
      - name
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          maxLength: 100
          minLength: 1
          type: string
        countryId:
          type:
          - integer
          - 'null'
          format: int32
        country:
          $ref: '#/components/schemas/PlantPredict.Entities.Country'
        users:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ApplicationUser'
        companyType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.CompanyTypeEnum'
        status:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.CompanyStatusEnum'
        configurationSettings:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.ConfigurationSetting'
        defaultSettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.DefaultSettings'
        createdDateUtc:
          type:
          - string
          - 'null'
          format: date-time
        uuid:
          type:
          - string
          - 'null'
        subscriptionType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.SubscriptionType'
        monthlyLicenseFee:
          type: number
          format: double
        subscriptionInterval:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.SubscriptionInterval'
        customerSegment:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.CustomerSegment'
        subscriptionExpirationDate:
          type:
          - string
          - 'null'
          format: date-time
        costCenter:
          type:
          - string
          - 'null'
        salesForceId:
          type:
          - string
          - 'null'
        maxUsers:
          type:
          - integer
          - 'null'
          format: int32
        migrationAgreementAcceptance:
          type:
          - boolean
          - 'null'
        allowAPIAccessOverride:
          type: boolean
        isAlphaTester:
          type: boolean
        allowMercatorAccess:
          type: boolean
        allowMcpServerAccess:
          type: boolean
        allowTerrainProExtensions:
          type: boolean
        allowPVRADARExtension:
          type: boolean
        pvradExtensionCredentialsGeneratedUTC:
          type:
          - string
          - 'null'
          format: date-time
        allowPowerUQExtension:
          type: boolean
        powerUQCredentialsGeneratedUTC:
          type:
          - string
          - 'null'
          format: date-time
        migrationAgreementResponseDate:
          type:
          - string
          - 'null'
          format: date-time
        superAdminMigrationAgreementAcceptance:
          type:
          - boolean
          - 'null'
        superAdminMigrationAgreementResponseDate:
          type:
          - string
          - 'null'
          format: date-time
        freeTrialExpirationDate:
          type:
          - string
          - 'null'
          format: date-time
        freeTrialRedeemedOnDateUTC:
          type:
          - string
          - 'null'
          format: date-time
        canRedeemFreeTrial:
          type: boolean
          readOnly: true
        autoRenew:
          type: boolean
        autoRenewUpdateDateUTC:
          type:
          - string
          - 'null'
          format: date-time
        extensionsFreeTrialExpirationDate:
          type:
          - string
          - 'null'
          format: date-time
        isSSO:
          type: boolean
        cognito_SSO_IDP_Name:
          type:
          - string
          - 'null'
        hasDedicatedEngines:
          type: boolean
        engineQueueInfo:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.EngineQueueInfo'
        stripeCustomerIdentifier:
          type:
          - string
          - 'null'
        isSubscriptionActive:
          type: boolean
          readOnly: true
        contactName:
          type:
          - string
          - 'null'
        contactEmail:
          type:
          - string
          - 'null'
        activeUsers:
          type: integer
          format: int32
        availableLicenses:
          type: integer
          format: int32
        hasExperimentalFeatureAccess:
          type: boolean
          readOnly: true
        hasApiAccess:
          type: boolean
          readOnly: true
        allowTerrainProAccess:
          type: boolean
          readOnly: true
      additionalProperties: false
    PlantPredict.Entities.Authentication.DefaultSettings:
      type: object
      properties:
        id:
          type: integer
          format: int32
        environmentalConditions:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.EnvironmentalConditions'
        powerPlantBuilder:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.PowerPlantBuilder'
        simulationSettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.SimulationSettings'
        weatherAPISettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.WeatherAPISettings'
        essSettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.ESSSettings'
        financialModelParameters:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.FinancialModelDefaultParameters'
        miscellaneousSettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.MiscellaneousSettings'
        designProSimulationSettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.DesignProSimulationSettings'
        designProSitePlanSettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.DesignProSitePlanSettings'
        systemDetailSettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.SystemDetailSettings'
        designProEpcCostSettings:
          $ref: '#/components/schemas/PlantPredict.Entities.Authentication.DesignProEpcCostSettings'
      additionalProperties: false
    PlantPredict.Entities.Enums.PVCableSizes:
      enum:
      - 0
      - 1
      type: integer
      format: int32
    PlantPredict.Entities.Enums.ESSChargeAlgorithm:
      enum:
      - 0
      - 1
      - 2
      type: integer
      format: int32
    PlantPredict.Entities.Authentication.DesignProSimulationSettings:
      required:
      - bifacialId
      - calculateModuleTiltAngle
      - columnGapFixedTilt
      - columnGapMultistringTracker
      - columnGapTracker
      - embedmentDepthFixedTilt
      - embedmentDepthMultistringTracker
      - embedmentDepthTracker
      - enableBacktrackingMultistringTracker
      - enableBacktrackingTracker
      - gapBetweenRacksFixedTilt
      - gapBetweenRacksMultistringTracker
      - gapBetweenRacksTracker
      - halfCellMonoPercId
      - inverterCentralId
      - inverterStringId
      - inverterType
      - largeFormatModuleId
      - maxEwBeamSlopeFixedTilt
      - maxNumOfTablesPerColumnCentral
      - maxNumOfTablesPerColumnString
      - maxTtAxisSlopeMultistringTracker
      - maxTtAxisSlopeTracker
      - moduleTiltAngle
      - moduleType
      - motorTableGap
      - numOfPVModulesPerRowsFixedTilt
      - numOfPVModulesPerRowsTracker
      - ocpdRatingCentral
      - ocpdRatingCentral_1P
      - ocpdRatingString
      - ocpdRatingString_1P
      - optionOneDcac
      - optionOneGcr
      - orientationFixedTilt
      - orientationMultistringTracker
      - orientationTracker
      - pilesPerTableFixedTilt
      - pilesPerTableTracker
      - pileTypeFixedTilt
      - pileTypeMultistringTracker
      - pileTypeTracker
      - powerFactorCentral
      - powerFactorString
      - pvModuleTiltMax
      - pvModuleTiltMin
      - rackingSystem
      - revealWindowFixedTilt
      - revealWindowMultistringTracker
      - revealWindowTracker
      - rowGapFixedTilt
      - rowGapTracker
      - shingledMonoPercId
      - tableAxisRotationMaxMultistringTracker
      - tableAxisRotationMaxTracker
      - tableAxisRotationMinMultistringTracker
      - tableAxisRotationMinTracker
      - tableGapMultistringTracker
      - thinFilmId
      - ttExtensionMultistringTracker
      type: object
      properties:
        id:
          type: integer
          format: int32
        moduleType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.ModuleTypes'
        rackingSystem:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.RackingTypes'
        inverterType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.InverterTypes'
        largeFormatModuleId:
          type: integer
          format: int64
        largeFormatModule:
          $ref: '#/components/schemas/PlantPredict.Entities.Module'
        shingledMonoPercId:
          type: integer
          format: int64
        shingledMonoPerc:
          $ref: '#/components/schemas/PlantPredict.Entities.Module'
        thinFilmId:
          type: integer
          format: int64
        thinFilm:
          $ref: '#/components/schemas/PlantPredict.Entities.Module'
        halfCellMonoPercId:
          type: integer
          format: int64
        halfCellMonoPerc:
          $ref: '#/components/schemas/PlantPredict.Entities.Module'
        bifacialId:
          type: integer
          format: int64
        bifacial:
          $ref: '#/components/schemas/PlantPredict.Entities.Module'
        orientationTracker:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.ModuleOrientation'
        columnGapTracker:
          maximum: 1
          minimum: 0
          type: number
          format: double
        rowGapTracker:
          maximum: 1
          minimum: 0
          type: number
          format: double
        numOfPVModulesPerRowsTracker:
          maximum: 100
          minimum: 1
          type: integer
          format: int32
        pvModuleTiltMin:
          maximum: 0
          minimum: -90
          type: integer
          format: int32
        pvModuleTiltMax:
          maximum: 90
          minimum: 0
          type: integer
          format: int32
        tableAxisRotationMinTracker:
          maximum: 0
          minimum: -90
          type: integer
          format: int32
        tableAxisRotationMaxTracker:
          maximum: 90
          minimum: 0
          type: integer
          format: int32
        pilesPerTableTracker:
          maximum: 24
          minimum: 4
          type: integer
          format: int32
        embedmentDepthTracker:
          maximum: 45
          minimum: 0
          type: number
          format: double
        pileTypeTracker:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.PileTypes'
        gapBetweenRacksTracker:
          maximum: 10
          minimum: 0
          type: number
          format: double
        maxTtAxisSlopeTracker:
          maximum: 45
          minimum: 0
          type: number
          format: double
        revealWindowTracker:
          maximum: 9999
          minimum: 0
          type: number
          format: double
        enableBacktrackingTracker:
          type: boolean
        orientationMultistringTracker:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.ModuleOrientation'
        columnGapMultistringTracker:
          maximum: 1
          minimum: 0
          type: number
          format: double
        motorTableGap:
          maximum: 1000
          minimum: 0
          type: number
          format: double
        tableGapMultistringTracker:
          maximum: 1000
          minimum: 0
          type: number
          format: double
        gapBetweenRacksMultistringTracker:
          maximum: 10
          minimum: 0
          type: number
          format: double
        ttExtensionMultistringTracker:
         

# --- truncated at 32 KB (89 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/terabase-energy/refs/heads/main/openapi/terabase-energy-inverter-api-openapi.yml