Terabase Energy Shade Engine API

The ShadeEngine API from Terabase Energy — 14 operation(s) for shadeengine.

OpenAPI Specification

terabase-energy-shadeengine-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PlantPredict Shade Engine 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: ShadeEngine
paths:
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/ProcessingStatus:
    get:
      tags:
      - ShadeEngine
      summary: Get Shade Engine Run information
      parameters:
      - name: projectId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/ExportPVC:
    get:
      tags:
      - ShadeEngine
      summary: Get PVC export
      parameters:
      - name: projectId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/Properties/{month}:
    get:
      tags:
      - ShadeEngine
      summary: Get shade engine input data from blob storage using a prediction id, with optional include
        of geometry (PVJ) data.
      parameters:
      - name: projectId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: month
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int32
          default: 1
      - name: includePVJGeoms
        in: query
        description: ''
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/Results:
    get:
      tags:
      - ShadeEngine
      summary: Get shade engine output data from blob storage using a prediction id
      parameters:
      - name: projectId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: excludeEngineData
        in: query
        description: ''
        schema:
          type: boolean
          default: true
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.ShadeEngineOutputData'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.ShadeEngineOutputData'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.ShadeEngineOutputData'
    post:
      tags:
      - ShadeEngine
      summary: Set shade engine output data in blob storage
      parameters:
      - name: projectId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.ShadeEngineOutputData'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.ShadeEngineOutputData'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.ShadeEngineOutputData'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.ShadeEngineOutputData'
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/Run:
    post:
      tags:
      - ShadeEngine
      summary: Trigger the shade engine to run calculation using a prediction id
      parameters:
      - name: projectId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: singleInverterId
        in: query
        description: ''
        schema:
          type: string
          default: ''
      responses:
        '200':
          description: OK
  /ShadeScene/ConvertPVCtoPVJ:
    post:
      tags:
      - ShadeEngine
      summary: Convert a PVC to PVJ using the HTTP request's query string parameters and streamed uploaded
        of file.
      parameters:
      - name: Latitude
        in: query
        schema:
          type: number
          format: double
      - name: Longitude
        in: query
        schema:
          type: number
          format: double
      - name: RotateShadingResult
        in: query
        schema:
          type: boolean
      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:
                $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
  /ShadeScene/ConvertSHDtoPVJ:
    post:
      tags:
      - ShadeEngine
      parameters:
      - name: Latitude
        in: query
        schema:
          type: number
          format: double
      - name: Longitude
        in: query
        schema:
          type: number
          format: double
      - name: RotateShadingResult
        in: query
        schema:
          type: boolean
      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:
                $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
            application/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
            text/json:
              schema:
                $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/Import/{propertiesKey}:
    post:
      tags:
      - ShadeEngine
      summary: Clones a shade scene from source to target
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: propertiesKey
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.PowerPlants.PVPlant'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.PowerPlants.PVPlant'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.PowerPlants.PVPlant'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.PowerPlants.PVPlant'
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene:
    put:
      tags:
      - ShadeEngine
      summary: This operation will update the Prediction shade scene properties without deleting any results
        that may exist.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.ShadeSceneProperties'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.ShadeSceneProperties'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.ShadeSceneProperties'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.ShadeSceneProperties'
      responses:
        '200':
          description: OK
    delete:
      tags:
      - ShadeEngine
      summary: This operation will delete the Prediction shade scene properties.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/PVJData:
    put:
      tags:
      - ShadeEngine
      summary: Used to create a new 3D Scene from the supplied PVJData
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.PVJData'
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/Objects:
    put:
      tags:
      - ShadeEngine
      summary: Update objects in an existing PVJData
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.UpdateShadingObjectsRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.UpdateShadingObjectsRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.UpdateShadingObjectsRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PlantPredict.Entities.UpdateShadingObjectsRequest'
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/InverterTranspositionFactors:
    post:
      tags:
      - ShadeEngine
      summary: This operation will set Inverter Transposition values.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
            encoding:
              file:
                style: form
      responses:
        '200':
          description: OK
    get:
      tags:
      - ShadeEngine
      summary: Get a list of Inverter Transposition factors for a given prediction.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/TableRotation/Template:
    get:
      tags:
      - ShadeEngine
      summary: Used to get table rotation schedule template
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
  /Project/{projectId}/Prediction/{predictionId}/ShadeScene/ShadeTableData:
    get:
      tags:
      - ShadeEngine
      summary: This operation will download the shade table in CSV format.
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: predictionId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
components:
  schemas:
    PlantPredict.Entities.Enums.MaxNumOfTablesPerColumnOptions:
      enum:
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      type: integer
      format: int32
    PlantPredict.Entities.ShadeSceneProperties:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        createdDateUTC:
          type:
          - string
          - 'null'
          format: date-time
        createdById:
          type:
          - integer
          - 'null'
          format: int32
        sceneSurfaceArea:
          type:
          - number
          - 'null'
          format: double
        dcFieldSurfaceArea:
          type:
          - number
          - 'null'
          format: double
        collectorCount:
          type:
          - integer
          - 'null'
          format: int32
        objectCount:
          type:
          - integer
          - 'null'
          format: int32
        orientationTargetDCField:
          type:
          - integer
          - 'null'
          format: int64
        calculationSettingsTargetDCField:
          type:
          - integer
          - 'null'
          format: int64
        siteTableCount:
          type: integer
          format: int32
        rotation:
          type: boolean
        customTableRotationScheduleName:
          type:
          - string
          - 'null'
        customTableRotationUploadDate:
          type:
          - string
          - 'null'
          format: date-time
        binType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.ShadeSceneBinTypes'
        collectorType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.CollectorType'
        trackerRotationModel:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.TrackerRotationModel'
        shadingModel:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.DirectBeamShadingModel'
        fractionalShadingPercentage:
          type:
          - number
          - 'null'
          format: double
        numberOfModuleFractions:
          type:
          - integer
          - 'null'
          format: int32
        shadeObjectType:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.ShadeObjectType'
        siteExceedsTableLimit:
          type: boolean
        engineInputData:
          $ref: '#/components/schemas/PlantPredict.Entities.ShadeEngineInputData'
      additionalProperties: false
    PlantPredict.Entities.InverterShadeResult:
      type: object
      properties:
        inverter_Id:
          type:
          - string
          - 'null'
        percentComplete:
          type: number
          format: double
        processingStatus:
          $ref: '#/components/schemas/PlantPredict.Entities.Enums.ProcessingStatusEnum'
        averageShadePercentage:
          type:
          - number
          - 'null'
          format: double
      additionalProperties: false
    PlantPredict.Entities.Types.GTeff:
      type: object
      properties:
        gTeffB:
          type: number
          format: double
        gTeffB_withElec:
          type: number
          format: double
        gTeffD:
          type: number
          format: double
        gTeffG:
          type: number
          format: double
        transpositionLossFactor:
          type:
          - number
          - 'null'
          format: double
        beamTranspositionLossFactor:
          type:
          - number
          - 'null'
          format: double
        skyDiffuseTranspositionLossFactor:
          type:
          - number
          - 'null'
          format: double
        groundDiffuseTranspositionLossFactor:
          type:
          - number
          - 'null'
          format: double
      additionalProperties: false
    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.Enums.ESSDispatchCustomCommand:
      enum:
      - 0
      - 1
      - 2
      type: integer
      format: int32
    PlantPredict.Entities.PowerPlants.NodalExportConfiguration:
      required:
      - exportArrays
      - exportBlock
      - exportDCFields
      - exportInverters
      type: object
      properties:
        id:
          type: integer
          format: int32
        exportBlock:
          type: boolean
        exportArrays:
          type: boolean
        exportInverters:
          type: boolean
        exportDCFields:
          type: boolean
      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.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/sch

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