Documentation
¶
Overview ¶
* GoStack API Client * * Copyright 2020 Christopher O'Connell * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
* GoStack API Client * * Copyright 2020 Christopher O'Connell * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
* GoStack API Client * * Copyright 2020 Christopher O'Connell * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
* GoStack API Client * * Copyright 2020 Christopher O'Connell * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
* GoStack API Client * * Copyright 2020 Christopher O'Connell * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
* GoStack API Client * * Copyright 2020 Christopher O'Connell * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
* GoStack API Client * * Copyright 2020 Christopher O'Connell * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
Index ¶
- Constants
- func AlmostEqual(a, b ExtendedRecord) bool
- func CanonicalizeName(name string) string
- func Compare(a, b ExtendedRecord) int
- func NormalizeName(name string) string
- type ChangeRecord
- type ChangeType
- type ExtendedRecord
- type NoteComment
- type NoteNS
- type NoteNameServers
- type NoteSOA
- type ResourceRecord
- type Zone
Constants ¶
const ( Add = iota Preserve Modify // TODO: Try and use modify when possible Delete )
const ( KeyNoteSOA = "spdns_soa" KeyNoteNameservers = "spdns_nameservers" KeyNoteComment = "spdns_comment" )
Variables ¶
This section is empty.
Functions ¶
func AlmostEqual ¶
func AlmostEqual(a, b ExtendedRecord) bool
func CanonicalizeName ¶
func Compare ¶
func Compare(a, b ExtendedRecord) int
Returns -1 if a is less than b, 0 if equal and 1 if greater
func NormalizeName ¶
Types ¶
type ChangeRecord ¶
type ChangeRecord struct {
Action ChangeType
Item ExtendedRecord
}
func (ChangeRecord) ColorString ¶
func (c ChangeRecord) ColorString() string
func (ChangeRecord) String ¶
func (c ChangeRecord) String() string
type ChangeType ¶
type ChangeType int
func (ChangeType) ActionString ¶
func (c ChangeType) ActionString() string
func (ChangeType) String ¶
func (c ChangeType) String() string
type ExtendedRecord ¶
type ExtendedRecord struct {
DomainName string
BaseName string // The FQDN of the zone, copied in here for ease of use TODO: Do we need this?
TimeToLive int64 // uint32, expanded and signed to allow for "unset" indicator
Class gozone.RecordClass
Type gozone.RecordType
Data []string
Comment string
ZoneId string // The ID of the zone
RecordId string // The ID of the individual record, for updates
}
func SortRecords ¶
func SortRecords(records []ExtendedRecord) []ExtendedRecord
Sort records defines a total ordering over any set of DNS records, ensuring that even if zones are changed manually, or an API returns records in a different order that it is possible to ensure a complete and ordered set of records for a zone when comparing them later.
func (ExtendedRecord) String ¶
func (r ExtendedRecord) String() string
type NoteComment ¶
type NoteComment struct {
Comment string `json:"comment"`
}
type NoteNameServers ¶
type NoteNameServers struct {
Nameservers []NoteNS `json:"nameservers"`
}
type ResourceRecord ¶
type ResourceRecord struct {
Id string `json:"id"`
ZoneId string `json:"zoneId"`
Name string `json:"name"`
Type string `json:"type"`
Class string `json:"class"`
TTL int `json:"ttl"`
Data string `json:"data"`
Labels map[string]string `json:"labels"`
Created string `json:"created"`
Updated string `json:"updated"`
}
func (ResourceRecord) ExtendedRecord ¶
func (r ResourceRecord) ExtendedRecord(base string) ExtendedRecord
func (ResourceRecord) GRClass ¶
func (r ResourceRecord) GRClass() gozone.RecordClass
func (ResourceRecord) GRType ¶
func (r ResourceRecord) GRType() gozone.RecordType
type Zone ¶
type Zone struct {
StackID string `json:"stackId"`
AccountID string `json:"accountId"`
ID string `json:"id"`
Domain string `json:"domain"`
Version string `json:"version"`
Labels map[string]string `json:"labels"`
Created string `json:"created"`
Updated string `json:"updated"`
NameServers []string `json:"nameservers"`
Verified string `json:"verified"`
Status string `json:"status"`
Disabled bool `json:"disabled"`
}