fix(provision): reconcile channel pricing and hosted access
This commit is contained in:
@@ -18,6 +18,7 @@ type HostAdapter interface {
|
||||
CreateGroup(ctx context.Context, req CreateGroupRequest) (GroupRef, error)
|
||||
DeleteGroup(ctx context.Context, groupID string) error
|
||||
CreateChannel(ctx context.Context, req CreateChannelRequest) (ChannelRef, error)
|
||||
UpdateChannel(ctx context.Context, channelID string, req CreateChannelRequest) error
|
||||
DeleteChannel(ctx context.Context, channelID string) error
|
||||
CreatePlan(ctx context.Context, req CreatePlanRequest) (PlanRef, error)
|
||||
DeletePlan(ctx context.Context, planID string) error
|
||||
@@ -26,6 +27,7 @@ type HostAdapter interface {
|
||||
DeleteAccount(ctx context.Context, accountID string) error
|
||||
TestAccount(ctx context.Context, accountID string) (ProbeResult, error)
|
||||
GetAccountModels(ctx context.Context, accountID string) ([]AccountModel, error)
|
||||
EnsureSubscriptionAccess(ctx context.Context, req EnsureSubscriptionAccessRequest) (SubscriptionAccessRef, error)
|
||||
AssignSubscription(ctx context.Context, req AssignSubscriptionRequest) (SubscriptionRef, error)
|
||||
CheckGatewayAccess(ctx context.Context, req GatewayAccessCheckRequest) (GatewayAccessResult, error)
|
||||
ListManagedResources(ctx context.Context, req ListManagedResourcesRequest) (ManagedResourceSnapshot, error)
|
||||
@@ -54,11 +56,38 @@ type GroupRef struct {
|
||||
}
|
||||
|
||||
type CreateChannelRequest struct {
|
||||
Name string `json:"name"`
|
||||
GroupIDs []string `json:"group_ids"`
|
||||
ModelMapping map[string]string `json:"model_mapping,omitempty"`
|
||||
RestrictModels bool `json:"restrict_models,omitempty"`
|
||||
BillingModelSource string `json:"billing_model_source,omitempty"`
|
||||
Name string `json:"name"`
|
||||
GroupIDs []string `json:"group_ids"`
|
||||
ModelMapping map[string]string `json:"model_mapping,omitempty"`
|
||||
ModelPricing []ChannelModelPricing `json:"model_pricing,omitempty"`
|
||||
Platform string `json:"-"`
|
||||
RestrictModels bool `json:"restrict_models,omitempty"`
|
||||
BillingModelSource string `json:"billing_model_source,omitempty"`
|
||||
}
|
||||
|
||||
type ChannelModelPricing struct {
|
||||
Platform string `json:"platform,omitempty"`
|
||||
Models []string `json:"models,omitempty"`
|
||||
BillingMode string `json:"billing_mode,omitempty"`
|
||||
InputPrice *float64 `json:"input_price,omitempty"`
|
||||
OutputPrice *float64 `json:"output_price,omitempty"`
|
||||
CacheWritePrice *float64 `json:"cache_write_price,omitempty"`
|
||||
CacheReadPrice *float64 `json:"cache_read_price,omitempty"`
|
||||
ImageOutputPrice *float64 `json:"image_output_price,omitempty"`
|
||||
PerRequestPrice *float64 `json:"per_request_price,omitempty"`
|
||||
Intervals []ChannelPricingTier `json:"intervals,omitempty"`
|
||||
}
|
||||
|
||||
type ChannelPricingTier struct {
|
||||
MinTokens int `json:"min_tokens,omitempty"`
|
||||
MaxTokens *int `json:"max_tokens,omitempty"`
|
||||
TierLabel string `json:"tier_label,omitempty"`
|
||||
InputPrice *float64 `json:"input_price,omitempty"`
|
||||
OutputPrice *float64 `json:"output_price,omitempty"`
|
||||
CacheWritePrice *float64 `json:"cache_write_price,omitempty"`
|
||||
CacheReadPrice *float64 `json:"cache_read_price,omitempty"`
|
||||
PerRequestPrice *float64 `json:"per_request_price,omitempty"`
|
||||
SortOrder int `json:"sort_order,omitempty"`
|
||||
}
|
||||
|
||||
type ChannelRef struct {
|
||||
@@ -116,6 +145,16 @@ type AssignSubscriptionRequest struct {
|
||||
DurationDays int `json:"validity_days,omitempty"`
|
||||
}
|
||||
|
||||
type EnsureSubscriptionAccessRequest struct {
|
||||
UserSelector string
|
||||
GroupID string
|
||||
}
|
||||
|
||||
type SubscriptionAccessRef struct {
|
||||
UserID string
|
||||
APIKey string
|
||||
}
|
||||
|
||||
type SubscriptionRef struct {
|
||||
ID string `json:"id"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user