Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the uptimerobot v1alpha1 API group. +kubebuilder:object:generate=true +groupName=uptimerobot.com
Index ¶
- Variables
- type Account
- type AccountCustomValidator
- func (v *AccountCustomValidator) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (v *AccountCustomValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (v *AccountCustomValidator) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)
- type AccountList
- type AccountSpec
- type AccountStatus
- type AlertContactInfo
- type Contact
- type ContactCustomValidator
- func (v *ContactCustomValidator) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (v *ContactCustomValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (v *ContactCustomValidator) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)
- type ContactList
- type ContactSpec
- type ContactStatus
- type ContactValues
- type HeartbeatURLPublish
- type HeartbeatURLPublishType
- type MaintenanceWindow
- type MaintenanceWindowCustomValidator
- func (v *MaintenanceWindowCustomValidator) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (v *MaintenanceWindowCustomValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (v *MaintenanceWindowCustomValidator) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)
- type MaintenanceWindowList
- type MaintenanceWindowSpec
- type MaintenanceWindowStatus
- type Monitor
- type MonitorAPIAssertion
- type MonitorAPIAssertions
- type MonitorAuth
- type MonitorContact
- type MonitorContactCommon
- type MonitorContactRef
- type MonitorContacts
- type MonitorCustomValidator
- func (v *MonitorCustomValidator) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (v *MonitorCustomValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (v *MonitorCustomValidator) ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)
- type MonitorDNS
- type MonitorGroup
- type MonitorGroupCustomValidator
- func (v *MonitorGroupCustomValidator) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (v *MonitorGroupCustomValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (v *MonitorGroupCustomValidator) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)
- type MonitorGroupList
- type MonitorGroupSpec
- type MonitorGroupStatus
- type MonitorHeartbeat
- type MonitorKeyword
- type MonitorList
- type MonitorPOST
- type MonitorPort
- type MonitorSpec
- type MonitorStatus
- type MonitorValues
- type SlackIntegration
- func (in *SlackIntegration) DeepCopy() *SlackIntegration
- func (in *SlackIntegration) DeepCopyInto(out *SlackIntegration)
- func (in *SlackIntegration) DeepCopyObject() runtime.Object
- func (r *SlackIntegration) GetAccountRef() corev1.LocalObjectReference
- func (r *SlackIntegration) SetupWebhookWithManager(mgr ctrl.Manager) error
- type SlackIntegrationCustomValidator
- func (v *SlackIntegrationCustomValidator) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (v *SlackIntegrationCustomValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (v *SlackIntegrationCustomValidator) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)
- type SlackIntegrationList
- type SlackIntegrationSpec
- type SlackIntegrationStatus
- type SlackIntegrationValues
Constants ¶
This section is empty.
Variables ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Account.
func (*Account) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Account) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AccountCustomValidator ¶ added in v1.9.0
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
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Contact.
func (*Contact) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Contact) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ContactCustomValidator ¶ added in v1.9.0
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
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
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
func (in *MaintenanceWindowList) DeepCopy() *MaintenanceWindowList
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
func (in *MaintenanceWindowSpec) DeepCopy() *MaintenanceWindowSpec
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
func (in *MaintenanceWindowStatus) DeepCopy() *MaintenanceWindowStatus
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Monitor.
func (*Monitor) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Monitor) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
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
func (in *MonitorAPIAssertions) DeepCopy() *MonitorAPIAssertions
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 ¶
func (in *MonitorContactCommon) DeepCopy() *MonitorContactCommon
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
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
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
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
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
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
func (in *SlackIntegrationList) DeepCopy() *SlackIntegrationList
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
func (in *SlackIntegrationSpec) DeepCopy() *SlackIntegrationSpec
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
func (in *SlackIntegrationStatus) DeepCopy() *SlackIntegrationStatus
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
func (in *SlackIntegrationValues) DeepCopy() *SlackIntegrationValues
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.
Source Files
¶
- account_types.go
- account_webhook.go
- contact_types.go
- contact_webhook.go
- groupversion_info.go
- maintenancewindow_types.go
- maintenancewindow_webhook.go
- monitor_types.go
- monitor_webhook.go
- monitorgroup_types.go
- monitorgroup_webhook.go
- slackintegration_types.go
- slackintegration_webhook.go
- webhook_common.go
- zz_generated.deepcopy.go