Documentation
¶
Index ¶
- Constants
- Variables
- func AllowedBeforeTime(featureName FeatureName) (*time.Time, error)
- func GetFeatureDisplayName(featureName string) (string, error)
- func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
- func IsAllowBeforeNotDefined(err error) bool
- type Analytics
- type Announcement
- type BlockRequest
- type Button
- type ButtonName
- type ChatAuthCreateInput
- type ChatAuthCreateOutput
- type DevsyClusterInfo
- type DomainToken
- type Feature
- type FeatureName
- type FeatureStatus
- type FeatureUsage
- type GenericRequestInput
- type GenericRequestOutput
- type InstanceActivateInstanceInput
- type InstanceCreateInput
- type InstanceCreateOutput
- type InstanceSendActivationEmailInput
- type InstanceTokenAuth
- type InstanceTokenClaims
- type InstanceUsageInput
- type Invoice
- type License
- type LicenseAPIRoute
- type LicenseAPIRoutes
- type Limit
- type Module
- type ModuleName
- type NodeInfo
- type OfflineLicenseKeyClaims
- type Plan
- type PlanExpiration
- type PlanInterval
- type PlanPeriod
- type PlanPrice
- type PlanStatus
- type PlatformDatabase
- type PriceTier
- type ProductName
- type Request
- type ResourceCount
- type ResourceName
- type ResourceStatus
- type TierMode
- type TierResource
- type Trial
- type TrialStatus
- type UsageData
- type UsageDataDetails
Constants ¶
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
const ( InstanceCreateRoute = "/instance" InstanceCreateMethod = http.MethodPost )
const (
/* NEVER CHANGE ANY OF THESE */
LimitsPrefix = "limits-"
)
Other
Variables ¶
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 ¶
GetFeatureDisplayName returns the display name for a given feature name.
func GetOpenAPIDefinitions ¶
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
func IsAllowBeforeNotDefined ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Analytics.
func (*Analytics) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Analytics) OpenAPIModelName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Button.
func (*Button) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Button) OpenAPIModelName ¶
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 ¶
func (in *ChatAuthCreateOutput) DeepCopy() *ChatAuthCreateOutput
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Feature.
func (*Feature) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Feature) OpenAPIModelName ¶
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 ¶
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 ¶
func (in *GenericRequestOutput) DeepCopy() *GenericRequestOutput
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 ¶
func (in *InstanceCreateOutput) DeepCopy() *InstanceCreateOutput
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Invoice.
func (*Invoice) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Invoice) OpenAPIModelName ¶
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 (*License) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new License.
func (*License) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (License) OpenAPIModelName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Limit.
func (*Limit) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Limit) OpenAPIModelName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Module.
func (*Module) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Module) OpenAPIModelName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeInfo.
func (*NodeInfo) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (NodeInfo) OpenAPIModelName ¶
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 ¶
func (in *OfflineLicenseKeyClaims) DeepCopy() *OfflineLicenseKeyClaims
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plan.
func (*Plan) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Plan) OpenAPIModelName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanPrice.
func (*PlanPrice) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PlanPrice) OpenAPIModelName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriceTier.
func (*PriceTier) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PriceTier) OpenAPIModelName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Request.
func (*Request) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Request) OpenAPIModelName ¶
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 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Trial.
func (*Trial) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Trial) OpenAPIModelName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UsageData.
func (*UsageData) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (UsageData) OpenAPIModelName ¶
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.
Source Files
¶
- doc.go
- features.go
- features_allowed_before.go
- features_displayname.go
- features_internal.go
- generate.go
- license.go
- license_analytics.go
- license_announcement.go
- license_block_request.go
- license_button.go
- license_datausage.go
- license_domain_token.go
- license_feature.go
- license_invoice.go
- license_limit.go
- license_module.go
- license_new.go
- license_plan.go
- license_resource_count.go
- license_routes.go
- license_trial.go
- names.go
- offline_license.go
- request_auth.go
- request_chat_auth.go
- request_generic.go
- request_instance.go
- zz_generated.deepcopy.go
- zz_generated.model_name.go
- zz_generated.openapi.go