dnssec.go raw
1 package zones
2
3 import (
4 "fmt"
5
6 "github.com/mimuret/golang-iij-dpf/pkg/api"
7 "github.com/mimuret/golang-iij-dpf/pkg/apis"
8 "github.com/mimuret/golang-iij-dpf/pkg/types"
9 )
10
11 type DnssecState int
12
13 const (
14 DnssecStateZoneClosed DnssecState = 0
15 DnssecStateEnabling DnssecState = 1
16 DnssecStateEnable DnssecState = 2
17 DnssecStateDisabling DnssecState = 3
18 DnssecStateDisable DnssecState = 4
19 )
20
21 func (c DnssecState) String() string {
22 dnssecStateToString := map[DnssecState]string{
23 DnssecStateZoneClosed: "ZoneClosed",
24 DnssecStateEnabling: "Enabling",
25 DnssecStateEnable: "Enable",
26 DnssecStateDisabling: "Disabling",
27 DnssecStateDisable: "Disable",
28 }
29 return dnssecStateToString[c]
30 }
31
32 type DSState int
33
34 const (
35 DSStateClose DSState = 0
36 DSStateBeforeRegistration DSState = 1
37 DSStateWaitClearCacheForRegistration DSState = 2
38 DSStateDisclose DSState = 3
39 DSStateBeforeChange DSState = 4
40 DSStateWaitClearCacheForChanged DSState = 5
41 DSStateBeforeDelete DSState = 6
42 DSStateWaitClearCacheForDelete DSState = 7
43 )
44
45 func (c DSState) String() string {
46 dsStateToSString := map[DSState]string{
47 DSStateClose: "Close",
48 DSStateBeforeRegistration: "BeforeRegistration",
49 DSStateWaitClearCacheForRegistration: "WaitRegistration",
50 DSStateDisclose: "Disclose",
51 DSStateBeforeChange: "BeforeChange",
52 DSStateWaitClearCacheForChanged: "WaitChange",
53 DSStateBeforeDelete: "BeforeDelete",
54 DSStateWaitClearCacheForDelete: "WaitDelete",
55 }
56 return dsStateToSString[c]
57 }
58
59 var _ Spec = &Dnssec{}
60
61 // +k8s:deepcopy-gen:interfaces=github.com/mimuret/golang-iij-dpf/pkg/api.Object
62
63 type Dnssec struct {
64 AttributeMeta
65 Enabled types.Boolean `read:"enabled" update:"enabled"`
66 State DnssecState `read:"state"`
67 DsState DSState `read:"ds_state"`
68 }
69
70 func (c *Dnssec) GetName() string { return "dnssec" }
71 func (c *Dnssec) GetPathMethod(action api.Action) (string, string) {
72 switch action {
73 case api.ActionRead, api.ActionUpdate:
74 return action.ToMethod(), fmt.Sprintf("/zones/%s/dnssec", c.GetZoneID())
75 }
76 return "", ""
77 }
78
79 func (c *Dnssec) SetPathParams(args ...interface{}) error {
80 return apis.SetPathParams(args, &c.ZoneID)
81 }
82
83 func init() {
84 register(&Dnssec{})
85 }
86