Documentation
¶
Overview ¶
Package v3 contains API Schema definitions for the v3 API group. +kubebuilder:object:generate=true +groupName=pdok.nl
Index ¶
- Constants
- Variables
- func GetHost(includeProtocol bool) string
- func SetHost(url string)
- func ValidateCreate[W WMSWFS](c client.Client, obj W, validate func(W, *[]string, *field.ErrorList)) ([]string, error)
- func ValidateEphemeralStorage(podSpecPatch v1.PodSpec, allErrs *field.ErrorList)
- func ValidateFeatureTypes(wfs *WFS, warnings *[]string, allErrs *field.ErrorList)
- func ValidateHorizontalPodAutoscalerPatch(patch HorizontalPodAutoscalerPatch, allErrs *field.ErrorList)
- func ValidateInspire[O WMSWFS](obj O, allErrs *field.ErrorList, allWarnings *[]string)
- func ValidateOwnerInfo[O WMSWFS](c client.Client, obj O, allErrs *field.ErrorList)
- func ValidateUpdate[W WMSWFS](c client.Client, newW, oldW W, validate func(W, *[]string, *field.ErrorList)) ([]string, error)
- func ValidateWFS(wfs *WFS, warnings *[]string, allErrs *field.ErrorList)
- func ValidateWMS(wms *WMS, warnings *[]string, allErrs *field.ErrorList)
- type AnnotatedLayer
- type Authority
- type BaseData
- type BaseOptions
- type BaseService
- type Bbox
- type Column
- type ConfigMapRef
- type Custom
- type Data
- type FeatureBbox
- type FeatureType
- type Gpkg
- type HealthCheckWFS
- type HealthCheckWMS
- type HorizontalPodAutoscalerPatch
- type Inspire
- type Layer
- type Legend
- type Mapfile
- type Metadata
- type MetadataURL
- type Options
- type Postgis
- type ServiceType
- type Style
- type StylingAssets
- type TIF
- type WFS
- func (wfs *WFS) DatasetMetadataIDs() []string
- func (in *WFS) DeepCopy() *WFS
- func (in *WFS) DeepCopyInto(out *WFS)
- func (in *WFS) DeepCopyObject() runtime.Object
- func (wfs *WFS) GeoPackages() []*Gpkg
- func (wfs *WFS) GroupKind() schema.GroupKind
- func (wfs *WFS) HasPostgisData() bool
- func (wfs *WFS) HorizontalPodAutoscalerPatch() *HorizontalPodAutoscalerPatch
- func (*WFS) Hub()
- func (wfs *WFS) IngressRouteURLs(includeServiceURLWhenEmpty bool) smoothoperatormodel.IngressRouteURLs
- func (wfs *WFS) Inspire() *WFSInspire
- func (wfs *WFS) Mapfile() *Mapfile
- func (wfs *WFS) OperatorStatus() *smoothoperatormodel.OperatorStatus
- func (wfs *WFS) Options() Options
- func (wfs *WFS) OwnerInfoRef() string
- func (wfs *WFS) PodSpecPatch() corev1.PodSpec
- func (wfs *WFS) ReadinessQueryString() (string, string, error)
- func (wfs *WFS) Type() ServiceType
- func (wfs *WFS) TypedName() string
- func (wfs *WFS) URL() smoothoperatormodel.URL
- func (wfs *WFS) ValidateCreate(c client.Client) ([]string, error)
- func (wfs *WFS) ValidateUpdate(c client.Client, wfsOld *WFS) ([]string, error)
- type WFSInspire
- type WFSList
- type WFSService
- type WFSSpec
- type WMS
- func (wms *WMS) DatasetMetadataIDs() []string
- func (in *WMS) DeepCopy() *WMS
- func (in *WMS) DeepCopyInto(out *WMS)
- func (in *WMS) DeepCopyObject() runtime.Object
- func (wms *WMS) GeoPackages() []*Gpkg
- func (wms *WMS) GetAllLayersWithLegend() (layers []AnnotatedLayer)
- func (wms *WMS) GetAuthority() *Authority
- func (wms *WMS) GetUniqueTiffBlobKeys() []string
- func (wms *WMS) GroupKind() schema.GroupKind
- func (wms *WMS) HasPostgisData() bool
- func (wms *WMS) HealthCheckBBox() string
- func (wms *WMS) HorizontalPodAutoscalerPatch() *HorizontalPodAutoscalerPatch
- func (*WMS) Hub()
- func (wms *WMS) IngressRouteURLs(includeServiceURLWhenEmpty bool) smoothoperatormodel.IngressRouteURLs
- func (wms *WMS) Inspire() *WFSInspire
- func (wms *WMS) Mapfile() *Mapfile
- func (wms *WMS) OperatorStatus() *smoothoperatormodel.OperatorStatus
- func (wms *WMS) Options() Options
- func (wms *WMS) OwnerInfoRef() string
- func (wms *WMS) PodSpecPatch() corev1.PodSpec
- func (wms *WMS) ReadinessQueryString() (string, string, error)
- func (wms *WMS) Type() ServiceType
- func (wms *WMS) TypedName() string
- func (wms *WMS) URL() smoothoperatormodel.URL
- func (wms *WMS) ValidateCreate(c client.Client) ([]string, error)
- func (wms *WMS) ValidateUpdate(c client.Client, wmsOld *WMS) ([]string, error)
- type WMSBoundingBox
- type WMSList
- type WMSOptions
- type WMSService
- func (in *WMSService) DeepCopy() *WMSService
- func (in *WMSService) DeepCopyInto(out *WMSService)
- func (wmsService *WMSService) GetAnnotatedLayers() []AnnotatedLayer
- func (wmsService *WMSService) GetBoundingBox() WMSBoundingBox
- func (wmsService *WMSService) GetParentLayer(layer Layer) *Layer
- func (wmsService WMSService) KeywordsIncludingInspireKeyword() []string
- type WMSSpec
- type WMSWFS
Constants ¶
const ( TopLayer = "topLayer" DataLayer = "dataLayer" GroupLayer = "groupLayer" )
Variables ¶
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 ValidateCreate ¶
func ValidateFeatureTypes ¶
func ValidateHorizontalPodAutoscalerPatch ¶
func ValidateHorizontalPodAutoscalerPatch(patch HorizontalPodAutoscalerPatch, allErrs *field.ErrorList)
func ValidateInspire ¶
func ValidateOwnerInfo ¶
func ValidateUpdate ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Authority.
func (*Authority) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BaseData.
func (*BaseData) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BaseData) GetColumns ¶
func (*BaseData) GetGeometryType ¶
func (*BaseData) GetTableName ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Bbox.
func (*Bbox) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Column.
func (*Column) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Custom.
func (*Custom) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Data.
func (*Data) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Gpkg.
func (*Gpkg) DeepCopyInto ¶
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 ¶
func (in *HorizontalPodAutoscalerPatch) DeepCopy() *HorizontalPodAutoscalerPatch
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerPatch.
func (*HorizontalPodAutoscalerPatch) DeepCopyInto ¶
func (in *HorizontalPodAutoscalerPatch) DeepCopyInto(out *HorizontalPodAutoscalerPatch)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Inspire.
func (*Inspire) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Layer.
func (*Layer) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Layer) GetAllSublayers ¶
GetAllSublayers - get all sublayers of a layer, the result does not include the layer itself
func (*Layer) IsDataLayer ¶
func (*Layer) IsGroupLayer ¶
func (*Layer) IsTopLayer ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Legend.
func (*Legend) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Mapfile.
func (*Mapfile) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.
func (*Metadata) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Options.
func (*Options) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Options) UseWebserviceProxy ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Postgis.
func (*Postgis) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Style.
func (*Style) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TIF.
func (*TIF) DeepCopyInto ¶
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) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WFS.
func (*WFS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WFS) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*WFS) GeoPackages ¶
func (*WFS) HasPostgisData ¶
func (*WFS) HorizontalPodAutoscalerPatch ¶
func (wfs *WFS) HorizontalPodAutoscalerPatch() *HorizontalPodAutoscalerPatch
func (*WFS) IngressRouteURLs ¶
func (wfs *WFS) IngressRouteURLs(includeServiceURLWhenEmpty bool) smoothoperatormodel.IngressRouteURLs
func (*WFS) Inspire ¶
func (wfs *WFS) Inspire() *WFSInspire
func (*WFS) OperatorStatus ¶ added in v1.1.1
func (wfs *WFS) OperatorStatus() *smoothoperatormodel.OperatorStatus
func (*WFS) OwnerInfoRef ¶
func (*WFS) PodSpecPatch ¶
func (*WFS) Type ¶
func (wfs *WFS) Type() ServiceType
func (*WFS) URL ¶
func (wfs *WFS) URL() smoothoperatormodel.URL
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WFSList.
func (*WFSList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WFSList) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WFSSpec.
func (*WFSSpec) DeepCopyInto ¶
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) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WMS.
func (*WMS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WMS) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*WMS) GeoPackages ¶
func (*WMS) GetAllLayersWithLegend ¶
func (wms *WMS) GetAllLayersWithLegend() (layers []AnnotatedLayer)
func (*WMS) GetAuthority ¶
func (*WMS) GetUniqueTiffBlobKeys ¶
func (*WMS) HasPostgisData ¶
func (*WMS) HealthCheckBBox ¶
func (*WMS) HorizontalPodAutoscalerPatch ¶
func (wms *WMS) HorizontalPodAutoscalerPatch() *HorizontalPodAutoscalerPatch
func (*WMS) IngressRouteURLs ¶
func (wms *WMS) IngressRouteURLs(includeServiceURLWhenEmpty bool) smoothoperatormodel.IngressRouteURLs
func (*WMS) Inspire ¶
func (wms *WMS) Inspire() *WFSInspire
func (*WMS) OperatorStatus ¶ added in v1.1.1
func (wms *WMS) OperatorStatus() *smoothoperatormodel.OperatorStatus
func (*WMS) OwnerInfoRef ¶
func (*WMS) PodSpecPatch ¶
func (*WMS) Type ¶
func (wms *WMS) Type() ServiceType
func (*WMS) URL ¶
func (wms *WMS) URL() smoothoperatormodel.URL
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WMSList.
func (*WMSList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WMSList) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WMSSpec.
func (*WMSSpec) DeepCopyInto ¶
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