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