licenseapi

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2026 License: MPL-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	/* NEVER CHANGE ANY OF THESE */
	MetadataKeyAttachAll              = "attach_all_features"
	MetadataKeyProductForFeature      = "product_for_feature"
	MetadataKeyFeatureIsHidden        = "is_hidden"
	MetadataKeyFeatureIsPreview       = "is_preview"
	MetadataKeyFeatureIsLimit         = "is_limit"
	MetadataKeyFeatureLimitType       = "limit_type"
	MetadataKeyFeatureLimitTypeActive = "active"
	MetadataValueTrue                 = "true"
)

Metadata Keys

View Source
const (
	InstanceCreateRoute  = "/instance"
	InstanceCreateMethod = http.MethodPost
)
View Source
const (
	/* NEVER CHANGE ANY OF THESE */
	LimitsPrefix = "limits-"
)

Other

Variables

View Source
var Limits = map[ResourceName]*Limit{
	ConnectedClusterLimit: {
		DisplayName: "Connected Clusters",
		Name:        string(ConnectedClusterLimit),
	},
	DevsyClusterInstanceLimit: {
		DisplayName: "Virtual Clusters",
		Name:        string(DevsyClusterInstanceLimit),
	},
	DevsyClusterInstanceHALimit: {
		DisplayName: "Virtual Clusters (HA)",
		Name:        string(DevsyClusterInstanceHALimit),
	},
	DevsyWorkspaceInstanceLimit: {
		DisplayName: "Dev Environments",
		Name:        string(DevsyWorkspaceInstanceLimit),
	},
	UserLimit: {
		DisplayName: "Users",
		Name:        string(UserLimit),
	},
	InstanceLimit: {
		DisplayName: "Instances",
		Name:        string(InstanceLimit),
	},
}

Functions

func AllowedBeforeTime

func AllowedBeforeTime(featureName FeatureName) (*time.Time, error)

AllowedBeforeTime returns the parsed allowBefore time for a given feature. If the feature does not have an allowBefore date, it returns errNoAllowBefore. If the date is present but invalid, it returns the corresponding parsing error.

func GetFeatureDisplayName

func GetFeatureDisplayName(featureName string) (string, error)

GetFeatureDisplayName returns the display name for a given feature name.

func IsAllowBeforeNotDefined

func IsAllowBeforeNotDefined(err error) bool

IsAllowBeforeNotDefined determines whether the provided error is errNoAllowBefore, indicating that the feature has no allowBefore date.

Types

type Analytics

type Analytics struct {
	// Endpoint is the endpoint for the analytics server.
	Endpoint string `json:"endpoint,omitempty"`
	// Requests is a slice of requested resources to return analytics for.
	// +optional
	Requests []Request `json:"requests,omitempty"`
}

Analytics is a struct that represents the analytics server and the requests that should be sent to it. This information is sent to Devsy instances when they check in with the license server. +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Analytics) DeepCopy

func (in *Analytics) DeepCopy() *Analytics

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Analytics.

func (*Analytics) DeepCopyInto

func (in *Analytics) DeepCopyInto(out *Analytics)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Analytics) OpenAPIModelName

func (in Analytics) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Announcement

type Announcement struct {
	// Name contains the resource name of the announcement
	Name string `json:"name,omitempty"`
	// Title contains the title of the announcement in HTML format.
	Title string `json:"title,omitempty"`
	// Body contains the main message of the announcement in HTML format.
	Body string `json:"body,omitempty"`
	// Buttons to show alongside the announcement
	Buttons []*Button `json:"buttons,omitempty"`
}

Announcement contains an announcement that should be shown within the Devsy instance. This information is sent to Devsy instances when they check in with the license server. +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Announcement) DeepCopy

func (in *Announcement) DeepCopy() *Announcement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Announcement.

func (*Announcement) DeepCopyInto

func (in *Announcement) DeepCopyInto(out *Announcement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Announcement) OpenAPIModelName

func (in Announcement) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type BlockRequest

type BlockRequest struct {
	Request `json:",inline"`

	Overage *ResourceCount `json:"overage,omitempty"`
}

BlockRequest tells the instance to block certain requests due to overages (limit exceeded) the license server. +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*BlockRequest) DeepCopy

func (in *BlockRequest) DeepCopy() *BlockRequest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockRequest.

func (*BlockRequest) DeepCopyInto

func (in *BlockRequest) DeepCopyInto(out *BlockRequest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (BlockRequest) OpenAPIModelName

func (in BlockRequest) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Button

type Button struct {
	// Name is the name of the button (ButtonName). Optional.
	// +optional
	Name string `json:"name,omitempty"`

	// URL is the link at the other end of the button.
	ActionURL string `json:"url"`
	// DisplayText is the text to display on the button. If display text is unset the button will
	// never be shown in the Devsy UI.
	// +optional
	DisplayText string `json:"displayText,omitempty"`
	// Direct indicates if the Devsy front end should directly hit this endpoint. If false, it means
	// that the Devsy front end will be hitting the license server first to generate a one time token
	// for the operation; this also means that there will be a redirect URL in the response to the
	// request for this and that link should be followed by the front end.
	// +optional
	Direct bool `json:"direct,omitempty"`
}

Button is an object that represents a button in the Devsy UI that links to some external service for handling operations for licensing for example. +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Button) DeepCopy

func (in *Button) DeepCopy() *Button

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Button.

func (*Button) DeepCopyInto

func (in *Button) DeepCopyInto(out *Button)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Button) OpenAPIModelName

func (in Button) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ButtonName

type ButtonName string
const (
	ButtonContactSales  ButtonName = "contact-sales"
	ButtonManageBilling ButtonName = "manage-billing"
)

Buttons

type ChatAuthCreateInput

type ChatAuthCreateInput struct {
	*InstanceTokenAuth `json:",inline" hash:"-"`

	Provider string `json:"provider,omitempty"`
	Name     string `json:"name,omitempty"`
	Email    string `json:"email,omitempty"`
	Username string `json:"username,omitempty"`
}

ChatAuthCreateInput is the required input data for generating a hash for a user for in-product chat +k8s:deepcopy-gen=true

func (*ChatAuthCreateInput) DeepCopy

func (in *ChatAuthCreateInput) DeepCopy() *ChatAuthCreateInput

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChatAuthCreateInput.

func (*ChatAuthCreateInput) DeepCopyInto

func (in *ChatAuthCreateInput) DeepCopyInto(out *ChatAuthCreateInput)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ChatAuthCreateInput) OpenAPIModelName

func (in ChatAuthCreateInput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ChatAuthCreateOutput

type ChatAuthCreateOutput struct {
	Hash string `json:"hash,omitempty"`
}

ChatAuthCreateOutput is the struct holding all information for chat auth generate user hash" requests. +k8s:deepcopy-gen=true

func (*ChatAuthCreateOutput) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChatAuthCreateOutput.

func (*ChatAuthCreateOutput) DeepCopyInto

func (in *ChatAuthCreateOutput) DeepCopyInto(out *ChatAuthCreateOutput)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ChatAuthCreateOutput) OpenAPIModelName

func (in ChatAuthCreateOutput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type DevsyClusterInfo

type DevsyClusterInfo struct {
	UID               string   `json:"uid"`
	Name              string   `json:"name"`
	Namespace         string   `json:"namespace"`
	CreationTimestamp string   `json:"creation_timestamp"`
	IsAvailable       bool     `json:"is_available"`
	NodeMachineIDs    []string `json:"node_machine_ids"`
}

DevsyClusterInfo holds information about a single virtual cluster +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*DevsyClusterInfo) DeepCopy

func (in *DevsyClusterInfo) DeepCopy() *DevsyClusterInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DevsyClusterInfo.

func (*DevsyClusterInfo) DeepCopyInto

func (in *DevsyClusterInfo) DeepCopyInto(out *DevsyClusterInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (DevsyClusterInfo) OpenAPIModelName

func (in DevsyClusterInfo) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type DomainToken

type DomainToken struct {
	URL string `json:"url"`
}

+k8s:deepcopy-gen=true

func (*DomainToken) DeepCopy

func (in *DomainToken) DeepCopy() *DomainToken

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainToken.

func (*DomainToken) DeepCopyInto

func (in *DomainToken) DeepCopyInto(out *DomainToken)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (DomainToken) OpenAPIModelName

func (in DomainToken) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Feature

type Feature struct {
	// Name is the name of the feature (FeatureName)
	// This cannot be FeatureName because it needs to be downward compatible
	// e.g. older Devsy version doesn't know a newer feature but it will still be received
	// and still needs to be rendered in the license view
	Name string `json:"name"`

	// +optional
	DisplayName string `json:"displayName,omitempty"`

	// Preview represents whether the feature can be previewed if a user's license does not allow the feature
	// +optional
	Preview bool `json:"preview,omitempty"`

	// AllowBefore is an optional timestamp. If set, licenses issued before this time are allowed
	// to use the feature even if it's not included in the license.
	// +optional
	AllowBefore string `json:"allowBefore,omitempty"`

	// Status shows the status of the feature (see type FeatureStatus)
	// +optional
	Status string `json:"status,omitempty"`

	// Name of the module that this feature belongs to
	// +optional
	Module string `json:"module,omitempty"`
}

Feature contains information regarding to a feature +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func GetAllFeatures

func GetAllFeatures() []*Feature

func (*Feature) DeepCopy

func (in *Feature) DeepCopy() *Feature

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Feature.

func (*Feature) DeepCopyInto

func (in *Feature) DeepCopyInto(out *Feature)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Feature) OpenAPIModelName

func (in Feature) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type FeatureName

type FeatureName string
const (
	ClusterAccess FeatureName = "cluster-access" // Cluster Access

	ClusterRoles FeatureName = "cluster-roles" // Cluster Role Management

	ConnectedClusters FeatureName = "connected-clusters" // Connected Clusters

	Secrets FeatureName = "secrets" // Secrets Sync

	Apps FeatureName = "apps" // Apps

	Namespaces FeatureName = "namespaces" // Namespace Management

	OIDCProvider FeatureName = "oidc-provider" // Platform as OIDC Provider

	DevsyClusters FeatureName = "devsy-clusters" // Virtual Cluster Management

	DevsyDistroImage FeatureName = "devsy-distro-image" // Security-Hardened Devsy Image

	DevsyDistroBuiltInCoreDNS FeatureName = "devsy-distro-built-in-coredns" // Built-In CoreDNS

	PrivateNodesVpn FeatureName = "private-nodes-vpn" // Private Nodes VPN

	DevsyDistroPrivateNodes FeatureName = "devsy-distro-private-nodes" // Private Nodes

	PrivateNodesAutoNodes FeatureName = "private-nodes-auto-nodes" // Private Nodes Auto Nodes

	Standalone FeatureName = "standalone" // Standalone

	DevsyDistroEmbeddedEtcd FeatureName = "devsy-distro-embedded-etcd" // Embedded etcd

	DevsyDistroExternalDatabase FeatureName = "devsy-distro-external-database" // External Database

	ExternalDatabaseRdsIam FeatureName = "external-database-rds-iam" // External Database RDS IAM Authentication

	ConnectorExternalDatabase FeatureName = "connector-external-database" // Database Connector

	ConnectorExternalDatabaseEksPodIdentity FeatureName = "connector-external-database-eks-pod-identity" // EKS Pod Identity for External Database Connections

	DevsyHostPathMapper FeatureName = "devsy-host-path-mapper" // Central HostPath Mapper

	SyncNamespacesTohost FeatureName = "sync-namespaces-tohost" // Sync Namespaces toHost

	ResolveDns FeatureName = "resolve-dns" // Resolve DNS

	HybridScheduling FeatureName = "hybrid-scheduling" // Hybrid Scheduling

	DevsyProxyResources FeatureName = "devsy-proxy-resources" // Devsy Proxy Resources

	DraSync FeatureName = "dra-sync" // DRA Sync

	TemplateVersioning FeatureName = "template-versioning" // Template Versioning

	HighAvailabilityMode FeatureName = "ha-mode" // High-Availability Mode

	AirGappedMode FeatureName = "air-gapped-mode" // Air-Gapped Mode

	CustomBranding FeatureName = "custom-branding" // Custom Branding

	AdvancedUICustomizations FeatureName = "advanced-ui-customizations" // Advanced UI Customizations

	ScheduledSnapshots FeatureName = "scheduled-snapshots" // Auto Snapshots

	MultiRegionPlatform FeatureName = "multi-region-platform" // Multi-Region Platform

	RegionalClusterEndpoints FeatureName = "regional-cluster-endpoints" // Regional Cluster Endpoints

	MachineManagement FeatureName = "machine-management" // Machine Management

	LeastPrivilegeMode FeatureName = "least-privilege-mode" // Least Privilege Mode

	ProjectQuotas FeatureName = "project-quotas" // Project Quotas

	AuditLogging FeatureName = "audit-logging" // Audit Logging

	SSOAuth FeatureName = "sso-authentication" // Single Sign-On

	MultipleSSOProviders FeatureName = "multiple-sso-providers" // Multiple SSO Providers

	DevsyDistroCentralizedAdmissionControl FeatureName = "devsy-distro-centralized-admission-control" // Centralized Admission Control

	DevsyDistroFips FeatureName = "devsy-distro-fips" // FIPS

	VNodeRuntime FeatureName = "vnode-runtime" // vNode Runtime

	Netris FeatureName = "netris" // Netris

	KubeVip FeatureName = "kube-vip" // Kube-vip Integration

	Metal3 FeatureName = "metal3" // Metal3 Integration

	ArgoIntegration FeatureName = "argo-integration" // Argo Integration

	DevsyDistroIntegrationsKubeVirt FeatureName = "devsy-distro-integrations-kube-virt" // KubeVirt Integration

	VaultIntegration FeatureName = "vault-integration" // HashiCorp Vault Integration

	DevsyDistroIntegrationsExternalSecrets FeatureName = "devsy-distro-integrations-external-secrets" // External Secrets Integration

	DevsyDistroIntegrationsCertManager FeatureName = "devsy-distro-integrations-cert-manager" // Cert Manager Integration

	IstioIntegration FeatureName = "istio-integration" // Istio Integration

	AutoNodesBcm FeatureName = "auto-nodes-bcm" // Nvidia BCM Node Provider

	AutoNodesKubevirt FeatureName = "auto-nodes-kubevirt" // KubeVirt Node Provider

	AutoNodesTerraform FeatureName = "auto-nodes-terraform" // Terraform Node Provider

	AutoNodesClusterapi FeatureName = "auto-nodes-clusterapi" // ClusterAPI Node Provider

	AutoNodesMetal3 FeatureName = "auto-nodes-metal3" // Metal3 Node Provider

	DevsyDistroGenericSync FeatureName = "devsy-distro-generic-sync" // Generic Sync

	DevsyDistroSyncPatches FeatureName = "devsy-distro-sync-patches" // Sync Patches

	DevsyDistroTranslatePatches FeatureName = "devsy-distro-translate-patches" // Translate Patches

	NamespaceSleepMode FeatureName = "namespace-sleep-mode" // Sleep Mode for Namespaces

	DevsySleepMode FeatureName = "devsy-sleep-mode" // Sleep Mode for Virtual Clusters

	DevsyDistroSleepMode FeatureName = "devsy-distro-sleep-mode" // SleepMode

	DisablePlatformDB FeatureName = "disable-platform-db" // Disable Platform Database

	PlatformExternalDB FeatureName = "platform-external-db" // Platform External Database

	AutoIngressAuth FeatureName = "auto-ingress-authentication" // Automatic Auth For Ingresses

	DevsyEnterprisePlugins FeatureName = "devsy-enterprise-plugins" // Enterprise Plugins

	RancherIntegration FeatureName = "rancher-integration" // Rancher Integration

	MultiRegionMode FeatureName = "multi-region-mode" // Multi-Region Mode

	SecretEncryption FeatureName = "secret-encryption" // Secrets Encryption

	DevsyDistroAdmissionControl FeatureName = "devsy-distro-admission-control" // Virtual Admission Control

	DevsyDistroIsolatedControlPlane FeatureName = "devsy-distro-isolated-cp" // Isolated Control Plane

	Devsy FeatureName = "devsy" // Dev Environment Management

)

Features

const (
	Metrics FeatureName = "metrics"

	Runners FeatureName = "runners"

	ConnectLocalCluster FeatureName = "connect-local-cluster"

	PasswordAuthentication FeatureName = "password-auth"
)

func GetFeatures

func GetFeatures() []FeatureName

func GetFeaturesAllowedBefore

func GetFeaturesAllowedBefore() []FeatureName

GetFeaturesAllowedBefore returns list of features to be allowed before license's issued time

type FeatureStatus

type FeatureStatus string
const (
	FeatureStatusActive     FeatureStatus = "active"
	FeatureStatusPreview    FeatureStatus = "preview"
	FeatureStatusIncluded   FeatureStatus = "included"
	FeatureStatusHidden     FeatureStatus = "hidden"
	FeatureStatusDisallowed FeatureStatus = ""
)

Feature Status

type FeatureUsage

type FeatureUsage struct {
	Used   bool   `json:"used"`
	Status string `json:"status"`
}

FeatureUsage holds information about whether a feature is used and its status +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*FeatureUsage) DeepCopy

func (in *FeatureUsage) DeepCopy() *FeatureUsage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureUsage.

func (*FeatureUsage) DeepCopyInto

func (in *FeatureUsage) DeepCopyInto(out *FeatureUsage)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (FeatureUsage) OpenAPIModelName

func (in FeatureUsage) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type GenericRequestInput

type GenericRequestInput struct {
	*InstanceTokenAuth `json:",inline,omitempty" hash:"-"`

	// Payload provides the json encoded payload
	// +optional
	Payload string `json:"payload,omitempty"`

	// ReturnURL is the url from which the request is initiated
	// +optional
	ReturnURL string `json:"returnURL,omitempty"`
}

GenericRequestInput defines the payload that needs to be sent to a button's action URL +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*GenericRequestInput) DeepCopy

func (in *GenericRequestInput) DeepCopy() *GenericRequestInput

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericRequestInput.

func (*GenericRequestInput) DeepCopyInto

func (in *GenericRequestInput) DeepCopyInto(out *GenericRequestInput)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (GenericRequestInput) OpenAPIModelName

func (in GenericRequestInput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type GenericRequestOutput

type GenericRequestOutput struct {
	// RedirectURL to redirect the user to.
	// +optional
	RedirectURL string `json:"redirectURL,omitempty"`

	// HTML to display to the user.
	// +optional
	HTML string `json:"html,omitempty"`

	// Buttons to be shown to the user alongside other content (e.g. HTML).
	// +optional
	Buttons []Button `json:"buttons,omitempty"`
}

GenericRequestOutput specifies the response +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*GenericRequestOutput) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericRequestOutput.

func (*GenericRequestOutput) DeepCopyInto

func (in *GenericRequestOutput) DeepCopyInto(out *GenericRequestOutput)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (GenericRequestOutput) OpenAPIModelName

func (in GenericRequestOutput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type InstanceActivateInstanceInput

type InstanceActivateInstanceInput struct {
	ActivationCode string `json:"activationCode"`
}

func (InstanceActivateInstanceInput) OpenAPIModelName

func (in InstanceActivateInstanceInput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type InstanceCreateInput

type InstanceCreateInput struct {
	*InstanceTokenAuth `json:",inline" hash:"-"`

	// Product is the product that is being used. Can be empty, devsy or devsy-pro.
	// This should NOT be a ProductName but a string to allow for downward compatibility
	Product string `json:"product,omitempty" form:"product"`

	// StaticToken is a token for the instance. This is used for testing purposes or for instances that use a static token.
	StaticToken string `json:"staticToken,omitempty" form:"staticToken" hash:"-"`

	// Email is the admin email. Can be empty if no email is specified.
	Email string `json:"email,omitempty" form:"email"`

	DevsyVersion string `json:"version"     form:"version"     validate:"required"`
	KubeVersion  string `json:"kubeVersion" form:"kubeVersion" validate:"required"`

	KubeSystemNamespaceUID string `json:"kubeSystemNamespace" form:"kubeSystemNamespaceUID" validate:"required"`

	// ResourceUsage contains information about the number of resources used
	ResourceUsage map[string]ResourceCount `json:"resources,omitempty" form:"resources"`

	// FeatureUse contains information about what features are used
	FeatureUsage map[string]bool `json:"features,omitempty" form:"features"`

	// DebugInstanceID is the ID of the instance. This is only used for testing purposes.
	// Should never be sent from production instances.
	// Requires authentication via an access key.
	DebugInstanceID *string `json:"debugInstanceID,omitempty" form:"debugInstanceID" hash:"-"`

	// PlatformDatabase reports details about the platform database to the license service
	PlatformDatabase *PlatformDatabase `json:"platformDatabase,omitempty" form:"platformDatabase"`
}

InstanceCreateInput is the required input data for "instance create" operations, that is, the primary endpoint that Devsy instances will hit to register to the license server as well as get information about the instance's current license. +k8s:deepcopy-gen=true

func (*InstanceCreateInput) DeepCopy

func (in *InstanceCreateInput) DeepCopy() *InstanceCreateInput

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceCreateInput.

func (*InstanceCreateInput) DeepCopyInto

func (in *InstanceCreateInput) DeepCopyInto(out *InstanceCreateInput)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (InstanceCreateInput) OpenAPIModelName

func (in InstanceCreateInput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type InstanceCreateOutput

type InstanceCreateOutput struct {
	// License is the license data for the requested Devsy instance.
	License     *License `json:"license,omitempty"`
	CurrentTime int64    `json:"currentTime"`
}

InstanceCreateOutput is the struct holding all information returned from "instance create" requests. +k8s:deepcopy-gen=true

func (*InstanceCreateOutput) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceCreateOutput.

func (*InstanceCreateOutput) DeepCopyInto

func (in *InstanceCreateOutput) DeepCopyInto(out *InstanceCreateOutput)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (InstanceCreateOutput) OpenAPIModelName

func (in InstanceCreateOutput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type InstanceSendActivationEmailInput

type InstanceSendActivationEmailInput struct {
	Email string `json:"email"`
}

func (InstanceSendActivationEmailInput) OpenAPIModelName

func (in InstanceSendActivationEmailInput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type InstanceTokenAuth

type InstanceTokenAuth struct {
	// Token is the jwt token identifying the Devsy instance.
	Token string `json:"token" query:"token" validate:"required"`
	// Certificate is the signing certificate for the token.
	Certificate string `json:"certificate" form:"certificate" query:"certificate" validate:"required"`
}

+k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*InstanceTokenAuth) DeepCopy

func (in *InstanceTokenAuth) DeepCopy() *InstanceTokenAuth

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceTokenAuth.

func (*InstanceTokenAuth) DeepCopyInto

func (in *InstanceTokenAuth) DeepCopyInto(out *InstanceTokenAuth)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (InstanceTokenAuth) OpenAPIModelName

func (in InstanceTokenAuth) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type InstanceTokenClaims

type InstanceTokenClaims struct {
	// URLHash is the hash of the url to be signed with this token
	URLHash string `json:"url"`

	// PayloadHash is the hash of the payload to be signed with this token
	PayloadHash string `json:"payload"`
}

+k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*InstanceTokenClaims) DeepCopy

func (in *InstanceTokenClaims) DeepCopy() *InstanceTokenClaims

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceTokenClaims.

func (*InstanceTokenClaims) DeepCopyInto

func (in *InstanceTokenClaims) DeepCopyInto(out *InstanceTokenClaims)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (InstanceTokenClaims) OpenAPIModelName

func (in InstanceTokenClaims) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type InstanceUsageInput

type InstanceUsageInput struct {
	// KubeSystemNamespaceUID is the UID of the kube system namespace.
	KubeSystemNamespaceUID string `json:"kubeSystemNamespace"`

	// Type is the type of usage data to be sent to the license service.
	Type string `json:"type"`

	// Data is the data to be sent to the license service.
	Data []byte `json:"data"`
}

func (InstanceUsageInput) OpenAPIModelName

func (in InstanceUsageInput) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Invoice

type Invoice struct {
	// Date contains the unix timestamp marking the date this invoices was or will be created
	// +optional
	Date int64 `json:"date,omitempty"`

	// Total is the total of the invoice
	// +optional
	Total int64 `json:"total,omitempty"`

	// Currency specifies the currency of Total in 3-character ISO 4217 code
	// Default is: "" (representing USD)
	// +optional
	Currency string `json:"currency,omitempty"`
}

Invoice provides details about an invoice +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Invoice) DeepCopy

func (in *Invoice) DeepCopy() *Invoice

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Invoice.

func (*Invoice) DeepCopyInto

func (in *Invoice) DeepCopyInto(out *Invoice)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Invoice) OpenAPIModelName

func (in Invoice) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type License

type License struct {
	// InstanceID contains the instance id of the Devsy instance
	InstanceID string `json:"instance,omitempty"`
	// Entity holds a name for an organization, person or entity this product is licensed for. This will be displayed to the user.
	Entity string `json:"entity,omitempty"`

	// Annotations contains additional metadata about the license.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// Analytics indicates the analytics endpoints and which requests should be sent to the
	// analytics server.
	// +optional
	Analytics *Analytics `json:"analytics,omitempty"`
	// DomainToken holds the JWT with the URL that the Devsy instance is publicly available on.
	// (via Devsy router)
	// +optional
	DomainToken string `json:"domainToken"`
	// Buttons is a slice of license server endpoints (buttons) that the Devsy instance may need to
	// hit. Each Button contains the display text and link for the front end to work with.
	Buttons []*Button `json:"buttons,omitempty"`
	// Announcements is a map string/string such that we can easily add any additional data without
	// needing to change types. For now, we will use the keys "name" and "content".
	// +optional
	Announcements []*Announcement `json:"announcement,omitempty"`
	// Modules is a list of modules.
	// +optional
	Modules []*Module `json:"modules,omitempty"`
	// BlockRequests specifies which requests the product should block when a limit is exceeded.
	// +optional
	BlockRequests []BlockRequest `json:"block,omitempty"`
	// IsOffline indicates if the license is an offline license or not.
	// +optional
	IsOffline bool `json:"isOffline,omitempty"`

	// +optional
	Routes LicenseAPIRoutes `json:"routes,omitempty"`

	// Plans contains a list of plans
	// +optional
	Plans []Plan `json:"plans,omitempty"`

	// Usage data contains  resource usage information for a platform deployment
	// +optional
	UsageData UsageData `json:"usageData,omitempty"`
}

License is a struct representing the license data sent to a Devsy instance after checking in with the license server. +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func New

func New() *License

func (*License) DeepCopy

func (in *License) DeepCopy() *License

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new License.

func (*License) DeepCopyInto

func (in *License) DeepCopyInto(out *License)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (License) OpenAPIModelName

func (in License) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type LicenseAPIRoute

type LicenseAPIRoute struct {
	URL    string `json:"url,omitempty"`
	Method string `json:"method,omitempty"`

	// Tells the frontend whether to make a direct request or to make it via the backend (via generic license api request)
	// +optional
	Direct bool `json:"direct,omitempty"`
}

LicenseAPIRoute is a single route of the license api +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*LicenseAPIRoute) DeepCopy

func (in *LicenseAPIRoute) DeepCopy() *LicenseAPIRoute

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LicenseAPIRoute.

func (*LicenseAPIRoute) DeepCopyInto

func (in *LicenseAPIRoute) DeepCopyInto(out *LicenseAPIRoute)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (LicenseAPIRoute) OpenAPIModelName

func (in LicenseAPIRoute) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type LicenseAPIRoutes

type LicenseAPIRoutes struct {
	ChatAuth LicenseAPIRoute `json:"chatAuth,omitempty"`

	FeatureDetails LicenseAPIRoute `json:"featureDetails,omitempty"`
	FeatureSetup   LicenseAPIRoute `json:"featureSetup,omitempty"`
	FeaturePreview LicenseAPIRoute `json:"featurePreview,omitempty"`

	ModuleActivation LicenseAPIRoute `json:"moduleActivation,omitempty"`
	ModulePreview    LicenseAPIRoute `json:"modulePreview,omitempty"`

	Checkout LicenseAPIRoute `json:"checkout,omitempty"`
	Portal   LicenseAPIRoute `json:"portal,omitempty"`
}

LicenseAPIRoutes contains all key routes of the license api +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*LicenseAPIRoutes) DeepCopy

func (in *LicenseAPIRoutes) DeepCopy() *LicenseAPIRoutes

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LicenseAPIRoutes.

func (*LicenseAPIRoutes) DeepCopyInto

func (in *LicenseAPIRoutes) DeepCopyInto(out *LicenseAPIRoutes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (LicenseAPIRoutes) OpenAPIModelName

func (in LicenseAPIRoutes) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Limit

type Limit struct {
	// Name is the name of the resource (ResourceName)
	// +optional
	Name string `json:"name,omitempty"`

	// DisplayName is for display purposes.
	// +optional
	DisplayName string `json:"displayName,omitempty"`

	// Limit specifies the limit for this resource.
	// +optional
	Quantity *ResourceCount `json:"quantity,omitempty"`

	// Name of the module that this limit belongs to
	// +optional
	Module string `json:"module,omitempty"`
}

Limit defines a limit set in the license +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Limit) DeepCopy

func (in *Limit) DeepCopy() *Limit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Limit.

func (*Limit) DeepCopyInto

func (in *Limit) DeepCopyInto(out *Limit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Limit) OpenAPIModelName

func (in Limit) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Module

type Module struct {
	// Name of the module (ModuleName)
	Name string `json:"name"`

	// +optional
	DisplayName string `json:"displayName,omitempty"`

	// +optional
	Status FeatureStatus `json:"status,omitempty"`

	Limits   []*Limit   `json:"limits,omitempty"`
	Features []*Feature `json:"features,omitempty"`
}

Module is a struct representing a module of the product +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Module) DeepCopy

func (in *Module) DeepCopy() *Module

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Module.

func (*Module) DeepCopyInto

func (in *Module) DeepCopyInto(out *Module)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Module) OpenAPIModelName

func (in Module) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ModuleName

type ModuleName string
const (
	KubernetesNamespaceModule ModuleName = "k8s-namespaces"
	KubernetesClusterModule   ModuleName = "k8s-clusters"
	DevsyModule               ModuleName = "devsy"
	DevsyProDistroModule      ModuleName = "devsy-pro-distro"
	AuthModule                ModuleName = "auth"
	TemplatingModule          ModuleName = "templating"
	SecretsModule             ModuleName = "secrets"
	DeploymentModesModule     ModuleName = "deployment-modes"
	UIModule                  ModuleName = "ui"
)

Modules

type NodeInfo

type NodeInfo struct {
	MachineID         string            `json:"machine_id"`
	CreationTimestamp string            `json:"creation_timestamp"`
	Capacity          map[string]string `json:"capacity"`
}

NodeInfo holds information about a single node +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*NodeInfo) DeepCopy

func (in *NodeInfo) DeepCopy() *NodeInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeInfo.

func (*NodeInfo) DeepCopyInto

func (in *NodeInfo) DeepCopyInto(out *NodeInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (NodeInfo) OpenAPIModelName

func (in NodeInfo) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type OfflineLicenseKeyClaims

type OfflineLicenseKeyClaims struct {
	License *License `json:"license,omitempty"`
}

+k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*OfflineLicenseKeyClaims) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OfflineLicenseKeyClaims.

func (*OfflineLicenseKeyClaims) DeepCopyInto

func (in *OfflineLicenseKeyClaims) DeepCopyInto(out *OfflineLicenseKeyClaims)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (OfflineLicenseKeyClaims) OpenAPIModelName

func (in OfflineLicenseKeyClaims) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Plan

type Plan struct {
	// ID of the plan
	ID string `json:"id,omitempty"`

	// DisplayName is the display name of the plan
	// +optional
	DisplayName string `json:"displayName,omitempty"`

	// Status is the status of the plan
	// There should only be 1 active plan at the top-level (not including AddOns)
	// The respective price in Prices will have the active status as well
	// +optional
	Status PlanStatus `json:"status,omitempty"`

	// Period provides information about the plan's current period
	// This is nil unless this is the active plan
	// +optional
	Period *PlanPeriod `json:"period,omitempty"`

	// Trial provides details about a planned, ongoing or expired trial
	// +optional
	Trial *Trial `json:"trial,omitempty"`

	// UpcomingInvoice provides a preview of the next invoice that will be created for this Plan
	// +optional
	UpcomingInvoice *Invoice `json:"invoice,omitempty"`

	// Features is a list of features included in the plan
	// +optional
	Features []string `json:"features,omitempty"`

	// Limits is a list of resources included in the plan and their limits
	// +optional
	Limits []Limit `json:"limits,omitempty"`

	// Prices provides details about the available prices (depending on the interval, for example)
	// +optional
	Prices []PlanPrice `json:"prices,omitempty"`

	// AddOns are plans that can be added to this plan
	// +optional
	AddOns []Plan `json:"addons,omitempty"`
}

Plan definition +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Plan) DeepCopy

func (in *Plan) DeepCopy() *Plan

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plan.

func (*Plan) DeepCopyInto

func (in *Plan) DeepCopyInto(out *Plan)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Plan) OpenAPIModelName

func (in Plan) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type PlanExpiration

type PlanExpiration struct {
	// ExpiresAt is the unix timestamp of when the plan expires
	// +optional
	ExpiresAt int64 `json:"expiresAt,omitempty"`

	// UpgradesTo states the name of the plan that is replacing the current one upon its expiration
	// If this is nil, then this plan just expires (i.e. the subscription may be canceled, paused, etc.)
	// +optional
	UpgradesTo *string `json:"upgradesTo,omitempty"`
}

PlanExpiration provides details about the expiration of a plan +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*PlanExpiration) DeepCopy

func (in *PlanExpiration) DeepCopy() *PlanExpiration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanExpiration.

func (*PlanExpiration) DeepCopyInto

func (in *PlanExpiration) DeepCopyInto(out *PlanExpiration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PlanExpiration) OpenAPIModelName

func (in PlanExpiration) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type PlanInterval

type PlanInterval string
const (
	PlanIntervalMonth PlanInterval = "month"
	PlanIntervalYear  PlanInterval = "year"
)

Plan Interval

type PlanPeriod

type PlanPeriod struct {
	// CurrentPeriodStart contains the unix timestamp marking the start of the current period
	// +optional
	CurrentPeriodStart int64 `json:"start,omitempty"`

	// CurrentPeriodEnd contains the unix timestamp marking the end of the current period
	// +optional
	CurrentPeriodEnd int64 `json:"end,omitempty"`
}

PlanPeriod provides details about the period of the plan +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*PlanPeriod) DeepCopy

func (in *PlanPeriod) DeepCopy() *PlanPeriod

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanPeriod.

func (*PlanPeriod) DeepCopyInto

func (in *PlanPeriod) DeepCopyInto(out *PlanPeriod)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PlanPeriod) OpenAPIModelName

func (in PlanPeriod) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type PlanPrice

type PlanPrice struct {
	// ID of the price
	ID string `json:"id,omitempty"`

	// Status is the status of the price (PlanStatus)
	// If the plan is active, one of its prices must be active as well
	// +optional
	Status PlanStatus `json:"status,omitempty"`

	// Interval contains the time span of each period (e.g. month, year)
	// +optional
	Interval PlanInterval `json:"interval,omitempty"`

	// IntervalCount specifies if the number of intervals (e.g. 3 [months])
	// +optional
	IntervalCount float64 `json:"intervalCount,omitempty"`

	// Expiration provides information about when this plan expires
	// +optional
	Expiration *PlanExpiration `json:"exp,omitempty"`

	// Quantity sets the quantity the TierResource is supposed to be at
	// If this is the active price, then this is the subscription quantity (currently purchased quantity)
	// +optional
	Quantity float64 `json:"quantity,omitempty"`

	// TierResource provides details about the main resource the tier quantity relates to
	// This may be nil for plans that don't have their quantity tied to a resource
	// +optional
	TierResource *TierResource `json:"resource,omitempty"`

	// TierMode defines how tiers should be used
	// +optional
	TierMode TierMode `json:"tierMode,omitempty"`

	// Tiers is a list of tiers in this plan
	// +optional
	Tiers []PriceTier `json:"tiers,omitempty"`
}

PlanPrice defines a price for the plan +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*PlanPrice) DeepCopy

func (in *PlanPrice) DeepCopy() *PlanPrice

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanPrice.

func (*PlanPrice) DeepCopyInto

func (in *PlanPrice) DeepCopyInto(out *PlanPrice)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PlanPrice) OpenAPIModelName

func (in PlanPrice) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type PlanStatus

type PlanStatus string
const (
	PlanStatusActive    PlanStatus = "active"
	PlanStatusTrialing  PlanStatus = "trialing"
	PlanStatusLegacy    PlanStatus = "legacy"
	PlanStatusAvailable PlanStatus = ""
)

Plan Status

type PlatformDatabase

type PlatformDatabase struct {
	IsReady               bool   `json:"isReady"`
	CreationTimestamp     string `json:"creationTimestamp"`
	LatestUpdateTimestamp string `json:"latestUpdateTimestamp"`
}

PlatformDatabase contains information about the local platform database installation +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*PlatformDatabase) DeepCopy

func (in *PlatformDatabase) DeepCopy() *PlatformDatabase

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformDatabase.

func (*PlatformDatabase) DeepCopyInto

func (in *PlatformDatabase) DeepCopyInto(out *PlatformDatabase)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PlatformDatabase) OpenAPIModelName

func (in PlatformDatabase) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type PriceTier

type PriceTier struct {
	// MinQuantity is the quantity included in this plan
	// +optional
	MinQuantity float64 `json:"min,omitempty"`

	// MaxQuantity is the max quantity that can be purchased
	// +optional
	MaxQuantity float64 `json:"max,omitempty"`

	// UnitPrice is the price per unit in this tier
	// +optional
	UnitPrice float64 `json:"unitPrice,omitempty"`

	// FlatFee is the flat fee for this tier
	// +optional
	FlatFee float64 `json:"flatFee,omitempty"`

	// Currency specifies the currency of UnitPrice and FlatFee in 3-character ISO 4217 code
	// Default is: "" (representing USD)
	// +optional
	Currency string `json:"currency,omitempty"`
}

PriceTier defines a tier within a plan +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*PriceTier) DeepCopy

func (in *PriceTier) DeepCopy() *PriceTier

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriceTier.

func (*PriceTier) DeepCopyInto

func (in *PriceTier) DeepCopyInto(out *PriceTier)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PriceTier) OpenAPIModelName

func (in PriceTier) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ProductName

type ProductName string
const (
	/* NEVER CHANGE ANY OF THESE */
	DevsyOrg ProductName = "devsy"
	DevsyPro ProductName = "devsy-pro"
)

Products

type Request

type Request struct {
	// Group is the api group.
	// +optional
	Group string `json:"group,omitempty"`
	// Resource is the resource name for the request.
	// +optional
	Resource string `json:"resource,omitempty"`
	// Verbs is the list of verbs for the request.
	// +optional
	Verbs []string `json:"verbs,omitempty"`
}

Request represents a request analytics information for an apigroup/resource and a list of verb actions for that resource. +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Request) DeepCopy

func (in *Request) DeepCopy() *Request

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Request.

func (*Request) DeepCopyInto

func (in *Request) DeepCopyInto(out *Request)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Request) OpenAPIModelName

func (in Request) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ResourceCount

type ResourceCount struct {
	// Active specifies the number of currently active resource (non-sleeping).
	// +optional
	Active *int64 `json:"active,omitempty"`
	// Total specifies the number of currently existing resources.
	// +optional
	Total *int64 `json:"total,omitempty"`
	// TotalCreated is a continuous counter of the amount of resources ever created.
	// +optional
	TotalCreated *int64 `json:"created,omitempty"`
	// Committed specifies the amount of resource consumption customers have committed to for a given billing period.
	// It can be exceeded and will then be charged with overage fees.
	// +optional
	Committed *int64 `json:"committed,omitempty"`
}

ResourceCount stores the number of existing, active and total number of resources created. +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*ResourceCount) DeepCopy

func (in *ResourceCount) DeepCopy() *ResourceCount

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceCount.

func (*ResourceCount) DeepCopyInto

func (in *ResourceCount) DeepCopyInto(out *ResourceCount)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ResourceCount) OpenAPIModelName

func (in ResourceCount) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type ResourceName

type ResourceName string
const (
	/* NEVER CHANGE ANY OF THESE */
	ConnectedClusterLimit       ResourceName = "connected-cluster"
	DevsyClusterInstanceLimit   ResourceName = "virtual-cluster-instance"
	DevsyClusterInstanceHALimit ResourceName = "virtual-cluster-instance-ha"
	SpaceInstanceLimit          ResourceName = "space-instance"
	DevsyWorkspaceInstanceLimit ResourceName = "devsy-workspace-instance"
	UserLimit                   ResourceName = "user"
	InstanceLimit               ResourceName = "instance"
)

Resources (e.g. for limits)

type ResourceStatus

type ResourceStatus string
const (
	ResourceStatusActive       ResourceStatus = "active"
	ResourceStatusTotalCreated ResourceStatus = "created"
	ResourceStatusTotal        ResourceStatus = ""
)

Resource Status

type TierMode

type TierMode string
const (
	TierModeGraduated TierMode = "graduated"
	TierModeVolume    TierMode = "volume"
)

Tier Modes

type TierResource

type TierResource struct {
	// Name of the resource (ResourceName)
	Name string `json:"name,omitempty"`

	// Status defines which resources will be counted towards the limit (e.g. active, total, total created etc.)
	// +optional
	Status ResourceStatus `json:"status,omitempty"`
}

TierResource provides details about the main resource the tier quantity relates to +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*TierResource) DeepCopy

func (in *TierResource) DeepCopy() *TierResource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TierResource.

func (*TierResource) DeepCopyInto

func (in *TierResource) DeepCopyInto(out *TierResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (TierResource) OpenAPIModelName

func (in TierResource) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type Trial

type Trial struct {
	// ID is the unique id of this trial
	ID string `json:"id,omitempty"`

	// DisplayName is a display name for the trial
	// +optional
	DisplayName string `json:"displayName,omitempty"`

	// Start is the unix timestamp stating when the trial was started
	// +optional
	Start *int64 `json:"start,omitempty"`

	// End is the unix timestamp stating when the trial will end or ended
	// +optional
	End int64 `json:"end,omitempty"`

	// Status is the status of this trial (TrialStatus)
	// +optional
	Status string `json:"status,omitempty"`

	// DowngradesTo states the name of the plan that is replacing the current one once the trial expires
	// If this is nil, then this plan just expires (i.e. the subscription may be canceled, paused, etc.)
	// +optional
	DowngradesTo *string `json:"downgradesTo,omitempty"`
}

Trial represents a trial +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*Trial) DeepCopy

func (in *Trial) DeepCopy() *Trial

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Trial.

func (*Trial) DeepCopyInto

func (in *Trial) DeepCopyInto(out *Trial)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Trial) OpenAPIModelName

func (in Trial) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type TrialStatus

type TrialStatus string
const (
	TrialStatusExpired TrialStatus = "expired"
	TrialStatusActive  TrialStatus = ""
)

Trial Status

type UsageData

type UsageData struct {
	// FeatureUsage contains the usage of features
	FeatureUsage map[string]FeatureUsage `json:"featureUsage"`

	// ResourceUsage contains the usage of resources
	ResourceUsage map[string]ResourceCount `json:"resourceUsage"`

	// Details contains the details of the usage data
	Details UsageDataDetails `json:"details"`
}

UsageData holds information for an instance deployment of Devsy Platform +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*UsageData) DeepCopy

func (in *UsageData) DeepCopy() *UsageData

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UsageData.

func (*UsageData) DeepCopyInto

func (in *UsageData) DeepCopyInto(out *UsageData)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (UsageData) OpenAPIModelName

func (in UsageData) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

type UsageDataDetails

type UsageDataDetails struct {
	// Nodes contains the details of the nodes
	Nodes []NodeInfo `json:"nodes"`

	// DevsyClusters contains the details of the virtual clusters
	DevsyClusters []DevsyClusterInfo `json:"vClusters"`
}

UsageDataDetails holds detailed information about the nodes and virtual cluster for an instance deployment of Devsy Platform +k8s:openapi-gen=true +k8s:deepcopy-gen=true

func (*UsageDataDetails) DeepCopy

func (in *UsageDataDetails) DeepCopy() *UsageDataDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UsageDataDetails.

func (*UsageDataDetails) DeepCopyInto

func (in *UsageDataDetails) DeepCopyInto(out *UsageDataDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (UsageDataDetails) OpenAPIModelName

func (in UsageDataDetails) OpenAPIModelName() string

OpenAPIModelName returns the OpenAPI model name for this type.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL