Documentation ¶
Index ¶
- Constants
- Variables
- type AdditionalDatasource
- type CollectionEntry3dGeoVolumes
- type CollectionEntryFeatures
- type CollectionEntryTiles
- type CollectionLinks
- type Config
- func (c *Config) AllCollections() GeoSpatialCollections
- func (c *Config) CookieMaxAge() int
- func (in *Config) DeepCopy() *Config
- func (in *Config) DeepCopyInto(out *Config)
- func (c *Config) HasCollections() bool
- func (c *Config) UnmarshalJSON(b []byte) error
- func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error
- type DatasetDetail
- type Datasource
- type Datasources
- type DownloadLink
- type Duration
- func (d *Duration) DeepCopy() *Duration
- func (d *Duration) DeepCopyInto(out *Duration)
- func (d Duration) MarshalJSON() ([]byte, error)
- func (d Duration) MarshalYAML() (interface{}, error)
- func (d *Duration) UnmarshalJSON(b []byte) error
- func (d *Duration) UnmarshalYAML(unmarshal func(any) error) error
- type Extent
- type FeatureFilters
- type FeatureProperties
- type FeaturesViewer
- type GeoPackage
- type GeoPackageCloud
- type GeoPackageCloudCache
- type GeoPackageCommon
- type GeoPackageDownload
- type GeoPackageLocal
- type GeoSpatialCollection
- func (in *GeoSpatialCollection) DeepCopy() *GeoSpatialCollection
- func (in *GeoSpatialCollection) DeepCopyInto(out *GeoSpatialCollection)
- func (c *GeoSpatialCollection) HasDateTime() bool
- func (c GeoSpatialCollection) MarshalJSON() ([]byte, error)
- func (c *GeoSpatialCollection) UnmarshalJSON(b []byte) error
- type GeoSpatialCollectionJSON
- type GeoSpatialCollectionMetadata
- type GeoSpatialCollections
- type HealthCheck
- type Language
- type License
- type Limit
- type MapSheetDownloadProperties
- type MapSheetDownloads
- type MediaType
- func (m *MediaType) DeepCopy() *MediaType
- func (m *MediaType) DeepCopyInto(out *MediaType)
- func (m MediaType) MarshalJSON() ([]byte, error)
- func (m MediaType) MarshalYAML() (interface{}, error)
- func (m *MediaType) UnmarshalJSON(b []byte) error
- func (m *MediaType) UnmarshalYAML(unmarshal func(any) error) error
- type MetadataLink
- type OgcAPI
- type OgcAPI3dGeoVolumes
- type OgcAPIFeatures
- type OgcAPIProcesses
- type OgcAPIStyles
- type OgcAPITiles
- type PostGIS
- type PropertyFilter
- type Resources
- type Style
- type StyleFormat
- type Support
- type SupportedSrs
- type TemporalProperties
- type TileCoordinates
- type Tiles
- type TilesType
- type URL
- type WebConfig
- type ZoomLevelRange
Constants ¶
const ( CookieMaxAge = 60 * 60 * 24 DefaultSrs = "EPSG:28992" )
Variables ¶
var AllTileProjections = map[string]string{
"EPSG:28992": "NetherlandsRDNewQuad",
"EPSG:3035": "EuropeanETRS89_LAEAQuad",
"EPSG:3857": "WebMercatorQuad",
}
AllTileProjections projections supported by GoKoala for serving (vector) tiles, regardless of the dataset. When adding a new projection also add corresponding HTML/JSON templates.
var HealthCheckDefaultTiles = map[int]TileCoordinates{ 0: {/* contains filtered or unexported fields */}, 1: {/* contains filtered or unexported fields */}, 2: {/* contains filtered or unexported fields */}, 3: {/* contains filtered or unexported fields */}, 4: {/* contains filtered or unexported fields */}, 5: {/* contains filtered or unexported fields */}, 6: {/* contains filtered or unexported fields */}, 7: {/* contains filtered or unexported fields */}, 8: {/* contains filtered or unexported fields */}, 9: {/* contains filtered or unexported fields */}, 10: {/* contains filtered or unexported fields */}, 11: {/* contains filtered or unexported fields */}, 12: {/* contains filtered or unexported fields */}, 13: {/* contains filtered or unexported fields */}, 14: {/* contains filtered or unexported fields */}, 15: {/* contains filtered or unexported fields */}, 16: {/* contains filtered or unexported fields */}, }
default tiles for EPSG:28992 - location centered just outside a village in the province of Friesland
Functions ¶
This section is empty.
Types ¶
type AdditionalDatasource ¶
type AdditionalDatasource struct { // Projection (SRS/CRS) used for the features in this datasource // +kubebuilder:validation:Pattern=`^EPSG:\d+$` Srs string `yaml:"srs" json:"srs" validate:"required,startswith=EPSG:"` // The additional datasource Datasource `yaml:",inline" json:",inline"` }
+kubebuilder:object:generate=true
func (*AdditionalDatasource) DeepCopy ¶
func (in *AdditionalDatasource) DeepCopy() *AdditionalDatasource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalDatasource.
func (*AdditionalDatasource) DeepCopyInto ¶
func (in *AdditionalDatasource) DeepCopyInto(out *AdditionalDatasource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CollectionEntry3dGeoVolumes ¶
type CollectionEntry3dGeoVolumes struct { // Optional basepath to 3D tiles on the tileserver. Defaults to the collection ID. // +optional TileServerPath *string `yaml:"tileServerPath,omitempty" json:"tileServerPath,omitempty"` // URI template for individual 3D tiles. // +optional URITemplate3dTiles *string `yaml:"uriTemplate3dTiles,omitempty" json:"uriTemplate3dTiles,omitempty" validate:"required_without_all=URITemplateDTM"` // Optional URI template for subtrees, only required when "implicit tiling" extension is used. // +optional URITemplateImplicitTilingSubtree *string `yaml:"uriTemplateImplicitTilingSubtree,omitempty" json:"uriTemplateImplicitTilingSubtree,omitempty"` // URI template for digital terrain model (DTM) in Quantized Mesh format, REQUIRED when you want to serve a DTM. // +optional URITemplateDTM *string `yaml:"uriTemplateDTM,omitempty" json:"uriTemplateDTM,omitempty" validate:"required_without_all=URITemplate3dTiles"` // Optional URL to 3D viewer to visualize the given collection of 3D Tiles. // +optional URL3DViewer *URL `yaml:"3dViewerUrl,omitempty" json:"3dViewerUrl,omitempty"` }
+kubebuilder:object:generate=true
func (*CollectionEntry3dGeoVolumes) DeepCopy ¶
func (in *CollectionEntry3dGeoVolumes) DeepCopy() *CollectionEntry3dGeoVolumes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectionEntry3dGeoVolumes.
func (*CollectionEntry3dGeoVolumes) DeepCopyInto ¶
func (in *CollectionEntry3dGeoVolumes) DeepCopyInto(out *CollectionEntry3dGeoVolumes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CollectionEntry3dGeoVolumes) Has3DTiles ¶
func (gv *CollectionEntry3dGeoVolumes) Has3DTiles() bool
func (*CollectionEntry3dGeoVolumes) HasDTM ¶
func (gv *CollectionEntry3dGeoVolumes) HasDTM() bool
type CollectionEntryFeatures ¶
type CollectionEntryFeatures struct { // Optional way to explicitly map a collection ID to the underlying table in the datasource. // +optional TableName *string `yaml:"tableName,omitempty" json:"tableName,omitempty"` // Optional collection specific datasources. Mutually exclusive with top-level defined datasources. // +optional Datasources *Datasources `yaml:"datasources,omitempty" json:"datasources,omitempty"` // Filters available for this collection // +optional Filters FeatureFilters `yaml:"filters,omitempty" json:"filters,omitempty"` // Optional way to exclude feature properties and/or determine the ordering of properties in the response. // +optional FeatureProperties *FeatureProperties `yaml:",inline" json:",inline"` // Downloads available for this collection through map sheets. Note that 'map sheets' refer to a map // divided in rectangle areas that can be downloaded individually. // +optional MapSheetDownloads *MapSheetDownloads `yaml:"mapSheetDownloads,omitempty" json:"mapSheetDownloads,omitempty"` // Configuration specifically related to HTML/Web representation // +optional Web *WebConfig `yaml:"web,omitempty" json:"web,omitempty"` }
+kubebuilder:object:generate=true
func (*CollectionEntryFeatures) DeepCopy ¶
func (in *CollectionEntryFeatures) DeepCopy() *CollectionEntryFeatures
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectionEntryFeatures.
func (*CollectionEntryFeatures) DeepCopyInto ¶
func (in *CollectionEntryFeatures) DeepCopyInto(out *CollectionEntryFeatures)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CollectionEntryTiles ¶
type CollectionEntryTiles struct { // Tiles specific to this collection. Called 'geodata tiles' in OGC spec. GeoDataTiles Tiles `yaml:",inline" json:",inline" validate:"required"` }
+kubebuilder:object:generate=true
func (*CollectionEntryTiles) DeepCopy ¶
func (in *CollectionEntryTiles) DeepCopy() *CollectionEntryTiles
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectionEntryTiles.
func (*CollectionEntryTiles) DeepCopyInto ¶
func (in *CollectionEntryTiles) DeepCopyInto(out *CollectionEntryTiles)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CollectionLinks ¶ added in v0.51.0
type CollectionLinks struct { // Links to downloads of entire collection. These will be rendered as rel=enclosure links // +optional Downloads []DownloadLink `yaml:"downloads,omitempty" json:"downloads,omitempty" validate:"dive"` }
+kubebuilder:object:generate=true
func (*CollectionLinks) DeepCopy ¶ added in v0.51.0
func (in *CollectionLinks) DeepCopy() *CollectionLinks
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectionLinks.
func (*CollectionLinks) DeepCopyInto ¶ added in v0.51.0
func (in *CollectionLinks) DeepCopyInto(out *CollectionLinks)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Config ¶
type Config struct { // Version of the API. When releasing a new version which contains backwards-incompatible changes, a new major version must be released. Version string `yaml:"version" json:"version" validate:"required,semver"` // Human friendly title of the API. Don't include "OGC API" in the title, this is added automatically. Title string `yaml:"title" json:"title" validate:"required"` // Shorted title / abbreviation describing the API. ServiceIdentifier string `yaml:"serviceIdentifier" json:"serviceIdentifier" validate:"required"` // Human friendly description of the API and dataset. Abstract string `yaml:"abstract" json:"abstract" validate:"required"` // Licensing term that apply to this API and dataset License License `yaml:"license" json:"license" validate:"required"` // The base URL - that's the part until the OGC API landing page - under which this API is served BaseURL URL `yaml:"baseUrl" json:"baseUrl" validate:"required"` // Optional reference to a catalog/portal/registry that lists all datasets, not just this one // +optional DatasetCatalogURL URL `yaml:"datasetCatalogUrl,omitempty" json:"datasetCatalogUrl,omitempty"` // The languages/translations to offer, valid options are Dutch (nl) and English (en). Dutch is the default. // +optional AvailableLanguages []Language `yaml:"availableLanguages,omitempty" json:"availableLanguages,omitempty"` // Define which OGC API building blocks this API supports OgcAPI OgcAPI `yaml:"ogcApi" json:"ogcApi" validate:"required"` // Order in which collections (containing features, tiles, 3d tiles, etc.) should be returned. // When not specified collections are returned in alphabetic order. // +optional OgcAPICollectionOrder []string `yaml:"collectionOrder,omitempty" json:"collectionOrder,omitempty"` // Reference to a PNG image to use a thumbnail on the landing page. // The full path is constructed by appending Resources + Thumbnail. // +optional Thumbnail *string `yaml:"thumbnail,omitempty" json:"thumbnail,omitempty"` // Keywords to make this API beter discoverable // +optional Keywords []string `yaml:"keywords,omitempty" json:"keywords,omitempty"` // Moment in time when the dataset was last updated // +optional // +kubebuilder:validation:Type=string // +kubebuilder:validation:Format="date-time" LastUpdated *string `yaml:"lastUpdated,omitempty" json:"lastUpdated,omitempty" validate:"omitempty,datetime=2006-01-02T15:04:05Z"` // Who updated the dataset // +optional LastUpdatedBy string `yaml:"lastUpdatedBy,omitempty" json:"lastUpdatedBy,omitempty"` // Available support channels // +optional Support *Support `yaml:"support,omitempty" json:"support,omitempty"` // Metadata links // +optional MetadataLinks []MetadataLink `yaml:"metadataLinks,omitempty" json:"metadataLinks,omitempty"` // Key/value pairs to add extra information to the landing page // +optional DatasetDetails []DatasetDetail `yaml:"datasetDetails,omitempty" json:"datasetDetails,omitempty"` // Location where resources (e.g. thumbnails) specific to the given dataset are hosted // +optional Resources *Resources `yaml:"resources,omitempty" json:"resources,omitempty"` }
+kubebuilder:object:generate=true
func (*Config) AllCollections ¶
func (c *Config) AllCollections() GeoSpatialCollections
AllCollections get all collections - with for example features, tiles, 3d tiles - offered through this OGC API. Results are returned in alphabetic or literal order.
func (*Config) CookieMaxAge ¶
func (*Config) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
func (*Config) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Config) HasCollections ¶
HasCollections does this API offer collections with for example features, tiles, 3d tiles, etc
func (*Config) UnmarshalJSON ¶
func (*Config) UnmarshalYAML ¶
UnmarshalYAML hooks into unmarshalling to set defaults and validate config
type DatasetDetail ¶
type DatasetDetail struct { // Arbitrary name to add extra information to the landing page Name string `yaml:"name" json:"name"` // Arbitrary value associated with the given name Value string `yaml:"value" json:"value"` }
+kubebuilder:object:generate=true
func (*DatasetDetail) DeepCopy ¶
func (in *DatasetDetail) DeepCopy() *DatasetDetail
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatasetDetail.
func (*DatasetDetail) DeepCopyInto ¶
func (in *DatasetDetail) DeepCopyInto(out *DatasetDetail)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Datasource ¶
type Datasource struct { // GeoPackage to get the features from. // +optional GeoPackage *GeoPackage `yaml:"geopackage,omitempty" json:"geopackage,omitempty" validate:"required_without_all=PostGIS"` // PostGIS database to get the features from (not implemented yet). // +optional PostGIS *PostGIS `yaml:"postgis,omitempty" json:"postgis,omitempty" validate:"required_without_all=GeoPackage"` }
+kubebuilder:object:generate=true
func (*Datasource) DeepCopy ¶
func (in *Datasource) DeepCopy() *Datasource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Datasource.
func (*Datasource) DeepCopyInto ¶
func (in *Datasource) DeepCopyInto(out *Datasource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Datasources ¶
type Datasources struct { // Features should always be available in WGS84 (according to spec). // This specifies the datasource to be used for features in the WGS84 projection DefaultWGS84 Datasource `yaml:"defaultWGS84" json:"defaultWGS84" validate:"required"` // One or more additional datasources for features in other projections. GoKoala doesn't do // any on-the-fly reprojection so additional datasources need to be reprojected ahead of time. // +optional Additional []AdditionalDatasource `yaml:"additional" json:"additional" validate:"dive"` }
+kubebuilder:object:generate=true
func (*Datasources) DeepCopy ¶
func (in *Datasources) DeepCopy() *Datasources
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Datasources.
func (*Datasources) DeepCopyInto ¶
func (in *Datasources) DeepCopyInto(out *Datasources)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DownloadLink ¶ added in v0.51.0
type DownloadLink struct { // Name of the provided download Name string `yaml:"name" json:"name" validate:"required"` // Full URL to the file to be downloaded AssetURL *URL `yaml:"assetUrl" json:"assetUrl" validate:"required"` // Approximate size of the file to be downloaded // +optional Size string `yaml:"size,omitempty" json:"size,omitempty"` // Media type of the file to be downloaded MediaType MediaType `yaml:"mediaType" json:"mediaType" validate:"required"` }
+kubebuilder:object:generate=true
func (*DownloadLink) DeepCopy ¶ added in v0.51.0
func (in *DownloadLink) DeepCopy() *DownloadLink
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownloadLink.
func (*DownloadLink) DeepCopyInto ¶ added in v0.51.0
func (in *DownloadLink) DeepCopyInto(out *DownloadLink)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Duration ¶
Duration Custom time.Duration compatible with YAML and JSON (un)marshalling and kubebuilder. (Already supported in yaml/v3 but not encoding/json.)
+kubebuilder:validation:Type=string +kubebuilder:validation:Format=duration
func (*Duration) DeepCopyInto ¶
DeepCopyInto copy the receiver, write into out. in must be non-nil.
func (Duration) MarshalJSON ¶
MarshalJSON turn duration tag into JSON Value instead of pointer receiver because only that way it can be used for both.
func (Duration) MarshalYAML ¶
MarshalYAML turn duration tag into YAML Value instead of pointer receiver because only that way it can be used for both.
func (*Duration) UnmarshalJSON ¶
type Extent ¶
type Extent struct { // Projection (SRS/CRS) to be used. When none is provided WGS84 (http://www.opengis.net/def/crs/OGC/1.3/CRS84) is used. // +optional // +kubebuilder:validation:Pattern=`^EPSG:\d+$` Srs string `yaml:"srs,omitempty" json:"srs,omitempty" validate:"omitempty,startswith=EPSG:"` // Geospatial extent Bbox []string `yaml:"bbox" json:"bbox"` // Temporal extent // +optional // +kubebuilder:validation:MinItems=2 // +kubebuilder:validation:MaxItems=2 Interval []string `yaml:"interval,omitempty" json:"interval,omitempty" validate:"omitempty,len=2"` }
+kubebuilder:object:generate=true
func (*Extent) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Extent.
func (*Extent) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FeatureFilters ¶
type FeatureFilters struct { // OAF Part 1: filter on feature properties // https://docs.ogc.org/is/17-069r4/17-069r4.html#_parameters_for_filtering_on_feature_properties // // +optional Properties []PropertyFilter `yaml:"properties,omitempty" json:"properties,omitempty" validate:"dive"` }
+kubebuilder:object:generate=true
func (*FeatureFilters) DeepCopy ¶
func (in *FeatureFilters) DeepCopy() *FeatureFilters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureFilters.
func (*FeatureFilters) DeepCopyInto ¶
func (in *FeatureFilters) DeepCopyInto(out *FeatureFilters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FeatureProperties ¶ added in v0.56.0
type FeatureProperties struct { // Properties/fields of features in this collection. This setting controls two things: // // A) allows one to exclude certain properties, when propertiesExcludeUnknown=true // B) allows one sort the properties in the given order, when propertiesInSpecificOrder=true // // When not set all available properties are returned in API responses, in alphabetical order. // +optional Properties []string `yaml:"properties,omitempty" json:"properties,omitempty"` // When true properties not listed under 'properties' are excluded from API responses. When false // unlisted properties are also included in API responses. // +optional // +kubebuilder:default=false PropertiesExcludeUnknown bool `yaml:"propertiesExcludeUnknown,omitempty" json:"propertiesExcludeUnknown,omitempty" default:"false"` // When true properties are returned according to the ordering specified under 'properties'. When false // properties are returned in alphabetical order. // +optional // +kubebuilder:default=false PropertiesInSpecificOrder bool `yaml:"propertiesInSpecificOrder,omitempty" json:"propertiesInSpecificOrder,omitempty" default:"false"` }
+kubebuilder:object:generate=true
func (*FeatureProperties) DeepCopy ¶ added in v0.56.0
func (in *FeatureProperties) DeepCopy() *FeatureProperties
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureProperties.
func (*FeatureProperties) DeepCopyInto ¶ added in v0.56.0
func (in *FeatureProperties) DeepCopyInto(out *FeatureProperties)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FeaturesViewer ¶ added in v0.53.4
type FeaturesViewer struct { // Maximum initial zoom level of the viewer when rendering features, specified by scale denominator. // Defaults to 1000 (= scale 1:1000). // +optional MinScale int `yaml:"minScale,omitempty" json:"minScale,omitempty" validate:"gt=0" default:"1000"` // Minimal initial zoom level of the viewer when rendering features, specified by scale denominator // (not set by default). // +optional MaxScale *int `yaml:"maxScale,omitempty" json:"maxScale,omitempty" validate:"omitempty,gt=0,gtefield=MinScale"` }
+kubebuilder:object:generate=true
func (*FeaturesViewer) DeepCopy ¶ added in v0.53.4
func (in *FeaturesViewer) DeepCopy() *FeaturesViewer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeaturesViewer.
func (*FeaturesViewer) DeepCopyInto ¶ added in v0.53.4
func (in *FeaturesViewer) DeepCopyInto(out *FeaturesViewer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GeoPackage ¶
type GeoPackage struct { // Settings to read a GeoPackage from local disk // +optional Local *GeoPackageLocal `yaml:"local,omitempty" json:"local,omitempty" validate:"required_without_all=Cloud"` // Settings to read a GeoPackage as a Cloud-Backed SQLite database // +optional Cloud *GeoPackageCloud `yaml:"cloud,omitempty" json:"cloud,omitempty" validate:"required_without_all=Local"` }
+kubebuilder:object:generate=true
func (*GeoPackage) DeepCopy ¶
func (in *GeoPackage) DeepCopy() *GeoPackage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoPackage.
func (*GeoPackage) DeepCopyInto ¶
func (in *GeoPackage) DeepCopyInto(out *GeoPackage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GeoPackageCloud ¶
type GeoPackageCloud struct { // GeoPackageCommon shared config between local and cloud GeoPackage GeoPackageCommon `yaml:",inline" json:",inline"` // Reference to the cloud storage (either azure or google at the moment). // For example 'azure?emulator=127.0.0.1:10000&sas=0' or 'google' Connection string `yaml:"connection" json:"connection" validate:"required"` // Username of the storage account, like devstoreaccount1 when using Azurite User string `yaml:"user" json:"user" validate:"required"` // Some kind of credential like a password or key to authenticate with the storage backend, e.g: // 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' when using Azurite Auth string `yaml:"auth" json:"auth" validate:"required"` // Container/bucket on the storage account Container string `yaml:"container" json:"container" validate:"required"` // Filename of the GeoPackage File string `yaml:"file" json:"file" validate:"required"` // Local cache of fetched blocks from cloud storage // +optional Cache GeoPackageCloudCache `yaml:"cache,omitempty" json:"cache,omitempty"` // ADVANCED SETTING. Only for debug purposes! When true all HTTP requests executed by sqlite to cloud object storage are logged to stdout // +kubebuilder:default=false // +optional LogHTTPRequests bool `yaml:"logHttpRequests,omitempty" json:"logHttpRequests,omitempty" default:"false"` }
+kubebuilder:object:generate=true
func (*GeoPackageCloud) CacheDir ¶
func (gc *GeoPackageCloud) CacheDir() (string, error)
func (*GeoPackageCloud) DeepCopy ¶
func (in *GeoPackageCloud) DeepCopy() *GeoPackageCloud
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoPackageCloud.
func (*GeoPackageCloud) DeepCopyInto ¶
func (in *GeoPackageCloud) DeepCopyInto(out *GeoPackageCloud)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GeoPackageCloudCache ¶
type GeoPackageCloudCache struct { // Optional path to directory for caching cloud-backed GeoPackage blocks, when omitted a temp dir will be used. // +optional Path *string `yaml:"path,omitempty" json:"path,omitempty" validate:"omitempty,dirpath|filepath"` // Max size of the local cache. Accepts human-readable size such as 100Mb, 4Gb, 1Tb, etc. When omitted 1Gb is used. // +kubebuilder:default="1Gb" // +optional MaxSize string `yaml:"maxSize,omitempty" json:"maxSize,omitempty" default:"1Gb"` // When true a warm-up query is executed on startup which aims to fill the local cache. Does increase startup time. // +kubebuilder:default=false // +optional WarmUp bool `yaml:"warmUp,omitempty" json:"warmUp,omitempty" default:"false"` }
+kubebuilder:object:generate=true
func (*GeoPackageCloudCache) DeepCopy ¶
func (in *GeoPackageCloudCache) DeepCopy() *GeoPackageCloudCache
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoPackageCloudCache.
func (*GeoPackageCloudCache) DeepCopyInto ¶
func (in *GeoPackageCloudCache) DeepCopyInto(out *GeoPackageCloudCache)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GeoPackageCloudCache) MaxSizeAsBytes ¶
func (cache *GeoPackageCloudCache) MaxSizeAsBytes() (int64, error)
type GeoPackageCommon ¶
type GeoPackageCommon struct { // Feature id column name // +kubebuilder:default="fid" // +optional Fid string `yaml:"fid,omitempty" json:"fid,omitempty" validate:"required" default:"fid"` // External feature id column name. When specified this ID column will be exposed to clients instead of the regular FID column. // It allows one to offer a more stable ID to clients instead of an auto-generated FID. External FID column should contain UUIDs. // +optional ExternalFid string `yaml:"externalFid" json:"externalFid"` // Optional timeout after which queries are canceled // +kubebuilder:default="15s" // +optional QueryTimeout Duration `yaml:"queryTimeout,omitempty" json:"queryTimeout,omitempty" validate:"required" default:"15s"` // ADVANCED SETTING. When the number of features in a bbox stay within the given value use an RTree index, otherwise use a BTree index. // +kubebuilder:default=8000 // +optional MaxBBoxSizeToUseWithRTree int `yaml:"maxBBoxSizeToUseWithRTree,omitempty" json:"maxBBoxSizeToUseWithRTree,omitempty" validate:"required" default:"8000"` // ADVANCED SETTING. Sets the SQLite "cache_size" pragma which determines how many pages are cached in-memory. // See https://sqlite.org/pragma.html#pragma_cache_size for details. // Default in SQLite is 2000 pages, which equates to 2000KiB (2048000 bytes). Which is denoted as -2000. // +kubebuilder:default=-2000 // +optional InMemoryCacheSize int `yaml:"inMemoryCacheSize,omitempty" json:"inMemoryCacheSize,omitempty" validate:"required" default:"-2000"` }
+kubebuilder:object:generate=true
func (*GeoPackageCommon) DeepCopy ¶
func (in *GeoPackageCommon) DeepCopy() *GeoPackageCommon
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoPackageCommon.
func (*GeoPackageCommon) DeepCopyInto ¶
func (in *GeoPackageCommon) DeepCopyInto(out *GeoPackageCommon)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GeoPackageDownload ¶ added in v0.50.2
type GeoPackageDownload struct { // Location of GeoPackage on remote HTTP(S) URL. GeoPackage will be downloaded to local disk // during startup and stored at the location specified in "file". From URL `yaml:"from" json:"from" validate:"required"` // ADVANCED SETTING. Determines how many workers (goroutines) in parallel will download the specified GeoPackage. // Setting this to 1 will disable concurrent downloads. // +kubebuilder:default=4 // +kubebuilder:validation:Minimum=1 // +optional Parallelism int `yaml:"parallelism,omitempty" json:"parallelism,omitempty" validate:"required,gte=1" default:"4"` // ADVANCED SETTING. When true TLS certs are NOT validated, false otherwise. Only use true for your own self-signed certificates! // +kubebuilder:default=false // +optional TLSSkipVerify bool `yaml:"tlsSkipVerify,omitempty" json:"tlsSkipVerify,omitempty" default:"false"` // ADVANCED SETTING. HTTP request timeout when downloading (part of) GeoPackage. // +kubebuilder:default="2m" // +optional Timeout Duration `yaml:"timeout,omitempty" json:"timeout,omitempty" validate:"required" default:"2m"` // ADVANCED SETTING. Minimum delay to use when retrying HTTP request to download (part of) GeoPackage. // +kubebuilder:default="1s" // +optional RetryDelay Duration `yaml:"retryDelay,omitempty" json:"retryDelay,omitempty" validate:"required" default:"1s"` // ADVANCED SETTING. Maximum overall delay of the exponential backoff while retrying HTTP requests to download (part of) GeoPackage. // +kubebuilder:default="30s" // +optional RetryMaxDelay Duration `yaml:"retryMaxDelay,omitempty" json:"retryMaxDelay,omitempty" validate:"required" default:"30s"` // ADVANCED SETTING. Maximum number of retries when retrying HTTP requests to download (part of) GeoPackage. // +kubebuilder:default=5 // +kubebuilder:validation:Minimum=1 // +optional MaxRetries int `yaml:"maxRetries,omitempty" json:"maxRetries,omitempty" validate:"required,gte=1" default:"5"` }
+kubebuilder:object:generate=true
func (*GeoPackageDownload) DeepCopy ¶ added in v0.50.2
func (in *GeoPackageDownload) DeepCopy() *GeoPackageDownload
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoPackageDownload.
func (*GeoPackageDownload) DeepCopyInto ¶ added in v0.50.2
func (in *GeoPackageDownload) DeepCopyInto(out *GeoPackageDownload)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GeoPackageLocal ¶
type GeoPackageLocal struct { // GeoPackageCommon shared config between local and cloud GeoPackage GeoPackageCommon `yaml:",inline" json:",inline"` // Location of GeoPackage on disk. // You can place the GeoPackage here manually (out-of-band) or you can specify Download // and let the application download the GeoPackage for you and store it at this location. File string `yaml:"file" json:"file" validate:"required,omitempty,filepath"` // Optional initialization task to download a GeoPackage during startup. GeoPackage will be // downloaded to local disk and stored at the location specified in File. // +optional Download *GeoPackageDownload `yaml:"download,omitempty" json:"download,omitempty"` }
+kubebuilder:object:generate=true
func (*GeoPackageLocal) DeepCopy ¶
func (in *GeoPackageLocal) DeepCopy() *GeoPackageLocal
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoPackageLocal.
func (*GeoPackageLocal) DeepCopyInto ¶
func (in *GeoPackageLocal) DeepCopyInto(out *GeoPackageLocal)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GeoSpatialCollection ¶
type GeoSpatialCollection struct { // Unique ID of the collection ID string `yaml:"id" validate:"required" json:"id"` // Metadata describing the collection contents // +optional Metadata *GeoSpatialCollectionMetadata `yaml:"metadata,omitempty" json:"metadata,omitempty"` // Links pertaining to this collection (e.g., downloads, documentation) // +optional Links *CollectionLinks `yaml:"links,omitempty" json:"links,omitempty"` // 3D GeoVolumes specific to this collection // +optional GeoVolumes *CollectionEntry3dGeoVolumes `yaml:",inline" json:",inline"` // Tiles specific to this collection // +optional Tiles *CollectionEntryTiles `yaml:",inline" json:",inline"` // Features specific to this collection // +optional Features *CollectionEntryFeatures `yaml:",inline" json:",inline"` }
+kubebuilder:object:generate=true
func (*GeoSpatialCollection) DeepCopy ¶
func (in *GeoSpatialCollection) DeepCopy() *GeoSpatialCollection
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoSpatialCollection.
func (*GeoSpatialCollection) DeepCopyInto ¶
func (in *GeoSpatialCollection) DeepCopyInto(out *GeoSpatialCollection)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GeoSpatialCollection) HasDateTime ¶ added in v0.57.3
func (c *GeoSpatialCollection) HasDateTime() bool
HasDateTime true when collection has temporal support, false otherwise
func (GeoSpatialCollection) MarshalJSON ¶ added in v0.43.7
func (c GeoSpatialCollection) MarshalJSON() ([]byte, error)
MarshalJSON custom because inlining only works on embedded structs. Value instead of pointer receiver because only that way it can be used for both.
func (*GeoSpatialCollection) UnmarshalJSON ¶ added in v0.43.7
func (c *GeoSpatialCollection) UnmarshalJSON(b []byte) error
UnmarshalJSON parses a string to GeoSpatialCollection
type GeoSpatialCollectionJSON ¶ added in v0.43.7
type GeoSpatialCollectionJSON struct { // Keep this in sync with the GeoSpatialCollection struct! ID string `json:"id"` Metadata *GeoSpatialCollectionMetadata `json:"metadata,omitempty"` Links *CollectionLinks `json:"links,omitempty"` *CollectionEntry3dGeoVolumes `json:",inline"` *CollectionEntryTiles `json:",inline"` *CollectionEntryFeatures `json:",inline"` }
type GeoSpatialCollectionMetadata ¶
type GeoSpatialCollectionMetadata struct { // Human friendly title of this collection. When no title is specified the collection ID is used. // +optional Title *string `yaml:"title,omitempty" json:"title,omitempty"` // Describes the content of this collection Description *string `yaml:"description" json:"description" validate:"required"` // Reference to a PNG image to use a thumbnail on the collections. // The full path is constructed by appending Resources + Thumbnail. // +optional Thumbnail *string `yaml:"thumbnail,omitempty" json:"thumbnail,omitempty"` // Keywords to make this collection beter discoverable // +optional Keywords []string `yaml:"keywords,omitempty" json:"keywords,omitempty"` // Moment in time when the collection was last updated // // +optional // +kubebuilder:validation:Type=string // +kubebuilder:validation:Format="date-time" LastUpdated *string `yaml:"lastUpdated,omitempty" json:"lastUpdated,omitempty" validate:"omitempty,datetime=2006-01-02T15:04:05Z"` // Who updated this collection // +optional LastUpdatedBy string `yaml:"lastUpdatedBy,omitempty" json:"lastUpdatedBy,omitempty"` // Fields in the datasource to be used in temporal queries // +optional TemporalProperties *TemporalProperties `yaml:"temporalProperties,omitempty" json:"temporalProperties,omitempty" validate:"omitempty,required_with=Extent.Interval"` // Extent of the collection, both geospatial and/or temporal // +optional Extent *Extent `yaml:"extent,omitempty" json:"extent,omitempty"` // The CRS identifier which the features are originally stored, meaning no CRS transformations are applied when features are retrieved in this CRS. // WGS84 is the default storage CRS. // // +kubebuilder:default="http://www.opengis.net/def/crs/OGC/1.3/CRS84" // +kubebuilder:validation:Pattern=`^http:\/\/www\.opengis\.net\/def\/crs\/.*$` // +optional StorageCrs *string `` /* 163-byte string literal not displayed */ }
+kubebuilder:object:generate=true
func (*GeoSpatialCollectionMetadata) DeepCopy ¶
func (in *GeoSpatialCollectionMetadata) DeepCopy() *GeoSpatialCollectionMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeoSpatialCollectionMetadata.
func (*GeoSpatialCollectionMetadata) DeepCopyInto ¶
func (in *GeoSpatialCollectionMetadata) DeepCopyInto(out *GeoSpatialCollectionMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GeoSpatialCollections ¶
type GeoSpatialCollections []GeoSpatialCollection
func (GeoSpatialCollections) ContainsID ¶
func (g GeoSpatialCollections) ContainsID(id string) bool
ContainsID check if given collection - by ID - exists. Don't use in hot path (creates a map on every invocation).
func (GeoSpatialCollections) Unique ¶
func (g GeoSpatialCollections) Unique() []GeoSpatialCollection
Unique lists all unique GeoSpatialCollections (no duplicate IDs). Don't use in hot path (creates a map on every invocation).
type HealthCheck ¶ added in v0.59.0
type HealthCheck struct { // Projection (SRS/CRS) used for tile healthcheck // +kubebuilder:default="EPSG:28992" // +kubebuilder:validation:Pattern=`^EPSG:\d+$` // +optional Srs string `yaml:"srs" json:"srs" default:"EPSG:28992" validate:"required,startswith=EPSG:"` // Path to specific tile used for healthcheck // +optional TilePath *string `yaml:"tilePath,omitempty" json:"tilePath,omitempty" validate:"required_unless=Srs EPSG:28992"` }
+kubebuilder:object:generate=true
func (*HealthCheck) DeepCopy ¶ added in v0.59.0
func (in *HealthCheck) DeepCopy() *HealthCheck
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheck.
func (*HealthCheck) DeepCopyInto ¶ added in v0.59.0
func (in *HealthCheck) DeepCopyInto(out *HealthCheck)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Language ¶
Language represents a BCP 47 language tag. +kubebuilder:validation:Type=string
func (*Language) DeepCopyInto ¶
DeepCopyInto copy the receiver, write into out. in must be non-nil.
func (Language) MarshalJSON ¶
MarshalJSON turn language tag into JSON Value instead of pointer receiver because only that way it can be used for both.
func (*Language) UnmarshalJSON ¶
UnmarshalJSON turn JSON into Language
type License ¶
type License struct { // Name of the license, e.g. MIT, CC0, etc Name string `yaml:"name" json:"name" validate:"required"` // URL to license text on the web URL URL `yaml:"url" json:"url" validate:"required"` }
+kubebuilder:object:generate=true
func (*License) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new License.
func (*License) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Limit ¶
type Limit struct { // Number of features to return by default. // +kubebuilder:default=10 // +kubebuilder:validation:Minimum=2 // +optional Default int `yaml:"default,omitempty" json:"default,omitempty" validate:"gt=1" default:"10"` // Max number of features to return. Should be larger than 100 since the HTML interface always offers a 100 limit option. // +kubebuilder:default=1000 // +kubebuilder:validation:Minimum=100 // +optional Max int `yaml:"max,omitempty" json:"max,omitempty" validate:"gte=100" default:"1000"` }
+kubebuilder:object:generate=true
func (*Limit) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Limit.
func (*Limit) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MapSheetDownloadProperties ¶ added in v0.51.0
type MapSheetDownloadProperties struct { // Property/column containing file download URL AssetURL string `yaml:"assetUrl" json:"assetUrl" validate:"required"` // Property/column containing file size Size string `yaml:"size" json:"size" validate:"required"` // The actual media type (not a property/column) of the download, like application/zip. MediaType MediaType `yaml:"mediaType" json:"mediaType" validate:"required"` // Property/column containing the map sheet identifier MapSheetID string `yaml:"mapSheetId" json:"mapSheetId" validate:"required"` }
+kubebuilder:object:generate=true
func (*MapSheetDownloadProperties) DeepCopy ¶ added in v0.51.0
func (in *MapSheetDownloadProperties) DeepCopy() *MapSheetDownloadProperties
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MapSheetDownloadProperties.
func (*MapSheetDownloadProperties) DeepCopyInto ¶ added in v0.51.0
func (in *MapSheetDownloadProperties) DeepCopyInto(out *MapSheetDownloadProperties)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MapSheetDownloads ¶ added in v0.51.0
type MapSheetDownloads struct { // Properties that provide the download details per map sheet. Note that 'map sheets' refer to a map // divided in rectangle areas that can be downloaded individually. Properties MapSheetDownloadProperties `yaml:"properties" json:"properties" validate:"required"` }
+kubebuilder:object:generate=true
func (*MapSheetDownloads) DeepCopy ¶ added in v0.51.0
func (in *MapSheetDownloads) DeepCopy() *MapSheetDownloads
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MapSheetDownloads.
func (*MapSheetDownloads) DeepCopyInto ¶ added in v0.51.0
func (in *MapSheetDownloads) DeepCopyInto(out *MapSheetDownloads)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MediaType ¶ added in v0.51.0
type MediaType struct {
contenttype.MediaType
}
MediaType represents a IANA media type as described in RFC 6838. Media types were formerly known as MIME types. +kubebuilder:validation:Type=string
func (*MediaType) DeepCopyInto ¶ added in v0.51.0
DeepCopyInto copy the receiver, write into out. in must be non-nil.
func (MediaType) MarshalJSON ¶ added in v0.51.0
MarshalJSON turn MediaType into JSON Value instead of pointer receiver because only that way it can be used for both.
func (MediaType) MarshalYAML ¶ added in v0.51.0
MarshalYAML turns MediaType into YAML. Value instead of pointer receiver because only that way it can be used for both.
func (*MediaType) UnmarshalJSON ¶ added in v0.51.0
UnmarshalJSON turn JSON into MediaType
type MetadataLink ¶ added in v0.59.1
type MetadataLink struct { // Name of the metadata collection/site/organization Name string `yaml:"name" json:"name" validate:"required"` // Which category of the API this metadata concerns. E.g. dataset (in general), tiles or features // +kubebuilder:default="dataset" Category string `yaml:"category" json:"category" validate:"required" default:"dataset"` // URL to external metadata detail page // +kubebuilder:validation:Type=string URL URL `yaml:"url" json:"url" validate:"required"` }
+kubebuilder:object:generate=true
func (*MetadataLink) DeepCopy ¶ added in v0.59.1
func (in *MetadataLink) DeepCopy() *MetadataLink
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataLink.
func (*MetadataLink) DeepCopyInto ¶ added in v0.59.1
func (in *MetadataLink) DeepCopyInto(out *MetadataLink)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OgcAPI ¶
type OgcAPI struct { // Enable when this API should offer OGC API 3D GeoVolumes. This includes OGC 3D Tiles. // +optional GeoVolumes *OgcAPI3dGeoVolumes `yaml:"3dgeovolumes,omitempty" json:"3dgeovolumes,omitempty"` // Enable when this API should offer OGC API Tiles. This also requires OGC API Styles. // +optional Tiles *OgcAPITiles `yaml:"tiles,omitempty" json:"tiles,omitempty" validate:"required_with=Styles"` // Enable when this API should offer OGC API Styles. // +optional Styles *OgcAPIStyles `yaml:"styles,omitempty" json:"styles,omitempty"` // Enable when this API should offer OGC API Features. // +optional Features *OgcAPIFeatures `yaml:"features,omitempty" json:"features,omitempty"` // Enable when this API should offer OGC API Processes. // +optional Processes *OgcAPIProcesses `yaml:"processes,omitempty" json:"processes,omitempty"` }
+kubebuilder:object:generate=true
func (*OgcAPI) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OgcAPI.
func (*OgcAPI) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OgcAPI3dGeoVolumes ¶
type OgcAPI3dGeoVolumes struct { // Reference to the server (or object storage) hosting the 3D Tiles TileServer URL `yaml:"tileServer" json:"tileServer" validate:"required"` // Collections to be served as 3D GeoVolumes Collections GeoSpatialCollections `yaml:"collections" json:"collections"` // Whether JSON responses will be validated against the OpenAPI spec // since it has significant performance impact when dealing with large JSON payloads. // // +kubebuilder:default=true // +optional ValidateResponses *bool `yaml:"validateResponses,omitempty" json:"validateResponses,omitempty" default:"true"` // ptr due to https://github.com/creasty/defaults/issues/49 }
+kubebuilder:object:generate=true
func (*OgcAPI3dGeoVolumes) DeepCopy ¶
func (in *OgcAPI3dGeoVolumes) DeepCopy() *OgcAPI3dGeoVolumes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OgcAPI3dGeoVolumes.
func (*OgcAPI3dGeoVolumes) DeepCopyInto ¶
func (in *OgcAPI3dGeoVolumes) DeepCopyInto(out *OgcAPI3dGeoVolumes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OgcAPIFeatures ¶
type OgcAPIFeatures struct { // Basemap to use in embedded viewer on the HTML pages. // +kubebuilder:default="OSM" // +kubebuilder:validation:Enum=OSM;BRT // +optional Basemap string `yaml:"basemap,omitempty" json:"basemap,omitempty" default:"OSM" validate:"oneof=OSM BRT"` // Collections to be served as features through this API Collections GeoSpatialCollections `yaml:"collections" json:"collections" validate:"required,dive"` // Limits the amount of features to retrieve with a single call // +optional Limit Limit `yaml:"limit,omitempty" json:"limit,omitempty"` // One or more datasources to get the features from (geopackages, postgis, etc). // Optional since you can also define datasources at the collection level // +optional Datasources *Datasources `yaml:"datasources,omitempty" json:"datasources,omitempty"` // Whether GeoJSON/JSON-FG responses will be validated against the OpenAPI spec // since it has significant performance impact when dealing with large JSON payloads. // // +kubebuilder:default=true // +optional ValidateResponses *bool `yaml:"validateResponses,omitempty" json:"validateResponses,omitempty" default:"true"` // ptr due to https://github.com/creasty/defaults/issues/49 }
+kubebuilder:object:generate=true
func (*OgcAPIFeatures) DeepCopy ¶
func (in *OgcAPIFeatures) DeepCopy() *OgcAPIFeatures
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OgcAPIFeatures.
func (*OgcAPIFeatures) DeepCopyInto ¶
func (in *OgcAPIFeatures) DeepCopyInto(out *OgcAPIFeatures)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OgcAPIFeatures) ProjectionsForCollection ¶
func (oaf *OgcAPIFeatures) ProjectionsForCollection(collectionID string) []string
func (*OgcAPIFeatures) ProjectionsForCollections ¶
func (oaf *OgcAPIFeatures) ProjectionsForCollections() []string
type OgcAPIProcesses ¶
type OgcAPIProcesses struct { // Enable to advertise dismiss operations on the conformance page SupportsDismiss bool `yaml:"supportsDismiss" json:"supportsDismiss"` // Enable to advertise callback operations on the conformance page SupportsCallback bool `yaml:"supportsCallback" json:"supportsCallback"` // Reference to an external service implementing the process API. GoKoala acts only as a proxy for OGC API Processes. ProcessesServer URL `yaml:"processesServer" json:"processesServer" validate:"required"` }
+kubebuilder:object:generate=true
func (*OgcAPIProcesses) DeepCopy ¶
func (in *OgcAPIProcesses) DeepCopy() *OgcAPIProcesses
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OgcAPIProcesses.
func (*OgcAPIProcesses) DeepCopyInto ¶
func (in *OgcAPIProcesses) DeepCopyInto(out *OgcAPIProcesses)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OgcAPIStyles ¶
type OgcAPIStyles struct { // ID of the style to use a default Default string `yaml:"default" json:"default" validate:"required"` // Location on disk where the styles are hosted StylesDir string `yaml:"stylesDir" json:"stylesDir" validate:"required,dirpath|filepath"` // Styles exposed though this API SupportedStyles []Style `yaml:"supportedStyles" json:"supportedStyles" validate:"required,dive"` }
+kubebuilder:object:generate=true
func (*OgcAPIStyles) DeepCopy ¶
func (in *OgcAPIStyles) DeepCopy() *OgcAPIStyles
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OgcAPIStyles.
func (*OgcAPIStyles) DeepCopyInto ¶
func (in *OgcAPIStyles) DeepCopyInto(out *OgcAPIStyles)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OgcAPITiles ¶
type OgcAPITiles struct { // Tiles for the entire dataset, these are hosted at the root of the API (/tiles endpoint). // +optional DatasetTiles *Tiles `yaml:",inline" json:",inline"` // Tiles per collection. When no collections are specified tiles should be hosted at the root of the API (/tiles endpoint). // +optional Collections GeoSpatialCollections `yaml:"collections,omitempty" json:"collections,omitempty"` }
+kubebuilder:object:generate=true
func (*OgcAPITiles) DeepCopy ¶
func (in *OgcAPITiles) DeepCopy() *OgcAPITiles
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OgcAPITiles.
func (*OgcAPITiles) DeepCopyInto ¶
func (in *OgcAPITiles) DeepCopyInto(out *OgcAPITiles)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OgcAPITiles) GetProjections ¶ added in v0.54.0
func (o *OgcAPITiles) GetProjections() []SupportedSrs
GetProjections projections supported for this dataset
func (*OgcAPITiles) HasProjection ¶ added in v0.54.0
func (o *OgcAPITiles) HasProjection(srs string) bool
HasProjection true when the given projection is supported for this dataset
func (*OgcAPITiles) HasType ¶ added in v0.54.0
func (o *OgcAPITiles) HasType(t TilesType) bool
type PostGIS ¶
type PostGIS struct { }
+kubebuilder:object:generate=true
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 PropertyFilter ¶
type PropertyFilter struct { // Needs to match with a column name in the feature table (in the configured datasource) Name string `yaml:"name" json:"name" validate:"required"` // Explains this property filter // +kubebuilder:default="Filter features by this property" // +optional Description string `yaml:"description,omitempty" json:"description,omitempty" default:"Filter features by this property"` // When true the property/column in the feature table needs to be indexed. Initialization will fail // when no index is present, when false the index check is skipped. For large tables an index is recommended! // // +kubebuilder:default=true // +optional IndexRequired *bool `yaml:"indexRequired,omitempty" json:"indexRequired,omitempty" default:"true"` // ptr due to https://github.com/creasty/defaults/issues/49 // Static list of allowed values to be used as input for this property filter. Will be enforced by OpenAPI spec. // +optional AllowedValues []string `yaml:"allowedValues,omitempty" json:"allowedValues,omitempty"` // Derive list of allowed values for this property filter from the corresponding column in the datastore. // Use with caution since it can increase startup time when used on large tables. Make sure an index in present. // // +kubebuilder:default=false // +optional DeriveAllowedValuesFromDatasource *bool `yaml:"deriveAllowedValuesFromDatasource,omitempty" json:"deriveAllowedValuesFromDatasource,omitempty" default:"false"` }
+kubebuilder:object:generate=true
func (*PropertyFilter) DeepCopy ¶
func (in *PropertyFilter) DeepCopy() *PropertyFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropertyFilter.
func (*PropertyFilter) DeepCopyInto ¶
func (in *PropertyFilter) DeepCopyInto(out *PropertyFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Resources ¶
type Resources struct { // Location where resources (e.g. thumbnails) specific to the given dataset are hosted. This is optional if Directory is set // +optional URL *URL `yaml:"url,omitempty" json:"url,omitempty" validate:"required_without=Directory,omitempty"` // Location where resources (e.g. thumbnails) specific to the given dataset are hosted. This is optional if URL is set // +optional Directory *string `yaml:"directory,omitempty" json:"directory,omitempty" validate:"required_without=URL,omitempty,dirpath|filepath"` }
+kubebuilder:object:generate=true
func (*Resources) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resources.
func (*Resources) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Style ¶
type Style struct { // Unique ID of this style ID string `yaml:"id" json:"id" validate:"required"` // Human-friendly name of this style Title string `yaml:"title" json:"title" validate:"required"` // Explains what is visualized by this style // +optional Description *string `yaml:"description,omitempty" json:"description,omitempty"` // Keywords to make this style better discoverable // +optional Keywords []string `yaml:"keywords,omitempty" json:"keywords,omitempty"` // Moment in time when the style was last updated // +optional // +kubebuilder:validation:Type=string // +kubebuilder:validation:Format="date-time" LastUpdated *string `yaml:"lastUpdated,omitempty" json:"lastUpdated,omitempty" validate:"omitempty,datetime=2006-01-02T15:04:05Z"` // Optional version of this style // +optional Version *string `yaml:"version,omitempty" json:"version,omitempty"` // Reference to a PNG image to use a thumbnail on the style metadata page. // The full path is constructed by appending Resources + Thumbnail. // +optional Thumbnail *string `yaml:"thumbnail,omitempty" json:"thumbnail,omitempty"` // This style is offered in the following formats Formats []StyleFormat `yaml:"formats" json:"formats" validate:"required,dive"` }
+kubebuilder:object:generate=true
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 StyleFormat ¶
type StyleFormat struct { // Name of the format // +kubebuilder:default="mapbox" // +optional Format string `yaml:"format,omitempty" json:"format,omitempty" default:"mapbox" validate:"required,oneof=mapbox sld10"` }
+kubebuilder:object:generate=true
func (*StyleFormat) DeepCopy ¶
func (in *StyleFormat) DeepCopy() *StyleFormat
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StyleFormat.
func (*StyleFormat) DeepCopyInto ¶
func (in *StyleFormat) DeepCopyInto(out *StyleFormat)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Support ¶
type Support struct { // Name of the support organization Name string `yaml:"name" json:"name" validate:"required"` // URL to external support webpage // +kubebuilder:validation:Type=string URL URL `yaml:"url" json:"url" validate:"required"` // Email for support questions // +optional Email string `yaml:"email,omitempty" json:"email,omitempty" validate:"omitempty,email"` }
+kubebuilder:object:generate=true
func (*Support) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Support.
func (*Support) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SupportedSrs ¶
type SupportedSrs struct { // Projection (SRS/CRS) used // +kubebuilder:validation:Pattern=`^EPSG:\d+$` Srs string `yaml:"srs" json:"srs" validate:"required,startswith=EPSG:"` // Available zoom levels ZoomLevelRange ZoomLevelRange `yaml:"zoomLevelRange" json:"zoomLevelRange" validate:"required"` }
+kubebuilder:object:generate=true
func (*SupportedSrs) DeepCopy ¶
func (in *SupportedSrs) DeepCopy() *SupportedSrs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupportedSrs.
func (*SupportedSrs) DeepCopyInto ¶
func (in *SupportedSrs) DeepCopyInto(out *SupportedSrs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemporalProperties ¶
type TemporalProperties struct { // Name of field in datasource to be used in temporal queries as the start date StartDate string `yaml:"startDate" json:"startDate" validate:"required"` // Name of field in datasource to be used in temporal queries as the end date EndDate string `yaml:"endDate" json:"endDate" validate:"required"` }
+kubebuilder:object:generate=true
func (*TemporalProperties) DeepCopy ¶
func (in *TemporalProperties) DeepCopy() *TemporalProperties
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalProperties.
func (*TemporalProperties) DeepCopyInto ¶
func (in *TemporalProperties) DeepCopyInto(out *TemporalProperties)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TileCoordinates ¶ added in v0.59.0
type TileCoordinates struct {
// contains filtered or unexported fields
}
type Tiles ¶ added in v0.54.0
type Tiles struct { // Reference to the server (or object storage) hosting the tiles. // Note: Only marked as optional in CRD to support top-level OR collection-level tiles // +optional TileServer URL `yaml:"tileServer" json:"tileServer" validate:"required"` // Could be 'vector' and/or 'raster' to indicate the types of tiles offered // Note: Only marked as optional in CRD to support top-level OR collection-level tiles // +optional Types []TilesType `yaml:"types" json:"types" validate:"required"` // Specifies in what projections (SRS/CRS) the tiles are offered // Note: Only marked as optional in CRD to support top-level OR collection-level tiles // +optional SupportedSrs []SupportedSrs `yaml:"supportedSrs" json:"supportedSrs" validate:"required,dive"` // Optional template to the vector tiles on the tileserver. Defaults to {tms}/{z}/{x}/{y}.pbf. // +optional URITemplateTiles *string `yaml:"uriTemplateTiles,omitempty" json:"uriTemplateTiles,omitempty"` // Optional health check configuration // +optional HealthCheck HealthCheck `yaml:"healthCheck" json:"healthCheck"` }
+kubebuilder:object:generate=true
func (*Tiles) DeepCopy ¶ added in v0.54.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tiles.
func (*Tiles) DeepCopyInto ¶ added in v0.54.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type URL ¶
type URL struct { // This is a pointer so the wrapper can directly be used in templates, e.g.: {{ .Config.BaseURL }} // Otherwise you would need .String() or template.URL(). (Might be a bug.) *url.URL }
URL Custom net.URL compatible with YAML and JSON (un)marshalling and kubebuilder. In addition, it also removes trailing slash if present, so we can easily append a longer path without having to worry about double slashes.
Allow only http/https URLs or environment variables like ${FOOBAR} +kubebuilder:validation:Pattern=`^(https?://.+)|(\$\{.+\}.*)` +kubebuilder:validation:Type=string
func (*URL) DeepCopyInto ¶
DeepCopyInto copies the receiver, writes into out.
func (URL) MarshalJSON ¶
MarshalJSON turns URL into JSON. Value instead of pointer receiver because only that way it can be used for both.
func (URL) MarshalYAML ¶
MarshalYAML turns URL into YAML. Value instead of pointer receiver because only that way it can be used for both.
func (*URL) UnmarshalJSON ¶
UnmarshalJSON parses a string to URL and also removes trailing slash if present, so we can easily append a longer path without having to worry about double slashes.
type WebConfig ¶ added in v0.53.4
type WebConfig struct { // Viewer config for displaying multiple features on a map // +optional FeaturesViewer *FeaturesViewer `yaml:"featuresViewer,omitempty" json:"featuresViewer,omitempty"` // Viewer config for displaying a single feature on a map // +optional FeatureViewer *FeaturesViewer `yaml:"featureViewer,omitempty" json:"featureViewer,omitempty"` // Whether URLs (to external resources) in the HTML representation of features should be rendered as hyperlinks. // +optional URLAsHyperlink bool `yaml:"urlAsHyperlink,omitempty" json:"urlAsHyperlink,omitempty"` }
+kubebuilder:object:generate=true
func (*WebConfig) DeepCopy ¶ added in v0.53.4
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebConfig.
func (*WebConfig) DeepCopyInto ¶ added in v0.53.4
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ZoomLevelRange ¶
type ZoomLevelRange struct { // Start zoom level // +kubebuilder:validation:Minimum=0 Start int `yaml:"start" json:"start" validate:"gte=0,ltefield=End"` // End zoom level End int `yaml:"end" json:"end" validate:"required,gtefield=Start"` }
+kubebuilder:object:generate=true
func (*ZoomLevelRange) DeepCopy ¶
func (in *ZoomLevelRange) DeepCopy() *ZoomLevelRange
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZoomLevelRange.
func (*ZoomLevelRange) DeepCopyInto ¶
func (in *ZoomLevelRange) DeepCopyInto(out *ZoomLevelRange)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.