diff --git a/fields/api.go.tmpl b/fields/api.go.tmpl index 5edc7ef..9e87892 100644 --- a/fields/api.go.tmpl +++ b/fields/api.go.tmpl @@ -153,6 +153,7 @@ func (c *Client) update{{ .StructName }}(ctx context.Context, site string, d *{{ Data []{{ .StructName }} `json:"data"` } {{ if .IsSetting }} + d.Key = "{{ .ResourcePath }}" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/{{ .ResourcePath }}", site), d, &respBody) {{- else }} err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/rest/{{ .ResourcePath }}/%s", site, d.ID), d, &respBody) diff --git a/unifi/ap_group.generated.go b/unifi/ap_group.generated.go new file mode 100644 index 0000000..703a9f2 --- /dev/null +++ b/unifi/ap_group.generated.go @@ -0,0 +1,126 @@ +// Code generated from ace.jar fields *.json files +// DO NOT EDIT. + +package unifi + +import ( + "context" + "encoding/json" + "fmt" +) + +// just to fix compile issues with the import +var ( + _ context.Context + _ fmt.Formatter + _ json.Marshaler +) + +type APGroup struct { + ID string `json:"_id,omitempty"` + SiteID string `json:"site_id,omitempty"` + + Hidden bool `json:"attr_hidden,omitempty"` + HiddenID string `json:"attr_hidden_id,omitempty"` + NoDelete bool `json:"attr_no_delete,omitempty"` + NoEdit bool `json:"attr_no_edit,omitempty"` + + Name string `json:"name,omitempty"` // .{1,128} +} + +func (dst *APGroup) UnmarshalJSON(b []byte) error { + type Alias APGroup + aux := &struct { + *Alias + }{ + Alias: (*Alias)(dst), + } + + err := json.Unmarshal(b, &aux) + if err != nil { + return fmt.Errorf("unable to unmarshal alias: %w", err) + } + + return nil +} + +func (c *Client) listAPGroup(ctx context.Context, site string) ([]APGroup, error) { + var respBody struct { + Meta meta `json:"meta"` + Data []APGroup `json:"data"` + } + + err := c.do(ctx, "GET", fmt.Sprintf("s/%s/apgroups", site), nil, &respBody) + if err != nil { + return nil, err + } + + return respBody.Data, nil +} + +func (c *Client) getAPGroup(ctx context.Context, site, id string) (*APGroup, error) { + var respBody struct { + Meta meta `json:"meta"` + Data []APGroup `json:"data"` + } + + err := c.do(ctx, "GET", fmt.Sprintf("s/%s/rest/apgroups/%s", site, id), nil, &respBody) + if err != nil { + return nil, err + } + + if len(respBody.Data) != 1 { + return nil, &NotFoundError{} + } + + d := respBody.Data[0] + return &d, nil +} + +func (c *Client) deleteAPGroup(ctx context.Context, site, id string) error { + err := c.do(ctx, "DELETE", fmt.Sprintf("s/%s/rest/apgroups/%s", site, id), struct{}{}, nil) + if err != nil { + return err + } + return nil +} + +func (c *Client) createAPGroup(ctx context.Context, site string, d *APGroup) (*APGroup, error) { + var respBody struct { + Meta meta `json:"meta"` + Data []APGroup `json:"data"` + } + + err := c.do(ctx, "POST", fmt.Sprintf("s/%s/rest/apgroups", site), d, &respBody) + if err != nil { + return nil, err + } + + if len(respBody.Data) != 1 { + return nil, &NotFoundError{} + } + + new := respBody.Data[0] + + return &new, nil +} + +func (c *Client) updateAPGroup(ctx context.Context, site string, d *APGroup) (*APGroup, error) { + var respBody struct { + Meta meta `json:"meta"` + Data []APGroup `json:"data"` + } + + err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/rest/apgroups/%s", site, d.ID), d, &respBody) + if err != nil { + return nil, err + } + + if len(respBody.Data) != 1 { + return nil, &NotFoundError{} + } + + new := respBody.Data[0] + + return &new, nil +} diff --git a/unifi/setting_auto_speedtest.generated.go b/unifi/setting_auto_speedtest.generated.go index 64a89e8..96c39fd 100644 --- a/unifi/setting_auto_speedtest.generated.go +++ b/unifi/setting_auto_speedtest.generated.go @@ -75,6 +75,7 @@ func (c *Client) updateSettingAutoSpeedtest(ctx context.Context, site string, d Data []SettingAutoSpeedtest `json:"data"` } + d.Key = "auto_speedtest" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/auto_speedtest", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_baresip.generated.go b/unifi/setting_baresip.generated.go index e4968da..2b81b21 100644 --- a/unifi/setting_baresip.generated.go +++ b/unifi/setting_baresip.generated.go @@ -74,6 +74,7 @@ func (c *Client) updateSettingBaresip(ctx context.Context, site string, d *Setti Data []SettingBaresip `json:"data"` } + d.Key = "baresip" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/baresip", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_broadcast.generated.go b/unifi/setting_broadcast.generated.go index 8b44781..beed669 100644 --- a/unifi/setting_broadcast.generated.go +++ b/unifi/setting_broadcast.generated.go @@ -76,6 +76,7 @@ func (c *Client) updateSettingBroadcast(ctx context.Context, site string, d *Set Data []SettingBroadcast `json:"data"` } + d.Key = "broadcast" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/broadcast", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_connectivity.generated.go b/unifi/setting_connectivity.generated.go index cf06e88..1a3ef05 100644 --- a/unifi/setting_connectivity.generated.go +++ b/unifi/setting_connectivity.generated.go @@ -76,6 +76,7 @@ func (c *Client) updateSettingConnectivity(ctx context.Context, site string, d * Data []SettingConnectivity `json:"data"` } + d.Key = "connectivity" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/connectivity", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_country.generated.go b/unifi/setting_country.generated.go index f91fa6e..765f6ff 100644 --- a/unifi/setting_country.generated.go +++ b/unifi/setting_country.generated.go @@ -74,6 +74,7 @@ func (c *Client) updateSettingCountry(ctx context.Context, site string, d *Setti Data []SettingCountry `json:"data"` } + d.Key = "country" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/country", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_dpi.generated.go b/unifi/setting_dpi.generated.go index 0a5abde..1493c57 100644 --- a/unifi/setting_dpi.generated.go +++ b/unifi/setting_dpi.generated.go @@ -72,6 +72,7 @@ func (c *Client) updateSettingDpi(ctx context.Context, site string, d *SettingDp Data []SettingDpi `json:"data"` } + d.Key = "dpi" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/dpi", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_element_adopt.generated.go b/unifi/setting_element_adopt.generated.go index c4bb492..ce67adc 100644 --- a/unifi/setting_element_adopt.generated.go +++ b/unifi/setting_element_adopt.generated.go @@ -73,6 +73,7 @@ func (c *Client) updateSettingElementAdopt(ctx context.Context, site string, d * Data []SettingElementAdopt `json:"data"` } + d.Key = "element_adopt" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/element_adopt", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_guest_access.generated.go b/unifi/setting_guest_access.generated.go index 3c41527..f02cbb5 100644 --- a/unifi/setting_guest_access.generated.go +++ b/unifi/setting_guest_access.generated.go @@ -168,6 +168,7 @@ func (c *Client) updateSettingGuestAccess(ctx context.Context, site string, d *S Data []SettingGuestAccess `json:"data"` } + d.Key = "guest_access" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/guest_access", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_ips.generated.go b/unifi/setting_ips.generated.go index 0faac49..7501c31 100644 --- a/unifi/setting_ips.generated.go +++ b/unifi/setting_ips.generated.go @@ -225,6 +225,7 @@ func (c *Client) updateSettingIps(ctx context.Context, site string, d *SettingIp Data []SettingIps `json:"data"` } + d.Key = "ips" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/ips", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_lcm.generated.go b/unifi/setting_lcm.generated.go index 2886c29..f2bc404 100644 --- a/unifi/setting_lcm.generated.go +++ b/unifi/setting_lcm.generated.go @@ -80,6 +80,7 @@ func (c *Client) updateSettingLcm(ctx context.Context, site string, d *SettingLc Data []SettingLcm `json:"data"` } + d.Key = "lcm" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/lcm", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_locale.generated.go b/unifi/setting_locale.generated.go index d7723bf..e026498 100644 --- a/unifi/setting_locale.generated.go +++ b/unifi/setting_locale.generated.go @@ -71,6 +71,7 @@ func (c *Client) updateSettingLocale(ctx context.Context, site string, d *Settin Data []SettingLocale `json:"data"` } + d.Key = "locale" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/locale", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_mgmt.generated.go b/unifi/setting_mgmt.generated.go index 381ef67..acfc8eb 100644 --- a/unifi/setting_mgmt.generated.go +++ b/unifi/setting_mgmt.generated.go @@ -87,6 +87,7 @@ func (c *Client) updateSettingMgmt(ctx context.Context, site string, d *SettingM Data []SettingMgmt `json:"data"` } + d.Key = "mgmt" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/mgmt", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_network_optimization.generated.go b/unifi/setting_network_optimization.generated.go index 993ab20..7b28ce7 100644 --- a/unifi/setting_network_optimization.generated.go +++ b/unifi/setting_network_optimization.generated.go @@ -71,6 +71,7 @@ func (c *Client) updateSettingNetworkOptimization(ctx context.Context, site stri Data []SettingNetworkOptimization `json:"data"` } + d.Key = "network_optimization" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/network_optimization", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_ntp.generated.go b/unifi/setting_ntp.generated.go index af7a36a..569b75e 100644 --- a/unifi/setting_ntp.generated.go +++ b/unifi/setting_ntp.generated.go @@ -74,6 +74,7 @@ func (c *Client) updateSettingNtp(ctx context.Context, site string, d *SettingNt Data []SettingNtp `json:"data"` } + d.Key = "ntp" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/ntp", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_porta.generated.go b/unifi/setting_porta.generated.go index fd2eae6..294df7b 100644 --- a/unifi/setting_porta.generated.go +++ b/unifi/setting_porta.generated.go @@ -71,6 +71,7 @@ func (c *Client) updateSettingPorta(ctx context.Context, site string, d *Setting Data []SettingPorta `json:"data"` } + d.Key = "porta" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/porta", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_provider_capabilities.generated.go b/unifi/setting_provider_capabilities.generated.go index ef128ce..3eb0188 100644 --- a/unifi/setting_provider_capabilities.generated.go +++ b/unifi/setting_provider_capabilities.generated.go @@ -78,6 +78,7 @@ func (c *Client) updateSettingProviderCapabilities(ctx context.Context, site str Data []SettingProviderCapabilities `json:"data"` } + d.Key = "provider_capabilities" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/provider_capabilities", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_radio_ai.generated.go b/unifi/setting_radio_ai.generated.go index 3662378..8ebea4b 100644 --- a/unifi/setting_radio_ai.generated.go +++ b/unifi/setting_radio_ai.generated.go @@ -102,6 +102,7 @@ func (c *Client) updateSettingRadioAi(ctx context.Context, site string, d *Setti Data []SettingRadioAi `json:"data"` } + d.Key = "radio_ai" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/radio_ai", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_radius.generated.go b/unifi/setting_radius.generated.go index 3c1c46c..6be652d 100644 --- a/unifi/setting_radius.generated.go +++ b/unifi/setting_radius.generated.go @@ -85,6 +85,7 @@ func (c *Client) updateSettingRadius(ctx context.Context, site string, d *Settin Data []SettingRadius `json:"data"` } + d.Key = "radius" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/radius", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_rsyslogd.generated.go b/unifi/setting_rsyslogd.generated.go index 9a6cc60..c12be12 100644 --- a/unifi/setting_rsyslogd.generated.go +++ b/unifi/setting_rsyslogd.generated.go @@ -84,6 +84,7 @@ func (c *Client) updateSettingRsyslogd(ctx context.Context, site string, d *Sett Data []SettingRsyslogd `json:"data"` } + d.Key = "rsyslogd" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/rsyslogd", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_snmp.generated.go b/unifi/setting_snmp.generated.go index 0398a5f..f251b20 100644 --- a/unifi/setting_snmp.generated.go +++ b/unifi/setting_snmp.generated.go @@ -75,6 +75,7 @@ func (c *Client) updateSettingSnmp(ctx context.Context, site string, d *SettingS Data []SettingSnmp `json:"data"` } + d.Key = "snmp" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/snmp", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_super_cloudaccess.generated.go b/unifi/setting_super_cloudaccess.generated.go index c137051..7a7872f 100644 --- a/unifi/setting_super_cloudaccess.generated.go +++ b/unifi/setting_super_cloudaccess.generated.go @@ -77,6 +77,7 @@ func (c *Client) updateSettingSuperCloudaccess(ctx context.Context, site string, Data []SettingSuperCloudaccess `json:"data"` } + d.Key = "super_cloudaccess" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/super_cloudaccess", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_super_events.generated.go b/unifi/setting_super_events.generated.go index bf24e0c..0982803 100644 --- a/unifi/setting_super_events.generated.go +++ b/unifi/setting_super_events.generated.go @@ -71,6 +71,7 @@ func (c *Client) updateSettingSuperEvents(ctx context.Context, site string, d *S Data []SettingSuperEvents `json:"data"` } + d.Key = "super_events" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/super_events", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_super_fwupdate.generated.go b/unifi/setting_super_fwupdate.generated.go index f1dd6d6..256d85a 100644 --- a/unifi/setting_super_fwupdate.generated.go +++ b/unifi/setting_super_fwupdate.generated.go @@ -73,6 +73,7 @@ func (c *Client) updateSettingSuperFwupdate(ctx context.Context, site string, d Data []SettingSuperFwupdate `json:"data"` } + d.Key = "super_fwupdate" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/super_fwupdate", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_super_identity.generated.go b/unifi/setting_super_identity.generated.go index 8510e72..a491238 100644 --- a/unifi/setting_super_identity.generated.go +++ b/unifi/setting_super_identity.generated.go @@ -72,6 +72,7 @@ func (c *Client) updateSettingSuperIdentity(ctx context.Context, site string, d Data []SettingSuperIdentity `json:"data"` } + d.Key = "super_identity" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/super_identity", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_super_mail.generated.go b/unifi/setting_super_mail.generated.go index 9b7ce4f..4cc05b3 100644 --- a/unifi/setting_super_mail.generated.go +++ b/unifi/setting_super_mail.generated.go @@ -71,6 +71,7 @@ func (c *Client) updateSettingSuperMail(ctx context.Context, site string, d *Set Data []SettingSuperMail `json:"data"` } + d.Key = "super_mail" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/super_mail", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_super_mgmt.generated.go b/unifi/setting_super_mgmt.generated.go index 6211a2d..73b9c09 100644 --- a/unifi/setting_super_mgmt.generated.go +++ b/unifi/setting_super_mgmt.generated.go @@ -67,7 +67,6 @@ type SettingSuperMgmt struct { LiveUpdates string `json:"live_updates,omitempty"` // disabled|live|auto MinimumUsableHdSpace int `json:"minimum_usable_hd_space,omitempty"` MinimumUsableSdSpace int `json:"minimum_usable_sd_space,omitempty"` - MultipleSitesEnabled bool `json:"multiple_sites_enabled"` OverrideInformHost bool `json:"override_inform_host"` StoreEnabled string `json:"store_enabled,omitempty"` // disabled|super-only|everyone TimeSeriesPerClientStatsEnabled bool `json:"time_series_per_client_stats_enabled"` @@ -135,6 +134,7 @@ func (c *Client) updateSettingSuperMgmt(ctx context.Context, site string, d *Set Data []SettingSuperMgmt `json:"data"` } + d.Key = "super_mgmt" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/super_mgmt", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_super_sdn.generated.go b/unifi/setting_super_sdn.generated.go index 47f9b7d..70d2d26 100644 --- a/unifi/setting_super_sdn.generated.go +++ b/unifi/setting_super_sdn.generated.go @@ -80,6 +80,7 @@ func (c *Client) updateSettingSuperSdn(ctx context.Context, site string, d *Sett Data []SettingSuperSdn `json:"data"` } + d.Key = "super_sdn" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/super_sdn", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_super_smtp.generated.go b/unifi/setting_super_smtp.generated.go index 381c141..0522335 100644 --- a/unifi/setting_super_smtp.generated.go +++ b/unifi/setting_super_smtp.generated.go @@ -82,6 +82,7 @@ func (c *Client) updateSettingSuperSmtp(ctx context.Context, site string, d *Set Data []SettingSuperSmtp `json:"data"` } + d.Key = "super_smtp" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/super_smtp", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_usg.generated.go b/unifi/setting_usg.generated.go index 84c81be..0447b31 100644 --- a/unifi/setting_usg.generated.go +++ b/unifi/setting_usg.generated.go @@ -160,6 +160,7 @@ func (c *Client) updateSettingUsg(ctx context.Context, site string, d *SettingUs Data []SettingUsg `json:"data"` } + d.Key = "usg" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/usg", site), d, &respBody) if err != nil { return nil, err diff --git a/unifi/setting_usw.generated.go b/unifi/setting_usw.generated.go index bfb801a..2d48ae3 100644 --- a/unifi/setting_usw.generated.go +++ b/unifi/setting_usw.generated.go @@ -71,6 +71,7 @@ func (c *Client) updateSettingUsw(ctx context.Context, site string, d *SettingUs Data []SettingUsw `json:"data"` } + d.Key = "usw" err := c.do(ctx, "PUT", fmt.Sprintf("s/%s/set/setting/usw", site), d, &respBody) if err != nil { return nil, err