v3

package
v1.3.1 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package v3 contains API Schema definitions for the v3 API group. +kubebuilder:object:generate=true +groupName=pdok.nl

Index

Constants

View Source
const (
	TopLayer   = "topLayer"
	DataLayer  = "dataLayer"
	GroupLayer = "groupLayer"
)

Variables

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

	// 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

	TypeMetaWFS = metav1.TypeMeta{
		Kind:       "WFS",
		APIVersion: GroupVersion.String(),
	}

	TypeMetaWMS = metav1.TypeMeta{
		Kind:       "WMS",
		APIVersion: GroupVersion.String(),
	}
)

Functions

func GetHost

func GetHost(includeProtocol bool) string

func SetHost

func SetHost(url string)

func ValidateCreate

func ValidateCreate[W WMSWFS](c client.Client, obj W, validate func(W, *[]string, *field.ErrorList)) ([]string, error)

func ValidateEphemeralStorage

func ValidateEphemeralStorage(podSpecPatch v1.PodSpec, allErrs *field.ErrorList)

func ValidateFeatureTypes

func ValidateFeatureTypes(wfs *WFS, warnings *[]string, allErrs *field.ErrorList)

func ValidateHorizontalPodAutoscalerPatch

func ValidateHorizontalPodAutoscalerPatch(patch HorizontalPodAutoscalerPatch, allErrs *field.ErrorList)

func ValidateInspire

func ValidateInspire[O WMSWFS](obj O, allErrs *field.ErrorList, allWarnings *[]string)

func ValidateOwnerInfo

func ValidateOwnerInfo[O WMSWFS](c client.Client, obj O, allErrs *field.ErrorList)

func ValidateUpdate

func ValidateUpdate[W WMSWFS](c client.Client, newW, oldW W, validate func(W, *[]string, *field.ErrorList)) ([]string, error)

func ValidateWFS

func ValidateWFS(wfs *WFS, warnings *[]string, allErrs *field.ErrorList)

func ValidateWMS

func ValidateWMS(wms *WMS, warnings *[]string, allErrs *field.ErrorList)

Types

type AnnotatedLayer

type AnnotatedLayer struct {
	// The name of the group that this layer belongs to, nil if it is not a member of a group. Groups can be a member of the toplayer as a group
	GroupName *string
	// Only for spec.Service.Layer
	IsTopLayer bool
	// Top layer or layer below the toplayer with children itself
	IsGroupLayer bool
	// Contains actual data
	IsDataLayer bool
	Layer
}

func (*AnnotatedLayer) DeepCopy

func (in *AnnotatedLayer) DeepCopy() *AnnotatedLayer

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

func (*AnnotatedLayer) DeepCopyInto

func (in *AnnotatedLayer) DeepCopyInto(out *AnnotatedLayer)

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

type Authority

type Authority struct {
	Name                     string `json:"name"`
	URL                      string `json:"url"`
	SpatialDatasetIdentifier string `json:"spatialDatasetIdentifier"`
}

func (*Authority) DeepCopy

func (in *Authority) DeepCopy() *Authority

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

func (*Authority) DeepCopyInto

func (in *Authority) DeepCopyInto(out *Authority)

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

type BaseData

type BaseData struct {
	// Gpkg configures a GeoPackage file source
	Gpkg *Gpkg `json:"gpkg,omitempty"`

	// Postgis configures a Postgis table source
	Postgis *Postgis `json:"postgis,omitempty"`
}

BaseData holds the data source configuration for gpkg and postgis

func (*BaseData) DeepCopy

func (in *BaseData) DeepCopy() *BaseData

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

func (*BaseData) DeepCopyInto

func (in *BaseData) DeepCopyInto(out *BaseData)

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

func (*BaseData) GetColumns

func (d *BaseData) GetColumns() *[]Column

func (*BaseData) GetGeometryType

func (d *BaseData) GetGeometryType() *string

func (*BaseData) GetTableName

func (d *BaseData) GetTableName() *string

type BaseOptions

type BaseOptions struct {
	// IncludeIngress dictates whether to deploy an Ingress or ensure none exists.
	// +kubebuilder:default:=true
	// +kubebuilder:validation:Optional
	IncludeIngress bool `json:"includeIngress"`

	// AutomaticCasing enables automatic conversion from snake_case to camelCase.
	// +kubebuilder:default:=true
	// +kubebuilder:validation:Optional
	AutomaticCasing bool `json:"automaticCasing"`

	// Whether to prefetch data from blob storage, and store it on the local filesystem.
	// If `false`, the data will be served directly out of blob storage
	// +kubebuilder:default:=true
	// +kubebuilder:validation:Optional
	PrefetchData bool `json:"prefetchData"`
}

BaseOptions for all apis

func (*BaseOptions) DeepCopy

func (in *BaseOptions) DeepCopy() *BaseOptions

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

func (*BaseOptions) DeepCopyInto

func (in *BaseOptions) DeepCopyInto(out *BaseOptions)

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

type BaseService

type BaseService struct {
	// Geonovum subdomein
	// +kubebuilder:validation:MinLength:=1
	Prefix string `json:"prefix"`

	// URL of the service
	URL smoothoperatormodel.URL `json:"url"`

	// External Mapfile reference
	Mapfile *Mapfile `json:"mapfile,omitempty"`

	// Reference to OwnerInfo CR
	// +kubebuilder:validation:MinLength:=1
	OwnerInfoRef string `json:"ownerInfoRef"`

	// Service title
	// +kubebuilder:validation:MinLength:=1
	Title string `json:"title"`

	// Service abstract
	// +kubebuilder:validation:MinLength:=1
	Abstract string `json:"abstract"`

	// Keywords for capabilities
	// +kubebuilder:validation:MinItems:=1
	// +kubebuilder:validation:items:MinLength:=1
	Keywords []string `json:"keywords"`

	// Optional Fees
	// +kubebuilder:validation:MinLength:=1
	Fees *string `json:"fees,omitempty"`

	// AccessConstraints URL
	// +kubebuilder:default="https://creativecommons.org/publicdomain/zero/1.0/deed.nl"
	AccessConstraints smoothoperatormodel.URL `json:"accessConstraints,omitempty"`
}

BaseService holds all shared Services field for all apis

func (*BaseService) DeepCopy

func (in *BaseService) DeepCopy() *BaseService

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

func (*BaseService) DeepCopyInto

func (in *BaseService) DeepCopyInto(out *BaseService)

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

type Bbox

type Bbox struct {
	// EXTENT/wfs_extent in mapfile
	//nolint:tagliatelle
	// +kubebuilder:validation:Type=object
	DefaultCRS smoothoperatormodel.BBox `json:"defaultCRS"`
}

func (*Bbox) DeepCopy

func (in *Bbox) DeepCopy() *Bbox

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

func (*Bbox) DeepCopyInto

func (in *Bbox) DeepCopyInto(out *Bbox)

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

type Column

type Column struct {
	// Name of the column in the data source.
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Alias for the column in the service output.
	// +kubebuilder:validation:MinLength=1
	Alias *string `json:"alias,omitempty"`
}

Column maps a source column name to an optional alias for output. +kubebuilder:validation:Type=object

func (*Column) DeepCopy

func (in *Column) DeepCopy() *Column

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

func (*Column) DeepCopyInto

func (in *Column) DeepCopyInto(out *Column)

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

type ConfigMapRef

type ConfigMapRef struct {
	// Name is the name of the ConfigMap
	// +kubebuilder:validation:MinLength:=1
	Name string `json:"name"`

	// Keys contains styling assets that contain mapfile code (.style|.symbol), required if you use symbols in your styles
	// +kubebuilder:validation:MinItems:=1
	// +kubebuilder:validation:items:Pattern:=^\S*.\.(style|symbol)
	Keys []string `json:"keys,omitempty"`
}

func (*ConfigMapRef) DeepCopy

func (in *ConfigMapRef) DeepCopy() *ConfigMapRef

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

func (*ConfigMapRef) DeepCopyInto

func (in *ConfigMapRef) DeepCopyInto(out *ConfigMapRef)

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

type Custom

type Custom struct {
	// Href of the custom metadata url
	Href smoothoperatormodel.URL `json:"href"`

	// MIME type of the custom link
	// +kubebuilder:validation:MinLength=1
	Type string `json:"type"`
}

Custom represents a non-CSW metadata link with a href and MIME type. +kubebuilder:validation:Type=object

func (*Custom) DeepCopy

func (in *Custom) DeepCopy() *Custom

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

func (*Custom) DeepCopyInto

func (in *Custom) DeepCopyInto(out *Custom)

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

type Data

type Data struct {
	BaseData `json:",inline"`

	// TIF configures a GeoTIF raster source
	TIF *TIF `json:"tif,omitempty"`
}

Data holds the data source configuration +kubebuilder:validation:XValidation:rule="has(self.gpkg) || has(self.tif) || has(self.postgis)", message="Atleast one of the datasource should be provided (postgis, gpkg, tif)"

func (*Data) DeepCopy

func (in *Data) DeepCopy() *Data

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

func (*Data) DeepCopyInto

func (in *Data) DeepCopyInto(out *Data)

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

type FeatureBbox

type FeatureBbox struct {
	// DefaultCRS defines the EXTENT/wfs_extent for the featureType for use in the mapfile
	//nolint:tagliatelle
	// +kubebuilder:validation:Type=object
	DefaultCRS *smoothoperatormodel.BBox `json:"defaultCRS,omitempty"`

	// WGS84, if provided, gives the same bounding box reprojected into EPSG:4326 for use in the capabilities.
	// +kubebuilder:validation:Type=object
	WGS84 *smoothoperatormodel.BBox `json:"wgs84,omitempty"`
}

FeatureBbox is the optional featureType bounding box, if provided it overrides the default extent

func (*FeatureBbox) DeepCopy

func (in *FeatureBbox) DeepCopy() *FeatureBbox

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

func (*FeatureBbox) DeepCopyInto

func (in *FeatureBbox) DeepCopyInto(out *FeatureBbox)

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

type FeatureType

type FeatureType struct {
	// Name of the feature
	// +kubebuilder:validation:Pattern:=`^\S+$`
	Name string `json:"name"`

	// Title of the feature
	// +kubebuilder:validation:MinLength:=1
	Title string `json:"title"`

	// Abstract of the feature
	// +kubebuilder:validation:MinLength:=1
	Abstract string `json:"abstract"`

	// Keywords of the feature
	// +kubebuilder:validation:MinItems:=1
	// +kubebuilder:validation:items:MinLength:=1
	Keywords []string `json:"keywords"`

	// Metadata URL
	// +kubebuilder:validation:Type=object
	DatasetMetadataURL *MetadataURL `json:"datasetMetadataUrl,omitempty"`

	// Optional feature bbox
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=object
	Bbox *FeatureBbox `json:"bbox,omitempty"`

	// FeatureType data connection
	// +kubebuilder:validation:Type=object
	// +kubebuilder:validation:XValidation:rule="has(self.gpkg) || has(self.postgis)", message="At least one of the datasource should be provided (postgis, gpkg)"
	Data BaseData `json:"data"`
}

FeatureType defines a WFS feature

func (*FeatureType) DeepCopy

func (in *FeatureType) DeepCopy() *FeatureType

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

func (*FeatureType) DeepCopyInto

func (in *FeatureType) DeepCopyInto(out *FeatureType)

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

type Gpkg

type Gpkg struct {
	// Blobkey identifies the location/bucket of the .gpkg file
	// +kubebuilder:validation:Pattern:=^.+\/.+\/.+\.gpkg$
	BlobKey string `json:"blobKey"`

	// TableName is the table within the geopackage
	// +kubebuilder:validation:MinLength:=1
	TableName string `json:"tableName"`

	// GeometryType of the table, must match an OGC type
	// +kubebuilder:validation:Pattern:=`^(Multi)?(Point|LineString|Polygon)$`
	GeometryType string `json:"geometryType"`

	// Columns to visualize for this table
	// +kubebuilder:validation:MinItems:=1
	Columns []Column `json:"columns"`
}

Gpkg configures a Geopackage data source +kubebuilder:validation:Type=object

func (*Gpkg) DeepCopy

func (in *Gpkg) DeepCopy() *Gpkg

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

func (*Gpkg) DeepCopyInto

func (in *Gpkg) DeepCopyInto(out *Gpkg)

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

type HealthCheckWFS

type HealthCheckWFS struct {
	// +kubebuilder:validation:XValidation:rule="self.lowerAscii().contains('service=wfs')",message="a valid healthcheck contains 'Service=WFS'"
	// +kubebuilder:validation:XValidation:rule="self.lowerAscii().contains('request=')",message="a valid healthcheck contains 'Request='"
	Querystring string `json:"querystring"`
	// +kubebuilder:validation:Pattern=(image/png|text/xml|text/html)
	Mimetype string `json:"mimetype"`
}

HealthCheck is the struct with all fields to configure custom healthchecks

func (*HealthCheckWFS) DeepCopy

func (in *HealthCheckWFS) DeepCopy() *HealthCheckWFS

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

func (*HealthCheckWFS) DeepCopyInto

func (in *HealthCheckWFS) DeepCopyInto(out *HealthCheckWFS)

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

type HealthCheckWMS

type HealthCheckWMS struct {
	// +kubebuilder:validation:XValidation:rule="self.lowerAscii().contains('service=wms')",message="a valid healthcheck contains 'SERVICE=WMS'"
	// +kubebuilder:validation:XValidation:rule="self.lowerAscii().contains('request=')",message="a valid healthcheck contains 'REQUEST='"
	Querystring *string `json:"querystring,omitempty"`
	// +kubebuilder:validation:Pattern=(image/png|text/xml|text/html)
	Mimetype *string `json:"mimetype,omitempty"`

	Boundingbox *smoothoperatormodel.BBox `json:"boundingbox,omitempty"`
}

HealthCheck is the struct with all fields to configure custom healthchecks +kubebuilder:validation:XValidation:rule="!has(self.querystring) || has(self.mimetype)",message="mimetype is required when a querystring is used" +kubebuilder:validation:XValidation:rule="(has(self.boundingbox) || has(self.querystring)) && !(has(self.querystring) && has(self.boundingbox))", message="healthcheck should have exactly 1 of querystring + mimetype or boundingbox" +kubebuilder:validation:XValidation:rule="(has(self.boundingbox) || has(self.mimetype)) && !(has(self.mimetype) && has(self.boundingbox))", message="healthcheck should have exactly 1 of querystring + mimetype or boundingbox"

func (*HealthCheckWMS) DeepCopy

func (in *HealthCheckWMS) DeepCopy() *HealthCheckWMS

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

func (*HealthCheckWMS) DeepCopyInto

func (in *HealthCheckWMS) DeepCopyInto(out *HealthCheckWMS)

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

type HorizontalPodAutoscalerPatch

type HorizontalPodAutoscalerPatch struct {
	MinReplicas *int32                                         `json:"minReplicas,omitempty"`
	MaxReplicas *int32                                         `json:"maxReplicas,omitempty"`
	Metrics     []autoscalingv2.MetricSpec                     `json:"metrics,omitempty"`
	Behavior    *autoscalingv2.HorizontalPodAutoscalerBehavior `json:"behavior,omitempty"`
}

HorizontalPodAutoscalerPatch - copy of autoscalingv2.HorizontalPodAutoscalerSpec without ScaleTargetRef This way we don't have to specify the scaleTargetRef field in the CRD.

func (*HorizontalPodAutoscalerPatch) DeepCopy

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

func (*HorizontalPodAutoscalerPatch) DeepCopyInto

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

type Inspire

type Inspire struct {
	// ServiceMetadataURL references the CSW or custom metadata record.
	// +kubebuilder:validation:Type=object
	ServiceMetadataURL MetadataURL `json:"serviceMetadataUrl"`

	// Language of the INSPIRE metadata record
	// +kubebuilder:validation:Pattern:=`bul|cze|dan|dut|eng|est|fin|fre|ger|gre|hun|gle|ita|lav|lit|mlt|pol|por|rum|slo|slv|spa|swe`
	Language string `json:"language"`
}

Inspire holds INSPIRE-specific metadata for the service. +kubebuilder:validation:Type=object

func (*Inspire) DeepCopy

func (in *Inspire) DeepCopy() *Inspire

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

func (*Inspire) DeepCopyInto

func (in *Inspire) DeepCopyInto(out *Inspire)

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

type Layer

type Layer struct {
	// Name of the layer, required for layers on the 2nd or 3rd level
	// +kubebuilder:validation:MinLength:=1
	Name *string `json:"name,omitempty"`

	// Title of the layer
	// +kubebuilder:validation:MinLength:=1
	Title *string `json:"title,omitempty"`

	// Abstract of the layer
	// +kubebuilder:validation:MinLength:=1
	Abstract *string `json:"abstract,omitempty"`

	// Keywords of the layer, required if the layer is visible
	// +kubebuilder:validation:MinItems:=1
	// +kubebuilder:validation:items:MinLength:=1
	Keywords []string `json:"keywords,omitempty"`

	// BoundingBoxes of the layer. If omitted the boundingboxes of the parent layer of the service is used.
	// +kubebuilder:validation:MinItems:=1
	BoundingBoxes []WMSBoundingBox `json:"boundingBoxes,omitempty"`

	// Whether or not the layer is visible. At least one of the layers must be visible.
	// +kubebuilder:default:=true
	// +kubebuilder:validation:Optional
	Visible bool `json:"visible"`

	// TODO ??
	Authority *Authority `json:"authority,omitempty"`

	// Links to metadata
	DatasetMetadataURL *MetadataURL `json:"datasetMetadataUrl,omitempty"`

	// The minimum scale at which this layer functions
	// +kubebuilder:validation:Pattern:=`^[0-9]+(.[0-9]+)?$`
	MinScaleDenominator *string `json:"minscaledenominator,omitempty"`

	// The maximum scale at which this layer functions
	// +kubebuilder:validation:Pattern:=`^[1-9][0-9]*(.[0-9]+)?$`
	MaxScaleDenominator *string `json:"maxscaledenominator,omitempty"`

	// List of styles used by the layer
	// +kubebuilder:validation:MinItems:=1
	Styles []Style `json:"styles,omitempty"`

	// Mapfile setting, sets "LABEL_NO_CLIP=ON"
	LabelNoClip bool `json:"labelNoClip,omitempty"`

	// Data (gpkg/postgis/tif) used by the layer
	Data *Data `json:"data,omitempty"`

	// Sublayers of the layer
	// +kubebuilder:validation:MinItems:=1
	// +kubebuilder:validation:Type=array
	Layers []Layer `json:"layers,omitempty"`
}

+kubebuilder:validation:XValidation:message="A layer should have exactly one of sublayers or data", rule="(has(self.data) || has(self.layers)) && !(has(self.data) && has(self.layers))" +kubebuilder:validation:XValidation:message="A layer with data attribute should have styling", rule="!has(self.data) || has(self.styles)" +kubebuilder:validation:XValidation:message="A layer should have a title when visible", rule="!self.visible || has(self.title)" +kubebuilder:validation:XValidation:message="A layer should have an abstract when visible", rule="!self.visible || has(self.abstract)" +kubebuilder:validation:XValidation:message="A layer should have keywords when visible", rule="!self.visible || has(self.keywords)"

func (*Layer) DeepCopy

func (in *Layer) DeepCopy() *Layer

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

func (*Layer) DeepCopyInto

func (in *Layer) DeepCopyInto(out *Layer)

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

func (*Layer) GetAllSublayers

func (layer *Layer) GetAllSublayers() []Layer

GetAllSublayers - get all sublayers of a layer, the result does not include the layer itself

func (*Layer) IsDataLayer

func (layer *Layer) IsDataLayer() bool

func (*Layer) IsGroupLayer

func (layer *Layer) IsGroupLayer() bool

func (*Layer) IsTopLayer

func (layer *Layer) IsTopLayer() bool

IsTopLayer - a layer is a toplayer if and only if it has sublayers that are group layers. In other words the layer is level 1 in a 3 level hierarchy.

type Legend

type Legend struct {
	// The width of the legend in px, defaults to 78
	// + kubebuilder:default=78
	Width int32 `json:"width,omitempty"`

	// The height of the legend in px, defaults to 20
	// + kubebuilder:default=20
	Height int32 `json:"height,omitempty"`

	// Format of the legend, defaults to image/png
	// +kubebuilder:default="image/png"
	Format string `json:"format,omitempty"`

	// Location of the legend on the blobstore
	// +kubebuilder:validation:MinLength:=1
	BlobKey string `json:"blobKey"`
}

func (*Legend) DeepCopy

func (in *Legend) DeepCopy() *Legend

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

func (*Legend) DeepCopyInto

func (in *Legend) DeepCopyInto(out *Legend)

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

type Mapfile

type Mapfile struct {
	// +kubebuilder:validation:Type=object
	ConfigMapKeyRef corev1.ConfigMapKeySelector `json:"configMapKeyRef"`
}

Mapfile references a ConfigMap key where an external mapfile is stored. +kubebuilder:validation:Type=object

func (*Mapfile) DeepCopy

func (in *Mapfile) DeepCopy() *Mapfile

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

func (*Mapfile) DeepCopyInto

func (in *Mapfile) DeepCopyInto(out *Mapfile)

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

type Metadata

type Metadata struct {
	// MetadataIdentifier is the record's UUID
	// +kubebuilder:validation:Pattern:=`^[0-9a-zA-Z]{8}\-[0-9a-zA-Z]{4}\-[0-9a-zA-Z]{4}\-[0-9a-zA-Z]{4}\-[0-9a-zA-Z]{12}$`
	MetadataIdentifier string `json:"metadataIdentifier"`
}

Metadata holds the UUID of a CSW metadata record

func (*Metadata) DeepCopy

func (in *Metadata) DeepCopy() *Metadata

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

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

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

type MetadataURL

type MetadataURL struct {
	// CSW describes a metadata record via a metadataIdentifier (UUID) as defined in the OwnerInfo.
	CSW *Metadata `json:"csw,omitempty"`

	// Custom allows arbitrary href
	Custom *Custom `json:"custom,omitempty"`
}

+kubebuilder:validation:XValidation:rule="(has(self.csw) || has(self.custom)) && !(has(self.csw) && has(self.custom))", message="metadataUrl should have exactly 1 of csw or custom"

func (*MetadataURL) DeepCopy

func (in *MetadataURL) DeepCopy() *MetadataURL

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

func (*MetadataURL) DeepCopyInto

func (in *MetadataURL) DeepCopyInto(out *MetadataURL)

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

type Options

type Options struct {
	BaseOptions `json:",inline"`
	WMSOptions  `json:",inline"`
}

Options configures optional behaviors of the operator, like ingress, casing, and data prefetching. +kubebuilder:validation:Type=object

func GetDefaultOptions

func GetDefaultOptions() *Options

func (*Options) DeepCopy

func (in *Options) DeepCopy() *Options

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

func (*Options) DeepCopyInto

func (in *Options) DeepCopyInto(out *Options)

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

func (Options) UseWebserviceProxy

func (o Options) UseWebserviceProxy() bool

type Postgis

type Postgis struct {
	// TableName in postGIS
	// +kubebuilder:validation:MinLength=1
	TableName string `json:"tableName"`

	// GeometryType of the table
	// +kubebuilder:validation:Pattern=`^(Multi)?(Point|LineString|Polygon)$`
	GeometryType string `json:"geometryType"`

	// Columns to expose from table
	// +kubebuilder:validation:MinItems=1
	Columns []Column `json:"columns"`
}

Postgis - reference to table in a Postgres database +kubebuilder:validation:Type=object

func (*Postgis) DeepCopy

func (in *Postgis) DeepCopy() *Postgis

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

func (*Postgis) DeepCopyInto

func (in *Postgis) DeepCopyInto(out *Postgis)

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

type ServiceType

type ServiceType string
const (
	ServiceTypeWMS ServiceType = "WMS"
	ServiceTypeWFS ServiceType = "WFS"
)

type Style

type Style struct {
	// +kubebuilder:validation:MinLength:=1
	Name string `json:"name"`

	// +kubebuilder:validation:MinLength:=1
	Title *string `json:"title,omitempty"`

	// +kubebuilder:validation:MinLength:=1
	Abstract *string `json:"abstract,omitempty"`

	// +kubebuilder:validation:MinLength:=1
	Visualization *string `json:"visualization,omitempty"`

	Legend *Legend `json:"legend,omitempty"`
}

func (*Style) DeepCopy

func (in *Style) DeepCopy() *Style

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

func (*Style) DeepCopyInto

func (in *Style) DeepCopyInto(out *Style)

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

type StylingAssets

type StylingAssets struct {
	// BlobKeys contains symbol image (.png/.svg) or font (.ttf) keys on blob storage, format: container/key/file.(png|ttf)
	// +kubebuilder:validation:MinItems:=1
	// +kubebuilder:validation:items:Pattern:=^.+\/.+\/.+\.(png|ttf|svg)$
	BlobKeys []string `json:"blobKeys,omitempty"`

	// +kubebuilder:validation:MinItems:=1
	ConfigMapRefs []ConfigMapRef `json:"configMapRefs,omitempty"`
}

StylingAssets contains the files references needed for styling +kubebuilder:validation:XValidation:message="At least one of blobKeys or configMapRefs is required",rule="has(self.blobKeys) || has(self.configMapRefs)"

func (*StylingAssets) DeepCopy

func (in *StylingAssets) DeepCopy() *StylingAssets

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

func (*StylingAssets) DeepCopyInto

func (in *StylingAssets) DeepCopyInto(out *StylingAssets)

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

func (*StylingAssets) GetAllConfigMapRefKeys

func (stylingAssets *StylingAssets) GetAllConfigMapRefKeys() []string

type TIF

type TIF struct {
	// BlobKey to the TIFF file
	// +kubebuilder:validation:Pattern:=`^.+\/.+\/.+\.(tif?f|vrt)$`
	BlobKey string `json:"blobKey"`

	// This option can be used to control the resampling kernel used sampling raster images, optional
	// +kubebuilder:validation:Pattern=`(NEAREST|AVERAGE|BILINEAR)`
	// +kubebuilder:default=NEAREST
	Resample string `json:"resample,omitempty"`

	// Controls the smoothing of the image on a certain point. Bigger value gives a smoother/better picture but
	// results in slower web responses, optional
	// +kubebuilder:validation:Pattern="^-?[0-9]+([.][0-9]*)?$"
	// +kubebuilder:default="2.5"
	OversampleRatio string `json:"oversampleRatio,omitempty"`

	// Sets the color index to treat as transparent for raster layers, optional, hex or rgb
	// +kubebuilder:validation:Pattern=`(#[0-9A-F]{6}([0-9A-F]{2})?)|([0-9]{1,3}\s[0-9]{1,3}\s[0-9]{1,3})`
	Offsite *string `json:"offsite,omitempty"`

	// "When a band represents nominal or ordinal data the class name (from styling) can be included in the getFeatureInfo"
	// +kubebuilder:default:=false
	GetFeatureInfoIncludesClass bool `json:"getFeatureInfoIncludesClass,omitempty"`
}

TIF configures a GeoTIFF raster data source +kubebuilder:validation:Type=object

func (*TIF) DeepCopy

func (in *TIF) DeepCopy() *TIF

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

func (*TIF) DeepCopyInto

func (in *TIF) DeepCopyInto(out *TIF)

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

type WFS

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

	Spec   WFSSpec                            `json:"spec"`
	Status smoothoperatormodel.OperatorStatus `json:"status,omitempty"`
}

WFS is the Schema for the wfs API.

func (*WFS) DatasetMetadataIDs

func (wfs *WFS) DatasetMetadataIDs() []string

func (*WFS) DeepCopy

func (in *WFS) DeepCopy() *WFS

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

func (*WFS) DeepCopyInto

func (in *WFS) DeepCopyInto(out *WFS)

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

func (*WFS) DeepCopyObject

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

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

func (*WFS) GeoPackages

func (wfs *WFS) GeoPackages() []*Gpkg

func (*WFS) GroupKind

func (wfs *WFS) GroupKind() schema.GroupKind

func (*WFS) HasPostgisData

func (wfs *WFS) HasPostgisData() bool

func (*WFS) HorizontalPodAutoscalerPatch

func (wfs *WFS) HorizontalPodAutoscalerPatch() *HorizontalPodAutoscalerPatch

func (*WFS) Hub

func (*WFS) Hub()

Hub marks this type as a conversion hub.

func (*WFS) IngressRouteURLs

func (wfs *WFS) IngressRouteURLs(includeServiceURLWhenEmpty bool) smoothoperatormodel.IngressRouteURLs

func (*WFS) Inspire

func (wfs *WFS) Inspire() *WFSInspire

func (*WFS) Mapfile

func (wfs *WFS) Mapfile() *Mapfile

func (*WFS) OperatorStatus added in v1.1.1

func (wfs *WFS) OperatorStatus() *smoothoperatormodel.OperatorStatus

func (*WFS) Options

func (wfs *WFS) Options() Options

func (*WFS) OwnerInfoRef

func (wfs *WFS) OwnerInfoRef() string

func (*WFS) PodSpecPatch

func (wfs *WFS) PodSpecPatch() corev1.PodSpec

func (*WFS) ReadinessQueryString

func (wfs *WFS) ReadinessQueryString() (string, string, error)

func (*WFS) Type

func (wfs *WFS) Type() ServiceType

func (*WFS) TypedName

func (wfs *WFS) TypedName() string

func (*WFS) URL

func (wfs *WFS) URL() smoothoperatormodel.URL

func (*WFS) ValidateCreate

func (wfs *WFS) ValidateCreate(c client.Client) ([]string, error)

func (*WFS) ValidateUpdate

func (wfs *WFS) ValidateUpdate(c client.Client, wfsOld *WFS) ([]string, error)

type WFSInspire

type WFSInspire struct {
	Inspire `json:",inline"`
	// SpatialDatasetIdentifier is the ID uniquely identifying the dataset.
	// +kubebuilder:validation:Pattern:=`^[0-9a-zA-Z]{8}\-[0-9a-zA-Z]{4}\-[0-9a-zA-Z]{4}\-[0-9a-zA-Z]{4}\-[0-9a-zA-Z]{12}$`
	SpatialDatasetIdentifier string `json:"spatialDatasetIdentifier"`
}

func (*WFSInspire) DeepCopy

func (in *WFSInspire) DeepCopy() *WFSInspire

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

func (*WFSInspire) DeepCopyInto

func (in *WFSInspire) DeepCopyInto(out *WFSInspire)

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

type WFSList

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

WFSList contains a list of WFS.

func (*WFSList) DeepCopy

func (in *WFSList) DeepCopy() *WFSList

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

func (*WFSList) DeepCopyInto

func (in *WFSList) DeepCopyInto(out *WFSList)

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

func (*WFSList) DeepCopyObject

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

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

type WFSService

type WFSService struct {
	BaseService `json:",inline"`

	// Inspire holds INSPIRE-specific metadata for the service.
	Inspire *WFSInspire `json:"inspire,omitempty"`

	// Default CRS (DataEPSG)
	// +kubebuilder:validation:Pattern:="^EPSG:(28992|25831|25832|3034|3035|3857|4258|4326)$"
	DefaultCrs string `json:"defaultCrs"`

	// Other supported CRS
	// +kubebuilder:validation:MinItems:=1
	// +kubebuilder:validation:items:Pattern:="^EPSG:(28992|25831|25832|3034|3035|3857|4258|4326)$"
	OtherCrs []string `json:"otherCrs,omitempty"`

	// Service bounding box
	Bbox *Bbox `json:"bbox,omitempty"`

	// CountDefault -> wfs_maxfeatures in mapfile
	// +kubebuilder:validation:Minimum:=1
	CountDefault *int `json:"countDefault,omitempty"`

	// FeatureTypes configurations
	// +kubebuilder:validation:MinItems:=1
	// +kubebuilder:validation:Type=array
	FeatureTypes []FeatureType `json:"featureTypes"`
}

+kubebuilder:validation:XValidation:message="otherCrs can't contain the defaultCrs",rule="!has(self.otherCrs) || (has(self.otherCrs) && !(self.defaultCrs in self.otherCrs))",fieldPath=".otherCrs"

func (*WFSService) DeepCopy

func (in *WFSService) DeepCopy() *WFSService

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

func (*WFSService) DeepCopyInto

func (in *WFSService) DeepCopyInto(out *WFSService)

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

func (WFSService) KeywordsIncludingInspireKeyword

func (s WFSService) KeywordsIncludingInspireKeyword() []string

type WFSSpec

type WFSSpec struct {
	// Optional lifecycle settings
	Lifecycle *smoothoperatormodel.Lifecycle `json:"lifecycle,omitempty"`

	// +kubebuilder:validation:Type=object
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	// Strategic merge patch for the pod in the deployment. E.g. to patch the resources or add extra env vars.
	PodSpecPatch                 corev1.PodSpec                `json:"podSpecPatch"`
	HorizontalPodAutoscalerPatch *HorizontalPodAutoscalerPatch `json:"horizontalPodAutoscalerPatch,omitempty"`
	// TODO omitting the options field or setting an empty value results in incorrect defaulting of the options
	// Options configures optional behaviors of the operator, like ingress, casing, and data prefetching.
	Options *BaseOptions `json:"options,omitempty"`

	// Custom healthcheck options
	HealthCheck *HealthCheckWFS `json:"healthCheck,omitempty"`

	// Optional list of URLs where the service can be reached
	// By default only the spec.service.url is used
	IngressRouteURLs smoothoperatormodel.IngressRouteURLs `json:"ingressRouteUrls,omitempty"`

	// service configuration
	Service WFSService `json:"service"`
}

WFSSpec vertegenwoordigt de hoofdstruct voor de YAML-configuratie +kubebuilder:validation:XValidation:rule="!has(self.ingressRouteUrls) || self.ingressRouteUrls.exists_one(x, x.url == self.service.url)",messageExpression="'ingressRouteUrls should include service.url '+self.service.url"

func (*WFSSpec) DeepCopy

func (in *WFSSpec) DeepCopy() *WFSSpec

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

func (*WFSSpec) DeepCopyInto

func (in *WFSSpec) DeepCopyInto(out *WFSSpec)

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

type WMS

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

	Spec   WMSSpec                            `json:"spec"`
	Status smoothoperatormodel.OperatorStatus `json:"status,omitempty"`
}

WMS is the Schema for the wms API.

func (*WMS) DatasetMetadataIDs

func (wms *WMS) DatasetMetadataIDs() []string

func (*WMS) DeepCopy

func (in *WMS) DeepCopy() *WMS

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

func (*WMS) DeepCopyInto

func (in *WMS) DeepCopyInto(out *WMS)

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

func (*WMS) DeepCopyObject

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

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

func (*WMS) GeoPackages

func (wms *WMS) GeoPackages() []*Gpkg

func (*WMS) GetAllLayersWithLegend

func (wms *WMS) GetAllLayersWithLegend() (layers []AnnotatedLayer)

func (*WMS) GetAuthority

func (wms *WMS) GetAuthority() *Authority

func (*WMS) GetUniqueTiffBlobKeys

func (wms *WMS) GetUniqueTiffBlobKeys() []string

func (*WMS) GroupKind

func (wms *WMS) GroupKind() schema.GroupKind

func (*WMS) HasPostgisData

func (wms *WMS) HasPostgisData() bool

func (*WMS) HealthCheckBBox

func (wms *WMS) HealthCheckBBox() string

func (*WMS) HorizontalPodAutoscalerPatch

func (wms *WMS) HorizontalPodAutoscalerPatch() *HorizontalPodAutoscalerPatch

func (*WMS) Hub

func (*WMS) Hub()

Hub marks this type as a conversion hub.

func (*WMS) IngressRouteURLs

func (wms *WMS) IngressRouteURLs(includeServiceURLWhenEmpty bool) smoothoperatormodel.IngressRouteURLs

func (*WMS) Inspire

func (wms *WMS) Inspire() *WFSInspire

func (*WMS) Mapfile

func (wms *WMS) Mapfile() *Mapfile

func (*WMS) OperatorStatus added in v1.1.1

func (wms *WMS) OperatorStatus() *smoothoperatormodel.OperatorStatus

func (*WMS) Options

func (wms *WMS) Options() Options

func (*WMS) OwnerInfoRef

func (wms *WMS) OwnerInfoRef() string

func (*WMS) PodSpecPatch

func (wms *WMS) PodSpecPatch() corev1.PodSpec

func (*WMS) ReadinessQueryString

func (wms *WMS) ReadinessQueryString() (string, string, error)

func (*WMS) Type

func (wms *WMS) Type() ServiceType

func (*WMS) TypedName

func (wms *WMS) TypedName() string

func (*WMS) URL

func (wms *WMS) URL() smoothoperatormodel.URL

func (*WMS) ValidateCreate

func (wms *WMS) ValidateCreate(c client.Client) ([]string, error)

func (*WMS) ValidateUpdate

func (wms *WMS) ValidateUpdate(c client.Client, wmsOld *WMS) ([]string, error)

type WMSBoundingBox

type WMSBoundingBox struct {
	// +kubebuilder:validation:Pattern:="^(EPSG:(28992|25831|25832|3034|3035|3857|4258|4326)|CRS:84)$"
	CRS  string                   `json:"crs"`
	BBox smoothoperatormodel.BBox `json:"bbox"`
}

func (*WMSBoundingBox) Combine

func (wmsBoundingBox *WMSBoundingBox) Combine(other *WMSBoundingBox)

func (*WMSBoundingBox) DeepCopy

func (in *WMSBoundingBox) DeepCopy() *WMSBoundingBox

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

func (*WMSBoundingBox) DeepCopyInto

func (in *WMSBoundingBox) DeepCopyInto(out *WMSBoundingBox)

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

func (*WMSBoundingBox) ToExtent

func (wmsBoundingBox *WMSBoundingBox) ToExtent() string

type WMSList

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

WMSList contains a list of WMS.

func (*WMSList) DeepCopy

func (in *WMSList) DeepCopy() *WMSList

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

func (*WMSList) DeepCopyInto

func (in *WMSList) DeepCopyInto(out *WMSList)

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

func (*WMSList) DeepCopyObject

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

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

type WMSOptions

type WMSOptions struct {

	// ValidateRequests enables request validation against the service schema.
	// +kubebuilder:default:=true
	// +kubebuilder:validation:Optional
	ValidateRequests bool `json:"validateRequests"`

	// RewriteGroupToDataLayers merges group layers into individual data layers.
	// +kubebuilder:default:=false
	// +kubebuilder:validation:Optional
	RewriteGroupToDataLayers bool `json:"rewriteGroupToDataLayers"`

	// DisableWebserviceProxy disables the built-in proxy for external web services.
	// +kubebuilder:default:=false
	// +kubebuilder:validation:Optional
	DisableWebserviceProxy bool `json:"disableWebserviceProxy"`

	// ValidateChildStyleNameEqual ensures child style names match the parent style.
	// +kubebuilder:default=false
	// +kubebuilder:validation:Optional
	ValidateChildStyleNameEqual bool `json:"validateChildStyleNameEqual"`
}

WMSOptions are the Options exclusively used by the WMS +kubebuilder:validation:Type=object

func (*WMSOptions) DeepCopy

func (in *WMSOptions) DeepCopy() *WMSOptions

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

func (*WMSOptions) DeepCopyInto

func (in *WMSOptions) DeepCopyInto(out *WMSOptions)

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

type WMSService

type WMSService struct {
	BaseService `json:",inline"`

	// Config for Inspire services
	Inspire *Inspire `json:"inspire,omitempty"`

	// CRS of the data
	// +kubebuilder:validation:Pattern:=`(EPSG|CRS):\d+`
	//nolint:tagliatelle
	DataEPSG string `json:"dataEPSG"`

	// Mapfile setting: Sets the maximum size (in pixels) for both dimensions of the image from a getMap request.
	// +kubebuilder:validation:Minimum:=1
	MaxSize *int32 `json:"maxSize,omitempty"`

	// Mapfile setting: Sets the RESOLUTION field in the mapfile, not used when service.mapfile is configured
	Resolution *int32 `json:"resolution,omitempty"`

	// Mapfile setting: Sets the DEFRESOLUTION field in the mapfile, not used when service.mapfile is configured
	DefResolution *int32 `json:"defResolution,omitempty"`

	// Optional. Required files for the styling of the service
	StylingAssets *StylingAssets `json:"stylingAssets,omitempty"`

	// Custom mapfile
	Mapfile *Mapfile `json:"mapfile,omitempty"`

	// Toplayer
	Layer Layer `json:"layer"`
}

+kubebuilder:validation:XValidation:message="service requires styling, either through service.mapfile, or stylingAssets.configMapRefs",rule=has(self.mapfile) || (has(self.stylingAssets) && has(self.stylingAssets.configMapRefs)) +kubebuilder:validation:XValidation:message="when using service.mapfile, don't include stylingAssets.configMapRefs",rule=!has(self.mapfile) || (!has(self.stylingAssets) || !has(self.stylingAssets.configMapRefs))

func (*WMSService) DeepCopy

func (in *WMSService) DeepCopy() *WMSService

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

func (*WMSService) DeepCopyInto

func (in *WMSService) DeepCopyInto(out *WMSService)

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

func (*WMSService) GetAnnotatedLayers

func (wmsService *WMSService) GetAnnotatedLayers() []AnnotatedLayer

func (*WMSService) GetBoundingBox

func (wmsService *WMSService) GetBoundingBox() WMSBoundingBox

func (*WMSService) GetParentLayer

func (wmsService *WMSService) GetParentLayer(layer Layer) *Layer

func (WMSService) KeywordsIncludingInspireKeyword

func (wmsService WMSService) KeywordsIncludingInspireKeyword() []string

type WMSSpec

type WMSSpec struct {
	// Optional lifecycle settings
	Lifecycle *smoothoperatormodel.Lifecycle `json:"lifecycle,omitempty"`

	// +kubebuilder:validation:Type=object
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	// Strategic merge patch for the pod in the deployment. E.g. to patch the resources or add extra env vars.
	PodSpecPatch corev1.PodSpec `json:"podSpecPatch"`

	// Optional specification for the HorizontalAutoscaler
	HorizontalPodAutoscalerPatch *HorizontalPodAutoscalerPatch `json:"horizontalPodAutoscalerPatch,omitempty"`

	// Optional options for the configuration of the service.
	// TODO omitting the options field or setting an empty value results in incorrect defaulting of the options
	Options *Options `json:"options,omitempty"`

	// Custom healthcheck options
	HealthCheck *HealthCheckWMS `json:"healthCheck,omitempty"`

	// Optional list of URLs where the service can be reached
	// By default only the spec.service.url is used
	IngressRouteURLs smoothoperatormodel.IngressRouteURLs `json:"ingressRouteUrls,omitempty"`

	// Service specification
	Service WMSService `json:"service"`
}

WMSSpec defines the desired state of WMS. +kubebuilder:validation:XValidation:rule="!has(self.ingressRouteUrls) || self.ingressRouteUrls.exists_one(x, x.url == self.service.url)",messageExpression="'ingressRouteUrls should include service.url '+self.service.url"

func (*WMSSpec) DeepCopy

func (in *WMSSpec) DeepCopy() *WMSSpec

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

func (*WMSSpec) DeepCopyInto

func (in *WMSSpec) DeepCopyInto(out *WMSSpec)

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

type WMSWFS

type WMSWFS interface {
	*WFS | *WMS
	metav1.Object

	GroupKind() schema.GroupKind
	Inspire() *WFSInspire
	Mapfile() *Mapfile
	PodSpecPatch() corev1.PodSpec
	HorizontalPodAutoscalerPatch() *HorizontalPodAutoscalerPatch
	Type() ServiceType
	TypedName() string
	Options() Options
	HasPostgisData() bool
	OwnerInfoRef() string

	// URL returns the configured service URL
	URL() smoothoperatormodel.URL
	IngressRouteURLs(includeServiceURLWhenEmpty bool) smoothoperatormodel.IngressRouteURLs

	// DatasetMetadataIds returns list of all configured metadata identifiers configured on Layers or Featuretypes
	DatasetMetadataIDs() []string

	GeoPackages() []*Gpkg

	ReadinessQueryString() (string, string, error)
}

WMSWFS is the common interface used for both WMS and WFS resources. +kubebuilder:object:generate=false

Jump to

Keyboard shortcuts

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