v1alpha3

package
v0.22.0 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2026 License: AGPL-3.0, Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package v1alpha3 contains API Schema definitions for the core v1alpha3 API group

Index

Constants

View Source
const (
	DomainRecordFinalizer = "domainrecord.core.apoxy.dev/finalizer"

	// DomainReplaceAnnotation enables atomic record-type changes. Because a
	// DomainRecord's target field key is immutable and its metadata.name is
	// derived from it, changing a record's type (e.g. A → CNAME) requires
	// creating a new object and deleting the old one. Setting this annotation
	// to the metadata.name of the old record allows the new record to be
	// created first — the admission webhook skips the compatibility check
	// for the named record, the controller syncs DNS for the new record
	// (excluding the old one from the desired state), deletes the old record,
	// and finally clears the annotation. If creation of the new record fails
	// for any reason, the old record remains untouched.
	DomainReplaceAnnotation = "core.apoxy.dev/replaces"
)
View Source
const (
	ReasonOwnershipVerifiedByTLS            = "TLSCertificateIssued"
	ReasonOwnershipVerifiedByApoxyChallenge = "ApoxyChallengeConfigured"
	ReasonOwnershipVerifiedByCNAME          = "CNAMEConfigured"
	ReasonOwnershipVerifiedByZone           = "ZoneOwned"
	ReasonOwnershipNotVerified              = "OwnershipNotVerified"
)

Reasons for ConditionOwnershipVerified. Declared next to the condition so a rename cannot compile clean on one side of the wire contract only.

View Source
const ConditionOwnershipVerified = "OwnershipVerified"

ConditionOwnershipVerified is the DomainRecord status condition recording whether the customer has proven control of the hostname. Like the phase, it is wire contract between the producing apiserver and the consuming backplane: admission falls back to it on records without a phase.

View Source
const GroupName = "core.apoxy.dev"

GroupName specifies the group name used to register the objects.

Variables

View Source
var (
	// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
	SchemeBuilder runtime.SchemeBuilder

	// Deprecated: use Install instead
	AddToScheme = localSchemeBuilder.AddToScheme
	Install     = localSchemeBuilder.AddToScheme
)
View Source
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha3"}

GroupVersion specifies the group and the version used to register the objects.

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha3"}

SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type Address

type Address struct {
	// Address line 1.
	// +optional
	AddressLine1 string `json:"addressLine1,omitempty"`

	// Address line 2.
	// +optional
	AddressLine2 string `json:"addressLine2,omitempty"`

	// City.
	// +optional
	City string `json:"city,omitempty"`

	// State or province.
	// +optional
	StateProvince string `json:"stateProvince,omitempty"`

	// PostalCode or ZIP code.
	// +optional
	PostalCode string `json:"postalCode,omitempty"`

	// Country code (ISO 3166-1 alpha-2).
	// +optional
	Country string `json:"country,omitempty"`
}

Address contains postal address information.

func (*Address) DeepCopy

func (in *Address) DeepCopy() *Address

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

func (*Address) DeepCopyInto

func (in *Address) DeepCopyInto(out *Address)

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

type DomainRecord

type DomainRecord struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   DomainRecordSpec   `json:"spec,omitempty"`
	Status DomainRecordStatus `json:"status,omitempty"`
}

func (*DomainRecord) ConvertToTable

func (r *DomainRecord) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)

ConvertToTable implements rest.TableConvertor for DomainRecord.

func (*DomainRecord) DeepCopy

func (in *DomainRecord) DeepCopy() *DomainRecord

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

func (*DomainRecord) DeepCopyInto

func (in *DomainRecord) DeepCopyInto(out *DomainRecord)

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

func (*DomainRecord) DeepCopyObject

func (in *DomainRecord) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*DomainRecord) Default

func (r *DomainRecord) Default()

Default sets the default values for a DomainRecord.

func (*DomainRecord) GetGroupVersionResource

func (r *DomainRecord) GetGroupVersionResource() schema.GroupVersionResource

func (*DomainRecord) GetObjectMeta

func (r *DomainRecord) GetObjectMeta() *metav1.ObjectMeta

func (*DomainRecord) GetSingularName

func (r *DomainRecord) GetSingularName() string

func (*DomainRecord) GetStatus

func (r *DomainRecord) GetStatus() resource.StatusSubResource

func (*DomainRecord) IsStorageVersion

func (r *DomainRecord) IsStorageVersion() bool

func (*DomainRecord) NamespaceScoped

func (r *DomainRecord) NamespaceScoped() bool

func (*DomainRecord) New

func (r *DomainRecord) New() runtime.Object

func (*DomainRecord) NewList

func (r *DomainRecord) NewList() runtime.Object

func (*DomainRecord) PrepareForCreate

func (r *DomainRecord) PrepareForCreate(ctx context.Context)

PrepareForCreate derives metadata.name from spec when the user omits it and sets status.type from the populated DNS field.

func (*DomainRecord) PrepareForUpdate

func (r *DomainRecord) PrepareForUpdate(ctx context.Context, old runtime.Object)

PrepareForUpdate re-derives status.type on updates.

func (*DomainRecord) TargetFieldKey

func (r *DomainRecord) TargetFieldKey() string

TargetFieldKey returns the canonical target field key for a DomainRecord: "ref" for Ref targets, or the DNS field key (e.g. "a", "fqdn").

func (*DomainRecord) Validate

func (r *DomainRecord) Validate(ctx context.Context) field.ErrorList

func (*DomainRecord) ValidateUpdate

func (r *DomainRecord) ValidateUpdate(ctx context.Context, obj runtime.Object) field.ErrorList

type DomainRecordList

type DomainRecordList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []DomainRecord `json:"items"`
}

DomainRecordList is a list of DomainRecord resources.

func (*DomainRecordList) ConvertToTable

func (l *DomainRecordList) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)

ConvertToTable implements rest.TableConvertor for DomainRecordList.

func (*DomainRecordList) DeepCopy

func (in *DomainRecordList) DeepCopy() *DomainRecordList

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

func (*DomainRecordList) DeepCopyInto

func (in *DomainRecordList) DeepCopyInto(out *DomainRecordList)

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

func (*DomainRecordList) DeepCopyObject

func (in *DomainRecordList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*DomainRecordList) GetListMeta

func (l *DomainRecordList) GetListMeta() *metav1.ListMeta

type DomainRecordPhase

type DomainRecordPhase string

DomainRecordPhase is the lifecycle state of a DomainRecord. It is the single field the data plane keys on (via Admitted) and the one customers read for "where is my domain"; conditions remain the per-fact observation log that explains why the record is in a given phase and when it got there.

The phase is a function of DNS ownership proof, certificate existence, and cutover — deliberately NOT of backend health. A record with a dead backend is still Active; TargetReady reports the 502s. Folding health into lifecycle state is what caused the 2026-07-24 fleet de-verification.

Transitions require affirmative observations: a pass where a probe is indeterminate (DNS resolvers or cosmos unreachable) holds the current phase rather than regressing it.

const (
	// DomainRecordPhasePending means no ownership proof has been observed
	// yet: no main CNAME, no challenge delegation, no owned certificate.
	DomainRecordPhasePending DomainRecordPhase = "Pending"

	// DomainRecordPhaseIssuing means an ownership proof is in place and a
	// certificate is being minted (first issuance, or re-issuance after the
	// stored certificate lapsed). Admitted: the ACME HTTP-01 challenge that
	// completes issuance is served over plaintext :80 through our gateway,
	// so the hostname must already be routable.
	DomainRecordPhaseIssuing DomainRecordPhase = "Issuing"

	// DomainRecordPhaseActive means ownership is proven and (for TLS records)
	// a certificate is stored: everything on our side is done and traffic
	// serves the moment it arrives. Whether the customer's main CNAME has
	// actually been cut over is customer-side DNS state, reported by the
	// CNAMEConfigured condition — a pre-issued record awaiting cutover is
	// Active with CNAMEConfigured=False.
	DomainRecordPhaseActive DomainRecordPhase = "Active"

	// DomainRecordPhaseDetached means every ownership proof has been
	// affirmatively withdrawn after the record was previously proven: no
	// live DNS proof and no unexpired certificate. Not admitted — this is
	// the state that releases the hostname for its next owner.
	DomainRecordPhaseDetached DomainRecordPhase = "Detached"
)

func (DomainRecordPhase) Admitted

func (p DomainRecordPhase) Admitted() bool

Admitted reports whether a record in this phase belongs in the data plane: HTTPRoute hostname admission, SNI trie membership, and cross-project claim checks all key on exactly this predicate. It lives on the type so producers and consumers — deployed independently — share one definition instead of re-deriving membership from condition strings.

type DomainRecordSpec

type DomainRecordSpec struct {
	// Zone is the name of the DomainZone that manages this record.
	// Optional - empty means standalone (custom domain, not zone-managed).
	// +optional
	Zone string `json:"zone,omitempty"`

	// Name is the DNS record name (e.g. "example.com", "www.example.com").
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name"`

	// TTL in seconds. Optional, defaults to 300.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=86400
	// +optional
	TTL *int32 `json:"ttl,omitempty"`

	// Target specifies the record data.
	// +kubebuilder:validation:Required
	Target DomainRecordTarget `json:"target"`

	// TLS configures TLS certificate provisioning for this record's domains.
	// Only valid when target.ref is set.
	// +optional
	TLS *DomainTLSSpec `json:"tls,omitempty"`
}

func (*DomainRecordSpec) DeepCopy

func (in *DomainRecordSpec) DeepCopy() *DomainRecordSpec

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

func (*DomainRecordSpec) DeepCopyInto

func (in *DomainRecordSpec) DeepCopyInto(out *DomainRecordSpec)

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

type DomainRecordStatus

type DomainRecordStatus struct {
	// Type is the resolved DNS record type (A, AAAA, CNAME, TXT, MX, etc.).
	// Derived from the populated DNS field or resolved from ref.
	// +optional
	Type string `json:"type,omitempty"`

	// Phase is the record's lifecycle state. Empty on records that have not
	// been reconciled by a phase-aware controller yet; consumers fall back to
	// conditions in that case.
	// +optional
	Phase DomainRecordPhase `json:"phase,omitempty"`

	// Conditions contains domain record conditions.
	// Standard conditions: Ready, ZoneReady, TargetReady.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ResolvedValues contains the actual DNS values configured.
	// Populated by the controller when target.ref is used.
	// +optional
	ResolvedValues []string `json:"resolvedValues,omitempty"`
}

func (*DomainRecordStatus) CopyTo

func (*DomainRecordStatus) DeepCopy

func (in *DomainRecordStatus) DeepCopy() *DomainRecordStatus

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

func (*DomainRecordStatus) DeepCopyInto

func (in *DomainRecordStatus) DeepCopyInto(out *DomainRecordStatus)

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

func (*DomainRecordStatus) SubResourceName

func (s *DomainRecordStatus) SubResourceName() string

type DomainRecordTarget

type DomainRecordTarget struct {
	// DNS specifies the record data directly.
	// Exactly one of DNS or Ref must be set.
	// +optional
	DNS *DomainRecordTargetDNS `json:"dns,omitempty"`

	// Ref specifies a reference to another object within Apoxy
	// (e.g. Proxy, Gateway, DomainRecord).
	// Exactly one of DNS or Ref must be set.
	// +optional
	Ref *LocalObjectReference `json:"ref,omitempty"`
}

func (*DomainRecordTarget) DeepCopy

func (in *DomainRecordTarget) DeepCopy() *DomainRecordTarget

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

func (*DomainRecordTarget) DeepCopyInto

func (in *DomainRecordTarget) DeepCopyInto(out *DomainRecordTarget)

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

type DomainRecordTargetDNS

type DomainRecordTargetDNS struct {
	// A holds IPv4 A record addresses.
	// +optional
	A []string `json:"a,omitempty"`

	// AAAA holds IPv6 AAAA record addresses.
	// +optional
	AAAA []string `json:"aaaa,omitempty"`

	// FQDN holds a CNAME record target.
	// +optional
	FQDN *string `json:"fqdn,omitempty"`

	// TXT holds TXT record values.
	// +optional
	TXT []string `json:"txt,omitempty"`

	// MX holds Mail Exchange record values (e.g. "10 mail.example.com").
	// +optional
	MX []string `json:"mx,omitempty"`

	// DKIM holds DKIM (DomainKeys Identified Mail) values.
	// Values should be DKIM public key records (e.g. "v=DKIM1; k=rsa; p=...").
	// +optional
	DKIM []string `json:"dkim,omitempty"`

	// SPF holds SPF (Sender Policy Framework) values.
	// Values should follow SPF syntax (e.g. "v=spf1 include:_spf.google.com ~all").
	// +optional
	SPF []string `json:"spf,omitempty"`

	// DMARC holds DMARC values.
	// Values should follow DMARC syntax (e.g. "v=DMARC1; p=reject; rua=mailto:...").
	// +optional
	DMARC []string `json:"dmarc,omitempty"`

	// CAA holds Certification Authority Authorization record values.
	// +optional
	CAA []string `json:"caa,omitempty"`

	// SRV holds Service Locator record values.
	// +optional
	SRV []string `json:"srv,omitempty"`

	// NS holds Name Server record values.
	// +optional
	NS []string `json:"ns,omitempty"`

	// DS holds DS (Delegation Signer) records for DNSSEC chain of trust.
	// Values should be DS record data (e.g. "12345 8 2 <digest>").
	// +optional
	DS []string `json:"ds,omitempty"`

	// DNSKEY holds DNSKEY records for DNSSEC.
	// Values should be DNSKEY record data (e.g. "257 3 8 <base64-encoded-key>").
	// +optional
	DNSKEY []string `json:"dnskey,omitempty"`
}

DomainRecordTargetDNS specifies DNS record data. Exactly one field must be populated. The populated field determines the DNS record type.

func (*DomainRecordTargetDNS) DNSFieldKey

func (d *DomainRecordTargetDNS) DNSFieldKey() string

DNSFieldKey returns the key identifying which DNS field is populated. Returns empty string if no field is populated.

func (*DomainRecordTargetDNS) DeepCopy

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

func (*DomainRecordTargetDNS) DeepCopyInto

func (in *DomainRecordTargetDNS) DeepCopyInto(out *DomainRecordTargetDNS)

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

func (*DomainRecordTargetDNS) PopulatedFieldCount

func (d *DomainRecordTargetDNS) PopulatedFieldCount() int

PopulatedFieldCount returns the number of populated DNS fields.

type DomainTLSSpec

type DomainTLSSpec struct {
	// The Certificate Authority used to issue the TLS certificate.
	// Currently supports "letsencrypt".
	// +optional
	CertificateAuthority string `json:"certificateAuthority,omitempty"`

	// Disabled turns off certificate provisioning for this domain, leaving it
	// served over plain HTTP.
	//
	// TLS is the default for every ref target — omitting the whole `tls` block
	// gets you a managed certificate — so this field is the only way to ask
	// for an HTTP-only hostname. Use it when traffic must flow before a
	// certificate can exist: during a migration you can prove ownership with
	// the `_apoxy-challenge` delegation, serve HTTP immediately, then clear
	// this field to have the certificate issued.
	//
	// A domain that already holds a certificate keeps serving it until the
	// certificate is removed; setting this only stops future issuance and
	// renewal.
	// +optional
	Disabled bool `json:"disabled,omitempty"`
}

DomainTLSSpec configures TLS certificate provisioning for a domain.

func (*DomainTLSSpec) DeepCopy

func (in *DomainTLSSpec) DeepCopy() *DomainTLSSpec

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

func (*DomainTLSSpec) DeepCopyInto

func (in *DomainTLSSpec) DeepCopyInto(out *DomainTLSSpec)

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

func (*DomainTLSSpec) Enabled

func (s *DomainTLSSpec) Enabled() bool

Enabled reports whether Apoxy should provision and serve a certificate for this domain. A nil spec means no TLS at all (the shape non-ref targets carry); a present spec means TLS unless it was explicitly disabled.

type DomainZone

type DomainZone struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec DomainZoneSpec `json:"spec,omitempty"`

	Status DomainZoneStatus `json:"status,omitempty"`
}

+genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*DomainZone) ConvertToTable

func (dz *DomainZone) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)

ConvertToTable implements rest.TableConvertor for pretty printing.

func (*DomainZone) DeepCopy

func (in *DomainZone) DeepCopy() *DomainZone

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

func (*DomainZone) DeepCopyInto

func (in *DomainZone) DeepCopyInto(out *DomainZone)

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

func (*DomainZone) DeepCopyObject

func (in *DomainZone) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*DomainZone) GetGroupVersionResource

func (a *DomainZone) GetGroupVersionResource() schema.GroupVersionResource

func (*DomainZone) GetObjectMeta

func (a *DomainZone) GetObjectMeta() *metav1.ObjectMeta

func (*DomainZone) GetSingularName

func (a *DomainZone) GetSingularName() string

func (*DomainZone) GetStatus

func (a *DomainZone) GetStatus() resource.StatusSubResource

func (*DomainZone) IsStorageVersion

func (a *DomainZone) IsStorageVersion() bool

func (*DomainZone) NamespaceScoped

func (a *DomainZone) NamespaceScoped() bool

func (*DomainZone) New

func (a *DomainZone) New() runtime.Object

func (*DomainZone) NewList

func (a *DomainZone) NewList() runtime.Object

type DomainZoneList

type DomainZoneList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []DomainZone `json:"items"`
}

DomainZoneList is a list of Domain resources.

func (*DomainZoneList) ConvertToTable

func (dzl *DomainZoneList) ConvertToTable(ctx context.Context, tableOptions runtime.Object) (*metav1.Table, error)

ConvertToTable implements rest.TableConvertor for pretty printing.

func (*DomainZoneList) DeepCopy

func (in *DomainZoneList) DeepCopy() *DomainZoneList

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

func (*DomainZoneList) DeepCopyInto

func (in *DomainZoneList) DeepCopyInto(out *DomainZoneList)

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

func (*DomainZoneList) DeepCopyObject

func (in *DomainZoneList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*DomainZoneList) GetListMeta

func (pl *DomainZoneList) GetListMeta() *metav1.ListMeta

type DomainZonePhase

type DomainZonePhase string

DomainZonePhase is the phase of the domain zone.

const (
	// Indicates that the domain zone is pending.
	// In order to become active, the domain owner must update the
	// nameservers with the registrar to point to the Apoxy nameservers.
	DomainZonePhasePending DomainZonePhase = "Pending"
	// PaymentRequired indicates that payment is required for domain registration.
	DomainZonePhasePaymentRequired DomainZonePhase = "PaymentRequired"
	// Registering indicates that domain registration is in progress.
	DomainZonePhaseRegistering DomainZonePhase = "Registering"
	// PendingNameservers indicates that the domain is registered but nameservers need to be updated.
	DomainZonePhasePendingNameservers DomainZonePhase = "PendingNameservers"
	// Active phase of the domain zone. User can create records in the domain zone.
	DomainZonePhaseActive DomainZonePhase = "Active"
	// Expiring indicates that the domain is expiring soon and needs renewal.
	DomainZonePhaseExpiring DomainZonePhase = "Expiring"
	// Expired indicates that the domain has expired.
	DomainZonePhaseExpired DomainZonePhase = "Expired"
	// Error indicates that an unrecoverable error occurred.
	DomainZonePhaseError DomainZonePhase = "Error"
)

type DomainZoneSpec

type DomainZoneSpec struct {
	// RegistrationConfig contains configuration for domain registration.
	// +optional
	RegistrationConfig *RegistrationConfig `json:"registrationConfig,omitempty"`

	// Nameservers to use for this domain zone.
	// If not specified, defaults to Apoxy's nameservers.
	// +optional
	Nameservers []string `json:"nameservers,omitempty"`
}

func (*DomainZoneSpec) DeepCopy

func (in *DomainZoneSpec) DeepCopy() *DomainZoneSpec

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

func (*DomainZoneSpec) DeepCopyInto

func (in *DomainZoneSpec) DeepCopyInto(out *DomainZoneSpec)

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

type DomainZoneStatus

type DomainZoneStatus struct {
	// Phase of the domain zone.
	Phase DomainZonePhase `json:"phase,omitempty"`

	// RegistrationStatus contains information about domain registration.
	// +optional
	RegistrationStatus *RegistrationStatus `json:"registrationStatus,omitempty"`

	// Nameservers contains information about nameserver configuration.
	// +optional
	Nameservers *NameserverStatus `json:"nameservers,omitempty"`

	// Conditions of the domain zone.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

func (*DomainZoneStatus) CopyTo

func (*DomainZoneStatus) DeepCopy

func (in *DomainZoneStatus) DeepCopy() *DomainZoneStatus

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

func (*DomainZoneStatus) DeepCopyInto

func (in *DomainZoneStatus) DeepCopyInto(out *DomainZoneStatus)

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

func (*DomainZoneStatus) SubResourceName

func (as *DomainZoneStatus) SubResourceName() string

type Group

type Group string

Group refers to an API Group. It must either be an empty string or a RFC 1123 subdomain.

This validation is based off of the corresponding Kubernetes validation: https://github.com/kubernetes/apimachinery/blob/02cfb53916346d085a6c6c7c66f882e3c6b0eca6/pkg/util/validation/validation.go#L208

Valid values include:

* "" - empty string implies core Kubernetes API group * "gateway.networking.k8s.io" * "controllers.apoxy.dev"

Invalid values include:

* "example.com/bar" - "/" is an invalid character

+kubebuilder:validation:MaxLength=253 +kubebuilder:validation:Pattern=`^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`

type Kind

type Kind string

Kind refers to an API Kind. It must be a valid Kubernetes kind.

Valid values include:

* "Service" * "HTTPRoute" * "Proxy"

Invalid values include:

* "invalid/kind" - "/" is an invalid character

+kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=63 +kubebuilder:validation:Pattern=`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`

type LocalObjectReference

type LocalObjectReference struct {
	// Group is the API Group of the referenced object.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Group Group `json:"group"`

	// Kind is the kind of the referenced object.
	// e.g. Proxy, EdgeFunction, TunnelEndpoint.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=`^[a-z0-9][a-z0-9-]*$`
	Kind Kind `json:"kind"`

	// Name is the name of the referenced object.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=`^[a-z0-9][a-z0-9-]*$`
	Name ObjectName `json:"name"`
}

LocalObjectReference identifies an API object.

func (*LocalObjectReference) DeepCopy

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

func (*LocalObjectReference) DeepCopyInto

func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)

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

type NameserverStatus

type NameserverStatus struct {
	// Required nameservers that should be configured.
	// +optional
	Required []string `json:"required,omitempty"`

	// Current nameservers that are actually configured.
	// +optional
	Current []string `json:"current,omitempty"`
}

NameserverStatus contains information about nameserver configuration.

func (*NameserverStatus) DeepCopy

func (in *NameserverStatus) DeepCopy() *NameserverStatus

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

func (*NameserverStatus) DeepCopyInto

func (in *NameserverStatus) DeepCopyInto(out *NameserverStatus)

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

type Namespace

type Namespace string

Namespace refers to a Kubernetes namespace. It must be a RFC 1123 label.

+kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` +kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=63

type ObjectName

type ObjectName string

ObjectName refers to the name of an API object. It must be a valid Kubernetes name.

Object names can have a variety of forms, including RFC 1123 subdomains, RFC 1123 labels, or RFC 1035 labels.

+kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=253

type Registrant

type Registrant struct {
	// FirstName of the registrant.
	// +optional
	FirstName string `json:"firstName,omitempty"`

	// LastName of the registrant.
	// +optional
	LastName string `json:"lastName,omitempty"`

	// Email of the registrant.
	// +optional
	Email string `json:"email,omitempty"`

	// Phone number of the registrant.
	// +optional
	Phone string `json:"phone,omitempty"`

	// Organization of the registrant.
	// +optional
	Organization string `json:"organization,omitempty"`

	// Address of the registrant.
	// +optional
	Address *Address `json:"address,omitempty"`
}

Registrant contains contact information for domain registration.

func (*Registrant) DeepCopy

func (in *Registrant) DeepCopy() *Registrant

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

func (*Registrant) DeepCopyInto

func (in *Registrant) DeepCopyInto(out *Registrant)

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

type RegistrationConfig

type RegistrationConfig struct {
	// AutoRenew indicates whether the domain should be automatically renewed.
	// +optional
	AutoRenew bool `json:"autoRenew,omitempty"`

	// RegistrationPeriodYears is the number of years to register the domain for.
	// +optional
	RegistrationPeriodYears int `json:"registrationPeriodYears,omitempty"`

	// Registrant contains the registrant contact information.
	// +optional
	Registrant *Registrant `json:"registrant,omitempty"`
}

RegistrationConfig contains configuration for domain registration.

func (*RegistrationConfig) DeepCopy

func (in *RegistrationConfig) DeepCopy() *RegistrationConfig

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

func (*RegistrationConfig) DeepCopyInto

func (in *RegistrationConfig) DeepCopyInto(out *RegistrationConfig)

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

type RegistrationStatus

type RegistrationStatus struct {
	// RegistrationID is the unique identifier for the registration.
	// +optional
	RegistrationID string `json:"registrationID,omitempty"`

	// EstimatedCost is the estimated cost for registration or renewal.
	// +optional
	EstimatedCost string `json:"estimatedCost,omitempty"`

	// PaymentURL is the URL to complete payment for registration or renewal.
	// +optional
	PaymentURL string `json:"paymentURL,omitempty"`

	// RegisteredAt is the time when the domain was registered.
	// +optional
	RegisteredAt *metav1.Time `json:"registeredAt,omitempty"`

	// ExpiresAt is the time when the domain registration expires.
	// +optional
	ExpiresAt *metav1.Time `json:"expiresAt,omitempty"`

	// Error contains error information if registration failed.
	// +optional
	Error string `json:"error,omitempty"`
}

RegistrationStatus contains information about domain registration.

func (*RegistrationStatus) DeepCopy

func (in *RegistrationStatus) DeepCopy() *RegistrationStatus

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

func (*RegistrationStatus) DeepCopyInto

func (in *RegistrationStatus) DeepCopyInto(out *RegistrationStatus)

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

Jump to

Keyboard shortcuts

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