v1alpha1

package
v1.23.2 Latest Latest
Warning

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

Go to latest
Published: May 6, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the uptimerobot v1alpha1 API group. +kubebuilder:object:generate=true +groupName=uptimerobot.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "uptimerobot.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type Account

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

	Spec   AccountSpec   `json:"spec,omitempty"`
	Status AccountStatus `json:"status,omitempty"`
}

Account is the Schema for the accounts API.

func (*Account) DeepCopy

func (in *Account) DeepCopy() *Account

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

func (*Account) DeepCopyInto

func (in *Account) DeepCopyInto(out *Account)

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

func (*Account) DeepCopyObject

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

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

func (*Account) SetupWebhookWithManager added in v1.9.0

func (r *Account) SetupWebhookWithManager(mgr ctrl.Manager) error

type AccountCustomValidator added in v1.9.0

type AccountCustomValidator struct {
	Client client.Reader
}

AccountCustomValidator validates Account admission requests. +kubebuilder:object:generate=false

func (*AccountCustomValidator) ValidateCreate added in v1.9.0

func (*AccountCustomValidator) ValidateDelete added in v1.9.0

func (*AccountCustomValidator) ValidateUpdate added in v1.9.0

func (v *AccountCustomValidator) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)

type AccountList

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

AccountList contains a list of Account.

func (*AccountList) DeepCopy

func (in *AccountList) DeepCopy() *AccountList

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

func (*AccountList) DeepCopyInto

func (in *AccountList) DeepCopyInto(out *AccountList)

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

func (*AccountList) DeepCopyObject

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

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

type AccountSpec

type AccountSpec struct {
	//+kubebuilder:default:=false
	IsDefault bool `json:"isDefault,omitempty"`

	// ApiKeySecretRef references the secret that contains the Uptime Robot API key.
	ApiKeySecretRef corev1.SecretKeySelector `json:"apiKeySecretRef"`
}

AccountSpec defines the desired state of Account.

func (*AccountSpec) DeepCopy

func (in *AccountSpec) DeepCopy() *AccountSpec

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

func (*AccountSpec) DeepCopyInto

func (in *AccountSpec) DeepCopyInto(out *AccountSpec)

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

type AccountStatus

type AccountStatus struct {
	Ready bool   `json:"ready"`
	Email string `json:"email"`
	// AlertContacts lists all available alert contacts for this account.
	// Use the ID field when creating Contact resources.
	AlertContacts []AlertContactInfo `json:"alertContacts,omitempty"`

	// Conditions represent the latest available observations of the resource's state
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

AccountStatus defines the observed state of Account.

func (*AccountStatus) DeepCopy

func (in *AccountStatus) DeepCopy() *AccountStatus

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

func (*AccountStatus) DeepCopyInto

func (in *AccountStatus) DeepCopyInto(out *AccountStatus)

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

type AlertContactInfo

type AlertContactInfo struct {
	// ID is the unique identifier for this contact. Use this in Contact resources.
	ID string `json:"id"`
	// FriendlyName is the display name (may be empty for some contacts like email).
	FriendlyName string `json:"friendlyName,omitempty"`
	// Type is the contact type (e.g., "EMAIL", "SMS", "PUSHOVER").
	Type string `json:"type"`
	// Value is the contact value (e.g., email address, phone number).
	Value string `json:"value"`
}

AlertContactInfo represents an alert contact available in UptimeRobot.

func (*AlertContactInfo) DeepCopy

func (in *AlertContactInfo) DeepCopy() *AlertContactInfo

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

func (*AlertContactInfo) DeepCopyInto

func (in *AlertContactInfo) DeepCopyInto(out *AlertContactInfo)

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

type Contact

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

	Spec   ContactSpec   `json:"spec,omitempty"`
	Status ContactStatus `json:"status,omitempty"`
}

Contact is the Schema for the contacts API.

func (*Contact) DeepCopy

func (in *Contact) DeepCopy() *Contact

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

func (*Contact) DeepCopyInto

func (in *Contact) DeepCopyInto(out *Contact)

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

func (*Contact) DeepCopyObject

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

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

func (*Contact) SetupWebhookWithManager added in v1.9.0

func (r *Contact) SetupWebhookWithManager(mgr ctrl.Manager) error

type ContactCustomValidator added in v1.9.0

type ContactCustomValidator struct {
	Client client.Reader
}

ContactCustomValidator validates Contact admission requests. +kubebuilder:object:generate=false

func (*ContactCustomValidator) ValidateCreate added in v1.9.0

func (*ContactCustomValidator) ValidateDelete added in v1.9.0

func (*ContactCustomValidator) ValidateUpdate added in v1.9.0

func (v *ContactCustomValidator) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)

type ContactList

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

ContactList contains a list of Contact.

func (*ContactList) DeepCopy

func (in *ContactList) DeepCopy() *ContactList

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

func (*ContactList) DeepCopyInto

func (in *ContactList) DeepCopyInto(out *ContactList)

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

func (*ContactList) DeepCopyObject

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

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

type ContactSpec

type ContactSpec struct {
	//+kubebuilder:default:=false
	IsDefault bool `json:"isDefault,omitempty"`

	// Account references this object's Account. If not specified, the default will be used.
	Account corev1.LocalObjectReference `json:"account,omitempty"`

	// Contact configures the Uptime Robot alert contact reference.
	Contact ContactValues `json:"contact"`
}

ContactSpec defines the desired state of Contact.

func (*ContactSpec) DeepCopy

func (in *ContactSpec) DeepCopy() *ContactSpec

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

func (*ContactSpec) DeepCopyInto

func (in *ContactSpec) DeepCopyInto(out *ContactSpec)

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

type ContactStatus

type ContactStatus struct {
	Ready bool   `json:"ready"`
	ID    string `json:"id,omitempty"`

	// Conditions represent the latest available observations of the resource's state
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

ContactStatus defines the observed state of Contact.

func (*ContactStatus) DeepCopy

func (in *ContactStatus) DeepCopy() *ContactStatus

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

func (*ContactStatus) DeepCopyInto

func (in *ContactStatus) DeepCopyInto(out *ContactStatus)

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

type ContactValues

type ContactValues struct {
	// ID is the UptimeRobot alert contact ID. Use this when the contact has no friendlyName set.
	// Get contact IDs via: curl -H "Authorization: Bearer YOUR_API_KEY" https://api.uptimerobot.com/v3/user/alert-contacts
	// Either ID or Name must be specified, but not both.
	// +optional
	ID string `json:"id,omitempty"`

	// Name matches the friendlyName of an existing alert contact in UptimeRobot.
	// Either ID or Name must be specified, but not both.
	// +optional
	Name string `json:"name,omitempty"`
}

ContactValues identifies an existing UptimeRobot alert contact. +kubebuilder:validation:XValidation:rule="(has(self.id) && self.id != \"\") || (has(self.name) && self.name != \"\")",message="either id or name must be specified" +kubebuilder:validation:XValidation:rule="!(has(self.id) && self.id != \"\" && has(self.name) && self.name != \"\")",message="specify only one of id or name"

func (*ContactValues) DeepCopy

func (in *ContactValues) DeepCopy() *ContactValues

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

func (*ContactValues) DeepCopyInto

func (in *ContactValues) DeepCopyInto(out *ContactValues)

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

type HeartbeatURLPublish added in v1.9.0

type HeartbeatURLPublish struct {
	// Type chooses where to publish the heartbeat URL.
	// +kubebuilder:default:=Secret
	Type HeartbeatURLPublishType `json:"type,omitempty"`

	// Name is the target Secret/ConfigMap name.
	// Defaults to "<monitor-name>-heartbeat-url".
	// +kubebuilder:validation:Pattern=`^[a-z0-9]([-.a-z0-9]*[a-z0-9])?$`
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name,omitempty"`

	// Key is the data key containing the heartbeat URL.
	// +kubebuilder:default:=heartbeatURL
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:Pattern=`^[A-Za-z0-9._-]+$`
	Key string `json:"key,omitempty"`
}

HeartbeatURLPublish controls where the generated heartbeat URL is written.

func (*HeartbeatURLPublish) DeepCopy added in v1.9.0

func (in *HeartbeatURLPublish) DeepCopy() *HeartbeatURLPublish

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

func (*HeartbeatURLPublish) DeepCopyInto added in v1.9.0

func (in *HeartbeatURLPublish) DeepCopyInto(out *HeartbeatURLPublish)

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

type HeartbeatURLPublishType added in v1.9.0

type HeartbeatURLPublishType string

HeartbeatURLPublishType selects where a heartbeat URL is published. +kubebuilder:validation:Enum=Secret;ConfigMap

const (
	HeartbeatURLPublishTypeSecret    HeartbeatURLPublishType = "Secret"
	HeartbeatURLPublishTypeConfigMap HeartbeatURLPublishType = "ConfigMap"
)

type MaintenanceWindow added in v1.5.0

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

	Spec   MaintenanceWindowSpec   `json:"spec,omitempty"`
	Status MaintenanceWindowStatus `json:"status,omitempty"`
}

MaintenanceWindow is the Schema for the maintenancewindows API.

func (*MaintenanceWindow) DeepCopy added in v1.5.0

func (in *MaintenanceWindow) DeepCopy() *MaintenanceWindow

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

func (*MaintenanceWindow) DeepCopyInto added in v1.5.0

func (in *MaintenanceWindow) DeepCopyInto(out *MaintenanceWindow)

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

func (*MaintenanceWindow) DeepCopyObject added in v1.5.0

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

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

func (*MaintenanceWindow) SetupWebhookWithManager added in v1.20.0

func (r *MaintenanceWindow) SetupWebhookWithManager(mgr ctrl.Manager) error

type MaintenanceWindowCustomValidator added in v1.20.0

type MaintenanceWindowCustomValidator struct {
	Client client.Reader
}

MaintenanceWindowCustomValidator validates MaintenanceWindow admission requests. +kubebuilder:object:generate=false

func (*MaintenanceWindowCustomValidator) ValidateCreate added in v1.20.0

func (*MaintenanceWindowCustomValidator) ValidateDelete added in v1.20.0

func (*MaintenanceWindowCustomValidator) ValidateUpdate added in v1.20.0

type MaintenanceWindowList added in v1.5.0

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

MaintenanceWindowList contains a list of MaintenanceWindow.

func (*MaintenanceWindowList) DeepCopy added in v1.5.0

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

func (*MaintenanceWindowList) DeepCopyInto added in v1.5.0

func (in *MaintenanceWindowList) DeepCopyInto(out *MaintenanceWindowList)

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

func (*MaintenanceWindowList) DeepCopyObject added in v1.5.0

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

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

type MaintenanceWindowSpec added in v1.5.0

type MaintenanceWindowSpec struct {
	// SyncInterval defines how often the operator reconciles with the UptimeRobot API.
	// This controls drift detection frequency.
	//+kubebuilder:default:="24h"
	SyncInterval *metav1.Duration `json:"syncInterval,omitempty"`

	// Prune enables garbage collection.
	//+kubebuilder:default:=true
	Prune bool `json:"prune"`

	// Account references this object's Account. If not specified, the default will be used.
	Account corev1.LocalObjectReference `json:"account,omitempty"`

	// Name is the friendly name of the maintenance window (max 255 chars).
	Name string `json:"name"`

	// Interval defines the recurrence pattern of the maintenance window.
	//+kubebuilder:validation:Enum=once;daily;weekly;monthly
	Interval string `json:"interval"`

	// StartDate is the start date of the maintenance window in YYYY-MM-DD format.
	// Required for once interval, not allowed for daily/weekly/monthly intervals.
	//+optional
	//+kubebuilder:validation:Pattern=`^(19|20)\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$`
	StartDate string `json:"startDate,omitempty"`

	// StartTime is the start time of the maintenance window in HH:mm:ss format.
	//+kubebuilder:validation:Pattern=`^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$`
	StartTime string `json:"startTime"`

	// Duration is the duration of the maintenance window.
	// Supports Go duration format (e.g., "30m", "1h", "2h30m").
	// Minimum value is 1 minute.
	Duration metav1.Duration `json:"duration"`

	// Days specifies which days the maintenance window runs on.
	// For weekly: day of week (0=Sunday, 1=Monday, ..., 6=Saturday).
	// For monthly: day of month (1-31, -1 for last day of month).
	// Required for weekly and monthly intervals.
	//+optional
	//+kubebuilder:validation:MaxItems=31
	Days []int `json:"days,omitempty"`

	// AutoAddMonitors, when true, automatically adds all monitors to this maintenance window.
	//+optional
	AutoAddMonitors bool `json:"autoAddMonitors"`

	// MonitorRefs is a list of Monitor resources to add to this maintenance window.
	// Each reference specifies the monitor name and is resolved within the same namespace
	// as this MaintenanceWindow.
	//+optional
	MonitorRefs []corev1.LocalObjectReference `json:"monitorRefs,omitempty"`
}

MaintenanceWindowSpec defines the desired state of MaintenanceWindow.

func (*MaintenanceWindowSpec) DeepCopy added in v1.5.0

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

func (*MaintenanceWindowSpec) DeepCopyInto added in v1.5.0

func (in *MaintenanceWindowSpec) DeepCopyInto(out *MaintenanceWindowSpec)

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

type MaintenanceWindowStatus added in v1.5.0

type MaintenanceWindowStatus struct {
	// Ready indicates if the maintenance window is successfully created in UptimeRobot.
	Ready bool `json:"ready"`

	// ID is the UptimeRobot maintenance window ID.
	ID string `json:"id,omitempty"`

	// MonitorCount is the number of monitors assigned to this maintenance window.
	MonitorCount int `json:"monitorCount,omitempty"`

	// Conditions represent the latest available observations of the resource's state
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

MaintenanceWindowStatus defines the observed state of MaintenanceWindow.

func (*MaintenanceWindowStatus) DeepCopy added in v1.5.0

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

func (*MaintenanceWindowStatus) DeepCopyInto added in v1.5.0

func (in *MaintenanceWindowStatus) DeepCopyInto(out *MaintenanceWindowStatus)

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

type Monitor

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

	Spec   MonitorSpec   `json:"spec,omitempty"`
	Status MonitorStatus `json:"status,omitempty"`
}

Monitor is the Schema for the monitors API.

func (*Monitor) DeepCopy

func (in *Monitor) DeepCopy() *Monitor

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

func (*Monitor) DeepCopyInto

func (in *Monitor) DeepCopyInto(out *Monitor)

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

func (*Monitor) DeepCopyObject

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

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

func (*Monitor) SetupWebhookWithManager added in v1.20.0

func (r *Monitor) SetupWebhookWithManager(mgr ctrl.Manager) error

type MonitorAPIAssertion added in v1.18.0

type MonitorAPIAssertion struct {
	// Property is the JSONPath expression to extract the value from the response.
	// Examples: "$.status", "$.data.items[0].name", "$.metadata.version"
	//+kubebuilder:validation:MinLength=1
	Property string `json:"property"`

	// Operator defines the comparison operation to perform.
	Operator urtypes.AssertionOperator `json:"operator"`

	// Value is the expected value to compare against.
	// Not required for is_null and is_not_null operators.
	// Can be a string, number, or boolean depending on the comparison.
	//+kubebuilder:validation:MaxLength=64
	Value string `json:"value,omitempty"`
}

MonitorAPIAssertion defines a single assertion check for API response validation.

func (*MonitorAPIAssertion) DeepCopy added in v1.18.0

func (in *MonitorAPIAssertion) DeepCopy() *MonitorAPIAssertion

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

func (*MonitorAPIAssertion) DeepCopyInto added in v1.18.0

func (in *MonitorAPIAssertion) DeepCopyInto(out *MonitorAPIAssertion)

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

type MonitorAPIAssertions added in v1.18.0

type MonitorAPIAssertions struct {
	// Logic defines how multiple assertions are combined.
	// AND requires all assertions to pass, OR requires at least one to pass.
	//+kubebuilder:default:="AND"
	Logic urtypes.AssertionLogic `json:"logic,omitempty"`

	// Checks defines the list of assertions to validate against the API response.
	// Maximum 5 assertions per monitor.
	//+kubebuilder:validation:MinItems=1
	//+kubebuilder:validation:MaxItems=5
	Checks []MonitorAPIAssertion `json:"checks"`
}

MonitorAPIAssertions provides configuration for API response validation. Validates JSON response content using JSONPath expressions and comparison operators.

func (*MonitorAPIAssertions) DeepCopy added in v1.18.0

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

func (*MonitorAPIAssertions) DeepCopyInto added in v1.18.0

func (in *MonitorAPIAssertions) DeepCopyInto(out *MonitorAPIAssertions)

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

type MonitorAuth

type MonitorAuth struct {
	//+kubebuilder:default:="Basic"
	Type urtypes.MonitorAuthType `json:"type"`

	Username string `json:"username,omitempty"`
	Password string `json:"password,omitempty"`

	SecretName  string `json:"secretName,omitempty"`
	UsernameKey string `json:"usernameKey,omitempty"`
	PasswordKey string `json:"passwordKey,omitempty"`
}

func (*MonitorAuth) DeepCopy

func (in *MonitorAuth) DeepCopy() *MonitorAuth

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

func (*MonitorAuth) DeepCopyInto

func (in *MonitorAuth) DeepCopyInto(out *MonitorAuth)

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

type MonitorContact

type MonitorContact struct {
	ID string `json:"id"`

	MonitorContactCommon `json:",inline"`
}

func (*MonitorContact) DeepCopy

func (in *MonitorContact) DeepCopy() *MonitorContact

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

func (*MonitorContact) DeepCopyInto

func (in *MonitorContact) DeepCopyInto(out *MonitorContact)

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

func (MonitorContact) String

func (m MonitorContact) String() string

type MonitorContactCommon

type MonitorContactCommon struct {
	// Threshold defines the number of minutes to wait to notify.
	//+kubebuilder:default:="1m"
	Threshold metav1.Duration `json:"threshold,omitempty"`

	// Recurrence defines the number of minutes between a repeat notification.
	// A value of 0, disables repeat notifications.
	Recurrence metav1.Duration `json:"recurrence,omitempty"`
}

func (*MonitorContactCommon) DeepCopy

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

func (*MonitorContactCommon) DeepCopyInto

func (in *MonitorContactCommon) DeepCopyInto(out *MonitorContactCommon)

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

type MonitorContactRef

type MonitorContactRef struct {
	corev1.LocalObjectReference `json:",inline" mapstructure:",squash"`

	MonitorContactCommon `json:",inline" mapstructure:",squash"`
}

MonitorContactRef attaches alert contacts. If blank, the default will be used.

func (*MonitorContactRef) DeepCopy

func (in *MonitorContactRef) DeepCopy() *MonitorContactRef

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

func (*MonitorContactRef) DeepCopyInto

func (in *MonitorContactRef) DeepCopyInto(out *MonitorContactRef)

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

type MonitorContacts

type MonitorContacts []MonitorContact

func (MonitorContacts) DeepCopy

func (in MonitorContacts) DeepCopy() MonitorContacts

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

func (MonitorContacts) DeepCopyInto

func (in MonitorContacts) DeepCopyInto(out *MonitorContacts)

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

func (MonitorContacts) String

func (m MonitorContacts) String() string

type MonitorCustomValidator added in v1.20.0

type MonitorCustomValidator struct {
	Client client.Reader
}

MonitorCustomValidator validates Monitor admission requests. +kubebuilder:object:generate=false

func (*MonitorCustomValidator) ValidateCreate added in v1.20.0

func (*MonitorCustomValidator) ValidateDelete added in v1.20.0

func (*MonitorCustomValidator) ValidateUpdate added in v1.20.0

func (v *MonitorCustomValidator) ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)

type MonitorDNS

type MonitorDNS struct {
	// A records - expected IPv4 addresses.
	A []string `json:"a,omitempty"`

	// AAAA records - expected IPv6 addresses.
	AAAA []string `json:"aaaa,omitempty"`

	// CNAME records - expected canonical names.
	CNAME []string `json:"cname,omitempty"`

	// MX records - expected mail exchange records.
	MX []string `json:"mx,omitempty"`

	// NS records - expected nameserver records.
	NS []string `json:"ns,omitempty"`

	// TXT records - expected text records.
	TXT []string `json:"txt,omitempty"`

	// SRV records - expected service records.
	SRV []string `json:"srv,omitempty"`

	// PTR records - expected pointer records.
	PTR []string `json:"ptr,omitempty"`

	// SOA records - expected start of authority records.
	SOA []string `json:"soa,omitempty"`

	// SPF records - expected sender policy framework records.
	SPF []string `json:"spf,omitempty"`

	// SSLExpirationPeriodDays - get notified X days before SSL expiration.
	// Maximum 10 items, each 0-365.
	//+kubebuilder:validation:MaxItems=10
	SSLExpirationPeriodDays []int `json:"sslExpirationPeriodDays,omitempty"`
}

MonitorDNS provides configuration for DNS monitor type. The URL field in MonitorValues specifies the DNS server to query (e.g., 8.8.8.8). Specify expected DNS record values for each record type you want to verify.

func (*MonitorDNS) DeepCopy

func (in *MonitorDNS) DeepCopy() *MonitorDNS

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

func (*MonitorDNS) DeepCopyInto

func (in *MonitorDNS) DeepCopyInto(out *MonitorDNS)

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

type MonitorGroup added in v1.6.0

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

	Spec   MonitorGroupSpec   `json:"spec,omitempty"`
	Status MonitorGroupStatus `json:"status,omitempty"`
}

MonitorGroup is the Schema for the monitorgroups API.

func (*MonitorGroup) DeepCopy added in v1.6.0

func (in *MonitorGroup) DeepCopy() *MonitorGroup

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

func (*MonitorGroup) DeepCopyInto added in v1.6.0

func (in *MonitorGroup) DeepCopyInto(out *MonitorGroup)

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

func (*MonitorGroup) DeepCopyObject added in v1.6.0

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

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

func (*MonitorGroup) SetupWebhookWithManager added in v1.20.0

func (r *MonitorGroup) SetupWebhookWithManager(mgr ctrl.Manager) error

type MonitorGroupCustomValidator added in v1.20.0

type MonitorGroupCustomValidator struct {
	Client client.Reader
}

MonitorGroupCustomValidator validates MonitorGroup admission requests. +kubebuilder:object:generate=false

func (*MonitorGroupCustomValidator) ValidateCreate added in v1.20.0

func (*MonitorGroupCustomValidator) ValidateDelete added in v1.20.0

func (*MonitorGroupCustomValidator) ValidateUpdate added in v1.20.0

func (v *MonitorGroupCustomValidator) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)

type MonitorGroupList added in v1.6.0

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

MonitorGroupList contains a list of MonitorGroup.

func (*MonitorGroupList) DeepCopy added in v1.6.0

func (in *MonitorGroupList) DeepCopy() *MonitorGroupList

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

func (*MonitorGroupList) DeepCopyInto added in v1.6.0

func (in *MonitorGroupList) DeepCopyInto(out *MonitorGroupList)

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

func (*MonitorGroupList) DeepCopyObject added in v1.6.0

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

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

type MonitorGroupSpec added in v1.6.0

type MonitorGroupSpec struct {
	// SyncInterval defines how often the operator reconciles with the UptimeRobot API.
	//+kubebuilder:default:="24h"
	SyncInterval *metav1.Duration `json:"syncInterval,omitempty"`

	// Prune enables garbage collection.
	//+kubebuilder:default:=true
	Prune bool `json:"prune"`

	// Account references this object's Account. If not specified, the default will be used.
	Account corev1.LocalObjectReference `json:"account,omitempty"`

	// FriendlyName is the display name for the monitor group.
	//+kubebuilder:validation:MaxLength=255
	//+kubebuilder:validation:MinLength=1
	FriendlyName string `json:"friendlyName"`

	// Monitors references Monitor resources to include in this group.
	//+optional
	Monitors []corev1.LocalObjectReference `json:"monitors,omitempty"`

	// PullFromGroups specifies existing group IDs to pull monitors from.
	//+optional
	PullFromGroups []int `json:"pullFromGroups,omitempty"`
}

MonitorGroupSpec defines desired state of MonitorGroup.

func (*MonitorGroupSpec) DeepCopy added in v1.6.0

func (in *MonitorGroupSpec) DeepCopy() *MonitorGroupSpec

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

func (*MonitorGroupSpec) DeepCopyInto added in v1.6.0

func (in *MonitorGroupSpec) DeepCopyInto(out *MonitorGroupSpec)

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

type MonitorGroupStatus added in v1.6.0

type MonitorGroupStatus struct {
	Ready          bool         `json:"ready"`
	ID             string       `json:"id,omitempty"`
	MonitorCount   int          `json:"monitorCount,omitempty"`
	LastReconciled *metav1.Time `json:"lastReconciled,omitempty"`

	// Conditions represent the latest available observations of the resource's state
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

MonitorGroupStatus defines observed state of MonitorGroup.

func (*MonitorGroupStatus) DeepCopy added in v1.6.0

func (in *MonitorGroupStatus) DeepCopy() *MonitorGroupStatus

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

func (*MonitorGroupStatus) DeepCopyInto added in v1.6.0

func (in *MonitorGroupStatus) DeepCopyInto(out *MonitorGroupStatus)

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

type MonitorHeartbeat

type MonitorHeartbeat struct {
	// Interval is the expected interval between heartbeats.
	// If no heartbeat is received within this interval, an alert is triggered.
	//+kubebuilder:default:="60s"
	Interval *metav1.Duration `json:"interval,omitempty"`
}

MonitorHeartbeat provides configuration for Heartbeat monitor type. Heartbeat monitors expect periodic pings from your services/jobs.

func (*MonitorHeartbeat) DeepCopy

func (in *MonitorHeartbeat) DeepCopy() *MonitorHeartbeat

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

func (*MonitorHeartbeat) DeepCopyInto

func (in *MonitorHeartbeat) DeepCopyInto(out *MonitorHeartbeat)

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

type MonitorKeyword

type MonitorKeyword struct {
	Type urtypes.KeywordType `json:"type"`

	//+kubebuilder:default:=false
	CaseSensitive *bool `json:"caseSensitive,omitempty"`

	Value string `json:"value"`
}

func (*MonitorKeyword) DeepCopy

func (in *MonitorKeyword) DeepCopy() *MonitorKeyword

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

func (*MonitorKeyword) DeepCopyInto

func (in *MonitorKeyword) DeepCopyInto(out *MonitorKeyword)

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

type MonitorList

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

MonitorList contains a list of Monitor.

func (*MonitorList) DeepCopy

func (in *MonitorList) DeepCopy() *MonitorList

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

func (*MonitorList) DeepCopyInto

func (in *MonitorList) DeepCopyInto(out *MonitorList)

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

func (*MonitorList) DeepCopyObject

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

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

type MonitorPOST

type MonitorPOST struct {
	// Type defines the format of data to be sent with POST, PUT, PATCH, DELETE, and OPTIONS requests.
	//+kubebuilder:default:="KeyValue"
	Type urtypes.POSTType `json:"postType,omitempty"`

	// ContentType sets the Content-Type header for POST, PUT, PATCH, DELETE, and OPTIONS requests.
	//+kubebuilder:default:="text/html"
	ContentType urtypes.POSTContentType `json:"contentType,omitempty"`

	// Value is the JSON form of data to be sent with POST, PUT, PATCH, DELETE, and OPTIONS requests.
	Value string `json:"value,omitempty"`
}

func (*MonitorPOST) DeepCopy

func (in *MonitorPOST) DeepCopy() *MonitorPOST

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

func (*MonitorPOST) DeepCopyInto

func (in *MonitorPOST) DeepCopyInto(out *MonitorPOST)

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

type MonitorPort

type MonitorPort struct {
	// Number is the port number to monitor (0-65535).
	//+kubebuilder:validation:Minimum=0
	//+kubebuilder:validation:Maximum=65535
	Number uint16 `json:"number"`
}

MonitorPort provides configuration for Port monitor type.

func (*MonitorPort) DeepCopy

func (in *MonitorPort) DeepCopy() *MonitorPort

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

func (*MonitorPort) DeepCopyInto

func (in *MonitorPort) DeepCopyInto(out *MonitorPort)

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

type MonitorSpec

type MonitorSpec struct {
	// SyncInterval defines how often the operator reconciles with the UptimeRobot API.
	// This controls drift detection frequency. Lower values mean faster detection of
	// external changes but more API calls.
	//+kubebuilder:default:="24h"
	SyncInterval *metav1.Duration `json:"syncInterval,omitempty"`

	// Prune enables garbage collection.
	//+kubebuilder:default:=true
	Prune bool `json:"prune"`

	// Account references this object's Account. If not specified, the default will be used.
	Account corev1.LocalObjectReference `json:"account,omitempty"`

	// Monitor configures the Uptime Robot monitor.
	Monitor MonitorValues `json:"monitor"`

	//+kubebuilder:default:={{}}
	Contacts []MonitorContactRef `json:"contacts,omitempty"`

	// SourceRef optionally references the object that created this Monitor.
	SourceRef *corev1.TypedLocalObjectReference `json:"sourceRef,omitempty"`

	// HeartbeatURLPublish configures publishing the generated heartbeat URL to a Secret or ConfigMap.
	// This is only applied for Heartbeat monitor types.
	HeartbeatURLPublish *HeartbeatURLPublish `json:"heartbeatURLPublish,omitempty"`
}

MonitorSpec defines the desired state of Monitor.

func (*MonitorSpec) DeepCopy

func (in *MonitorSpec) DeepCopy() *MonitorSpec

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

func (*MonitorSpec) DeepCopyInto

func (in *MonitorSpec) DeepCopyInto(out *MonitorSpec)

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

type MonitorStatus

type MonitorStatus struct {
	Ready bool   `json:"ready"`
	ID    string `json:"id,omitempty"`
	// HeartbeatURL contains the webhook URL for Heartbeat monitors.
	// This URL is generated by UptimeRobot after monitor creation.
	// Services should send periodic requests to this URL to indicate they are alive.
	// Format: {base}/m{id}-{token} where base defaults to
	// https://heartbeat.uptimerobot.com and can be overridden by
	// UPTIMEROBOT_HEARTBEAT_BASE_URL.
	HeartbeatURL string `json:"heartbeatURL,omitempty"`
	// HeartbeatURLPublishTargetType stores where the heartbeat URL is currently published.
	HeartbeatURLPublishTargetType HeartbeatURLPublishType `json:"heartbeatURLPublishTargetType,omitempty"`
	// HeartbeatURLPublishTargetName stores the target Secret/ConfigMap name currently managed by the operator.
	HeartbeatURLPublishTargetName string `json:"heartbeatURLPublishTargetName,omitempty"`
	// HeartbeatURLPublishTargetKey stores the key currently managed by the operator.
	HeartbeatURLPublishTargetKey string              `json:"heartbeatURLPublishTargetKey,omitempty"`
	Type                         urtypes.MonitorType `json:"type,omitempty"`
	Status                       uint8               `json:"status,omitempty"`
	State                        string              `json:"state,omitempty"`

	// Conditions represent the latest available observations of the resource's state
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// LastSyncedTime records when the resource last successfully synced with UptimeRobot.
	LastSyncedTime *metav1.Time `json:"lastSyncedTime,omitempty"`
}

MonitorStatus defines the observed state of Monitor.

func (*MonitorStatus) DeepCopy

func (in *MonitorStatus) DeepCopy() *MonitorStatus

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

func (*MonitorStatus) DeepCopyInto

func (in *MonitorStatus) DeepCopyInto(out *MonitorStatus)

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

type MonitorValues

type MonitorValues struct {
	// Name sets the name that is shown in Uptime Robot.
	Name string `json:"name"`

	// URL is the URL or IP to monitor, including the scheme.
	// Not required for Heartbeat monitors - UptimeRobot generates the webhook URL.
	// For DNS monitors: DNS server IP or hostname (e.g., 8.8.8.8).
	URL string `json:"url,omitempty"`

	// Type chooses the monitor type.
	//+kubebuilder:default:=HTTPS
	Type urtypes.MonitorType `json:"type,omitempty"`

	// Interval is the monitoring interval.
	//+kubebuilder:default:="60s"
	Interval *metav1.Duration `json:"interval,omitempty"`

	// Status toggles pause status for the monitor. 0 is paused, 1 is running.
	//+kubebuilder:default:=1
	Status uint8 `json:"status"`

	// Timeout is the monitor timeout. Only for HTTP, Keyword and Port monitors.
	//+kubebuilder:default:="30s"
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// GracePeriod is the time to wait before sending an alert after the monitor goes down.
	// Maximum value is 24 hours (86400 seconds).
	//+kubebuilder:default:="60s"
	GracePeriod *metav1.Duration `json:"gracePeriod,omitempty"`

	// Method defines the HTTP verb to use.
	//+kubebuilder:default:="HEAD"
	Method urtypes.HTTPMethod `json:"method,omitempty"`

	// POST configures POST, PUT, PATCH, DELETE, and OPTIONS requests.
	POST *MonitorPOST `json:"post,omitempty"`

	// Keyword provides configuration for the Keyword monitor type.
	Keyword *MonitorKeyword `json:"keyword,omitempty"`

	// Port provides configuration for the Port monitor type.
	Port *MonitorPort `json:"port,omitempty"`

	// Auth enables monitor auth.
	Auth *MonitorAuth `json:"auth,omitempty"`

	// DNS provides configuration for the DNS monitor type.
	DNS *MonitorDNS `json:"dns,omitempty"`

	// Heartbeat provides configuration for the Heartbeat monitor type.
	Heartbeat *MonitorHeartbeat `json:"heartbeat,omitempty"`

	// APIAssertions provides configuration for API response validation.
	// Only supported when Type is HTTPS; the operator maps this to UptimeRobot v3 type "API".
	APIAssertions *MonitorAPIAssertions `json:"apiAssertions,omitempty"`

	// Tags to be assigned to the monitor for organisation.
	Tags []string `json:"tags,omitempty"`

	// CustomHTTPHeaders are custom HTTP headers to be sent in the request.
	CustomHTTPHeaders map[string]string `json:"customHttpHeaders,omitempty"`

	// SuccessHTTPResponseCodes defines success HTTP response codes.
	// Can contain specific codes or ranges like "2xx". Default is ["2xx", "3xx"].
	SuccessHTTPResponseCodes []string `json:"successHttpResponseCodes,omitempty"`

	// CheckSSLErrors enables checking for SSL and domain expiration errors.
	CheckSSLErrors *bool `json:"checkSSLErrors,omitempty"`

	// SSLExpirationReminder enables notification when the SSL certificate is about to expire.
	SSLExpirationReminder *bool `json:"sslExpirationReminder,omitempty"`

	// DomainExpirationReminder enables notification when the domain is about to expire.
	DomainExpirationReminder *bool `json:"domainExpirationReminder,omitempty"`

	// FollowRedirections enables following HTTP redirections.
	FollowRedirections *bool `json:"followRedirections,omitempty"`

	// ResponseTimeThreshold in milliseconds. Response time over this threshold triggers an incident.
	//+kubebuilder:validation:Minimum=0
	//+kubebuilder:validation:Maximum=60000
	ResponseTimeThreshold *int `json:"responseTimeThreshold,omitempty"`

	// Region for monitoring.
	//+kubebuilder:validation:Enum=na;eu;as;oc
	Region string `json:"region,omitempty"`

	// GroupID is the monitor group ID to assign the monitor to. 0 means no group.
	GroupID *int `json:"groupId,omitempty"`

	// MaintenanceWindowIDs are the maintenance window IDs to be assigned to the monitor.
	MaintenanceWindowIDs []int `json:"maintenanceWindowIds,omitempty"`
}

func (*MonitorValues) DeepCopy

func (in *MonitorValues) DeepCopy() *MonitorValues

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

func (*MonitorValues) DeepCopyInto

func (in *MonitorValues) DeepCopyInto(out *MonitorValues)

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

type SlackIntegration added in v1.8.0

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

	Spec   SlackIntegrationSpec   `json:"spec,omitempty"`
	Status SlackIntegrationStatus `json:"status,omitempty"`
}

SlackIntegration is the Schema for the slackintegrations API.

func (*SlackIntegration) DeepCopy added in v1.8.0

func (in *SlackIntegration) DeepCopy() *SlackIntegration

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

func (*SlackIntegration) DeepCopyInto added in v1.8.0

func (in *SlackIntegration) DeepCopyInto(out *SlackIntegration)

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

func (*SlackIntegration) DeepCopyObject added in v1.8.0

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

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

func (*SlackIntegration) GetAccountRef added in v1.22.7

func (r *SlackIntegration) GetAccountRef() corev1.LocalObjectReference

GetAccountRef returns the Account reference. Satisfies the IntegrationAccountReferencer interface defined in internal/controller so Account reconciliation can be re-queued when this integration changes.

func (*SlackIntegration) SetupWebhookWithManager added in v1.20.0

func (r *SlackIntegration) SetupWebhookWithManager(mgr ctrl.Manager) error

type SlackIntegrationCustomValidator added in v1.20.0

type SlackIntegrationCustomValidator struct {
	Client client.Reader
}

SlackIntegrationCustomValidator validates SlackIntegration admission requests. +kubebuilder:object:generate=false

func (*SlackIntegrationCustomValidator) ValidateCreate added in v1.20.0

func (*SlackIntegrationCustomValidator) ValidateDelete added in v1.20.0

func (*SlackIntegrationCustomValidator) ValidateUpdate added in v1.20.0

type SlackIntegrationList added in v1.8.0

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

SlackIntegrationList contains a list of SlackIntegration.

func (*SlackIntegrationList) DeepCopy added in v1.8.0

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

func (*SlackIntegrationList) DeepCopyInto added in v1.8.0

func (in *SlackIntegrationList) DeepCopyInto(out *SlackIntegrationList)

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

func (*SlackIntegrationList) DeepCopyObject added in v1.8.0

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

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

type SlackIntegrationSpec added in v1.8.0

type SlackIntegrationSpec struct {
	// SyncInterval defines how often the operator reconciles with the UptimeRobot API.
	//+kubebuilder:default:="24h"
	SyncInterval *metav1.Duration `json:"syncInterval,omitempty"`

	// Prune enables garbage collection.
	//+kubebuilder:default:=true
	Prune bool `json:"prune"`

	// Account references this object's Account. If not specified, the default will be used.
	Account corev1.LocalObjectReference `json:"account,omitempty"`

	// Integration configures the Slack integration settings.
	Integration SlackIntegrationValues `json:"integration"`
}

SlackIntegrationSpec defines the desired state of SlackIntegration.

func (*SlackIntegrationSpec) DeepCopy added in v1.8.0

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

func (*SlackIntegrationSpec) DeepCopyInto added in v1.8.0

func (in *SlackIntegrationSpec) DeepCopyInto(out *SlackIntegrationSpec)

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

type SlackIntegrationStatus added in v1.8.0

type SlackIntegrationStatus struct {
	Ready bool `json:"ready"`
	// ID is the UptimeRobot integration ID.
	ID string `json:"id,omitempty"`
	// Type is the UptimeRobot integration type (e.g. Slack).
	Type string `json:"type,omitempty"`

	// Conditions represent the latest available observations of the resource's state
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

SlackIntegrationStatus defines the observed state of SlackIntegration.

func (*SlackIntegrationStatus) DeepCopy added in v1.8.0

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

func (*SlackIntegrationStatus) DeepCopyInto added in v1.8.0

func (in *SlackIntegrationStatus) DeepCopyInto(out *SlackIntegrationStatus)

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

type SlackIntegrationValues added in v1.8.0

type SlackIntegrationValues struct {
	// FriendlyName is the display name shown in UptimeRobot.
	//+kubebuilder:validation:MaxLength=60
	FriendlyName string `json:"friendlyName,omitempty"`

	// EnableNotificationsFor controls which events trigger notifications.
	//+kubebuilder:validation:Enum=UpAndDown;Down;Up;None
	//+kubebuilder:default:=UpAndDown
	EnableNotificationsFor string `json:"enableNotificationsFor,omitempty"`

	// SSLExpirationReminder enables notifications for SSL/Domain expiry checks.
	SSLExpirationReminder bool `json:"sslExpirationReminder,omitempty"`

	// WebhookURL is the Slack webhook URL.
	//+kubebuilder:validation:MaxLength=1500
	WebhookURL string `json:"webhookURL,omitempty"`

	// SecretName is the secret containing the webhook URL.
	// If set, WebhookURL must be omitted.
	SecretName string `json:"secretName,omitempty"`

	// WebhookURLKey is the key in the secret containing the webhook URL.
	//+kubebuilder:default:=webhookURL
	WebhookURLKey string `json:"webhookURLKey,omitempty"`

	// CustomValue is optional text appended to each notification payload.
	//+kubebuilder:validation:MaxLength=5000
	CustomValue string `json:"customValue,omitempty"`
}

SlackIntegrationValues defines the desired Slack integration settings. +kubebuilder:validation:XValidation:rule="(has(self.webhookURL) && self.webhookURL != \"\") || (has(self.secretName) && self.secretName != \"\")",message="either webhookURL or secretName must be specified" +kubebuilder:validation:XValidation:rule="!(has(self.webhookURL) && self.webhookURL != \"\" && has(self.secretName) && self.secretName != \"\")",message="specify only one of webhookURL or secretName"

func (*SlackIntegrationValues) DeepCopy added in v1.8.0

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

func (*SlackIntegrationValues) DeepCopyInto added in v1.8.0

func (in *SlackIntegrationValues) DeepCopyInto(out *SlackIntegrationValues)

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