package v1alpha1 import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" commonv1 "github.com/johnandersen777/socialweb-computer-kcp/api/common/v1alpha1" ) type RemoteOpenBao struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec RemoteOpenBaoSpec `json:"spec,omitempty"` Status RemoteOpenBaoStatus `json:"status,omitempty"` } type RemoteOpenBaoList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []RemoteOpenBao `json:"items"` } type RemoteOpenBaoSpec struct { URL string `json:"url" apigen:"userEndpoint"` TLS RemoteOpenBaoTLS `json:"tls,omitempty"` Auth RemoteOpenBaoAuth `json:"auth,omitempty"` Mounts RemoteOpenBaoMounts `json:"mounts,omitempty"` Capabilities []string `json:"capabilities,omitempty"` Suspend bool `json:"suspend,omitempty"` } type RemoteOpenBaoTLS struct { Enabled bool `json:"enabled,omitempty"` CARef *commonv1.ObjectRef `json:"caRef,omitempty"` CASecretRef *commonv1.SecretRef `json:"caSecretRef,omitempty"` ServerName string `json:"serverName,omitempty"` } type RemoteOpenBaoAuthMethod string const ( RemoteOpenBaoAuthToken RemoteOpenBaoAuthMethod = "token" RemoteOpenBaoAuthAppRole RemoteOpenBaoAuthMethod = "approle" RemoteOpenBaoAuthCert RemoteOpenBaoAuthMethod = "cert" ) type RemoteOpenBaoAuth struct { Method RemoteOpenBaoAuthMethod `json:"method"` TokenRef *commonv1.SecretRef `json:"tokenRef,omitempty"` AppRole *RemoteOpenBaoAppRole `json:"approle,omitempty"` Cert *RemoteOpenBaoCert `json:"cert,omitempty"` } type RemoteOpenBaoAppRole struct { RoleIDRef commonv1.SecretRef `json:"roleIdRef"` SecretIDRef commonv1.SecretRef `json:"secretIdRef"` } type RemoteOpenBaoCert struct { CertRef commonv1.SecretRef `json:"certRef"` KeyRef commonv1.SecretRef `json:"keyRef"` } type RemoteOpenBaoMounts struct { KV string `json:"kv,omitempty"` PKI string `json:"pki,omitempty"` Auth string `json:"auth,omitempty"` } type RemoteOpenBaoPhase string const ( RemoteOpenBaoPhasePending RemoteOpenBaoPhase = "Pending" RemoteOpenBaoPhaseReady RemoteOpenBaoPhase = "Ready" RemoteOpenBaoPhaseFailed RemoteOpenBaoPhase = "Failed" RemoteOpenBaoPhaseSuspended RemoteOpenBaoPhase = "Suspended" ) type RemoteOpenBaoStatus struct { Phase RemoteOpenBaoPhase `json:"phase,omitempty"` Ready bool `json:"ready,omitempty"` Endpoint string `json:"endpoint,omitempty"` Address string `json:"address,omitempty"` Initialized bool `json:"initialized,omitempty"` Version string `json:"version,omitempty"` Sealed bool `json:"sealed,omitempty"` LastCheckedAt *metav1.Time `json:"lastCheckedAt,omitempty"` Conditions []metav1.Condition `json:"conditions,omitempty"` Message string `json:"message,omitempty"` }