| 12345678910111213141516171819202122232425262728293031323334353637 |
- package pricing
- import (
- "maps"
- "slices"
- "time"
- "github.com/opencost/opencost/core/pkg/unit"
- )
- type NodePricingProperties struct {
- Provider Provider `json:"provider,omitempty" yaml:"provider,omitempty"`
- Region string `json:"region,omitempty" yaml:"region,omitempty"`
- InstanceType string `json:"instanceType,omitempty" yaml:"instanceType,omitempty"`
- Provisioning ProvisioningType `json:"provisioning,omitempty" yaml:"provisioning,omitempty"`
- Commitment CommitmentType `json:"commitment,omitempty" yaml:"commitment,omitempty"`
- Cluster string `json:"cluster,omitempty" yaml:"cluster,omitempty"`
- ProviderID string `json:"providerID,omitempty" yaml:"providerID,omitempty"`
- Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
- Start *time.Time `json:"start,omitempty" yaml:"start,omitempty"`
- End *time.Time `json:"end,omitempty" yaml:"end,omitempty"`
- }
- type NodePricing struct {
- Properties NodePricingProperties `json:"properties" yaml:"properties"`
- Prices Prices `json:"prices" yaml:"pricing"`
- }
- func (np *NodePricing) GetCurrencies() []unit.Currency {
- currencies := map[unit.Currency]struct{}{}
- for currency := range np.Prices {
- currencies[currency] = struct{}{}
- }
- return slices.Collect(maps.Keys(currencies))
- }
|