v1

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2024 License: Apache-2.0 Imports: 9 Imported by: 14

Documentation

Overview

Package v1 contains API Schema definitions for the apps v1 API group +k8s:deepcopy-gen=package,register +groupName=apps.open-cluster-management.io

Package v1 contains API Schema definitions for the apps v1 API group +kubebuilder:object:generate=true +groupName=apps.open-cluster-management.io +versionName=v1

Index

Constants

View Source
const (
	// DefaultRollingUpdateMaxUnavailablePercentage defines the percentage for rolling update
	DefaultRollingUpdateMaxUnavailablePercentage = 25
	// SubscriptionAdmin is used as RBAC resource name for multi-namespace app deployment
	SubscriptionAdmin = "open-cluster-management:subscription-admin"
	// AcmWebhook is the ACM foundation mutation webhook that adds user identity and group annotations
	AcmWebhook = "ocm-mutating-webhook"
	// MergeReconcile creates or updates fields in resources using kubernetes patch
	MergeReconcile = "merge"
	// ReplaceReconcile replaces fields in resources using kubernetes update
	ReplaceReconcile = "replace"
	// MergeAndOwnReconcile creates or updates fields in resources using kubernetes patch and take ownership of the resource
	MergeAndOwnReconcile = "mergeAndOwn"
	// SubscriptionNameSuffix is appended to the subscription name when propagated to managed clusters
	SubscriptionNameSuffix = ""
	// ChannelCertificateData is the configmap data spec field containing trust certificates
	ChannelCertificateData = "caCerts"
	// TLS minimum version as integer
	TLSMinVersionInt = tls.VersionTLS12
	// TLS minimum version as string
	TLSMinVersionString = "1.2"
)

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "apps.open-cluster-management.io", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)
View Source
var (
	// AnnotationSyncSource target deployable to rolling update to
	AnnotationSyncSource = SchemeGroupVersion.Group + "/sync-source"
	// AnnotationRollingUpdateTarget target deployable to rolling update to
	AnnotationRollingUpdateTarget = SchemeGroupVersion.Group + "/rollingupdate-target"
	// AnnotationRollingUpdateMaxUnavailable defines max un available clusters during rolling update
	AnnotationRollingUpdateMaxUnavailable = SchemeGroupVersion.Group + "/rollingupdate-maxunavaialble"
	// AnnotationDeployables defines all deployables subscribed by the subscription
	AnnotationDeployables = SchemeGroupVersion.Group + "/deployables"
	// AnnotationTopo list all resources will create by the subscription
	AnnotationTopo = SchemeGroupVersion.Group + "/topo"
	// AnnotationHosting defines the subscription hosting the resource
	AnnotationHosting = SchemeGroupVersion.Group + "/hosting-subscription"
	// AnnotationChannelGeneration defines the channel generation
	AnnotationChannelGeneration = SchemeGroupVersion.Group + "/channel-generation"
	// AnnotationWebhookEnabled indicates webhook event notification is enabled
	AnnotationWebhookEnabled = SchemeGroupVersion.Group + "/webhook-enabled"
	// AnnotationWebhookEventCount gets incremented by an incoming webhook event notification
	AnnotationWebhookEventCount = SchemeGroupVersion.Group + "/webhook-event-count"
	// AnnotationWebhookSecret defines webhook secret
	AnnotationWebhookSecret = SchemeGroupVersion.Group + "/webhook-secret"
	// AnnotationGithubPath defines webhook secret
	AnnotationGithubPath = SchemeGroupVersion.Group + "/github-path"
	// AnnotationGithubBranch defines webhook secret
	AnnotationGithubBranch = SchemeGroupVersion.Group + "/github-branch"
	// AnnotationGithubCommit defines Git repo commit ID
	AnnotationGithubCommit = SchemeGroupVersion.Group + "/github-commit"
	// AnnotationGitPath defines webhook secret
	AnnotationGitPath = SchemeGroupVersion.Group + "/git-path"
	// AnnotationGitBranch defines webhook secret
	AnnotationGitBranch = SchemeGroupVersion.Group + "/git-branch"
	// AnnotationGitCommit defines currently deployed Git repo commit ID
	AnnotationGitCommit = SchemeGroupVersion.Group + "/git-current-commit"
	// AnnotationGitCloneDepth defines Git repo clone depth to be able to check out previous commits
	AnnotationGitCloneDepth = SchemeGroupVersion.Group + "/git-clone-depth"
	// AnnotationGitTargetCommit defines Git repo commit to be deployed
	AnnotationGitTargetCommit = SchemeGroupVersion.Group + "/git-desired-commit"
	// AnnotationGitTag defines Git repo revision tag
	AnnotationGitTag = SchemeGroupVersion.Group + "/git-tag"
	// AnnotationClusterAdmin indicates the subscription has cluster admin access
	AnnotationClusterAdmin = SchemeGroupVersion.Group + "/cluster-admin"
	// AnnotationChannelType indicates the channel type for subscription
	AnnotationChannelType = SchemeGroupVersion.Group + "/channel-type"
	// AnnotationUserGroup is subscription user group
	AnnotationUserGroup = "open-cluster-management.io/user-group"
	// AnnotationUserIdentity is subscription user id
	AnnotationUserIdentity = "open-cluster-management.io/user-identity"
	// AnnotationResourceReconcileOption is for reconciling existing resource
	AnnotationResourceReconcileOption   = SchemeGroupVersion.Group + "/reconcile-option"
	AnnotationResourceDoNotDeleteOption = SchemeGroupVersion.Group + "/do-not-delete"
	// AnnotationResourceReconcileLevel is for resource reconciliation frequency
	AnnotationResourceReconcileLevel = SchemeGroupVersion.Group + "/reconcile-rate"
	// AnnotationManualReconcileTime is the time user triggers a manual resource reconcile
	AnnotationManualReconcileTime = SchemeGroupVersion.Group + "/manual-refresh-time"
	//LabelSubscriptionPause sits in subscription label to identify if the subscription is paused or not
	LabelSubscriptionPause = "subscription-pause"
	//LabelSubscriptionName is the subscription name
	LabelSubscriptionName = SchemeGroupVersion.Group + "/subscription"
	// AnnotationHookType defines ansible hook job type - prehook/posthook
	AnnotationHookType = SchemeGroupVersion.Group + "/hook-type"
	// AnnotationHookTemplate defines ansible hook job template namespaced name
	AnnotationHookTemplate = SchemeGroupVersion.Group + "/hook-template"
	// AnnotationBucketPath defines s3 object bucket subfolder path
	AnnotationBucketPath = SchemeGroupVersion.Group + "/bucket-path"
	// AnnotationManagedCluster identifies this is a deployable for managed cluster
	AnnotationManagedCluster = SchemeGroupVersion.Group + "/managed-cluster"
	// AnnotationHostingDeployable sits in templated resource, gives name of hosting deployable, legacy annotation
	AnnotationHostingDeployable = SchemeGroupVersion.Group + "/hosting-deployable"
	// AnnotationCurrentNamespaceScoped specifies to deloy resources into subscription namespace
	AnnotationCurrentNamespaceScoped = SchemeGroupVersion.Group + "/current-namespace-scoped"
)

Functions

This section is empty.

Types

type AllowDenyItem added in v0.5.0

type AllowDenyItem struct {
	// APIVersion specifies the API version for the group of resources
	APIVersion string `json:"apiVersion,omitempty"`

	// Kinds specifies a list of kinds under the same API version for the group of resources
	Kinds []string `json:"kinds,omitempty"`
}

AllowDenyItem defines a group of resources allowed or denied for deployment

func (*AllowDenyItem) DeepCopy added in v0.5.0

func (in *AllowDenyItem) DeepCopy() *AllowDenyItem

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

func (*AllowDenyItem) DeepCopyInto added in v0.5.0

func (in *AllowDenyItem) DeepCopyInto(out *AllowDenyItem)

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

type AnsibleJobsStatus

type AnsibleJobsStatus struct {
	// The lastly propagated prehook job
	LastPrehookJob string `json:"lastprehookjob,omitempty"`

	// reserved for backward compatibility
	PrehookJobsHistory []string `json:"prehookjobshistory,omitempty"`

	// The lastly propagated posthook job
	LastPosthookJob string `json:"lastposthookjob,omitempty"`

	// reserved for backward compatibility
	PosthookJobsHistory []string `json:"posthookjobshistory,omitempty"`
}

AnsibleJobsStatus defines status of ansible jobs propagated by the subscription

func (*AnsibleJobsStatus) DeepCopy

func (in *AnsibleJobsStatus) DeepCopy() *AnsibleJobsStatus

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

func (*AnsibleJobsStatus) DeepCopyInto

func (in *AnsibleJobsStatus) DeepCopyInto(out *AnsibleJobsStatus)

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

type ClusterOverride added in v0.5.0

type ClusterOverride struct {
	runtime.RawExtension `json:",inline"`
}

ClusterOverride defines the contents for override rules

func (*ClusterOverride) DeepCopy added in v0.5.0

func (in *ClusterOverride) DeepCopy() *ClusterOverride

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

func (*ClusterOverride) DeepCopyInto added in v0.5.0

func (in *ClusterOverride) DeepCopyInto(out *ClusterOverride)

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

type ClusterOverrides added in v0.5.0

type ClusterOverrides struct {
	// Cluster name
	ClusterName string `json:"clusterName"`

	// ClusterOverrides defines a list of content for override
	//+kubebuilder:validation:MinItems=1
	ClusterOverrides []ClusterOverride `json:"clusterOverrides"` // To be added
}

ClusterOverrides defines a list of contents that will be overridden to a given cluster

func (*ClusterOverrides) DeepCopy added in v0.5.0

func (in *ClusterOverrides) DeepCopy() *ClusterOverrides

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

func (*ClusterOverrides) DeepCopyInto added in v0.5.0

func (in *ClusterOverrides) DeepCopyInto(out *ClusterOverrides)

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

type HourRange

type HourRange struct {
	// Start time of the hour range
	Start string `json:"start,omitempty"`

	// End time of the hour range
	End string `json:"end,omitempty"`
}

HourRange defines the time format, refer to https://golang.org/pkg/time/#pkg-constants

func (*HourRange) DeepCopy

func (in *HourRange) DeepCopy() *HourRange

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

func (*HourRange) DeepCopyInto

func (in *HourRange) DeepCopyInto(out *HourRange)

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

type Overrides

type Overrides struct {
	// PackageAlias defines the alias of the package name that will be onverriden
	PackageAlias string `json:"packageAlias,omitempty"`

	// PackageName defines the package name that will be onverriden
	PackageName string `json:"packageName"`

	// PackageOverrides defines a list of content for override
	PackageOverrides []PackageOverride `json:"packageOverrides,omitempty"`
}

Overrides defines a list of contents that will be overridden to a given resource

func (*Overrides) DeepCopy

func (in *Overrides) DeepCopy() *Overrides

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

func (*Overrides) DeepCopyInto

func (in *Overrides) DeepCopyInto(out *Overrides)

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

type PackageFilter

type PackageFilter struct {
	// LabelSelector defines a type of filter for selecting resources by label selector
	LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`

	// Annotations defines a type of filter for selecting resources by annotations
	Annotations map[string]string `json:"annotations,omitempty"`

	// Version defines a type of filter for selecting resources by version
	Version string `json:"version,omitempty"`

	// FilterRef defines a type of filter for selecting resources by another resource reference
	FilterRef *corev1.LocalObjectReference `json:"filterRef,omitempty"`
}

PackageFilter defines various types of filters for selecting resources

func (*PackageFilter) DeepCopy

func (in *PackageFilter) DeepCopy() *PackageFilter

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

func (*PackageFilter) DeepCopyInto

func (in *PackageFilter) DeepCopyInto(out *PackageFilter)

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

type PackageOverride

type PackageOverride struct {
	runtime.RawExtension `json:",inline"`
}

PackageOverride provides the contents for overriding a package

func (*PackageOverride) DeepCopy

func (in *PackageOverride) DeepCopy() *PackageOverride

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

func (*PackageOverride) DeepCopyInto

func (in *PackageOverride) DeepCopyInto(out *PackageOverride)

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

type Subscriber

type Subscriber interface {
	SubscribeItem(*SubscriberItem) error
	UnsubscribeItem(types.NamespacedName) error
}

Subscriber efines common interface of different channel types +kubebuilder:object:generate=false

type SubscriberItem

type SubscriberItem struct {
	Subscription              *Subscription
	SubscriptionConfigMap     *corev1.ConfigMap
	Channel                   *chnv1alpha1.Channel
	ChannelSecret             *corev1.Secret
	ChannelConfigMap          *corev1.ConfigMap
	SecondaryChannel          *chnv1alpha1.Channel
	SecondaryChannelSecret    *corev1.Secret
	SecondaryChannelConfigMap *corev1.ConfigMap
}

SubscriberItem defines subscriber item to share subscribers with different channel types

func (*SubscriberItem) DeepCopy

func (in *SubscriberItem) DeepCopy() *SubscriberItem

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

func (*SubscriberItem) DeepCopyInto

func (in *SubscriberItem) DeepCopyInto(out *SubscriberItem)

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

type Subscription

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

	Spec   SubscriptionSpec   `json:"spec"`
	Status SubscriptionStatus `json:"status,omitempty"`
}

Subscription is the Schema for the subscriptions API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="SubscriptionState",type="string",JSONPath=".status.phase",description="subscription state" +kubebuilder:printcolumn:name="AppstatusReference",type="string",JSONPath=".status.appstatusReference",description="subscription status reference" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Updated",type="date",JSONPath=".status.lastUpdateTime" +kubebuilder:printcolumn:name="Local placement",type="boolean",JSONPath=".spec.placement.local" +kubebuilder:printcolumn:name="Time window",type="string",JSONPath=".spec.timewindow.windowtype" +kubebuilder:resource:shortName=appsub

func (*Subscription) DeepCopy

func (in *Subscription) DeepCopy() *Subscription

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

func (*Subscription) DeepCopyInto

func (in *Subscription) DeepCopyInto(out *Subscription)

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

func (*Subscription) DeepCopyObject

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

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

type SubscriptionClusterStatusMap

type SubscriptionClusterStatusMap map[string]*SubscriptionPerClusterStatus

SubscriptionClusterStatusMap defines status of each subscription per cluster, key is cluster name

func (SubscriptionClusterStatusMap) DeepCopy

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

func (SubscriptionClusterStatusMap) DeepCopyInto

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

type SubscriptionList

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

SubscriptionList contains a list of Subscription

func (*SubscriptionList) DeepCopy

func (in *SubscriptionList) DeepCopy() *SubscriptionList

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

func (*SubscriptionList) DeepCopyInto

func (in *SubscriptionList) DeepCopyInto(out *SubscriptionList)

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

func (*SubscriptionList) DeepCopyObject

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

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

type SubscriptionPerClusterStatus

type SubscriptionPerClusterStatus struct {
	SubscriptionPackageStatus map[string]*SubscriptionUnitStatus `json:"packages,omitempty"`
}

SubscriptionPerClusterStatus defines status of each subscription in a cluster, key is package name

func (*SubscriptionPerClusterStatus) DeepCopy

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

func (*SubscriptionPerClusterStatus) DeepCopyInto

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

type SubscriptionPhase

type SubscriptionPhase string

SubscriptionPhase defines the phasing of a Subscription

const (
	// SubscriptionUnknown means this subscription is the "parent" sitting in hub
	SubscriptionUnknown SubscriptionPhase = ""
	// SubscriptionPropagated means this subscription is the "parent" sitting in hub
	SubscriptionPropagated SubscriptionPhase = "Propagated"
	// SubscriptionSubscribed means this subscription is child sitting in managed cluster
	SubscriptionSubscribed SubscriptionPhase = "Subscribed"
	// SubscriptionFailed means this subscription is the "parent" sitting in hub
	SubscriptionFailed SubscriptionPhase = "Failed"
	// SubscriptionPropagationFailed means this subscription is the "parent" sitting in hub
	SubscriptionPropagationFailed SubscriptionPhase = "PropagationFailed"
	PreHookSucessful              SubscriptionPhase = "PreHookSucessful"
)

type SubscriptionSpec

type SubscriptionSpec struct {
	// The primary channel namespaced name used by the subscription. Its format is "<channel NameSpace>/<channel Name>"
	Channel string `json:"channel"`
	// The secondary channel will be applied if the primary channel fails to connect
	SecondaryChannel string `json:"secondaryChannel,omitempty"`
	// Subscribe a package by its package name
	Package string `json:"name,omitempty"`
	// Subscribe packages by a package filter
	PackageFilter *PackageFilter `json:"packageFilter,omitempty"`
	// Override packages
	PackageOverrides []*Overrides `json:"packageOverrides,omitempty"`
	// Specify a placement reference for selecting clusters. Hub use only
	Placement *plrv1alpha1.Placement `json:"placement,omitempty"`
	// Specify overrides when applied to clusters. Hub use only
	Overrides []ClusterOverrides `json:"overrides,omitempty"`
	// Specify a time window to indicate when the subscription is handled
	TimeWindow *TimeWindow `json:"timewindow,omitempty"`

	// Specify a secret reference used in Ansible job integration authentication
	// +optional
	HookSecretRef *corev1.ObjectReference `json:"hooksecretref,omitempty"`

	// Specify a list of resources allowed for deployment
	Allow []*AllowDenyItem `json:"allow,omitempty"`

	// Specify a list of resources denied for deployment
	Deny []*AllowDenyItem `json:"deny,omitempty"`

	// WatchHelmNamespaceScopedResources is used to enable watching namespace scope Helm chart resources
	WatchHelmNamespaceScopedResources bool `json:"watchHelmNamespaceScopedResources,omitempty"`
}

SubscriptionSpec defines the desired state of Subscription

func (*SubscriptionSpec) DeepCopy

func (in *SubscriptionSpec) DeepCopy() *SubscriptionSpec

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

func (*SubscriptionSpec) DeepCopyInto

func (in *SubscriptionSpec) DeepCopyInto(out *SubscriptionSpec)

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

type SubscriptionStatus

type SubscriptionStatus struct {
	// Phase of the subscription deployment
	Phase SubscriptionPhase `json:"phase,omitempty"`

	// The CLI reference for getting the subscription status output
	AppstatusReference string `json:"appstatusReference,omitempty"`

	// Informational message of the subscription deployment
	Message string `json:"message,omitempty"`

	// additional error output of the subscription deployment
	Reason string `json:"reason,omitempty"`

	// Timestamp of when the subscription status was last updated.
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`

	// +optional
	AnsibleJobsStatus AnsibleJobsStatus `json:"ansiblejobs,omitempty"`

	Statuses SubscriptionClusterStatusMap `json:"statuses,omitempty"`
}

SubscriptionStatus defines the observed status of a subscription

func (*SubscriptionStatus) DeepCopy

func (in *SubscriptionStatus) DeepCopy() *SubscriptionStatus

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

func (*SubscriptionStatus) DeepCopyInto

func (in *SubscriptionStatus) DeepCopyInto(out *SubscriptionStatus)

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

type SubscriptionUnitStatus

type SubscriptionUnitStatus struct {
	// Phase of the deployment package (Propagated/Subscribed/Failed/PropagationFailed/PreHookSucessful).
	Phase SubscriptionPhase `json:"phase,omitempty"`

	// Informational message from the deployment of the package.
	Message string `json:"message,omitempty"`

	// additional error output from the deployment of the package.
	Reason string `json:"reason,omitempty"`

	// Timestamp of when the deployment package was last updated.
	LastUpdateTime metav1.Time `json:"lastUpdateTime"`

	// reserved for backward compatibility
	ResourceStatus *runtime.RawExtension `json:"resourceStatus,omitempty"`
}

SubscriptionUnitStatus defines status of each package in a subscription

func (*SubscriptionUnitStatus) DeepCopy

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

func (*SubscriptionUnitStatus) DeepCopyInto

func (in *SubscriptionUnitStatus) DeepCopyInto(out *SubscriptionUnitStatus)

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

type TimeWindow

type TimeWindow struct {
	// Activiate time window or not. The subscription deployment will only be handled during these active windows
	// Valid values include: active,blocked,Active,Blocked
	// +kubebuilder:validation:Enum={active,blocked,Active,Blocked}
	WindowType string `json:"windowtype,omitempty"`

	// time zone location, refer to TZ identifier in https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
	Location string `json:"location,omitempty"`

	// A list of days of a week, valid values include: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
	Daysofweek []string `json:"daysofweek,omitempty"`

	// A list of hour ranges
	Hours []HourRange `json:"hours,omitempty"`
}

TimeWindow defines a time window for the subscription to run or be blocked

func (*TimeWindow) DeepCopy

func (in *TimeWindow) DeepCopy() *TimeWindow

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

func (*TimeWindow) DeepCopyInto

func (in *TimeWindow) DeepCopyInto(out *TimeWindow)

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