Documentation
¶
Overview ¶
Package wnc provides a unified Go SDK for the Cisco Catalyst C9800 Wireless LAN Controller RESTCONF API.
This SDK enables developers to communicate with Cisco Catalyst 9800 controllers in an idiomatic, robust, and maintainable way using Go. It provides access to wireless controller configuration, operational data, and management functions through domain-specific service interfaces.
Package wnc provides a unified client for the Cisco Wireless Network Controller API.
Index ¶
- Constants
- Variables
- type APIError
- type Client
- func (c *Client) AFC() afc.Service
- func (c *Client) AP() ap.Service
- func (c *Client) APF() apf.Service
- func (c *Client) AWIPS() awips.Service
- func (c *Client) BLE() ble.Service
- func (c *Client) CTS() cts.Service
- func (c *Client) Client() client.Service
- func (c *Client) Controller() controller.Service
- func (c *Client) Core() *core.Clientdeprecated
- func (c *Client) Dot11() dot11.Service
- func (c *Client) Dot15() dot15.Service
- func (c *Client) Fabric() fabric.Service
- func (c *Client) Flex() flex.Service
- func (c *Client) General() general.Service
- func (c *Client) Geolocation() geolocation.Service
- func (c *Client) GetData(ctx context.Context, path string, opts ...GetOption) ([]byte, error)
- func (c *Client) Hyperlocation() hyperlocation.Service
- func (c *Client) LISP() lisp.Service
- func (c *Client) Location() location.Service
- func (c *Client) MDNS() mdns.Service
- func (c *Client) Mcast() mcast.Service
- func (c *Client) Mesh() mesh.Service
- func (c *Client) Mobility() mobility.Service
- func (c *Client) NMSP() nmsp.Service
- func (c *Client) PolicyTag() *wlan.PolicyTagService
- func (c *Client) RF() rf.Service
- func (c *Client) RFID() rfid.Service
- func (c *Client) RFTag() *rf.RFTagService
- func (c *Client) RRM() rrm.Service
- func (c *Client) Radio() radio.Service
- func (c *Client) Rogue() rogue.Service
- func (c *Client) Site() site.Service
- func (c *Client) SiteTag() *site.SiteTagService
- func (c *Client) Spaces() spaces.Service
- func (c *Client) URWB() urwb.Service
- func (c *Client) WAT() wat.Service
- func (c *Client) WLAN() wlan.Service
- type DefaultsMode
- type GetOption
- type Option
- func WithInsecureSkipVerify(skip bool) Option
- func WithLogger(l *slog.Logger) Option
- func WithProxy(fn func(*http.Request) (*url.URL, error)) Option
- func WithResponseHeaderTimeout(d time.Duration) Option
- func WithTLSHandshakeTimeout(d time.Duration) Option
- func WithTimeout(d time.Duration) Option
- func WithUserAgent(ua string) Option
Constants ¶
const ( // ReportAll materializes the leaves in force at their schema default. ReportAll = core.DefaultsReportAll // Explicit returns the leaves a client set, including any set to their schema default. Explicit = core.DefaultsExplicit )
const DefaultTimeout = core.DefaultTimeout
DefaultTimeout is the default request timeout (re-export of core.DefaultTimeout).
Variables ¶
var ( ErrAuthenticationFailed = core.ErrAuthenticationFailed ErrAccessForbidden = core.ErrAccessForbidden ErrResourceNotFound = core.ErrResourceNotFound ErrInvalidConfiguration = core.ErrInvalidConfiguration ErrRequestTimeout = core.ErrRequestTimeout )
Error sentinels re-exported for consumer side error handling with errors.Is.
Functions ¶
This section is empty.
Types ¶
type APIError ¶
APIError is returned for HTTP error responses (type alias to preserve instanceof semantics with errors.As).
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents the unified WNC API client with access to all domain services. This provides a single-import approach to accessing all wireless controller functionality.
func NewClient ¶
NewClient creates a new unified WNC client with the specified host, token, and options. This is the main entry point for all wireless controller operations.
func (*Client) AWIPS ¶ added in v0.2.0
AWIPS returns the Automated Wireless Intrusion Prevention System service.
func (*Client) Controller ¶ added in v0.3.0
func (c *Client) Controller() controller.Service
Controller returns the controller management service.
func (*Client) Core
deprecated
added in
v0.2.0
Core returns the underlying core.Client for advanced use cases.
Deprecated: the returned type lives in an internal package, so no consumer can name it in a signature or a test double. Use GetData for an untyped read and a service accessor for everything else. Removed in v0.9.0.
func (*Client) Geolocation ¶ added in v0.2.0
func (c *Client) Geolocation() geolocation.Service
Geolocation returns the geolocation service.
func (*Client) GetData ¶ added in v0.6.0
GetData performs a GET on a RESTCONF data path and returns the body as received, for a container this package has no typed accessor for. The path may be given with or without the /restconf/data prefix, and GetOption values apply as they do to a typed read. Errors are the same as everywhere else, *APIError included.
A container or leaf read answers with exactly one top-level key: the module-qualified name of the node requested. A caller decoding the body should check that key rather than trusting its own struct tags, because a tag naming a key the controller does not send decodes to nothing and reports success.
A node the controller carries nothing at answers with no body: the returned slice is non-nil and empty and the error is nil, so check the length before decoding. A path the controller does not have answers 404, which arrives as an *APIError.
The path is sent as given. A caller keying into a list escapes the key value itself; the typed accessors use url.PathEscape, and an unescaped "#" or "?" ends the path early and reads a different node with no error to show for it.
func (*Client) Hyperlocation ¶ added in v0.2.0
func (c *Client) Hyperlocation() hyperlocation.Service
Hyperlocation returns the hyperlocation service.
func (*Client) PolicyTag ¶ added in v0.3.0
func (c *Client) PolicyTag() *wlan.PolicyTagService
PolicyTag returns the Policy Tag service for policy tag management operations. This provides direct access to policy tag CRUD operations without going through WLAN service.
func (*Client) RFTag ¶ added in v0.3.0
func (c *Client) RFTag() *rf.RFTagService
RFTag returns the RF Tag service for RF tag management operations. This provides direct access to RF tag CRUD operations without going through RF service.
func (*Client) SiteTag ¶ added in v0.3.0
func (c *Client) SiteTag() *site.SiteTagService
SiteTag returns the Site Tag service for site tag management operations. This provides direct access to site tag CRUD operations without going through Site service.
func (*Client) Spaces ¶ added in v0.3.0
Spaces returns the Cisco Spaces integration service. EXPERIMENTAL: Requires IOS-XE 17.15.1+.
func (*Client) URWB ¶ added in v0.3.0
URWB returns the Ultra Reliable Wireless Backhaul service. EXPERIMENTAL: Requires IOS-XE 17.18.1+.
type DefaultsMode ¶ added in v0.4.3
type DefaultsMode = core.DefaultsMode
DefaultsMode selects the RFC 6243 retrieval mode for WithDefaults.
type GetOption ¶ added in v0.4.3
GetOption customizes a single GET request (re-export of internal core.GetOption).
func WithDefaults ¶ added in v0.4.3
func WithDefaults(mode DefaultsMode) GetOption
WithDefaults requests the given with-defaults retrieval mode (RFC 8040 4.8.9). Scope it to the container that needs it: on a whole-container read the added leaves accumulate across every nested container.
func WithDepth ¶ added in v0.6.0
WithDepth limits the answer to an RFC 8040 4.8.2 subtree depth (re-export wrapper). A node the limit cuts is absent exactly as a pruned leaf is, so an absent leaf still decodes to a zero value; bound the depth to what the caller reads.
func WithFields ¶ added in v0.6.0
WithFields limits the answer to an RFC 8040 4.8.3 fields expression (re-export wrapper). A pruned leaf is absent, and an absent leaf decodes to a zero value, so prune only the fields the caller reads.
type Option ¶ added in v0.2.0
Option is a functional option for configuring the unified client (re-export of internal core.Option). This allows end users to supply options without importing the internal/core package.
func WithInsecureSkipVerify ¶
WithInsecureSkipVerify controls TLS certificate verification (lab/testing only).
func WithProxy ¶ added in v0.6.0
WithProxy routes requests through the proxy the resolver returns (re-export wrapper).
func WithResponseHeaderTimeout ¶ added in v0.6.0
WithResponseHeaderTimeout bounds the wait for the response headers (re-export wrapper).
func WithTLSHandshakeTimeout ¶ added in v0.6.0
WithTLSHandshakeTimeout bounds the TLS handshake (re-export wrapper).
func WithTimeout ¶
WithTimeout sets the request timeout (re-export wrapper).
func WithUserAgent ¶ added in v0.2.0
WithUserAgent sets a custom User-Agent header value.
Directories
¶
| Path | Synopsis |
|---|---|
|
internal
|
|
|
core
Package core provides the foundational HTTP client and transport layer for Cisco IOS-XE Wireless Controller SDK.
|
Package core provides the foundational HTTP client and transport layer for Cisco IOS-XE Wireless Controller SDK. |
|
errors
Package errors provides standardized error definitions and templates for Cisco IOS-XE Wireless Controller services.
|
Package errors provides standardized error definitions and templates for Cisco IOS-XE Wireless Controller services. |
|
restconf
Package restconf provides RESTCONF URL building and path construction utilities.
|
Package restconf provides RESTCONF URL building and path construction utilities. |
|
restconf/routes
Package routes provides centralized RESTCONF API endpoint constants for all services.
|
Package routes provides centralized RESTCONF API endpoint constants for all services. |
|
service
Package service provides common service infrastructure for Cisco IOS-XE Wireless Network Controller API services.
|
Package service provides common service infrastructure for Cisco IOS-XE Wireless Network Controller API services. |
|
testutil
Package testutil provides internal test helpers and utilities for unit testing.
|
Package testutil provides internal test helpers and utilities for unit testing. |
|
transport
Package transport provides HTTP client utilities and request creation functions.
|
Package transport provides HTTP client utilities and request creation functions. |
|
validation
Package validation provides input validation utilities for Cisco IOS-XE Wireless Controller client.
|
Package validation provides input validation utilities for Cisco IOS-XE Wireless Controller client. |
|
pkg
|
|
|
testutil
Package testutil provides testing utilities for the Cisco IOS-XE Wireless Go SDK.
|
Package testutil provides testing utilities for the Cisco IOS-XE Wireless Go SDK. |
|
service
|
|
|
afc
Package afc provides Automated Frequency Coordination (AFC) functionality for the Cisco IOS-XE Wireless Network Controller API.
|
Package afc provides Automated Frequency Coordination (AFC) functionality for the Cisco IOS-XE Wireless Network Controller API. |
|
ap
Package ap provides access point functionality for the Cisco IOS-XE Wireless Network Controller API.
|
Package ap provides access point functionality for the Cisco IOS-XE Wireless Network Controller API. |
|
apf
Package apf provides Application Policy Framework (APF) functionality for the Cisco IOS-XE Wireless Network Controller API.
|
Package apf provides Application Policy Framework (APF) functionality for the Cisco IOS-XE Wireless Network Controller API. |
|
awips
Package awips provides Automated Wireless Intrusion Prevention System (AWIPS) functionality for the Cisco IOS-XE Wireless Network Controller API.
|
Package awips provides Automated Wireless Intrusion Prevention System (AWIPS) functionality for the Cisco IOS-XE Wireless Network Controller API. |
|
ble
Package ble provides Bluetooth Low Energy (BLE) functionality for the Cisco IOS-XE Wireless Network Controller API.
|
Package ble provides Bluetooth Low Energy (BLE) functionality for the Cisco IOS-XE Wireless Network Controller API. |
|
client
Package client provides wireless client operational operations for Cisco IOS-XE wireless controllers.
|
Package client provides wireless client operational operations for Cisco IOS-XE wireless controllers. |
|
controller
Package controller provides wireless controller management functionality for the Cisco IOS-XE Wireless Network Controller API.
|
Package controller provides wireless controller management functionality for the Cisco IOS-XE Wireless Network Controller API. |
|
cts
Package cts provides Cisco TrustSec (CTS) SXP configuration operations for Cisco IOS-XE wireless controllers.
|
Package cts provides Cisco TrustSec (CTS) SXP configuration operations for Cisco IOS-XE wireless controllers. |
|
dot11
Package dot11 provides 802.11 wireless standard configuration operations for Cisco IOS-XE wireless controllers.
|
Package dot11 provides 802.11 wireless standard configuration operations for Cisco IOS-XE wireless controllers. |
|
dot15
Package dot15 provides 802.15 wireless standard configuration operations for Cisco IOS-XE wireless controllers.
|
Package dot15 provides 802.15 wireless standard configuration operations for Cisco IOS-XE wireless controllers. |
|
fabric
Package fabric provides SD-Access fabric configuration operations for Cisco IOS-XE wireless controllers.
|
Package fabric provides SD-Access fabric configuration operations for Cisco IOS-XE wireless controllers. |
|
flex
Package flex provides FlexConnect configuration operations for Cisco IOS-XE wireless controllers.
|
Package flex provides FlexConnect configuration operations for Cisco IOS-XE wireless controllers. |
|
general
Package general provides type definitions for Cisco IOS-XE wireless controller operations.
|
Package general provides type definitions for Cisco IOS-XE wireless controller operations. |
|
geolocation
Package geolocation provides geographic location services operational operations for Cisco IOS-XE wireless controllers.
|
Package geolocation provides geographic location services operational operations for Cisco IOS-XE wireless controllers. |
|
hyperlocation
Package hyperlocation provides high-precision location tracking operational operations for Cisco IOS-XE wireless controllers.
|
Package hyperlocation provides high-precision location tracking operational operations for Cisco IOS-XE wireless controllers. |
|
lisp
Package lisp provides Locator/ID Separation Protocol (LISP) operational operations for Cisco IOS-XE wireless controllers.
|
Package lisp provides Locator/ID Separation Protocol (LISP) operational operations for Cisco IOS-XE wireless controllers. |
|
location
Package location provides location services configuration operations for Cisco IOS-XE wireless controllers.
|
Package location provides location services configuration operations for Cisco IOS-XE wireless controllers. |
|
mcast
Package mcast provides multicast operational operations for Cisco IOS-XE wireless controllers.
|
Package mcast provides multicast operational operations for Cisco IOS-XE wireless controllers. |
|
mdns
Package mdns provides multicast DNS (mDNS) operational operations for Cisco IOS-XE wireless controllers.
|
Package mdns provides multicast DNS (mDNS) operational operations for Cisco IOS-XE wireless controllers. |
|
mesh
Package mesh provides wireless mesh networking configuration and operational operations for Cisco IOS-XE wireless controllers.
|
Package mesh provides wireless mesh networking configuration and operational operations for Cisco IOS-XE wireless controllers. |
|
mobility
Package mobility provides wireless client mobility operational operations for Cisco IOS-XE wireless controllers.
|
Package mobility provides wireless client mobility operational operations for Cisco IOS-XE wireless controllers. |
|
nmsp
Package nmsp provides Network Mobility Services Protocol (NMSP) operational operations for Cisco IOS-XE wireless controllers.
|
Package nmsp provides Network Mobility Services Protocol (NMSP) operational operations for Cisco IOS-XE wireless controllers. |
|
radio
Package radio provides radio hardware configuration operations for Cisco IOS-XE wireless controllers.
|
Package radio provides radio hardware configuration operations for Cisco IOS-XE wireless controllers. |
|
rf
Package rf provides radio frequency operations for Cisco IOS-XE wireless controllers.
|
Package rf provides radio frequency operations for Cisco IOS-XE wireless controllers. |
|
rfid
Package rfid provides Radio Frequency Identification (RFID) configuration and operational operations for Cisco IOS-XE wireless controllers.
|
Package rfid provides Radio Frequency Identification (RFID) configuration and operational operations for Cisco IOS-XE wireless controllers. |
|
rogue
Package rogue provides rogue detection operational operations for Cisco IOS-XE wireless controllers.
|
Package rogue provides rogue detection operational operations for Cisco IOS-XE wireless controllers. |
|
rrm
Package rrm provides Radio Resource Management (RRM) configuration and operational operations for Cisco IOS-XE wireless controllers.
|
Package rrm provides Radio Resource Management (RRM) configuration and operational operations for Cisco IOS-XE wireless controllers. |
|
site
Package site provides site-specific configuration and operational operations for Cisco IOS-XE wireless controllers.
|
Package site provides site-specific configuration and operational operations for Cisco IOS-XE wireless controllers. |
|
spaces
Package spaces provides Cisco Spaces integration functionality for the Cisco IOS-XE Wireless Network Controller API.
|
Package spaces provides Cisco Spaces integration functionality for the Cisco IOS-XE Wireless Network Controller API. |
|
urwb
Package urwb provides Ultra Reliable Wireless Backhaul (URWB) functionality for the Cisco IOS-XE Wireless Network Controller API.
|
Package urwb provides Ultra Reliable Wireless Backhaul (URWB) functionality for the Cisco IOS-XE Wireless Network Controller API. |
|
wat
Package wat provides client access to Cisco Wireless Application Templates (WAT) integration.
|
Package wat provides client access to Cisco Wireless Application Templates (WAT) integration. |
|
wlan
Package wlan provides Wireless LAN (WLAN) configuration and operational operations for Cisco IOS-XE wireless controllers.
|
Package wlan provides Wireless LAN (WLAN) configuration and operational operations for Cisco IOS-XE wireless controllers. |