github.com/enbility/spine-go@v0.7.0/model/tariffinformation.go (about)

     1  package model
     2  
     3  type TariffIdType uint
     4  
     5  type TariffCountType TariffIdType
     6  
     7  type TierBoundaryIdType uint
     8  
     9  type TierBoundaryCountType TierBoundaryIdType
    10  
    11  type TierBoundaryTypeType string
    12  
    13  const (
    14  	TierBoundaryTypeTypePowerBoundary  TierBoundaryTypeType = "powerBoundary"
    15  	TierBoundaryTypeTypeEnergyBoundary TierBoundaryTypeType = "energyBoundary"
    16  	TierBoundaryTypeTypeCountBoundary  TierBoundaryTypeType = "countBoundary"
    17  )
    18  
    19  type CommodityIdType uint
    20  
    21  type TierIdType uint
    22  
    23  type TierCountType TierIdType
    24  
    25  type TierTypeType string
    26  
    27  const (
    28  	TierTypeTypeFixedCost   TierTypeType = "fixedCost"
    29  	TierTypeTypeDynamicCost TierTypeType = "dynamicCost"
    30  )
    31  
    32  type IncentiveIdType uint
    33  
    34  type IncentiveCountType IncentiveIdType
    35  
    36  type IncentiveTypeType string
    37  
    38  const (
    39  	IncentiveTypeTypeAbsoluteCost              IncentiveTypeType = "absoluteCost"
    40  	IncentiveTypeTypeRelativeCost              IncentiveTypeType = "relativeCost"
    41  	IncentiveTypeTypeRenewableEnergyPercentage IncentiveTypeType = "renewableEnergyPercentage"
    42  	IncentiveTypeTypeCo2Emission               IncentiveTypeType = "co2Emission"
    43  )
    44  
    45  type IncentivePriorityType uint
    46  
    47  type IncentiveValueTypeType string
    48  
    49  const (
    50  	IncentiveValueTypeTypeValue        IncentiveValueTypeType = "value"
    51  	IncentiveValueTypeTypeAverageValue IncentiveValueTypeType = "averageValue"
    52  	IncentiveValueTypeTypeMinvalue     IncentiveValueTypeType = "minValue"
    53  	IncentiveValueTypeTypeMaxvalue     IncentiveValueTypeType = "maxValue"
    54  )
    55  
    56  type TariffOverallConstraintsDataType struct {
    57  	MaxTariffCount         *TariffCountType       `json:"maxTariffCount,omitempty"`
    58  	MaxBoundaryCount       *TierBoundaryCountType `json:"maxBoundaryCount,omitempty"`
    59  	MaxTierCount           *TierCountType         `json:"maxTierCount,omitempty"`
    60  	MaxIncentiveCount      *IncentiveCountType    `json:"maxIncentiveCount,omitempty"`
    61  	MaxBoundariesPerTariff *TierBoundaryCountType `json:"maxBoundariesPerTariff,omitempty"`
    62  	MaxTiersPerTariff      *TierCountType         `json:"maxTiersPerTariff,omitempty"`
    63  	MaxBoundariesPerTier   *TierBoundaryCountType `json:"maxBoundariesPerTier,omitempty"`
    64  	MaxIncentivesPerTier   *IncentiveCountType    `json:"maxIncentivesPerTier,omitempty"`
    65  }
    66  
    67  type TariffOverallConstraintsDataElementsType struct {
    68  	MaxTariffCount         *ElementTagType `json:"maxTariffCount,omitempty"`
    69  	MaxBoundaryCount       *ElementTagType `json:"maxBoundaryCount,omitempty"`
    70  	MaxTierCount           *ElementTagType `json:"maxTierCount,omitempty"`
    71  	MaxIncentiveCount      *ElementTagType `json:"maxIncentiveCount,omitempty"`
    72  	MaxBoundariesPerTariff *ElementTagType `json:"maxBoundariesPerTariff,omitempty"`
    73  	MaxTiersPerTariff      *ElementTagType `json:"maxTiersPerTariff,omitempty"`
    74  	MaxBoundariesPerTier   *ElementTagType `json:"maxBoundariesPerTier,omitempty"`
    75  	MaxIncentivesPerTier   *ElementTagType `json:"maxIncentivesPerTier,omitempty"`
    76  }
    77  
    78  type TariffDataType struct {
    79  	TariffId     *TariffIdType `json:"tariffId,omitempty" eebus:"key"`
    80  	ActiveTierId []TierIdType  `json:"activeTierId,omitempty"`
    81  }
    82  
    83  type TariffDataElementsType struct {
    84  	TariffId     *ElementTagType `json:"tariffId,omitempty"`
    85  	ActiveTierId *ElementTagType `json:"activeTierId,omitempty"`
    86  }
    87  
    88  type TariffListDataType struct {
    89  	TariffData []TariffDataType `json:"tariffData,omitempty"`
    90  }
    91  
    92  type TariffListDataSelectorsType struct {
    93  	TariffId     *TariffIdType `json:"tariffId,omitempty"`
    94  	ActiveTierId *TierIdType   `json:"activeTierId,omitempty"`
    95  }
    96  
    97  type TariffTierRelationDataType struct {
    98  	TariffId *TariffIdType `json:"tariffId,omitempty" eebus:"key"`
    99  	TierId   []TierIdType  `json:"tierId,omitempty"`
   100  }
   101  
   102  type TariffTierRelationDataElementsType struct {
   103  	TariffId *ElementTagType `json:"tariffId,omitempty"`
   104  	TierId   *ElementTagType `json:"tierId,omitempty"`
   105  }
   106  
   107  type TariffTierRelationListDataType struct {
   108  	TariffTierRelationData []TariffTierRelationDataType `json:"tariffTierRelationData,omitempty"`
   109  }
   110  
   111  type TariffTierRelationListDataSelectorsType struct {
   112  	TariffId *TariffIdType `json:"tariffId,omitempty"`
   113  	TierId   *TierIdType   `json:"tierId,omitempty"`
   114  }
   115  
   116  type TariffBoundaryRelationDataType struct {
   117  	TariffId   *TariffIdType        `json:"tariffId,omitempty" eebus:"key"`
   118  	BoundaryId []TierBoundaryIdType `json:"boundaryId,omitempty"`
   119  }
   120  
   121  type TariffBoundaryRelationDataElementsType struct {
   122  	TariffId   *ElementTagType `json:"tariffId,omitempty"`
   123  	BoundaryId *ElementTagType `json:"boundaryId,omitempty"`
   124  }
   125  
   126  type TariffBoundaryRelationListDataType struct {
   127  	TariffBoundaryRelationData []TariffBoundaryRelationDataType `json:"tariffBoundaryRelationData,omitempty"`
   128  }
   129  
   130  type TariffBoundaryRelationListDataSelectorsType struct {
   131  	TariffId   *TariffIdType       `json:"tariffId,omitempty"`
   132  	BoundaryId *TierBoundaryIdType `json:"boundaryId,omitempty"`
   133  }
   134  
   135  type TariffDescriptionDataType struct {
   136  	TariffId        *TariffIdType      `json:"tariffId,omitempty" eebus:"key"`
   137  	CommodityId     *CommodityIdType   `json:"commodityId,omitempty"`
   138  	MeasurementId   *MeasurementIdType `json:"measurementId,omitempty"`
   139  	TariffWriteable *bool              `json:"tariffWriteable,omitempty"`
   140  	UpdateRequired  *bool              `json:"updateRequired,omitempty"`
   141  	ScopeType       *ScopeTypeType     `json:"scopeType,omitempty"`
   142  	Label           *LabelType         `json:"label,omitempty"`
   143  	Description     *DescriptionType   `json:"description,omitempty"`
   144  	SlotIdSupport   *bool              `json:"slotIdSupport,omitempty"`
   145  }
   146  
   147  type TariffDescriptionDataElementsType struct {
   148  	TariffId        *ElementTagType `json:"tariffId,omitempty"`
   149  	CommodityId     *ElementTagType `json:"commodityId,omitempty"`
   150  	MeasurementId   *ElementTagType `json:"measurementId,omitempty"`
   151  	TariffWriteable *ElementTagType `json:"tariffWriteable,omitempty"`
   152  	UpdateRequired  *ElementTagType `json:"updateRequired,omitempty"`
   153  	ScopeType       *ElementTagType `json:"scopeType,omitempty"`
   154  	Label           *ElementTagType `json:"label,omitempty"`
   155  	Description     *ElementTagType `json:"description,omitempty"`
   156  	SlotIdSupport   *ElementTagType `json:"slotIdSupport,omitempty"`
   157  }
   158  
   159  type TariffDescriptionListDataType struct {
   160  	TariffDescriptionData []TariffDescriptionDataType `json:"tariffDescriptionData,omitempty"`
   161  }
   162  
   163  type TariffDescriptionListDataSelectorsType struct {
   164  	TariffId      *TariffIdType      `json:"tariffId,omitempty"`
   165  	CommodityId   *CommodityIdType   `json:"commodityId,omitempty"`
   166  	MeasurementId *MeasurementIdType `json:"measurementId,omitempty"`
   167  	ScopeType     *ScopeTypeType     `json:"scopeType,omitempty"`
   168  }
   169  
   170  type TierBoundaryDataType struct {
   171  	BoundaryId         *TierBoundaryIdType `json:"boundaryId,omitempty" eebus:"key"`
   172  	TimePeriod         *TimePeriodType     `json:"timePeriod,omitempty"`
   173  	TimeTableId        *TimeTableIdType    `json:"timeTableId,omitempty"`
   174  	LowerBoundaryValue *ScaledNumberType   `json:"lowerBoundaryValue,omitempty"`
   175  	UpperBoundaryValue *ScaledNumberType   `json:"upperBoundaryValue,omitempty"`
   176  }
   177  
   178  type TierBoundaryDataElementsType struct {
   179  	BoundaryId         *ElementTagType           `json:"boundaryId,omitempty"`
   180  	TimePeriod         *TimePeriodElementsType   `json:"timePeriod,omitempty"`
   181  	TimeTableId        *ElementTagType           `json:"timeTableId,omitempty"`
   182  	LowerBoundaryValue *ScaledNumberElementsType `json:"lowerBoundaryValue,omitempty"`
   183  	UpperBoundaryValue *ScaledNumberElementsType `json:"upperBoundaryValue,omitempty"`
   184  }
   185  
   186  type TierBoundaryListDataType struct {
   187  	TierBoundaryData []TierBoundaryDataType `json:"tierBoundaryData,omitempty"`
   188  }
   189  
   190  type TierBoundaryListDataSelectorsType struct {
   191  	BoundaryId *TierBoundaryIdType `json:"boundaryId,omitempty"`
   192  }
   193  
   194  type TierBoundaryDescriptionDataType struct {
   195  	BoundaryId               *TierBoundaryIdType    `json:"boundaryId,omitempty" eebus:"key"`
   196  	BoundaryType             *TierBoundaryTypeType  `json:"boundaryType,omitempty"`
   197  	ValidForTierId           *TierIdType            `json:"validForTierId,omitempty"`
   198  	SwitchToTierIdWhenLower  *TierIdType            `json:"switchToTierIdWhenLower,omitempty"`
   199  	SwitchToTierIdWhenHigher *TierIdType            `json:"switchToTierIdWhenHigher,omitempty"`
   200  	BoundaryUnit             *UnitOfMeasurementType `json:"boundaryUnit,omitempty"`
   201  	Label                    *LabelType             `json:"label,omitempty"`
   202  	Description              *DescriptionType       `json:"description,omitempty"`
   203  }
   204  
   205  type TierBoundaryDescriptionDataElementsType struct {
   206  	BoundaryId               *ElementTagType `json:"boundaryId,omitempty"`
   207  	BoundaryType             *ElementTagType `json:"boundaryType,omitempty"`
   208  	ValidForTierId           *ElementTagType `json:"validForTierId,omitempty"`
   209  	SwitchToTierIdWhenLower  *ElementTagType `json:"switchToTierIdWhenLower,omitempty"`
   210  	SwitchToTierIdWhenHigher *ElementTagType `json:"switchToTierIdWhenHigher,omitempty"`
   211  	BoundaryUnit             *ElementTagType `json:"boundaryUnit,omitempty"`
   212  	Label                    *ElementTagType `json:"label,omitempty"`
   213  	Description              *ElementTagType `json:"description,omitempty"`
   214  }
   215  
   216  type TierBoundaryDescriptionListDataType struct {
   217  	TierBoundaryDescriptionData []TierBoundaryDescriptionDataType `json:"tierBoundaryDescriptionData,omitempty"`
   218  }
   219  
   220  type TierBoundaryDescriptionListDataSelectorsType struct {
   221  	BoundaryId   *TierBoundaryIdType   `json:"boundaryId,omitempty"`
   222  	BoundaryType *TierBoundaryTypeType `json:"boundaryType,omitempty"`
   223  }
   224  
   225  type CommodityDataType struct {
   226  	CommodityId             *CommodityIdType     `json:"commodityId,omitempty" eebus:"key"`
   227  	CommodityType           *CommodityTypeType   `json:"commodityType,omitempty"`
   228  	PositiveEnergyDirection *EnergyDirectionType `json:"positiveEnergyDirection,omitempty"`
   229  	Label                   *LabelType           `json:"label,omitempty"`
   230  	Description             *DescriptionType     `json:"description,omitempty"`
   231  }
   232  
   233  type CommodityDataElementsType struct {
   234  	CommodityId             *ElementTagType `json:"commodityId,omitempty"`
   235  	CommodityType           *ElementTagType `json:"commodityType,omitempty"`
   236  	PositiveEnergyDirection *ElementTagType `json:"positiveEnergyDirection,omitempty"`
   237  	Label                   *ElementTagType `json:"label,omitempty"`
   238  	Description             *ElementTagType `json:"description,omitempty"`
   239  }
   240  
   241  type CommodityListDataType struct {
   242  	CommodityData []CommodityDataType `json:"commodityData,omitempty"`
   243  }
   244  
   245  type CommodityListDataSelectorsType struct {
   246  	CommodityId   *CommodityIdType   `json:"commodityId,omitempty"`
   247  	CommodityType *CommodityTypeType `json:"commodityType,omitempty"`
   248  }
   249  
   250  type TierDataType struct {
   251  	TierId            *TierIdType       `json:"tierId,omitempty" eebus:"key"`
   252  	TimePeriod        *TimePeriodType   `json:"timePeriod,omitempty"`
   253  	TimeTableId       *TimeTableIdType  `json:"timeTableId,omitempty"`
   254  	ActiveIncentiveId []IncentiveIdType `json:"activeIncentiveId,omitempty"`
   255  }
   256  
   257  type TierDataElementsType struct {
   258  	TierId            *ElementTagType `json:"tierId,omitempty"`
   259  	TimePeriod        *ElementTagType `json:"timePeriod,omitempty"`
   260  	TimeTableId       *ElementTagType `json:"timeTableId,omitempty"`
   261  	ActiveIncentiveId *ElementTagType `json:"activeIncentiveId,omitempty"`
   262  }
   263  
   264  type TierListDataType struct {
   265  	TierData []TierDataType `json:"tierData,omitempty"`
   266  }
   267  
   268  type TierListDataSelectorsType struct {
   269  	TierId            *TierIdType      `json:"tierId,omitempty"`
   270  	ActiveIncentiveId *IncentiveIdType `json:"activeIncentiveId,omitempty"`
   271  }
   272  
   273  type TierIncentiveRelationDataType struct {
   274  	TierId      *TierIdType       `json:"tierId,omitempty" eebus:"key"`
   275  	IncentiveId []IncentiveIdType `json:"incentiveId,omitempty"`
   276  }
   277  
   278  type TierIncentiveRelationDataElementsType struct {
   279  	TierId      *ElementTagType `json:"tierId,omitempty"`
   280  	IncentiveId *ElementTagType `json:"incentiveId,omitempty"`
   281  }
   282  
   283  type TierIncentiveRelationListDataType struct {
   284  	TierIncentiveRelationData []TierIncentiveRelationDataType `json:"tierIncentiveRelationData,omitempty"`
   285  }
   286  
   287  type TierIncentiveRelationListDataSelectorsType struct {
   288  	TierId      *TierIdType      `json:"tierId,omitempty"`
   289  	IncentiveId *IncentiveIdType `json:"incentiveId,omitempty"`
   290  }
   291  
   292  type TierDescriptionDataType struct {
   293  	TierId      *TierIdType      `json:"tierId,omitempty" eebus:"key"`
   294  	TierType    *TierTypeType    `json:"tierType,omitempty"`
   295  	Label       *LabelType       `json:"label,omitempty"`
   296  	Description *DescriptionType `json:"description,omitempty"`
   297  }
   298  
   299  type TierDescriptionDataElementsType struct {
   300  	TierId      *ElementTagType `json:"tierId,omitempty"`
   301  	TierType    *ElementTagType `json:"tierType,omitempty"`
   302  	Label       *ElementTagType `json:"label,omitempty"`
   303  	Description *ElementTagType `json:"description,omitempty"`
   304  }
   305  
   306  type TierDescriptionListDataType struct {
   307  	TierDescriptionData []TierDescriptionDataType `json:"tierDescriptionData,omitempty"`
   308  }
   309  
   310  type TierDescriptionListDataSelectorsType struct {
   311  	TierId   *TierIdType   `json:"tierId,omitempty"`
   312  	TierType *TierTypeType `json:"tierType,omitempty"`
   313  }
   314  
   315  type IncentiveDataType struct {
   316  	IncentiveId *IncentiveIdType            `json:"incentiveId,omitempty" eebus:"key"`
   317  	ValueType   *IncentiveValueTypeType     `json:"valueType,omitempty"`
   318  	Timestamp   *AbsoluteOrRelativeTimeType `json:"timestamp,omitempty"`
   319  	TimePeriod  *TimePeriodType             `json:"timePeriod,omitempty"`
   320  	TimeTableId *TimeTableIdType            `json:"timeTableId,omitempty"`
   321  	Value       *ScaledNumberType           `json:"value,omitempty"`
   322  }
   323  
   324  type IncentiveDataElementsType struct {
   325  	IncentiveId *ElementTagType           `json:"incentiveId,omitempty"`
   326  	ValueType   *ElementTagType           `json:"valueType,omitempty"`
   327  	Timestamp   *ElementTagType           `json:"timestamp,omitempty"`
   328  	TimePeriod  *TimePeriodElementsType   `json:"timePeriod,omitempty"`
   329  	TimeTableId *ElementTagType           `json:"timeTableId,omitempty"`
   330  	Value       *ScaledNumberElementsType `json:"value,omitempty"`
   331  }
   332  
   333  type IncentiveListDataType struct {
   334  	IncentiveData []IncentiveDataType `json:"incentiveData,omitempty"`
   335  }
   336  
   337  type IncentiveListDataSelectorsType struct {
   338  	IncentiveId       *IncentiveIdType        `json:"incentiveId,omitempty"`
   339  	ValueType         *IncentiveValueTypeType `json:"valueType,omitempty"`
   340  	TimestampInterval *TimestampIntervalType  `json:"timestampInterval,omitempty"`
   341  }
   342  
   343  type IncentiveDescriptionDataType struct {
   344  	IncentiveId       *IncentiveIdType       `json:"incentiveId,omitempty" eebus:"key"`
   345  	IncentiveType     *IncentiveTypeType     `json:"incentiveType,omitempty"`
   346  	IncentivePriority *IncentivePriorityType `json:"incentivePriority,omitempty"`
   347  	Currency          *CurrencyType          `json:"currency,omitempty"`
   348  	Unit              *UnitOfMeasurementType `json:"unit,omitempty"`
   349  	Label             *LabelType             `json:"label,omitempty"`
   350  	Description       *DescriptionType       `json:"description,omitempty"`
   351  }
   352  
   353  type IncentiveDescriptionDataElementsType struct {
   354  	IncentiveId       *ElementTagType `json:"incentiveId,omitempty"`
   355  	IncentiveType     *ElementTagType `json:"incentiveType,omitempty"`
   356  	IncentivePriority *ElementTagType `json:"incentivePriority,omitempty"`
   357  	Currency          *ElementTagType `json:"currency,omitempty"`
   358  	Unit              *ElementTagType `json:"unit,omitempty"`
   359  	Label             *ElementTagType `json:"label,omitempty"`
   360  	Description       *ElementTagType `json:"description,omitempty"`
   361  }
   362  
   363  type IncentiveDescriptionListDataType struct {
   364  	IncentiveDescriptionData []IncentiveDescriptionDataType `json:"incentiveDescriptionData,omitempty"`
   365  }
   366  
   367  type IncentiveDescriptionListDataSelectorsType struct {
   368  	IncentiveId   *IncentiveIdType   `json:"incentiveId,omitempty"`
   369  	IncentiveType *IncentiveTypeType `json:"incentiveType,omitempty"`
   370  }