Terabase Energy Module API

The Module API from Terabase Energy — 9 operation(s) for module.

OpenAPI Specification

terabase-energy-module-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PlantPredict Module 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: Module
paths:
  /Module/{id}:
    get:
      tags:
      - Module
      summary: Get a Module 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.Module'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.Module'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.Module'
    delete:
      tags:
      - Module
      summary: Delete a Module by Id.
      parameters:
      - name: id
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
    put:
      tags:
      - Module
      summary: Update a Module.
      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: Module ID from URL
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
      responses:
        '200':
          description: OK
  /Module:
    get:
      tags:
      - Module
      summary: Get a list of Modules to which you have access.
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Module'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Module'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.Module'
    post:
      tags:
      - Module
      summary: Create a new Module.
      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.Module'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
      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'
  /Module/ModuleOverview:
    get:
      tags:
      - Module
      summary: Get overview data for all Modules for which you have access.
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleItem'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleItem'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleItem'
  /Module/CheckMatch:
    post:
      tags:
      - Module
      summary: 'Pre-save content-match check (PP-2570). Returns the accessible library record whose

        content matches the posted module - 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.Module'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.Module'
      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'
  /Module/{moduleId}/Note:
    get:
      tags:
      - Module
      summary: Get the Notes for a Module by Module Id.
      parameters:
      - name: moduleId
        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'
  /Module/{moduleId}/Note/{noteId}:
    delete:
      tags:
      - Module
      summary: Delete a Note for a Module by Note Id and Module Id.
      parameters:
      - name: moduleId
        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
  /Module/DefaultIAM:
    get:
      tags:
      - Module
      summary: Get the default IAM (Incidence Angle Modifier).
      description: See https://plantpredict.com/algorithm/optical-losses/
      parameters:
      - name: ASHRAEIAM
        in: query
        description: ''
        schema:
          type: number
          format: double
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleIAMInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleIAMInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleIAMInfo'
  /Module/Status:
    post:
      tags:
      - Module
      summary: Update the Status of a list of Modules 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
  /Module/Generator/ParseIVCurvePoints:
    post:
      tags:
      - Module
      summary: Parses the provided IVCurvePoints template and returns the minimum inputs required for
        the /ProcessIVCurvePoints endpoint.
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
            encoding:
              file:
                style: form
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleIVCurve'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleIVCurve'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlantPredict.Entities.DTO.ModuleIVCurve'
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.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.DTO.ModuleIAMInfo:
      type: object
      properties:
        tabularIAM:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlantPredict.Entities.Types.IAMFactor'
        b0:
          type: number
          format: double
        b1:
          type: number
          format: double
        b2:
          type: number
          format: double
        b3:
          type: number
          format: double
        b4:
          type: number
          format: double
        b5:
          type: number
          format: double
      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:
          maximum: 2
          minimum: 0
   

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