From c78b4b4a75726cca0f3e2f3ed75a725c170bbc8f Mon Sep 17 00:00:00 2001 From: Alex Goth <64845621+GAlexIHU@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:49:57 +0200 Subject: [PATCH] feat: add measureUsageFrom input OM-751 (#1170) * feat: add measureUsageFrom input * style: fix lint * feat: add enum value for the default behavior * fix: lint * fix(e2e): increase waitTime to 10s --- api/api.gen.go | 647 ++++++++++-------- api/client/go/client.gen.go | 647 ++++++++++-------- api/client/node/schemas/openapi.ts | 17 + api/client/node/test/mocks.ts | 1 + api/client/web/src/client/openapi.ts | 17 + api/openapi.yaml | 23 + e2e/e2e_test.go | 39 +- internal/entitlement/entitlement.go | 69 +- internal/entitlement/entitlement_test.go | 38 + .../entitlement/httpdriver/entitlement.go | 26 + internal/entitlement/httpdriver/parser.go | 1 + internal/entitlement/metered/connector.go | 20 +- 12 files changed, 977 insertions(+), 568 deletions(-) diff --git a/api/api.gen.go b/api/api.gen.go index 1268f2f43..e72302243 100644 --- a/api/api.gen.go +++ b/api/api.gen.go @@ -70,6 +70,12 @@ const ( ExpirationPeriodDurationYEAR ExpirationPeriodDuration = "YEAR" ) +// Defines values for MeasureUsageFromEnum. +const ( + CURRENTPERIODSTART MeasureUsageFromEnum = "CURRENT_PERIOD_START" + NOW MeasureUsageFromEnum = "NOW" +) + // Defines values for NotificationChannelType. const ( WEBHOOK NotificationChannelType = "WEBHOOK" @@ -435,6 +441,9 @@ type EntitlementMetered struct { // LastReset The last time a reset happened. LastReset time.Time `json:"lastReset"` + // MeasureUsageFrom The time from which usage is measured. If not specified on creation, defaults to the entitlement creation time. + MeasureUsageFrom time.Time `json:"measureUsageFrom"` + // Metadata Additional metadata for the feature. Metadata *map[string]string `json:"metadata,omitempty"` @@ -459,6 +468,9 @@ type EntitlementMeteredCalculatedFields struct { // LastReset The last time a reset happened. LastReset time.Time `json:"lastReset"` + + // MeasureUsageFrom The time from which usage is measured. If not specified on creation, defaults to the entitlement creation time. + MeasureUsageFrom time.Time `json:"measureUsageFrom"` } // EntitlementMeteredCreateInputs defines model for EntitlementMeteredCreateInputs. @@ -486,6 +498,10 @@ type EntitlementMeteredCreateInputs struct { // IssueAfterResetPriority Defines the grant priority for the default grant. If provided, issueAfterReset must have a value. IssueAfterResetPriority *int `json:"issueAfterResetPriority,omitempty"` + // MeasureUsageFrom The time from which usage is measured, defaults to the entitlement creation time. + // The provided value is truncated to the granularity of the underlying meter. + MeasureUsageFrom *MeasureUsageFrom `json:"measureUsageFrom,omitempty"` + // Metadata Additional metadata for the feature. Metadata *map[string]string `json:"metadata,omitempty"` Type EntitlementMeteredCreateInputsType `json:"type"` @@ -812,6 +828,18 @@ type ListFeatureResponse1 struct { TotalCount int `json:"totalCount"` } +// MeasureUsageFrom The time from which usage is measured, defaults to the entitlement creation time. +// The provided value is truncated to the granularity of the underlying meter. +type MeasureUsageFrom struct { + union json.RawMessage +} + +// MeasureUsageFromEnum defines model for MeasureUsageFromEnum. +type MeasureUsageFromEnum string + +// MeasureUsageFromTime defines model for MeasureUsageFromTime. +type MeasureUsageFromTime = time.Time + // Meter A meter is a configuration that defines how to match and aggregate events. type Meter = models.Meter @@ -2288,6 +2316,68 @@ func (t *ListFeatureResponse) UnmarshalJSON(b []byte) error { return err } +// AsMeasureUsageFromEnum returns the union data inside the MeasureUsageFrom as a MeasureUsageFromEnum +func (t MeasureUsageFrom) AsMeasureUsageFromEnum() (MeasureUsageFromEnum, error) { + var body MeasureUsageFromEnum + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromMeasureUsageFromEnum overwrites any union data inside the MeasureUsageFrom as the provided MeasureUsageFromEnum +func (t *MeasureUsageFrom) FromMeasureUsageFromEnum(v MeasureUsageFromEnum) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeMeasureUsageFromEnum performs a merge with any union data inside the MeasureUsageFrom, using the provided MeasureUsageFromEnum +func (t *MeasureUsageFrom) MergeMeasureUsageFromEnum(v MeasureUsageFromEnum) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +// AsMeasureUsageFromTime returns the union data inside the MeasureUsageFrom as a MeasureUsageFromTime +func (t MeasureUsageFrom) AsMeasureUsageFromTime() (MeasureUsageFromTime, error) { + var body MeasureUsageFromTime + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromMeasureUsageFromTime overwrites any union data inside the MeasureUsageFrom as the provided MeasureUsageFromTime +func (t *MeasureUsageFrom) FromMeasureUsageFromTime(v MeasureUsageFromTime) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeMeasureUsageFromTime performs a merge with any union data inside the MeasureUsageFrom, using the provided MeasureUsageFromTime +func (t *MeasureUsageFrom) MergeMeasureUsageFromTime(v MeasureUsageFromTime) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +func (t MeasureUsageFrom) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} + +func (t *MeasureUsageFrom) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} + // AsNotificationChannelWebhook returns the union data inside the NotificationChannel as a NotificationChannelWebhook func (t NotificationChannel) AsNotificationChannelWebhook() (NotificationChannelWebhook, error) { var body NotificationChannelWebhook @@ -5049,285 +5139,288 @@ func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handl // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/client/go/client.gen.go b/api/client/go/client.gen.go index 9d2b38cf1..490b77fb1 100644 --- a/api/client/go/client.gen.go +++ b/api/client/go/client.gen.go @@ -70,6 +70,12 @@ const ( ExpirationPeriodDurationYEAR ExpirationPeriodDuration = "YEAR" ) +// Defines values for MeasureUsageFromEnum. +const ( + CURRENTPERIODSTART MeasureUsageFromEnum = "CURRENT_PERIOD_START" + NOW MeasureUsageFromEnum = "NOW" +) + // Defines values for NotificationChannelType. const ( WEBHOOK NotificationChannelType = "WEBHOOK" @@ -435,6 +441,9 @@ type EntitlementMetered struct { // LastReset The last time a reset happened. LastReset time.Time `json:"lastReset"` + // MeasureUsageFrom The time from which usage is measured. If not specified on creation, defaults to the entitlement creation time. + MeasureUsageFrom time.Time `json:"measureUsageFrom"` + // Metadata Additional metadata for the feature. Metadata *map[string]string `json:"metadata,omitempty"` @@ -459,6 +468,9 @@ type EntitlementMeteredCalculatedFields struct { // LastReset The last time a reset happened. LastReset time.Time `json:"lastReset"` + + // MeasureUsageFrom The time from which usage is measured. If not specified on creation, defaults to the entitlement creation time. + MeasureUsageFrom time.Time `json:"measureUsageFrom"` } // EntitlementMeteredCreateInputs defines model for EntitlementMeteredCreateInputs. @@ -486,6 +498,10 @@ type EntitlementMeteredCreateInputs struct { // IssueAfterResetPriority Defines the grant priority for the default grant. If provided, issueAfterReset must have a value. IssueAfterResetPriority *int `json:"issueAfterResetPriority,omitempty"` + // MeasureUsageFrom The time from which usage is measured, defaults to the entitlement creation time. + // The provided value is truncated to the granularity of the underlying meter. + MeasureUsageFrom *MeasureUsageFrom `json:"measureUsageFrom,omitempty"` + // Metadata Additional metadata for the feature. Metadata *map[string]string `json:"metadata,omitempty"` Type EntitlementMeteredCreateInputsType `json:"type"` @@ -812,6 +828,18 @@ type ListFeatureResponse1 struct { TotalCount int `json:"totalCount"` } +// MeasureUsageFrom The time from which usage is measured, defaults to the entitlement creation time. +// The provided value is truncated to the granularity of the underlying meter. +type MeasureUsageFrom struct { + union json.RawMessage +} + +// MeasureUsageFromEnum defines model for MeasureUsageFromEnum. +type MeasureUsageFromEnum string + +// MeasureUsageFromTime defines model for MeasureUsageFromTime. +type MeasureUsageFromTime = time.Time + // Meter A meter is a configuration that defines how to match and aggregate events. type Meter = models.Meter @@ -2288,6 +2316,68 @@ func (t *ListFeatureResponse) UnmarshalJSON(b []byte) error { return err } +// AsMeasureUsageFromEnum returns the union data inside the MeasureUsageFrom as a MeasureUsageFromEnum +func (t MeasureUsageFrom) AsMeasureUsageFromEnum() (MeasureUsageFromEnum, error) { + var body MeasureUsageFromEnum + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromMeasureUsageFromEnum overwrites any union data inside the MeasureUsageFrom as the provided MeasureUsageFromEnum +func (t *MeasureUsageFrom) FromMeasureUsageFromEnum(v MeasureUsageFromEnum) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeMeasureUsageFromEnum performs a merge with any union data inside the MeasureUsageFrom, using the provided MeasureUsageFromEnum +func (t *MeasureUsageFrom) MergeMeasureUsageFromEnum(v MeasureUsageFromEnum) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +// AsMeasureUsageFromTime returns the union data inside the MeasureUsageFrom as a MeasureUsageFromTime +func (t MeasureUsageFrom) AsMeasureUsageFromTime() (MeasureUsageFromTime, error) { + var body MeasureUsageFromTime + err := json.Unmarshal(t.union, &body) + return body, err +} + +// FromMeasureUsageFromTime overwrites any union data inside the MeasureUsageFrom as the provided MeasureUsageFromTime +func (t *MeasureUsageFrom) FromMeasureUsageFromTime(v MeasureUsageFromTime) error { + b, err := json.Marshal(v) + t.union = b + return err +} + +// MergeMeasureUsageFromTime performs a merge with any union data inside the MeasureUsageFrom, using the provided MeasureUsageFromTime +func (t *MeasureUsageFrom) MergeMeasureUsageFromTime(v MeasureUsageFromTime) error { + b, err := json.Marshal(v) + if err != nil { + return err + } + + merged, err := runtime.JSONMerge(t.union, b) + t.union = merged + return err +} + +func (t MeasureUsageFrom) MarshalJSON() ([]byte, error) { + b, err := t.union.MarshalJSON() + return b, err +} + +func (t *MeasureUsageFrom) UnmarshalJSON(b []byte) error { + err := t.union.UnmarshalJSON(b) + return err +} + // AsNotificationChannelWebhook returns the union data inside the NotificationChannel as a NotificationChannelWebhook func (t NotificationChannel) AsNotificationChannelWebhook() (NotificationChannelWebhook, error) { var body NotificationChannelWebhook @@ -10243,285 +10333,288 @@ func ParseResetEntitlementUsageResponse(rsp *http.Response) (*ResetEntitlementUs // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/client/node/schemas/openapi.ts b/api/client/node/schemas/openapi.ts index 9ae1a6e53..7951a6d0e 100644 --- a/api/client/node/schemas/openapi.ts +++ b/api/client/node/schemas/openapi.ts @@ -708,6 +708,17 @@ export interface components { usagePeriod?: components['schemas']['RecurringPeriod'] currentUsagePeriod?: components['schemas']['Period'] } + /** @enum {string} */ + MeasureUsageFromEnum: 'CURRENT_PERIOD_START' | 'NOW' + /** Format: date-time */ + MeasureUsageFromTime: string + /** + * @description The time from which usage is measured, defaults to the entitlement creation time. + * The provided value is truncated to the granularity of the underlying meter. + */ + MeasureUsageFrom: + | components['schemas']['MeasureUsageFromEnum'] + | components['schemas']['MeasureUsageFromTime'] EntitlementMeteredCreateInputs: components['schemas']['EntitlementCreateSharedFields'] & { /** * @example metered @@ -727,6 +738,7 @@ export interface components { */ isUnlimited?: boolean usagePeriod: components['schemas']['RecurringPeriodCreateInput'] + measureUsageFrom?: components['schemas']['MeasureUsageFrom'] /** * Format: double * @description You can grant usage automatically alongside the entitlement, the example scenario would be creating a starting balance. If an amount is specified here, a grant will be created alongside the entitlement with the specified amount. @@ -761,6 +773,11 @@ export interface components { */ lastReset: string currentUsagePeriod: components['schemas']['Period'] + /** + * Format: date-time + * @description The time from which usage is measured. If not specified on creation, defaults to the entitlement creation time. + */ + measureUsageFrom: string } EntitlementStaticCreateInputs: components['schemas']['EntitlementCreateSharedFields'] & { /** diff --git a/api/client/node/test/mocks.ts b/api/client/node/test/mocks.ts index cf54dca8c..ebfa93639 100644 --- a/api/client/node/test/mocks.ts +++ b/api/client/node/test/mocks.ts @@ -91,6 +91,7 @@ export const mockEntitlement: Entitlement = { from: '2024-01-01T00:00:00Z', to: '2024-01-01T00:00:00Z', }, + measureUsageFrom: '2024-01-01T00:00:00Z', issueAfterReset: mockCreateEntitlementInput.issueAfterReset, lastReset: '2024-01-01T00:00:00Z', createdAt: '2024-01-01T00:00:00Z', diff --git a/api/client/web/src/client/openapi.ts b/api/client/web/src/client/openapi.ts index 9ae1a6e53..7951a6d0e 100644 --- a/api/client/web/src/client/openapi.ts +++ b/api/client/web/src/client/openapi.ts @@ -708,6 +708,17 @@ export interface components { usagePeriod?: components['schemas']['RecurringPeriod'] currentUsagePeriod?: components['schemas']['Period'] } + /** @enum {string} */ + MeasureUsageFromEnum: 'CURRENT_PERIOD_START' | 'NOW' + /** Format: date-time */ + MeasureUsageFromTime: string + /** + * @description The time from which usage is measured, defaults to the entitlement creation time. + * The provided value is truncated to the granularity of the underlying meter. + */ + MeasureUsageFrom: + | components['schemas']['MeasureUsageFromEnum'] + | components['schemas']['MeasureUsageFromTime'] EntitlementMeteredCreateInputs: components['schemas']['EntitlementCreateSharedFields'] & { /** * @example metered @@ -727,6 +738,7 @@ export interface components { */ isUnlimited?: boolean usagePeriod: components['schemas']['RecurringPeriodCreateInput'] + measureUsageFrom?: components['schemas']['MeasureUsageFrom'] /** * Format: double * @description You can grant usage automatically alongside the entitlement, the example scenario would be creating a starting balance. If an amount is specified here, a grant will be created alongside the entitlement with the specified amount. @@ -761,6 +773,11 @@ export interface components { */ lastReset: string currentUsagePeriod: components['schemas']['Period'] + /** + * Format: date-time + * @description The time from which usage is measured. If not specified on creation, defaults to the entitlement creation time. + */ + measureUsageFrom: string } EntitlementStaticCreateInputs: components['schemas']['EntitlementCreateSharedFields'] & { /** diff --git a/api/openapi.yaml b/api/openapi.yaml index 758fcdfc1..b08c1c48b 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -1980,6 +1980,21 @@ components: $ref: "#/components/schemas/RecurringPeriod" currentUsagePeriod: $ref: "#/components/schemas/Period" + MeasureUsageFromEnum: + type: string + enum: + - CURRENT_PERIOD_START + - NOW + MeasureUsageFromTime: + type: string + format: date-time + MeasureUsageFrom: + description: | + The time from which usage is measured, defaults to the entitlement creation time. + The provided value is truncated to the granularity of the underlying meter. + oneOf: + - $ref: "#/components/schemas/MeasureUsageFromEnum" + - $ref: "#/components/schemas/MeasureUsageFromTime" EntitlementMeteredCreateInputs: allOf: - $ref: "#/components/schemas/EntitlementCreateSharedFields" @@ -2007,6 +2022,8 @@ components: Deprecated, ignored by the backend. Please use isSoftLimit instead; this field will be removed in the future. usagePeriod: $ref: "#/components/schemas/RecurringPeriodCreateInput" + measureUsageFrom: + $ref: "#/components/schemas/MeasureUsageFrom" issueAfterReset: type: number format: double @@ -2049,6 +2066,7 @@ components: required: - lastReset - currentUsagePeriod + - measureUsageFrom properties: lastReset: description: | @@ -2058,6 +2076,11 @@ components: example: "2023-01-01T00:00:00Z" currentUsagePeriod: $ref: "#/components/schemas/Period" + measureUsageFrom: + type: string + format: date-time + description: | + The time from which usage is measured. If not specified on creation, defaults to the entitlement creation time. EntitlementStaticCreateInputs: allOf: - $ref: "#/components/schemas/EntitlementCreateSharedFields" diff --git a/e2e/e2e_test.go b/e2e/e2e_test.go index 5609d233f..193be3439 100644 --- a/e2e/e2e_test.go +++ b/e2e/e2e_test.go @@ -472,7 +472,7 @@ func TestCredit(t *testing.T) { var featureId *api.FeatureId var featureKey string - const waitTime = time.Second * 4 + const waitTime = time.Second * 10 t.Run("Create Feature", func(t *testing.T) { randKey := ulid.Make().String() @@ -559,6 +559,10 @@ func TestCredit(t *testing.T) { t.Run("Create a Entitlement With Default Grants", func(t *testing.T) { randSubject := ulid.Make().String() + measureUsageFrom := time.Date(2024, time.January, 1, 0, 0, 0, 0, time.UTC) + muf := &api.MeasureUsageFrom{} + err := muf.FromMeasureUsageFromTime(measureUsageFrom) + require.NoError(t, err) meteredEntitlement := api.EntitlementMeteredCreateInputs{ Type: "metered", FeatureId: featureId, @@ -566,11 +570,12 @@ func TestCredit(t *testing.T) { Anchor: convert.ToPointer(time.Date(2024, time.January, 1, 0, 0, 0, 0, time.UTC)), Interval: "MONTH", }, + MeasureUsageFrom: muf, IssueAfterReset: convert.ToPointer(100.0), IssueAfterResetPriority: convert.ToPointer(6), } body := &api.CreateEntitlementJSONRequestBody{} - err := body.FromEntitlementMeteredCreateInputs(meteredEntitlement) + err = body.FromEntitlementMeteredCreateInputs(meteredEntitlement) require.NoError(t, err) resp, err := client.CreateEntitlementWithResponse(context.Background(), randSubject, *body) @@ -581,6 +586,7 @@ func TestCredit(t *testing.T) { require.NoError(t, err) require.Equal(t, randSubject, metered.SubjectKey) + require.Equal(t, measureUsageFrom, metered.MeasureUsageFrom) // fetch grants for entitlement grantListResp, err := client.ListEntitlementGrantsWithResponse(context.Background(), randSubject, *metered.Id, nil) @@ -596,6 +602,35 @@ func TestCredit(t *testing.T) { "issueAfterReset": "true", }, *(*grantListResp.JSON200)[0].Metadata) }) + t.Run("Create a Entitlement With MeasureUsageFrom enum", func(t *testing.T) { + randSubject := ulid.Make().String() + periodAnchor := time.Now().Truncate(time.Minute).Add(-time.Hour).In(time.UTC) + muf := &api.MeasureUsageFrom{} + err := muf.FromMeasureUsageFromEnum(api.CURRENTPERIODSTART) + require.NoError(t, err) + meteredEntitlement := api.EntitlementMeteredCreateInputs{ + Type: "metered", + FeatureId: featureId, + UsagePeriod: api.RecurringPeriodCreateInput{ + Anchor: &periodAnchor, + Interval: "MONTH", + }, + MeasureUsageFrom: muf, + } + body := &api.CreateEntitlementJSONRequestBody{} + err = body.FromEntitlementMeteredCreateInputs(meteredEntitlement) + require.NoError(t, err) + resp, err := client.CreateEntitlementWithResponse(context.Background(), randSubject, *body) + + require.NoError(t, err) + require.Equal(t, http.StatusCreated, resp.StatusCode(), "Invalid status code [response_body=%s]", string(resp.Body)) + + metered, err := resp.JSON201.AsEntitlementMetered() + require.NoError(t, err) + + require.Equal(t, randSubject, metered.SubjectKey) + require.Equal(t, periodAnchor, metered.MeasureUsageFrom) + }) t.Run("Create Grant", func(t *testing.T) { effectiveAt := time.Now().Truncate(time.Minute) diff --git a/internal/entitlement/entitlement.go b/internal/entitlement/entitlement.go index 9d0c511b5..c984878c7 100644 --- a/internal/entitlement/entitlement.go +++ b/internal/entitlement/entitlement.go @@ -1,8 +1,11 @@ package entitlement import ( + "fmt" + "slices" "time" + "github.com/openmeterio/openmeter/pkg/clock" "github.com/openmeterio/openmeter/pkg/models" "github.com/openmeterio/openmeter/pkg/recurrence" "github.com/openmeterio/openmeter/pkg/slicesx" @@ -12,6 +15,60 @@ type TypedEntitlement interface { GetType() EntitlementType } +type MeasureUsageFromEnum string + +const ( + MeasureUsageFromCurrentPeriodStart MeasureUsageFromEnum = "CURRENT_PERIOD_START" + MeasureUsageFromNow MeasureUsageFromEnum = "NOW" +) + +func (e MeasureUsageFromEnum) Values() []MeasureUsageFromEnum { + return []MeasureUsageFromEnum{MeasureUsageFromCurrentPeriodStart, MeasureUsageFromNow} +} + +func (e MeasureUsageFromEnum) Validate() error { + if !slices.Contains(e.Values(), e) { + return fmt.Errorf("invalid value") + } + return nil +} + +type MeasureUsageFromInput struct { + ts time.Time +} + +func (m MeasureUsageFromInput) Get() time.Time { + return m.ts +} + +func (m *MeasureUsageFromInput) FromTime(t time.Time) error { + if t.IsZero() { + return fmt.Errorf("time is zero") + } + + m.ts = t + return nil +} + +func (m *MeasureUsageFromInput) FromEnum(e MeasureUsageFromEnum, p UsagePeriod, t time.Time) error { + if err := e.Validate(); err != nil { + return err + } + switch e { + case MeasureUsageFromCurrentPeriodStart: + period, err := p.GetCurrentPeriodAt(clock.Now()) + if err != nil { + return err + } + m.ts = period.From + case MeasureUsageFromNow: + m.ts = t + default: + return fmt.Errorf("unsupported enum value") + } + return nil +} + type CreateEntitlementInputs struct { Namespace string `json:"namespace"` FeatureID *string `json:"featureId"` @@ -20,12 +77,12 @@ type CreateEntitlementInputs struct { EntitlementType EntitlementType `json:"type"` Metadata map[string]string `json:"metadata,omitempty"` - MeasureUsageFrom *time.Time `json:"measureUsageFrom,omitempty"` - IssueAfterReset *float64 `json:"issueAfterReset,omitempty"` - IssueAfterResetPriority *uint8 `json:"issueAfterResetPriority,omitempty"` - IsSoftLimit *bool `json:"isSoftLimit,omitempty"` - Config []byte `json:"config,omitempty"` - UsagePeriod *UsagePeriod `json:"usagePeriod,omitempty"` + MeasureUsageFrom *MeasureUsageFromInput `json:"measureUsageFrom,omitempty"` + IssueAfterReset *float64 `json:"issueAfterReset,omitempty"` + IssueAfterResetPriority *uint8 `json:"issueAfterResetPriority,omitempty"` + IsSoftLimit *bool `json:"isSoftLimit,omitempty"` + Config []byte `json:"config,omitempty"` + UsagePeriod *UsagePeriod `json:"usagePeriod,omitempty"` } func (c CreateEntitlementInputs) GetType() EntitlementType { diff --git a/internal/entitlement/entitlement_test.go b/internal/entitlement/entitlement_test.go index 9b3bfac90..ba5e7bec7 100644 --- a/internal/entitlement/entitlement_test.go +++ b/internal/entitlement/entitlement_test.go @@ -25,3 +25,41 @@ func TestUsagePeriod(t *testing.T) { assert.Equal(t, t1.AddDate(0, 0, 1), period.To) }) } + +func TestMeasureUsageFromInput(t *testing.T) { + t.Run("Should return time from input", func(t *testing.T) { + t1 := time.Now().Truncate(time.Minute) + m := &entitlement.MeasureUsageFromInput{} + err := m.FromTime(t1) + assert.NoError(t, err) + assert.Equal(t, t1, m.Get()) + }) + + t.Run("Should return time from CURRENT_PERIOD_START enum", func(t *testing.T) { + t0 := time.Now().Truncate(time.Minute) + t1 := t0.Add(-time.Hour) + up := entitlement.UsagePeriod{ + Interval: recurrence.RecurrencePeriodDaily, + Anchor: t1, + } + + m := &entitlement.MeasureUsageFromInput{} + err := m.FromEnum(entitlement.MeasureUsageFromCurrentPeriodStart, up, t0) + assert.NoError(t, err) + assert.Equal(t, t1, m.Get()) + }) + + t.Run("Should return time from CREATED_AT enum", func(t *testing.T) { + t0 := time.Now().Truncate(time.Minute) + t1 := t0.Add(-time.Hour) + up := entitlement.UsagePeriod{ + Interval: recurrence.RecurrencePeriodDaily, + Anchor: t1, + } + + m := &entitlement.MeasureUsageFromInput{} + err := m.FromEnum(entitlement.MeasureUsageFromNow, up, t0) + assert.NoError(t, err) + assert.Equal(t, t0, m.Get()) + }) +} diff --git a/internal/entitlement/httpdriver/entitlement.go b/internal/entitlement/httpdriver/entitlement.go index 597ebf20d..1c597953b 100644 --- a/internal/entitlement/httpdriver/entitlement.go +++ b/internal/entitlement/httpdriver/entitlement.go @@ -97,6 +97,32 @@ func (h *entitlementHandler) CreateEntitlement() CreateEntitlementHandler { if v.Metadata != nil { request.Metadata = *v.Metadata } + if v.MeasureUsageFrom != nil { + measureUsageFrom := &entitlement.MeasureUsageFromInput{} + apiTime, err := v.MeasureUsageFrom.AsMeasureUsageFromTime() + if err == nil { + err := measureUsageFrom.FromTime(apiTime) + if err != nil { + return request, err + } + } else { + apiEnum, err := v.MeasureUsageFrom.AsMeasureUsageFromEnum() + if err != nil { + return request, err + } + + // sanity check + if request.UsagePeriod == nil { + return request, errors.New("usage period is required for enum measure usage from") + } + + err = measureUsageFrom.FromEnum(entitlement.MeasureUsageFromEnum(apiEnum), *request.UsagePeriod, clock.Now()) + if err != nil { + return request, err + } + } + request.MeasureUsageFrom = measureUsageFrom + } case api.EntitlementStaticCreateInputs: request = entitlement.CreateEntitlementInputs{ Namespace: ns, diff --git a/internal/entitlement/httpdriver/parser.go b/internal/entitlement/httpdriver/parser.go index 86dca321f..c1ef284c5 100644 --- a/internal/entitlement/httpdriver/parser.go +++ b/internal/entitlement/httpdriver/parser.go @@ -39,6 +39,7 @@ func (parser) ToMetered(e *entitlement.Entitlement) (*api.EntitlementMetered, er return convert.ToPointer(int(p)) }) }), + MeasureUsageFrom: metered.MeasureUsageFrom, Metadata: convert.MapToPointer(metered.Metadata), SubjectKey: metered.SubjectKey, Type: api.EntitlementMeteredType(metered.EntitlementType), diff --git a/internal/entitlement/metered/connector.go b/internal/entitlement/metered/connector.go index 04263ee5c..83ee77f1b 100644 --- a/internal/entitlement/metered/connector.go +++ b/internal/entitlement/metered/connector.go @@ -127,24 +127,32 @@ func (c *connector) BeforeCreate(model entitlement.CreateEntitlementInputs, feat return nil, &entitlement.InvalidValueError{Type: model.EntitlementType, Message: "IssueAfterResetPriority requires IssueAfterReset"} } - model.MeasureUsageFrom = convert.ToPointer(defaultx.WithDefault(model.MeasureUsageFrom, clock.Now().Truncate(c.granularity))) + measureUsageFrom := convert.SafeDeRef( + model.MeasureUsageFrom, + func(m entitlement.MeasureUsageFromInput) *time.Time { + return convert.ToPointer(m.Get()) + }, + ) + + measureUsageFrom = convert.ToPointer(defaultx.WithDefault(measureUsageFrom, clock.Now().Truncate(c.granularity))) + model.IsSoftLimit = convert.ToPointer(defaultx.WithDefault(model.IsSoftLimit, false)) model.IssueAfterReset = convert.ToPointer(defaultx.WithDefault(model.IssueAfterReset, 0.0)) model.UsagePeriod.Anchor = model.UsagePeriod.Anchor.Truncate(c.granularity) // Calculating the very first period is different as it has to start from the start of measurement - currentPeriod, err := model.UsagePeriod.GetCurrentPeriodAt(*model.MeasureUsageFrom) + currentPeriod, err := model.UsagePeriod.GetCurrentPeriodAt(*measureUsageFrom) if err != nil { return nil, err } - if model.MeasureUsageFrom.After(currentPeriod.To) || model.MeasureUsageFrom.Equal(currentPeriod.To) { - return nil, fmt.Errorf("inconsistency error: start of measurement %s is after or equal to the calculated period end %s, period end should be exclusive", model.MeasureUsageFrom, currentPeriod) + if measureUsageFrom.After(currentPeriod.To) || measureUsageFrom.Equal(currentPeriod.To) { + return nil, fmt.Errorf("inconsistency error: start of measurement %s is after or equal to the calculated period end %s, period end should be exclusive", measureUsageFrom, currentPeriod) } // We have to alter the period to start with start of measurement - currentPeriod.From = *model.MeasureUsageFrom + currentPeriod.From = *measureUsageFrom return &entitlement.CreateEntitlementRepoInputs{ Namespace: model.Namespace, @@ -153,7 +161,7 @@ func (c *connector) BeforeCreate(model entitlement.CreateEntitlementInputs, feat SubjectKey: model.SubjectKey, EntitlementType: model.EntitlementType, Metadata: model.Metadata, - MeasureUsageFrom: model.MeasureUsageFrom, + MeasureUsageFrom: measureUsageFrom, IssueAfterReset: model.IssueAfterReset, IssueAfterResetPriority: model.IssueAfterResetPriority, IsSoftLimit: model.IsSoftLimit,