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
- Variables
- type AllowDenyItem
- type AnsibleJobsStatus
- type ClusterOverride
- type ClusterOverrides
- type HourRange
- type Overrides
- type PackageFilter
- type PackageOverride
- type Subscriber
- type SubscriberItem
- type Subscription
- type SubscriptionClusterStatusMap
- type SubscriptionList
- type SubscriptionPerClusterStatus
- type SubscriptionPhase
- type SubscriptionSpec
- type SubscriptionStatus
- type SubscriptionUnitStatus
- type TimeWindow
Constants ¶
const ( // 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" )DefaultRollingUpdateMaxUnavailablePercentage = 25
Variables ¶
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} )
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 = 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HourRange.
func (*HourRange) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overrides.
func (*Overrides) DeepCopyInto ¶
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 ¶
func (in SubscriptionClusterStatusMap) DeepCopy() SubscriptionClusterStatusMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionClusterStatusMap.
func (SubscriptionClusterStatusMap) DeepCopyInto ¶
func (in SubscriptionClusterStatusMap) DeepCopyInto(out *SubscriptionClusterStatusMap)
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 ¶
func (in *SubscriptionPerClusterStatus) DeepCopy() *SubscriptionPerClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionPerClusterStatus.
func (*SubscriptionPerClusterStatus) DeepCopyInto ¶
func (in *SubscriptionPerClusterStatus) DeepCopyInto(out *SubscriptionPerClusterStatus)
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 ¶
func (in *SubscriptionUnitStatus) DeepCopy() *SubscriptionUnitStatus
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.