@@ -30,18 +30,20 @@ import (
3030)
3131
3232// OwnerInfoSpec defines the desired state of OwnerInfo.
33+ // +kubebuilder:validation:XValidation:message="providerSite is required when using wms or wfs",rule="(!has(self.wms) && !has(self.wfs)) || has(self.providerSite)"
3334type OwnerInfoSpec struct {
3435 MetadataUrls * MetadataUrls `json:"metadataUrls,omitempty"`
3536 Atom * Atom `json:"atom,omitempty"`
3637 WFS * WFS `json:"wfs,omitempty"`
3738 WMS * WMS `json:"wms,omitempty"`
3839 NamespaceTemplate * string `json:"namespaceTemplate,omitempty"`
40+ ProviderSite * ProviderSite `json:"providerSite,omitempty"`
3941}
4042
4143// MetadataUrls contains various URL templates for metadata access
4244type MetadataUrls struct {
4345 CSW * MetadataURL `json:"csw,omitempty"`
44- OpenSearch * MetadataURL `json:"opensearch ,omitempty"`
46+ OpenSearch * MetadataURL `json:"openSearch ,omitempty"`
4547 HTML * MetadataURL `json:"html,omitempty"`
4648}
4749
@@ -60,14 +62,13 @@ type Atom struct {
6062
6163// WFS contains Web Feature Service related information
6264type WFS struct {
63- ServiceProvider ServiceProvider `json:"serviceprovider "`
65+ ServiceProvider ServiceProvider `json:"serviceProvider "`
6466}
6567
6668// ServiceProvider describes the provider of the WFS service
6769type ServiceProvider struct {
68- ProviderName * string `json:"providername,omitempty"`
69- ProviderSite * ProviderSite `json:"providersite,omitempty"`
70- ServiceContact * ServiceContact `json:"servicecontact,omitempty"`
70+ ProviderName * string `json:"providerName,omitempty"`
71+ ServiceContact * ServiceContact `json:"serviceContact,omitempty"`
7172}
7273
7374// ProviderSite holds information about the provider's site
@@ -78,9 +79,9 @@ type ProviderSite struct {
7879
7980// ServiceContact provides contact information for the service
8081type ServiceContact struct {
81- IndividualName * string `json:"individualname ,omitempty"`
82- PositionName * string `json:"positionname ,omitempty"`
83- ContactInfo * ContactInfo `json:"contactinfo ,omitempty"`
82+ IndividualName * string `json:"individualName ,omitempty"`
83+ PositionName * string `json:"positionName ,omitempty"`
84+ ContactInfo * ContactInfo `json:"contactInfo ,omitempty"`
8485 Role * string `json:"role,omitempty"`
8586}
8687
@@ -89,25 +90,25 @@ type ContactInfo struct {
8990 Text * string `json:"text,omitempty"`
9091 Phone * Phone `json:"phone,omitempty"`
9192 Address * Address `json:"address,omitempty"`
92- OnlineResource * OnlineResource `json:"onlineresource ,omitempty"`
93- HoursOfService * string `json:"hoursofservice ,omitempty"`
94- ContactInstructions * string `json:"contactinstructions ,omitempty"`
93+ OnlineResource * OnlineResource `json:"onlineResource ,omitempty"`
94+ HoursOfService * string `json:"hoursOfService ,omitempty"`
95+ ContactInstructions * string `json:"contactInstructions ,omitempty"`
9596}
9697
9798// Phone contains voice and facsimile numbers
9899type Phone struct {
99100 Voice * string `json:"voice,omitempty"`
100- Facsimile * string `json:"facsmile ,omitempty"`
101+ Facsimile * string `json:"facsimile ,omitempty"`
101102}
102103
103104// Address provides physical address details
104105type Address struct {
105- DeliveryPoint * string `json:"deliverypoint ,omitempty"`
106+ DeliveryPoint * string `json:"deliveryPoint ,omitempty"`
106107 City * string `json:"city,omitempty"`
107- AdministrativeArea * string `json:"administrativearea ,omitempty"`
108- PostalCode * string `json:"postalcode ,omitempty"`
108+ AdministrativeArea * string `json:"administrativeArea ,omitempty"`
109+ PostalCode * string `json:"postalCode ,omitempty"`
109110 Country * string `json:"country,omitempty"`
110- ElectronicMailAddress * string `json:"electronicmailaddress ,omitempty"`
111+ ElectronicMailAddress * string `json:"electronicMailAddress ,omitempty"`
111112}
112113
113114// OnlineResource describes an online resource associated with the contact
@@ -118,32 +119,32 @@ type OnlineResource struct {
118119
119120// WMS contains Web Map Service related information
120121type WMS struct {
121- ContactInformation ContactInformation `json:"contactinformation "`
122+ ContactInformation ContactInformation `json:"contactInformation "`
122123}
123124
124125// Information about a contact person for the service
125126type ContactInformation struct {
126- ContactPersonPrimary * ContactPersonPrimary `json:"contactpersonprimary ,omitempty"`
127- ContactPosition * string `json:"contactposition ,omitempty"`
128- ContactAddress * ContactAddress `json:"contactaddress ,omitempty"`
129- ContactVoiceTelephone * string `json:"contactvoicetelephone ,omitempty"`
130- ContactFacsimileTelephone * string `json:"contactfacsimiletelephone ,omitempty"`
131- ContactElectronicMailAddress * string `json:"contactelectronicmailAddress ,omitempty"`
127+ ContactPersonPrimary * ContactPersonPrimary `json:"contactPersonPrimary ,omitempty"`
128+ ContactPosition * string `json:"contactPosition ,omitempty"`
129+ ContactAddress * ContactAddress `json:"contactAddress ,omitempty"`
130+ ContactVoiceTelephone * string `json:"contactVoiceTelephone ,omitempty"`
131+ ContactFacsimileTelephone * string `json:"contactFacsimileTelephone ,omitempty"`
132+ ContactElectronicMailAddress * string `json:"contactElectronicMailAddress ,omitempty"`
132133}
133134
134135// The primary contact person
135136type ContactPersonPrimary struct {
136- ContactPerson * string `json:"contactperson ,omitempty"`
137- ContactOrganization * string `json:"contactorganization ,omitempty"`
137+ ContactPerson * string `json:"contactPerson ,omitempty"`
138+ ContactOrganization * string `json:"contactOrganization ,omitempty"`
138139}
139140
140141// The address for the contact supplying the service
141142type ContactAddress struct {
142- AddressType * string `json:"addresstype ,omitempty"`
143+ AddressType * string `json:"addressType ,omitempty"`
143144 Address * string `json:"address,omitempty"`
144145 City * string `json:"city,omitempty"`
145- StateOrProvince * string `json:"stateorprovince ,omitempty"`
146- PostCode * string `json:"postcode ,omitempty"`
146+ StateOrProvince * string `json:"stateOrProvince ,omitempty"`
147+ PostCode * string `json:"postCode ,omitempty"`
147148 Country * string `json:"country,omitempty"`
148149}
149150
0 commit comments