File size: 2,158 Bytes
cee2387
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package entitlement

import (
	"fmt"

	"github.com/openmeterio/openmeter/pkg/models"
)

type AlreadyExistsError struct {
	EntitlementID string
	FeatureID     string
	CustomerID    string
}

func (e *AlreadyExistsError) Error() string {
	return fmt.Sprintf("entitlement with id %s already exists for feature %s and customer %s", e.EntitlementID, e.FeatureID, e.CustomerID)
}

type AlreadyDeletedError struct {
	EntitlementID string
}

func (e *AlreadyDeletedError) Error() string {
	return fmt.Sprintf("entitlement with id %s already deleted", e.EntitlementID)
}

type NotFoundError struct {
	EntitlementID models.NamespacedID
}

func (e *NotFoundError) Error() string {
	return fmt.Sprintf("entitlement not found %s in namespace %s", e.EntitlementID.ID, e.EntitlementID.Namespace)
}

type WrongTypeError struct {
	Expected EntitlementType
	Actual   EntitlementType
}

func (e *WrongTypeError) Error() string {
	return fmt.Sprintf("expected entitlement type %s but got %s", e.Expected, e.Actual)
}

type InvalidValueError struct {
	Message string
	Type    EntitlementType
}

func (e *InvalidValueError) Error() string {
	return fmt.Sprintf("invalid entitlement value for type %s: %s", e.Type, e.Message)
}

type InvalidFeatureError struct {
	FeatureID string
	Message   string
}

func (e *InvalidFeatureError) Error() string {
	return fmt.Sprintf("invalid feature %s: %s", e.FeatureID, e.Message)
}

type ForbiddenError struct {
	Message string
}

func (e *ForbiddenError) Error() string {
	return fmt.Sprintf("forbidden: %s", e.Message)
}

const ErrCodeEntitlementCreatePropertyMismatch models.ErrorCode = "entitlement_create_property_mismatch"

var ErrEntitlementCreatePropertyMismatch = models.NewValidationIssue(
	ErrCodeEntitlementCreatePropertyMismatch,
	"entitlement create property mismatch",
)

const ErrCodeEntitlementGrantsOnlySupportedForMeteredEntitlements models.ErrorCode = "entitlement_grants_only_supported_for_metered_entitlements"

var ErrEntitlementGrantsOnlySupportedForMeteredEntitlements = models.NewValidationIssue(
	ErrCodeEntitlementGrantsOnlySupportedForMeteredEntitlements,
	"grants are only supported for metered entitlements",
)