270 lines
8.5 KiB
Go
270 lines
8.5 KiB
Go
// Code generated by github.com/atombender/go-jsonschema, DO NOT EDIT.
|
|
|
|
package schema
|
|
|
|
import "fmt"
|
|
import "encoding/json"
|
|
import "reflect"
|
|
|
|
type LogListSchemaJson struct {
|
|
// The time at which this version of the log list was published.
|
|
LogListTimestamp *string `json:"log_list_timestamp,omitempty"`
|
|
|
|
// People/organizations that run Certificate Transparency logs.
|
|
Operators []LogListSchemaJsonOperatorsElem `json:"operators"`
|
|
|
|
// The version will change whenever a change is made to any part of this log list.
|
|
Version *string `json:"version,omitempty"`
|
|
}
|
|
|
|
type LogListSchemaJsonOperatorsElem struct {
|
|
// The log operator can be contacted using any of these email addresses.
|
|
Email []string `json:"email"`
|
|
|
|
// Details of Certificate Transparency logs run by this operator.
|
|
Logs []LogListSchemaJsonOperatorsElemLogsElem `json:"logs"`
|
|
|
|
// Name corresponds to the JSON schema field "name".
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type LogListSchemaJsonOperatorsElemLogsElem struct {
|
|
// A human-readable description that can be used to identify this log.
|
|
Description *string `json:"description,omitempty"`
|
|
|
|
// The API endpoints are defined in
|
|
// https://github.com/google/certificate-transparency-rfcs/blob/master/dns/draft-ct-over-dns.md.
|
|
Dns *string `json:"dns,omitempty"`
|
|
|
|
// The log's public key as a DER-encoded ASN.1 SubjectPublicKeyInfo structure,
|
|
// then encoded as base64 (https://tools.ietf.org/html/rfc5280#section-4.1.2.7).
|
|
Key string `json:"key"`
|
|
|
|
// This is the LogID found in SCTs issued by this log
|
|
// (https://tools.ietf.org/html/rfc6962#section-3.2).
|
|
LogId string `json:"log_id"`
|
|
|
|
// The purpose of this log, e.g. test.
|
|
LogType *LogListSchemaJsonOperatorsElemLogsElemLogType `json:"log_type,omitempty"`
|
|
|
|
// The CT log should not take longer than this to incorporate a certificate
|
|
// (https://tools.ietf.org/html/rfc6962#section-3).
|
|
Mmd float64 `json:"mmd"`
|
|
|
|
// If the log has changed operators, this will contain a list of the previous
|
|
// operators, along with the timestamp when they stopped operating the log.
|
|
PreviousOperators []LogListSchemaJsonOperatorsElemLogsElemPreviousOperatorsElem `json:"previous_operators,omitempty"`
|
|
|
|
// State corresponds to the JSON schema field "state".
|
|
State *LogListSchemaJsonOperatorsElemLogsElemState `json:"state,omitempty"`
|
|
|
|
// The log will only accept certificates that expire (have a NotAfter date)
|
|
// between these dates.
|
|
TemporalInterval *LogListSchemaJsonOperatorsElemLogsElemTemporalInterval `json:"temporal_interval,omitempty"`
|
|
|
|
// The API endpoints are defined in https://tools.ietf.org/html/rfc6962#section-4.
|
|
Url string `json:"url"`
|
|
}
|
|
|
|
type LogListSchemaJsonOperatorsElemLogsElemLogType string
|
|
|
|
const LogListSchemaJsonOperatorsElemLogsElemLogTypeProd LogListSchemaJsonOperatorsElemLogsElemLogType = "prod"
|
|
const LogListSchemaJsonOperatorsElemLogsElemLogTypeTest LogListSchemaJsonOperatorsElemLogsElemLogType = "test"
|
|
|
|
type LogListSchemaJsonOperatorsElemLogsElemPreviousOperatorsElem struct {
|
|
// The time at which this operator stopped operating this log.
|
|
EndTime string `json:"end_time"`
|
|
|
|
// Name corresponds to the JSON schema field "name".
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type LogListSchemaJsonOperatorsElemLogsElemState struct {
|
|
// Pending corresponds to the JSON schema field "pending".
|
|
Pending *State `json:"pending,omitempty"`
|
|
|
|
// Qualified corresponds to the JSON schema field "qualified".
|
|
Qualified *State `json:"qualified,omitempty"`
|
|
|
|
// Readonly corresponds to the JSON schema field "readonly".
|
|
Readonly interface{} `json:"readonly,omitempty"`
|
|
|
|
// Rejected corresponds to the JSON schema field "rejected".
|
|
Rejected *State `json:"rejected,omitempty"`
|
|
|
|
// Retired corresponds to the JSON schema field "retired".
|
|
Retired *State `json:"retired,omitempty"`
|
|
|
|
// Usable corresponds to the JSON schema field "usable".
|
|
Usable *State `json:"usable,omitempty"`
|
|
}
|
|
|
|
// The log will only accept certificates that expire (have a NotAfter date) between
|
|
// these dates.
|
|
type LogListSchemaJsonOperatorsElemLogsElemTemporalInterval struct {
|
|
// All certificates must expire before this date.
|
|
EndExclusive string `json:"end_exclusive"`
|
|
|
|
// All certificates must expire on this date or later.
|
|
StartInclusive string `json:"start_inclusive"`
|
|
}
|
|
|
|
type State struct {
|
|
// The time at which the log entered this state.
|
|
Timestamp string `json:"timestamp"`
|
|
}
|
|
|
|
// UnmarshalJSON implements json.Unmarshaler.
|
|
func (j *LogListSchemaJsonOperatorsElemLogsElemPreviousOperatorsElem) UnmarshalJSON(b []byte) error {
|
|
var raw map[string]interface{}
|
|
if err := json.Unmarshal(b, &raw); err != nil {
|
|
return err
|
|
}
|
|
if v, ok := raw["end_time"]; !ok || v == nil {
|
|
return fmt.Errorf("field end_time: required")
|
|
}
|
|
if v, ok := raw["name"]; !ok || v == nil {
|
|
return fmt.Errorf("field name: required")
|
|
}
|
|
type Plain LogListSchemaJsonOperatorsElemLogsElemPreviousOperatorsElem
|
|
var plain Plain
|
|
if err := json.Unmarshal(b, &plain); err != nil {
|
|
return err
|
|
}
|
|
*j = LogListSchemaJsonOperatorsElemLogsElemPreviousOperatorsElem(plain)
|
|
return nil
|
|
}
|
|
|
|
// UnmarshalJSON implements json.Unmarshaler.
|
|
func (j *LogListSchemaJsonOperatorsElemLogsElemTemporalInterval) UnmarshalJSON(b []byte) error {
|
|
var raw map[string]interface{}
|
|
if err := json.Unmarshal(b, &raw); err != nil {
|
|
return err
|
|
}
|
|
if v, ok := raw["end_exclusive"]; !ok || v == nil {
|
|
return fmt.Errorf("field end_exclusive: required")
|
|
}
|
|
if v, ok := raw["start_inclusive"]; !ok || v == nil {
|
|
return fmt.Errorf("field start_inclusive: required")
|
|
}
|
|
type Plain LogListSchemaJsonOperatorsElemLogsElemTemporalInterval
|
|
var plain Plain
|
|
if err := json.Unmarshal(b, &plain); err != nil {
|
|
return err
|
|
}
|
|
*j = LogListSchemaJsonOperatorsElemLogsElemTemporalInterval(plain)
|
|
return nil
|
|
}
|
|
|
|
// UnmarshalJSON implements json.Unmarshaler.
|
|
func (j *LogListSchemaJsonOperatorsElemLogsElemLogType) UnmarshalJSON(b []byte) error {
|
|
var v string
|
|
if err := json.Unmarshal(b, &v); err != nil {
|
|
return err
|
|
}
|
|
var ok bool
|
|
for _, expected := range enumValues_LogListSchemaJsonOperatorsElemLogsElemLogType {
|
|
if reflect.DeepEqual(v, expected) {
|
|
ok = true
|
|
break
|
|
}
|
|
}
|
|
if !ok {
|
|
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_LogListSchemaJsonOperatorsElemLogsElemLogType, v)
|
|
}
|
|
*j = LogListSchemaJsonOperatorsElemLogsElemLogType(v)
|
|
return nil
|
|
}
|
|
|
|
// UnmarshalJSON implements json.Unmarshaler.
|
|
func (j *LogListSchemaJsonOperatorsElemLogsElem) UnmarshalJSON(b []byte) error {
|
|
var raw map[string]interface{}
|
|
if err := json.Unmarshal(b, &raw); err != nil {
|
|
return err
|
|
}
|
|
if v, ok := raw["key"]; !ok || v == nil {
|
|
return fmt.Errorf("field key: required")
|
|
}
|
|
if v, ok := raw["log_id"]; !ok || v == nil {
|
|
return fmt.Errorf("field log_id: required")
|
|
}
|
|
if v, ok := raw["url"]; !ok || v == nil {
|
|
return fmt.Errorf("field url: required")
|
|
}
|
|
type Plain LogListSchemaJsonOperatorsElemLogsElem
|
|
var plain Plain
|
|
if err := json.Unmarshal(b, &plain); err != nil {
|
|
return err
|
|
}
|
|
if v, ok := raw["mmd"]; !ok || v == nil {
|
|
plain.Mmd = 86400
|
|
}
|
|
*j = LogListSchemaJsonOperatorsElemLogsElem(plain)
|
|
return nil
|
|
}
|
|
|
|
// UnmarshalJSON implements json.Unmarshaler.
|
|
func (j *State) UnmarshalJSON(b []byte) error {
|
|
var raw map[string]interface{}
|
|
if err := json.Unmarshal(b, &raw); err != nil {
|
|
return err
|
|
}
|
|
if v, ok := raw["timestamp"]; !ok || v == nil {
|
|
return fmt.Errorf("field timestamp: required")
|
|
}
|
|
type Plain State
|
|
var plain Plain
|
|
if err := json.Unmarshal(b, &plain); err != nil {
|
|
return err
|
|
}
|
|
*j = State(plain)
|
|
return nil
|
|
}
|
|
|
|
// UnmarshalJSON implements json.Unmarshaler.
|
|
func (j *LogListSchemaJsonOperatorsElem) UnmarshalJSON(b []byte) error {
|
|
var raw map[string]interface{}
|
|
if err := json.Unmarshal(b, &raw); err != nil {
|
|
return err
|
|
}
|
|
if v, ok := raw["email"]; !ok || v == nil {
|
|
return fmt.Errorf("field email: required")
|
|
}
|
|
if v, ok := raw["logs"]; !ok || v == nil {
|
|
return fmt.Errorf("field logs: required")
|
|
}
|
|
if v, ok := raw["name"]; !ok || v == nil {
|
|
return fmt.Errorf("field name: required")
|
|
}
|
|
type Plain LogListSchemaJsonOperatorsElem
|
|
var plain Plain
|
|
if err := json.Unmarshal(b, &plain); err != nil {
|
|
return err
|
|
}
|
|
*j = LogListSchemaJsonOperatorsElem(plain)
|
|
return nil
|
|
}
|
|
|
|
var enumValues_LogListSchemaJsonOperatorsElemLogsElemLogType = []interface{}{
|
|
"prod",
|
|
"test",
|
|
}
|
|
|
|
// UnmarshalJSON implements json.Unmarshaler.
|
|
func (j *LogListSchemaJson) UnmarshalJSON(b []byte) error {
|
|
var raw map[string]interface{}
|
|
if err := json.Unmarshal(b, &raw); err != nil {
|
|
return err
|
|
}
|
|
if v, ok := raw["operators"]; !ok || v == nil {
|
|
return fmt.Errorf("field operators: required")
|
|
}
|
|
type Plain LogListSchemaJson
|
|
var plain Plain
|
|
if err := json.Unmarshal(b, &plain); err != nil {
|
|
return err
|
|
}
|
|
*j = LogListSchemaJson(plain)
|
|
return nil
|
|
}
|