diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 3454043..c22c491 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -22,7 +22,7 @@ A clear and concise description of what you expected to happen. Please provide an screenshot of the successful API call with cuRL, Postman, etc. **Environment (please complete the following information):** -* Cisco DNA Center Version and patch: +* Cisco Catalyst Center Version and patch: * Go Version: * SDK version: * OS Version: diff --git a/CHANGELOG.md b/CHANGELOG.md index 176096f..808ae03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [6.0.0] - 2024-11-14 + +### Added +New services for Cisco Catalyst Center 2.3.7.6's API: +- CiscoTrustedCertificates *CiscoTrustedCertificatesService +- AIEndpointAnalytics *AIEndpointAnalyticsService + ## [5.0.32] - 2024-08-06 ### Added - Set User-Agent header in API client @@ -24,6 +31,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [5.0.28] - 2024-06-04 - `TopOfStackSerialNumber` and `CablingScheme` added to `RequestDeviceOnboardingPnpClaimADeviceToASite` - Fix `ResponseItemWirelessGetWirelessProfileProfileDetailsSSIDDetails` to support empty string + +### Note +- SDK now compatible with Cisco Catalyst Center 2.3.7.6's API. ## [5.0.27] - 2024-04-22 - Function `GetTemplatesDetails` change response struct from an object to an array objects. @@ -161,7 +171,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [5.0.0] - 2023-04-12 ### Added -- New services for Cisco DNA Center 2.3.5.3's API: +- New services for Cisco Catalyst Center 2.3.5.3's API: - AuthenticationManagement *AuthenticationManagementService - DisasterRecovery *DisasterRecoveryService - EoX *EoXService @@ -202,7 +212,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - WirelessService.RebootAccessPoints - WirelessService.ConfigureAccessPoints -- The SDK was updated with the official DNA Center API 2.3.5.3 documentation, therefore some structures or data types may have changed.[Oficial Documentation](https://developer.cisco.com/docs/dna-center/#!cisco-dna-center-2-3-5-api-overview). +- The SDK was updated with the official Catalyst Center API 2.3.5.3 documentation, therefore some structures or data types may have changed.[Oficial Documentation](https://developer.cisco.com/docs/dna-center/#!cisco-dna-center-2-3-5-api-overview). @@ -269,19 +279,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [4.0.0] - 2022-06-16 ### Added -New services for Cisco DNA Center 2.3.3.0's API: +New services for Cisco Catalyst Center 2.3.3.0's API: - CiscoDnaCenterSystem *CiscoDnaCenterSystemService - LanAutomation *LanAutomationService - SystemSettings *SystemSettingsService ### Removed -Services removed on Cisco DNA Center 2.3.3.0's API: +Services removed on Cisco Catalyst Center 2.3.3.0's API: - AuthenticationManagement *AuthenticationManagementService - DisasterRecovery *DisasterRecoveryService - Policy *PolicyService ### Changed -- SDK now compatible with Cisco DNA Center 2.3.3.0's API. +- SDK now compatible with Cisco Catalyst Center 2.3.3.0's API. ## [3.6.3] - 2022-03-17 ### Changed @@ -647,4 +657,5 @@ Services removed on Cisco DNA Center 2.3.3.0's API: [5.0.30]: https://github.com/cisco-en-programmability/dnacenter-go-sdk/compare/v5.0.29...v5.0.30 [5.0.31]: https://github.com/cisco-en-programmability/dnacenter-go-sdk/compare/v5.0.30...v5.0.31 [5.0.32]: https://github.com/cisco-en-programmability/dnacenter-go-sdk/compare/v5.0.31...v5.0.32 -[Unreleased]: https://github.com/cisco-en-programmability/dnacenter-go-sdk/compare/v5.0.32...main +[6.0.0]: https://github.com/cisco-en-programmability/dnacenter-go-sdk/compare/v5.0.27...v6.0.0 +[Unreleased]: https://github.com/cisco-en-programmability/dnacenter-go-sdk/compare/v6.0.0...main diff --git a/README.md b/README.md index 0d81478..175728e 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ # dnacenter-go-sdk -dnacenter-go-sdk is a Go client library for [DNA Center Platform](https://developer.cisco.com/dnacenter/). +dnacenter-go-sdk is a Go client library for [Catalyst Center Platform](https://developer.cisco.com/dnacenter/). ## Usage ```go -import dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" +import dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ``` ## Introduction -The dnacenter-go-sdk makes it easier to work with the Cisco DNA Center Platform RESTFul APIs from Go. +The dnacenter-go-sdk makes it easier to work with the Cisco Catalyst Center Platform RESTFul APIs from Go. It supports version 2.3.5.3, but it is backward compatible with other versions as long as those versions use the same URLs and options as version 2.3.5.3. @@ -25,7 +25,7 @@ The first think you need to do is to generate an API client. There are two optio The client could be generated with the following parameters: -- `baseURL`: The base URL, FQDN or IP, of the DNA instance. +- `baseURL`: The base URL, FQDN or IP, of the Catalyst Center instance. - `username`: The username for the API authentication and authorization. - `password`: The password for the API authentication and authorization. - `debug`: Boolean to enable debugging @@ -43,7 +43,7 @@ devicesCount, _, err := Client.Devices.GetDeviceCount() The client can be configured with the following environment variables: -- `DNAC_BASE_URL`: The base URL, FQDN or IP, of the DNA instance. +- `DNAC_BASE_URL`: The base URL, FQDN or IP, of the Catalyst Center instance. - `DNAC_USERNAME`: The username for the API authentication and authorization. - `DNAC_PASSWORD`: The password for the API authentication and authorization. - `DNAC_DEBUG`: Boolean to enable debugging @@ -85,6 +85,8 @@ if devices.Response != nil { ## Documentation ### dnacenter-go-sdk/v5 +[![PkgGoDev](https://pkg.go.dev/badge/github.com/)](https://pkg.go.dev/github.com/cisco-en-programmability/dnacenter-go-sdk/v6) +### dnacenter-go-sdk/v5 [![PkgGoDev](https://pkg.go.dev/badge/github.com/)](https://pkg.go.dev/github.com/cisco-en-programmability/dnacenter-go-sdk/v5) ### dnacenter-go-sdk/v4 [![PkgGoDev](https://pkg.go.dev/badge/github.com/)](https://pkg.go.dev/github.com/cisco-en-programmability/dnacenter-go-sdk/v4) @@ -96,7 +98,7 @@ if devices.Response != nil { [![PkgGoDev](https://pkg.go.dev/badge/github.com/)](https://pkg.go.dev/github.com/cisco-en-programmability/dnacenter-go-sdk) ## Compatibility matrix -| SDK versions | Cisco DNA Center version supported | +| SDK versions | Cisco Catalyst Center version supported | |--------------|------------------------------------| | 0.y.z | 2.1.2 | | 1.y.z | 2.1.2 | @@ -104,12 +106,13 @@ if devices.Response != nil { | 3.y.z | 2.2.3.3 | | 4.y.z | 2.3.3.0 | | 5.y.z | 2.3.5.3 | +| 6.y.z | 2.3.7.6 | ## Changelog All notable changes to this project will be documented in the [CHANGELOG](https://github.com/cisco-en-programmability/dnacenter-go-sdk/blob/main/CHANGELOG.md) file. -The development team may make additional name changes as the library evolves with the Cisco DNA Center APIs. +The development team may make additional name changes as the library evolves with the Cisco Catalyst Center APIs. ## License diff --git a/examples/application-policy/main.go b/examples/application-policy/main.go index c34db93..103661e 100644 --- a/examples/application-policy/main.go +++ b/examples/application-policy/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/applications/main.go b/examples/applications/main.go index 39ab892..8ac8daf 100644 --- a/examples/applications/main.go +++ b/examples/applications/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/clients/main.go b/examples/clients/main.go index cfe7474..c537702 100644 --- a/examples/clients/main.go +++ b/examples/clients/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/command-runner/main.go b/examples/command-runner/main.go index 7a44cee..0821f6c 100644 --- a/examples/command-runner/main.go +++ b/examples/command-runner/main.go @@ -5,10 +5,10 @@ import ( "fmt" "time" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// client is DNA Center API client +// client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/compliance/main.go b/examples/compliance/main.go index 68c35fc..81c0b7e 100644 --- a/examples/compliance/main.go +++ b/examples/compliance/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// client is DNA Center API client +// client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/configuration_archive/main.go b/examples/configuration_archive/main.go index ad51534..ddac34a 100644 --- a/examples/configuration_archive/main.go +++ b/examples/configuration_archive/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// client is DNA Center API client +// client is Catalyst Center API client var client *dnac.Client func main() { @@ -39,7 +39,7 @@ func main() { fmt.Println("Post ConfArchive") reqBody := &dnac.RequestConfigurationArchiveExportDeviceConfigurations{ - DeviceID: []string{deviceUUID}, + DeviceID: deviceUUID, Password: "C1sco123!", } diff --git a/examples/configuration_templates/main.go b/examples/configuration_templates/main.go index 4b5b85f..839ddb2 100644 --- a/examples/configuration_templates/main.go +++ b/examples/configuration_templates/main.go @@ -4,10 +4,10 @@ import ( "encoding/json" "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// client is DNA Center API client +// client is Catalyst Center API client var client *dnac.Client func responseInterfaceToString(v interface{}) string { @@ -93,7 +93,7 @@ func main() { // return // } - resp, _, err := client.ConfigurationTemplates.GetProjectsDetails(&dnac.GetProjectsDetailsQueryParams{ + resp, _, err := client.ConfigurationTemplates.GetProjectsDetailsV2(&dnac.GetProjectsDetailsV2QueryParams{ Name: "Onboarding Configuration", }) diff --git a/examples/credentials/main.go b/examples/credentials/main.go index bf854e1..c236ac4 100644 --- a/examples/credentials/main.go +++ b/examples/credentials/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// client is DNA Center API client +// client is Catalyst Center API client var client *dnac.Client func main() { @@ -61,7 +61,7 @@ func main() { secure := true httpWriteCredentials := &dnac.RequestDiscoveryCreateHTTPWriteCredentials{ dnac.RequestItemDiscoveryCreateHTTPWriteCredentials{ - Comments: "DNA Center HTTP Credentials", + Comments: "Catalyst Center HTTP Credentials", Description: "HTTP Creds", Password: "HTTP-cr3d$", Port: &port, diff --git a/examples/custom-call/main.go b/examples/custom-call/main.go index d844fd7..b63f653 100644 --- a/examples/custom-call/main.go +++ b/examples/custom-call/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var Client *dnac.Client func main() { diff --git a/examples/devices/main.go b/examples/devices/main.go index 680e9de..18f74a0 100644 --- a/examples/devices/main.go +++ b/examples/devices/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var Client *dnac.Client func main() { @@ -21,7 +21,7 @@ func main() { } fmt.Println("Getting device count") - devicesCount, _, err := Client.Devices.GetDeviceCount2() + devicesCount, _, err := Client.Devices.GetDeviceConfigCount() if err != nil { fmt.Println(err) } diff --git a/examples/discovery/main.go b/examples/discovery/main.go index c258ab6..877b694 100644 --- a/examples/discovery/main.go +++ b/examples/discovery/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/event-management/main.go b/examples/event-management/main.go index ac36270..16d1f91 100644 --- a/examples/event-management/main.go +++ b/examples/event-management/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/execution-id/main.go b/examples/execution-id/main.go index a2d16a7..a2f1b16 100644 --- a/examples/execution-id/main.go +++ b/examples/execution-id/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/files/main.go b/examples/files/main.go index 62ba341..971afb9 100644 --- a/examples/files/main.go +++ b/examples/files/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// client is DNA Center API client +// client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/global-pool/main.go b/examples/global-pool/main.go index bb437b0..f379f5f 100644 --- a/examples/global-pool/main.go +++ b/examples/global-pool/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/health-monitoring/main.go b/examples/health-monitoring/main.go index 9e6fe37..9eb922f 100644 --- a/examples/health-monitoring/main.go +++ b/examples/health-monitoring/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// client is DNA Center API client +// client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/pnp-devices/main.go b/examples/pnp-devices/main.go new file mode 100644 index 0000000..45a718e --- /dev/null +++ b/examples/pnp-devices/main.go @@ -0,0 +1,47 @@ +package main + +import ( + "fmt" + + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" +) + +// client is Catalyst Center API client +var client *dnac.Client + +func main() { + fmt.Println("Authenticating...") + var err error + client, err = dnac.NewClientWithOptions("https://100.119.103.218", + "cloverhound_user", "LABchsys!23$", + "true", "false", nil) + if err != nil { + fmt.Println(err) + return + } + + // now := time.Now() // current local time + // sec := now.UnixNano() + vStack := false + request1 := dnac.RequestDeviceOnboardingPnpAddDevice{ + DeviceInfo: &dnac.RequestDeviceOnboardingPnpAddDeviceDeviceInfo{ + SerialNumber: "FLM2213W05S", + Stack: &vStack, + SudiRequired: &vStack, + Hostname: "FLM2213W05W", + }, + } + resp1, restyResp1, err := client.DeviceOnboardingPnp.AddDevice(&request1) + if err != nil { + fmt.Println(err) + } + print(resp1) + print(restyResp1) + + // if siteHealth.Response != nil { + // for id, site := range *siteHealth.Response { + // fmt.Println(fmt.Sprintf("Site --> ID: %d, Name: %s, Health: %d", id, site.SiteName, site.NetworkHealthAverage)) + // } + // } + +} diff --git a/examples/swim/main.go b/examples/swim/main.go index 2fed045..9a57f06 100644 --- a/examples/swim/main.go +++ b/examples/swim/main.go @@ -5,10 +5,10 @@ import ( "io" "os" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var client *dnac.Client func main() { diff --git a/examples/topology/main.go b/examples/topology/main.go index 570e8de..e098242 100644 --- a/examples/topology/main.go +++ b/examples/topology/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" - dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v5/sdk" + dnac "github.com/cisco-en-programmability/dnacenter-go-sdk/v6/sdk" ) -// Client is DNA Center API client +// Client is Catalyst Center API client var Client *dnac.Client func main() { @@ -68,7 +68,7 @@ func main() { fmt.Println("Printing Network Health...") getOverallNetworkHealthQueryParams := &dnac.GetOverallNetworkHealthQueryParams{ - Timestamp: "", + Timestamp: 0, } networkHealth, _, err := Client.Topology.GetOverallNetworkHealth(getOverallNetworkHealthQueryParams) if err != nil { diff --git a/go.mod b/go.mod index 5b08a2d..42a1991 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/cisco-en-programmability/dnacenter-go-sdk/v5 +module github.com/cisco-en-programmability/dnacenter-go-sdk/v6 go 1.17 diff --git a/sdk/ai_endpoint_analytics.go b/sdk/ai_endpoint_analytics.go new file mode 100644 index 0000000..5f31903 --- /dev/null +++ b/sdk/ai_endpoint_analytics.go @@ -0,0 +1,1099 @@ +package dnac + +import ( + "fmt" + "net/http" + "strings" + + "github.com/go-resty/resty/v2" + "github.com/google/go-querystring/query" +) + +type AIEndpointAnalyticsService service + +type GetAIEndpointAnalyticsAttributeDictionariesQueryParams struct { + IncludeAttributes bool `url:"includeAttributes,omitempty"` //Flag to indicate whether attribute list for each dictionary should be included in response. +} +type QueryTheEndpointsQueryParams struct { + ProfilingStatus string `url:"profilingStatus,omitempty"` //Profiling status of the endpoint. Possible values are 'profiled', 'partialProfiled', 'notProfiled'. + MacAddress string `url:"macAddress,omitempty"` //MAC address to search for. Partial string is allowed. + MacAddresses []string `url:"macAddresses,omitempty"` //List of MAC addresses to filter on. Only exact matches will be returned. + IP string `url:"ip,omitempty"` //IP address to search for. Partial string is allowed. + DeviceType string `url:"deviceType,omitempty"` //Type of device to search for. Partial string is allowed. + HardwareManufacturer string `url:"hardwareManufacturer,omitempty"` //Hardware manufacturer to search for. Partial string is allowed. + HardwareModel string `url:"hardwareModel,omitempty"` //Hardware model to search for. Partial string is allowed. + OperatingSystem string `url:"operatingSystem,omitempty"` //Operating system to search for. Partial string is allowed. + Registered bool `url:"registered,omitempty"` //Flag to fetch manually registered or non-registered endpoints. + RandomMac bool `url:"randomMac,omitempty"` //Flag to fetch endpoints having randomized MAC or not. + TrustScore string `url:"trustScore,omitempty"` //Overall trust score of the endpoint. It can be provided either as a number value (e.g. 5), or as a range (e.g. 3-7). Provide value as '-' if you want to search for all endpoints where trust score is not assigned. + AuthMethod string `url:"authMethod,omitempty"` //Authentication method. Partial string is allowed. + PostureStatus string `url:"postureStatus,omitempty"` //Posture status. + AiSpoofingTrustLevel string `url:"aiSpoofingTrustLevel,omitempty"` //Trust level of the endpoint due to AI spoofing. Possible values are 'low', 'medium', 'high'. + ChangedProfileTrustLevel string `url:"changedProfileTrustLevel,omitempty"` //Trust level of the endpoint due to changing profile labels. Possible values are 'low', 'medium', 'high'. + NatTrustLevel string `url:"natTrustLevel,omitempty"` //Trust level of the endpoint due to NAT access. Possible values are 'low', 'medium', 'high'. + ConcurrentMacTrustLevel string `url:"concurrentMacTrustLevel,omitempty"` //Trust level of the endpoint due to concurrent MAC address. Possible values are 'low', 'medium', 'high'. + IPBlocklistDetected bool `url:"ipBlocklistDetected,omitempty"` //Flag to fetch endpoints hitting IP blocklist or not. + UnauthPortDetected bool `url:"unauthPortDetected,omitempty"` //Flag to fetch endpoints exposing unauthorized ports or not. + WeakCredDetected bool `url:"weakCredDetected,omitempty"` //Flag to fetch endpoints having weak credentials or not. + AncPolicy string `url:"ancPolicy,omitempty"` //ANC policy. Only exact match will be returned. + Limit int `url:"limit,omitempty"` //Maximum number of records to be fetched. If not provided, 50 records will be fetched by default. Maximum 1000 records can be fetched at a time. Use pagination if more records need to be fetched. + Offset int `url:"offset,omitempty"` //Record offset to start data fetch at. Offset starts at zero. + SortBy string `url:"sortBy,omitempty"` //Name of the column to sort the results on. Please note that fetch might take more time if sorting is requested. Possible values are 'macAddress', 'ip'. + Order string `url:"order,omitempty"` //Order to be used for sorting. Possible values are 'asc', 'desc'. + Include string `url:"include,omitempty"` //The datasets that should be included in the response. By default, value of this parameter is blank, and the response will include only basic details of the endpoint. To include other datasets or dictionaries, send comma separated list of following values: 'ALL' - Include all attributes. 'CDP', 'DHCP', etc. - Include attributes from given dictionaries. To get full list of dictionaries, use corresponding GET API. 'ANC' - Include ANC policy related details. 'TRUST' - Include trust score details. +} +type FetchTheCountOfEndpointsQueryParams struct { + ProfilingStatus string `url:"profilingStatus,omitempty"` //Profiling status of the endpoint. Possible values are 'profiled', 'partialProfiled', 'notProfiled'. + MacAddress string `url:"macAddress,omitempty"` //MAC address to search for. Partial string is allowed. + MacAddresses []string `url:"macAddresses,omitempty"` //List of MAC addresses to filter on. Only exact matches will be returned. + IP string `url:"ip,omitempty"` //IP address to search for. Partial string is allowed. + DeviceType string `url:"deviceType,omitempty"` //Type of device to search for. Partial string is allowed. + HardwareManufacturer string `url:"hardwareManufacturer,omitempty"` //Hardware manufacturer to search for. Partial string is allowed. + HardwareModel string `url:"hardwareModel,omitempty"` //Hardware model to search for. Partial string is allowed. + OperatingSystem string `url:"operatingSystem,omitempty"` //Operating system to search for. Partial string is allowed. + Registered bool `url:"registered,omitempty"` //Flag to fetch manually registered or non-registered endpoints. + RandomMac bool `url:"randomMac,omitempty"` //Flag to fetch endpoints having randomized MAC or not. + TrustScore string `url:"trustScore,omitempty"` //Overall trust score of the endpoint. It can be provided either as a number value (e.g. 5), or as a range (e.g. 3-7). Provide value as '-' if you want to search for all endpoints where trust score is not assigned. + AuthMethod string `url:"authMethod,omitempty"` //Authentication method. Partial string is allowed. + PostureStatus string `url:"postureStatus,omitempty"` //Posture status. + AiSpoofingTrustLevel string `url:"aiSpoofingTrustLevel,omitempty"` //Trust level of the endpoint due to AI spoofing. Possible values are 'low', 'medium', 'high'. + ChangedProfileTrustLevel string `url:"changedProfileTrustLevel,omitempty"` //Trust level of the endpoint due to changing profile labels. Possible values are 'low', 'medium', 'high'. + NatTrustLevel string `url:"natTrustLevel,omitempty"` //Trust level of the endpoint due to NAT access. Possible values are 'low', 'medium', 'high'. + ConcurrentMacTrustLevel string `url:"concurrentMacTrustLevel,omitempty"` //Trust level of the endpoint due to concurrent MAC address. Possible values are 'low', 'medium', 'high'. + IPBlocklistDetected bool `url:"ipBlocklistDetected,omitempty"` //Flag to fetch endpoints hitting IP blocklist or not. + UnauthPortDetected bool `url:"unauthPortDetected,omitempty"` //Flag to fetch endpoints exposing unauthorized ports or not. + WeakCredDetected bool `url:"weakCredDetected,omitempty"` //Flag to fetch endpoints having weak credentials or not. + AncPolicy string `url:"ancPolicy,omitempty"` //ANC policy. Only exact match will be returned. +} +type GetEndpointDetailsQueryParams struct { + Include string `url:"include,omitempty"` //The datasets that should be included in the response. By default, value of this parameter is blank, and the response will include only basic details of the endpoint. To include other datasets or dictionaries, send comma separated list of following values: 'ALL' - Include all attributes. 'CDP', 'DHCP', etc. - Include attributes from given dictionaries. To get full list of dictionaries, use corresponding GET API. 'ANC' - Include ANC policy related details. 'TRUST' - Include trust score details. +} +type GetListOfProfilingRulesQueryParams struct { + RuleType string `url:"ruleType,omitempty"` //Use comma-separated list of rule types to filter the data. Defaults to 'Custom Rule'. + IncludeDeleted bool `url:"includeDeleted,omitempty"` //Flag to indicate whether deleted rules should be part of the records fetched. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to be fetched. If not provided, 500 records will be fetched by default. To fetch all the records in the system, provide a large value for this parameter. + Offset float64 `url:"offset,omitempty"` //Record offset to start data fetch at. Offset starts at zero. + SortBy string `url:"sortBy,omitempty"` //Name of the column to sort the results on. Please note that fetch might take more time if sorting is requested. + Order string `url:"order,omitempty"` //Order to be used for sorting. +} +type GetCountOfProfilingRulesQueryParams struct { + RuleType string `url:"ruleType,omitempty"` //Use comma-separated list of rule types to filter the data. Defaults to 'Custom Rule'. + IncludeDeleted bool `url:"includeDeleted,omitempty"` //Flag to indicate whether deleted rules should be part of the records fetched. +} + +type ResponseAIEndpointAnalyticsGetAncPolicies []ResponseItemAIEndpointAnalyticsGetAncPolicies // Array of ResponseAIEndpointAnalyticsGetANCPolicies +type ResponseItemAIEndpointAnalyticsGetAncPolicies struct { + Name string `json:"name,omitempty"` // Name of the ANC policy. +} +type ResponseAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionaries []ResponseItemAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionaries // Array of ResponseAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionaries +type ResponseItemAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionaries struct { + Name string `json:"name,omitempty"` // Name of the dictionary. + Description string `json:"description,omitempty"` // Description of the dictionary. + Attributes *[]ResponseItemAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionariesAttributes `json:"attributes,omitempty"` // +} +type ResponseItemAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionariesAttributes struct { + Name string `json:"name,omitempty"` // Name of the attribute. + Description string `json:"description,omitempty"` // Description of the attribute. +} +type ResponseAIEndpointAnalyticsQueryTheEndpoints struct { + TotalResults *int `json:"totalResults,omitempty"` // Total number of records matching the given filter criteria. + HasMoreResults *bool `json:"hasMoreResults,omitempty"` // Flag to indicate whether more results are available than what is currently in the response. + Items *[]ResponseAIEndpointAnalyticsQueryTheEndpointsItems `json:"items,omitempty"` // +} +type ResponseAIEndpointAnalyticsQueryTheEndpointsItems struct { + ID string `json:"id,omitempty"` // Unique identifier for the endpoint. + Duid string `json:"duid,omitempty"` // Unique DUID. + MacAddress string `json:"macAddress,omitempty"` // MAC address of the endpoint. + DeviceType []string `json:"deviceType,omitempty"` // Type of the device represented by this endpoint. + HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // Hardware manufacturer for the endpoint. + HardwareModel []string `json:"hardwareModel,omitempty"` // Hardware model of the endpoint. + OperatingSystem []string `json:"operatingSystem,omitempty"` // Operating system of the endpoint. + LastProbeCollectionTimestamp *int `json:"lastProbeCollectionTimestamp,omitempty"` // Last probe collection timestamp in epoch milliseconds. + RandomMac *bool `json:"randomMac,omitempty"` // Flag to indicate whether MAC address is a randomized one or not. + Registered *bool `json:"registered,omitempty"` // Flag to indicate whether this is a manually registered endpoint or not. + Attributes *ResponseAIEndpointAnalyticsQueryTheEndpointsItemsAttributes `json:"attributes,omitempty"` // Various endpoint attributes grouped by dictionaries (e.g. IP, DHCP, etc). + TrustData *ResponseAIEndpointAnalyticsQueryTheEndpointsItemsTrustData `json:"trustData,omitempty"` // + AncPolicy string `json:"ancPolicy,omitempty"` // ANC policy currently applied to the endpoint in ISE. + GranularAncPolicy *[]ResponseAIEndpointAnalyticsQueryTheEndpointsItemsGranularAncPolicy `json:"granularAncPolicy,omitempty"` // +} +type ResponseAIEndpointAnalyticsQueryTheEndpointsItemsAttributes interface{} +type ResponseAIEndpointAnalyticsQueryTheEndpointsItemsTrustData struct { + TrustScore *int `json:"trustScore,omitempty"` // Overall trust score of the endpoint. + AuthMethod string `json:"authMethod,omitempty"` // Authentication method. + PostureStatus string `json:"postureStatus,omitempty"` // Posture status. + AiSpoofingTrustLevel string `json:"aiSpoofingTrustLevel,omitempty"` // Trust level of the endpoint due to AI spoofing. + ChangedProfileTrustLevel string `json:"changedProfileTrustLevel,omitempty"` // Trust level of the endpoint due to changing profile labels. + NatTrustLevel string `json:"natTrustLevel,omitempty"` // Trust level of the endpoint due to NAT access. + ConcurrentMacTrustLevel string `json:"concurrentMacTrustLevel,omitempty"` // Trust level of the endpoint due to concurrent MAC address. + IPBlocklistDetected *bool `json:"ipBlocklistDetected,omitempty"` // Flag to fetch endpoints hitting IP blocklist or not. + UnauthPortDetected *bool `json:"unauthPortDetected,omitempty"` // Flag to fetch endpoints exposing unauthorized ports or not. + WeakCredDetected *bool `json:"weakCredDetected,omitempty"` // Flag to fetch endpoints having weak credentials or not. +} +type ResponseAIEndpointAnalyticsQueryTheEndpointsItemsGranularAncPolicy struct { + Name string `json:"name,omitempty"` // Name of the granular ANC policy. + NasIPAddress string `json:"nasIpAddress,omitempty"` // IP address of the network device where endpoint is attached. +} +type ResponseAIEndpointAnalyticsFetchTheCountOfEndpoints struct { + Count *int `json:"count,omitempty"` // +} +type ResponseAIEndpointAnalyticsGetEndpointDetails struct { + ID string `json:"id,omitempty"` // Unique identifier for the endpoint. + Duid string `json:"duid,omitempty"` // Unique DUID. + MacAddress string `json:"macAddress,omitempty"` // MAC address of the endpoint. + DeviceType []string `json:"deviceType,omitempty"` // Type of the device represented by this endpoint. + HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // Hardware manufacturer for the endpoint. + HardwareModel []string `json:"hardwareModel,omitempty"` // Hardware model of the endpoint. + OperatingSystem []string `json:"operatingSystem,omitempty"` // Operating system of the endpoint. + LastProbeCollectionTimestamp *int `json:"lastProbeCollectionTimestamp,omitempty"` // Last probe collection timestamp in epoch milliseconds. + RandomMac *bool `json:"randomMac,omitempty"` // Flag to indicate whether MAC address is a randomized one or not. + Registered *bool `json:"registered,omitempty"` // Flag to indicate whether this is a manually registered endpoint or not. + Attributes *ResponseAIEndpointAnalyticsGetEndpointDetailsAttributes `json:"attributes,omitempty"` // Various endpoint attributes grouped by dictionaries (e.g. IP, DHCP, etc). + TrustData *ResponseAIEndpointAnalyticsGetEndpointDetailsTrustData `json:"trustData,omitempty"` // + AncPolicy string `json:"ancPolicy,omitempty"` // ANC policy currently applied to the endpoint in ISE. + GranularAncPolicy *[]ResponseAIEndpointAnalyticsGetEndpointDetailsGranularAncPolicy `json:"granularAncPolicy,omitempty"` // +} +type ResponseAIEndpointAnalyticsGetEndpointDetailsAttributes interface{} +type ResponseAIEndpointAnalyticsGetEndpointDetailsTrustData struct { + TrustScore *int `json:"trustScore,omitempty"` // Overall trust score of the endpoint. + AuthMethod string `json:"authMethod,omitempty"` // Authentication method. + PostureStatus string `json:"postureStatus,omitempty"` // Posture status. + AiSpoofingTrustLevel string `json:"aiSpoofingTrustLevel,omitempty"` // Trust level of the endpoint due to AI spoofing. + ChangedProfileTrustLevel string `json:"changedProfileTrustLevel,omitempty"` // Trust level of the endpoint due to changing profile labels. + NatTrustLevel string `json:"natTrustLevel,omitempty"` // Trust level of the endpoint due to NAT access. + ConcurrentMacTrustLevel string `json:"concurrentMacTrustLevel,omitempty"` // Trust level of the endpoint due to concurrent MAC address. + IPBlocklistDetected *bool `json:"ipBlocklistDetected,omitempty"` // Flag to fetch endpoints hitting IP blocklist or not. + UnauthPortDetected *bool `json:"unauthPortDetected,omitempty"` // Flag to fetch endpoints exposing unauthorized ports or not. + WeakCredDetected *bool `json:"weakCredDetected,omitempty"` // Flag to fetch endpoints having weak credentials or not. +} +type ResponseAIEndpointAnalyticsGetEndpointDetailsGranularAncPolicy struct { + Name string `json:"name,omitempty"` // Name of the granular ANC policy. + NasIPAddress string `json:"nasIpAddress,omitempty"` // IP address of the network device where endpoint is attached. +} +type ResponseAIEndpointAnalyticsCreateAProfilingRule struct { + ID string `json:"id,omitempty"` // Unique identifier for the newly created resource. + Link string `json:"link,omitempty"` // Link to the newly created resource. +} +type ResponseAIEndpointAnalyticsGetListOfProfilingRules struct { + ProfilingRules *[]ResponseAIEndpointAnalyticsGetListOfProfilingRulesProfilingRules `json:"profilingRules,omitempty"` // +} +type ResponseAIEndpointAnalyticsGetListOfProfilingRulesProfilingRules struct { + RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. + RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. + RuleType string `json:"ruleType,omitempty"` // Type of the rule. + RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. + RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. + SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. + IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. + LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. + LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. + PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. + ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. + Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. + Result *ResponseAIEndpointAnalyticsGetListOfProfilingRulesProfilingRulesResult `json:"result,omitempty"` // + ConditionGroups *ResponseAIEndpointAnalyticsGetListOfProfilingRulesProfilingRulesConditionGroups `json:"conditionGroups,omitempty"` // + UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. +} +type ResponseAIEndpointAnalyticsGetListOfProfilingRulesProfilingRulesResult struct { + DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. + HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. + HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. + OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. +} +type ResponseAIEndpointAnalyticsGetListOfProfilingRulesProfilingRulesConditionGroups struct { + Type string `json:"type,omitempty"` // + Condition *ResponseAIEndpointAnalyticsGetListOfProfilingRulesProfilingRulesConditionGroupsCondition `json:"condition,omitempty"` // + Operator string `json:"operator,omitempty"` // + ConditionGroup []string `json:"conditionGroup,omitempty"` // +} +type ResponseAIEndpointAnalyticsGetListOfProfilingRulesProfilingRulesConditionGroupsCondition struct { + Attribute string `json:"attribute,omitempty"` // + Operator string `json:"operator,omitempty"` // + Value string `json:"value,omitempty"` // + AttributeDictionary string `json:"attributeDictionary,omitempty"` // +} +type ResponseAIEndpointAnalyticsGetCountOfProfilingRules struct { + Count *int `json:"count,omitempty"` // +} +type ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRule struct { + RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. + RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. + RuleType string `json:"ruleType,omitempty"` // Type of the rule. + RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. + RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. + SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. + IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. + LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. + LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. + PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. + ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. + Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. + Result *ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRuleResult `json:"result,omitempty"` // + ConditionGroups *ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRuleConditionGroups `json:"conditionGroups,omitempty"` // + UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. +} +type ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRuleResult struct { + DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. + HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. + HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. + OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. +} +type ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRuleConditionGroups struct { + Type string `json:"type,omitempty"` // + Condition *ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRuleConditionGroupsCondition `json:"condition,omitempty"` // + Operator string `json:"operator,omitempty"` // + ConditionGroup []string `json:"conditionGroup,omitempty"` // +} +type ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRuleConditionGroupsCondition struct { + Attribute string `json:"attribute,omitempty"` // + Operator string `json:"operator,omitempty"` // + Value string `json:"value,omitempty"` // + AttributeDictionary string `json:"attributeDictionary,omitempty"` // +} +type ResponseAIEndpointAnalyticsGetTaskDetails struct { + ID string `json:"id,omitempty"` // Unique identifier for the task. + Name string `json:"name,omitempty"` // Name of the task. + Status string `json:"status,omitempty"` // Status of the task. + Errors *[]ResponseAIEndpointAnalyticsGetTaskDetailsErrors `json:"errors,omitempty"` // + AdditionalInfo *ResponseAIEndpointAnalyticsGetTaskDetailsAdditionalInfo `json:"additionalInfo,omitempty"` // Additional information about the task. + CreatedBy string `json:"createdBy,omitempty"` // Name of the user that created the task. + CreatedOn *int `json:"createdOn,omitempty"` // Task creation timestamp in epoch milliseconds. + LastUpdatedOn *int `json:"lastUpdatedOn,omitempty"` // Last update timestamp in epoch milliseconds. +} +type ResponseAIEndpointAnalyticsGetTaskDetailsErrors struct { + Index *int `json:"index,omitempty"` // Index of the input records which had error during processing. In case the input is not an array, or the error is not record specific, this will be -1. + Code *int `json:"code,omitempty"` // Error code. + Message string `json:"message,omitempty"` // Error message. + Details string `json:"details,omitempty"` // Optional details about the error. +} +type ResponseAIEndpointAnalyticsGetTaskDetailsAdditionalInfo interface{} +type RequestAIEndpointAnalyticsProcessCmdbEndpoints []RequestItemAIEndpointAnalyticsProcessCmdbEndpoints // Array of RequestAIEndpointAnalyticsProcessCMDBEndpoints +type RequestItemAIEndpointAnalyticsProcessCmdbEndpoints struct { + MacAddress string `json:"macAddress,omitempty"` // MAC address of the endpoint. + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of the endpoint. + AssetTag string `json:"assetTag,omitempty"` // Asset tag. + ModelCategory string `json:"modelCategory,omitempty"` // Category of the model. + Model string `json:"model,omitempty"` // Asset model. + DisplayName string `json:"displayName,omitempty"` // Display name of the asset. + Department string `json:"department,omitempty"` // Department that asset belongs to. + Location string `json:"location,omitempty"` // Location of the asset. + ManagedBy string `json:"managedBy,omitempty"` // Asset managed by. + LastUpdateTimestamp *int `json:"lastUpdateTimestamp,omitempty"` // Last update timestamp in epoch milliseconds. +} +type RequestAIEndpointAnalyticsRegisterAnEndpoint struct { + MacAddress string `json:"macAddress,omitempty"` // MAC address of the endpoint. + DeviceType string `json:"deviceType,omitempty"` // Type of the device represented by this endpoint. + HardwareManufacturer string `json:"hardwareManufacturer,omitempty"` // Hardware manufacturer for the endpoint. + HardwareModel string `json:"hardwareModel,omitempty"` // Hardware model of the endpoint. +} +type RequestAIEndpointAnalyticsUpdateARegisteredEndpoint struct { + DeviceType string `json:"deviceType,omitempty"` // Type of the device represented by this endpoint. + HardwareManufacturer string `json:"hardwareManufacturer,omitempty"` // Hardware manufacturer for the endpoint. + HardwareModel string `json:"hardwareModel,omitempty"` // Hardware model of the endpoint. +} +type RequestAIEndpointAnalyticsApplyAncPolicy struct { + AncPolicy string `json:"ancPolicy,omitempty"` // ANC policy name. + GranularAncPolicy *[]RequestAIEndpointAnalyticsApplyAncPolicyGranularAncPolicy `json:"granularAncPolicy,omitempty"` // +} +type RequestAIEndpointAnalyticsApplyAncPolicyGranularAncPolicy struct { + Name string `json:"name,omitempty"` // Name of the granular ANC policy. + NasIPAddress string `json:"nasIpAddress,omitempty"` // IP address of the network device where endpoint is attached. +} +type RequestAIEndpointAnalyticsCreateAProfilingRule struct { + RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. + RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. + RuleType string `json:"ruleType,omitempty"` // Type of the rule. + RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. + RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. + SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. + IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. + LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. + LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. + PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. + ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. + Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. + Result *RequestAIEndpointAnalyticsCreateAProfilingRuleResult `json:"result,omitempty"` // + ConditionGroups *RequestAIEndpointAnalyticsCreateAProfilingRuleConditionGroups `json:"conditionGroups,omitempty"` // + UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. +} +type RequestAIEndpointAnalyticsCreateAProfilingRuleResult struct { + DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. + HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. + HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. + OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. +} +type RequestAIEndpointAnalyticsCreateAProfilingRuleConditionGroups struct { + Type string `json:"type,omitempty"` // + Condition *RequestAIEndpointAnalyticsCreateAProfilingRuleConditionGroupsCondition `json:"condition,omitempty"` // + Operator string `json:"operator,omitempty"` // + ConditionGroup []string `json:"conditionGroup,omitempty"` // +} +type RequestAIEndpointAnalyticsCreateAProfilingRuleConditionGroupsCondition struct { + Attribute string `json:"attribute,omitempty"` // + Operator string `json:"operator,omitempty"` // + Value string `json:"value,omitempty"` // + AttributeDictionary string `json:"attributeDictionary,omitempty"` // +} +type RequestAIEndpointAnalyticsImportProfilingRulesInBulk struct { + ProfilingRules *[]RequestAIEndpointAnalyticsImportProfilingRulesInBulkProfilingRules `json:"profilingRules,omitempty"` // +} +type RequestAIEndpointAnalyticsImportProfilingRulesInBulkProfilingRules struct { + RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. + RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. + RuleType string `json:"ruleType,omitempty"` // Type of the rule. + RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. + RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. + SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. + IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. + LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. + LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. + PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. + ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. + Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. + Result *RequestAIEndpointAnalyticsImportProfilingRulesInBulkProfilingRulesResult `json:"result,omitempty"` // + ConditionGroups *RequestAIEndpointAnalyticsImportProfilingRulesInBulkProfilingRulesConditionGroups `json:"conditionGroups,omitempty"` // + UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. +} +type RequestAIEndpointAnalyticsImportProfilingRulesInBulkProfilingRulesResult struct { + DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. + HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. + HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. + OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. +} +type RequestAIEndpointAnalyticsImportProfilingRulesInBulkProfilingRulesConditionGroups struct { + Type string `json:"type,omitempty"` // + Condition *RequestAIEndpointAnalyticsImportProfilingRulesInBulkProfilingRulesConditionGroupsCondition `json:"condition,omitempty"` // + Operator string `json:"operator,omitempty"` // + ConditionGroup []string `json:"conditionGroup,omitempty"` // +} +type RequestAIEndpointAnalyticsImportProfilingRulesInBulkProfilingRulesConditionGroupsCondition struct { + Attribute string `json:"attribute,omitempty"` // + Operator string `json:"operator,omitempty"` // + Value string `json:"value,omitempty"` // + AttributeDictionary string `json:"attributeDictionary,omitempty"` // +} +type RequestAIEndpointAnalyticsUpdateAnExistingProfilingRule struct { + RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. + RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. + RuleType string `json:"ruleType,omitempty"` // Type of the rule. + RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. + RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. + SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. + IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. + LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. + LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. + PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. + ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. + Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. + Result *RequestAIEndpointAnalyticsUpdateAnExistingProfilingRuleResult `json:"result,omitempty"` // + ConditionGroups *RequestAIEndpointAnalyticsUpdateAnExistingProfilingRuleConditionGroups `json:"conditionGroups,omitempty"` // + UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. +} +type RequestAIEndpointAnalyticsUpdateAnExistingProfilingRuleResult struct { + DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. + HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. + HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. + OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. +} +type RequestAIEndpointAnalyticsUpdateAnExistingProfilingRuleConditionGroups struct { + Type string `json:"type,omitempty"` // + Condition *RequestAIEndpointAnalyticsUpdateAnExistingProfilingRuleConditionGroupsCondition `json:"condition,omitempty"` // + Operator string `json:"operator,omitempty"` // + ConditionGroup []string `json:"conditionGroup,omitempty"` // +} +type RequestAIEndpointAnalyticsUpdateAnExistingProfilingRuleConditionGroupsCondition struct { + Attribute string `json:"attribute,omitempty"` // + Operator string `json:"operator,omitempty"` // + Value string `json:"value,omitempty"` // + AttributeDictionary string `json:"attributeDictionary,omitempty"` // +} + +//GetAncPolicies Get ANC policies - ae9a-f945-47a8-871e +/* Fetches the list of ANC policies available in ISE. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-anc-policies-v1 +*/ +func (s *AIEndpointAnalyticsService) GetAncPolicies() (*ResponseAIEndpointAnalyticsGetAncPolicies, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/anc-policies" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseAIEndpointAnalyticsGetAncPolicies{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAncPolicies() + } + return nil, response, fmt.Errorf("error with operation GetAncPolicies") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsGetAncPolicies) + return result, response, err + +} + +//GetAIEndpointAnalyticsAttributeDictionaries Get AI Endpoint Analytics attribute dictionaries - 409f-1aff-482a-ae1e +/* Fetches the list of attribute dictionaries. + + +@param GetAIEndpointAnalyticsAttributeDictionariesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-a-i-endpoint-analytics-attribute-dictionaries-v1 +*/ +func (s *AIEndpointAnalyticsService) GetAIEndpointAnalyticsAttributeDictionaries(GetAIEndpointAnalyticsAttributeDictionariesQueryParams *GetAIEndpointAnalyticsAttributeDictionariesQueryParams) (*ResponseAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionaries, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/dictionaries" + + queryString, _ := query.Values(GetAIEndpointAnalyticsAttributeDictionariesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionaries{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAIEndpointAnalyticsAttributeDictionaries(GetAIEndpointAnalyticsAttributeDictionariesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetAIEndpointAnalyticsAttributeDictionaries") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsGetAIEndpointAnalyticsAttributeDictionaries) + return result, response, err + +} + +//QueryTheEndpoints Query the endpoints - aeb4-7a77-425b-b30f +/* Query the endpoints, optionally using various filter and pagination criteria. 'GET /endpoints/count' API can be used to find out the total number of endpoints matching the filter criteria. + + +@param QueryTheEndpointsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!query-the-endpoints-v1 +*/ +func (s *AIEndpointAnalyticsService) QueryTheEndpoints(QueryTheEndpointsQueryParams *QueryTheEndpointsQueryParams) (*ResponseAIEndpointAnalyticsQueryTheEndpoints, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/endpoints" + + queryString, _ := query.Values(QueryTheEndpointsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseAIEndpointAnalyticsQueryTheEndpoints{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.QueryTheEndpoints(QueryTheEndpointsQueryParams) + } + return nil, response, fmt.Errorf("error with operation QueryTheEndpoints") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsQueryTheEndpoints) + return result, response, err + +} + +//FetchTheCountOfEndpoints Fetch the count of endpoints - 04b2-bbb0-472b-9ce0 +/* Fetch the total count of endpoints that match the given filter criteria. + + +@param FetchTheCountOfEndpointsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!fetch-the-count-of-endpoints-v1 +*/ +func (s *AIEndpointAnalyticsService) FetchTheCountOfEndpoints(FetchTheCountOfEndpointsQueryParams *FetchTheCountOfEndpointsQueryParams) (*ResponseAIEndpointAnalyticsFetchTheCountOfEndpoints, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/endpoints/count" + + queryString, _ := query.Values(FetchTheCountOfEndpointsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseAIEndpointAnalyticsFetchTheCountOfEndpoints{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.FetchTheCountOfEndpoints(FetchTheCountOfEndpointsQueryParams) + } + return nil, response, fmt.Errorf("error with operation FetchTheCountOfEndpoints") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsFetchTheCountOfEndpoints) + return result, response, err + +} + +//GetEndpointDetails Get endpoint details - 5881-9a5e-41a8-8cce +/* Fetches details of the endpoint for the given unique identifier 'epId'. + + +@param epID epId path parameter. Unique identifier for the endpoint. + +@param GetEndpointDetailsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-endpoint-details-v1 +*/ +func (s *AIEndpointAnalyticsService) GetEndpointDetails(epID string, GetEndpointDetailsQueryParams *GetEndpointDetailsQueryParams) (*ResponseAIEndpointAnalyticsGetEndpointDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/endpoints/{epId}" + path = strings.Replace(path, "{epId}", fmt.Sprintf("%v", epID), -1) + + queryString, _ := query.Values(GetEndpointDetailsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseAIEndpointAnalyticsGetEndpointDetails{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetEndpointDetails(epID, GetEndpointDetailsQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetEndpointDetails") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsGetEndpointDetails) + return result, response, err + +} + +//GetListOfProfilingRules Get list of profiling rules - 07b4-eb60-435a-bf90 +/* This API fetches the list of profiling rules. It can be used to show profiling rules in client applications, or export those from an environment. 'POST /profiling-rules/bulk' API can be used to import such exported rules into another environment. If this API is used to export rules to be imported into another Cisco DNA Center system, then ensure that 'includeDeleted' parameter is 'true', so that deleted rules get synchronized correctly. Use query parameters to filter the data, as required. If no filter is provided, then it will include only rules of type 'Custom Rule' in the response. By default, the response is limited to 500 records. Use 'limit' parameter to fetch higher number of records, if required. 'GET /profiling-rules/count' API can be used to find out the total number of rules in the system. + + +@param GetListOfProfilingRulesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-profiling-rules-v1 +*/ +func (s *AIEndpointAnalyticsService) GetListOfProfilingRules(GetListOfProfilingRulesQueryParams *GetListOfProfilingRulesQueryParams) (*ResponseAIEndpointAnalyticsGetListOfProfilingRules, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules" + + queryString, _ := query.Values(GetListOfProfilingRulesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseAIEndpointAnalyticsGetListOfProfilingRules{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetListOfProfilingRules(GetListOfProfilingRulesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetListOfProfilingRules") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsGetListOfProfilingRules) + return result, response, err + +} + +//GetCountOfProfilingRules Get count of profiling rules - 4dad-ba2c-4968-b494 +/* This API fetches the count of profiling rules based on the filter values provided in the query parameters. The filter parameters are same as that of 'GET /profiling-rules' API, excluding the pagination and sort parameters. + + +@param GetCountOfProfilingRulesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-count-of-profiling-rules-v1 +*/ +func (s *AIEndpointAnalyticsService) GetCountOfProfilingRules(GetCountOfProfilingRulesQueryParams *GetCountOfProfilingRulesQueryParams) (*ResponseAIEndpointAnalyticsGetCountOfProfilingRules, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/count" + + queryString, _ := query.Values(GetCountOfProfilingRulesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseAIEndpointAnalyticsGetCountOfProfilingRules{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetCountOfProfilingRules(GetCountOfProfilingRulesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetCountOfProfilingRules") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsGetCountOfProfilingRules) + return result, response, err + +} + +//GetDetailsOfASingleProfilingRule Get details of a single profiling rule - 20bc-6a22-4a4b-bead +/* Fetches details of the profiling rule for the given 'ruleId'. + + +@param ruleID ruleId path parameter. Unique rule identifier + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-details-of-a-single-profiling-rule-v1 +*/ +func (s *AIEndpointAnalyticsService) GetDetailsOfASingleProfilingRule(ruleID string) (*ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRule, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/{ruleId}" + path = strings.Replace(path, "{ruleId}", fmt.Sprintf("%v", ruleID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRule{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDetailsOfASingleProfilingRule(ruleID) + } + return nil, response, fmt.Errorf("error with operation GetDetailsOfASingleProfilingRule") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsGetDetailsOfASingleProfilingRule) + return result, response, err + +} + +//GetTaskDetails Get task details - 2689-39c4-43fa-a2f2 +/* Fetches the details of backend task. Task is typically created by making call to some other API that takes longer time to execute. + + +@param taskID taskId path parameter. Unique identifier for the task. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-details-v1 +*/ +func (s *AIEndpointAnalyticsService) GetTaskDetails(taskID string) (*ResponseAIEndpointAnalyticsGetTaskDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/tasks/{taskId}" + path = strings.Replace(path, "{taskId}", fmt.Sprintf("%v", taskID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseAIEndpointAnalyticsGetTaskDetails{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTaskDetails(taskID) + } + return nil, response, fmt.Errorf("error with operation GetTaskDetails") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsGetTaskDetails) + return result, response, err + +} + +//ProcessCmdbEndpoints Process CMDB endpoints - fa9f-f839-42fb-9e38 +/* Processes incoming CMDB endpoints data and imports the same in AI Endpoint Analytics. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!process-cmdb-endpoints-v1 +*/ +func (s *AIEndpointAnalyticsService) ProcessCmdbEndpoints(requestAIEndpointAnalyticsProcessCMDBEndpoints *RequestAIEndpointAnalyticsProcessCmdbEndpoints) (*resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/cmdb/endpoints" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestAIEndpointAnalyticsProcessCMDBEndpoints). + SetError(&Error). + Post(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ProcessCmdbEndpoints(requestAIEndpointAnalyticsProcessCMDBEndpoints) + } + + return response, fmt.Errorf("error with operation ProcessCmdbEndpoints") + } + + return response, err + +} + +//RegisterAnEndpoint Register an endpoint - a895-f856-4089-92fd +/* Register a new endpoint in the system. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!register-an-endpoint-v1 +*/ +func (s *AIEndpointAnalyticsService) RegisterAnEndpoint(requestAIEndpointAnalyticsRegisterAnEndpoint *RequestAIEndpointAnalyticsRegisterAnEndpoint) (*resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/endpoints" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestAIEndpointAnalyticsRegisterAnEndpoint). + SetError(&Error). + Post(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.RegisterAnEndpoint(requestAIEndpointAnalyticsRegisterAnEndpoint) + } + + return response, fmt.Errorf("error with operation RegisterAnEndpoint") + } + + return response, err + +} + +//CreateAProfilingRule Create a profiling rule - 6cb9-98bb-47ea-90f6 +/* Creates profiling rule from the request body. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-a-profiling-rule-v1 +*/ +func (s *AIEndpointAnalyticsService) CreateAProfilingRule(requestAIEndpointAnalyticsCreateAProfilingRule *RequestAIEndpointAnalyticsCreateAProfilingRule) (*ResponseAIEndpointAnalyticsCreateAProfilingRule, *resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestAIEndpointAnalyticsCreateAProfilingRule). + SetResult(&ResponseAIEndpointAnalyticsCreateAProfilingRule{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateAProfilingRule(requestAIEndpointAnalyticsCreateAProfilingRule) + } + + return nil, response, fmt.Errorf("error with operation CreateAProfilingRule") + } + + result := response.Result().(*ResponseAIEndpointAnalyticsCreateAProfilingRule) + return result, response, err + +} + +//ImportProfilingRulesInBulk Import profiling rules in bulk - 70bf-885f-408a-9c74 +/* This API imports the given list of profiling rules. For each record, 1) If 'ruleType' for a record is not 'Custom Rule', then it is rejected. 2) If 'ruleId' is provided in the input record, + 2a) Record with same 'ruleId' exists in the system, then it is replaced with new data. + 2b) Record with same 'ruleId' does not exist, then it is inserted in the database. +3) If 'ruleId' is not provided in the input record, then new 'ruleId' is generated by the system, and record is inserted. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-profiling-rules-in-bulk-v1 +*/ +func (s *AIEndpointAnalyticsService) ImportProfilingRulesInBulk(requestAIEndpointAnalyticsImportProfilingRulesInBulk *RequestAIEndpointAnalyticsImportProfilingRulesInBulk) (*resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/bulk" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestAIEndpointAnalyticsImportProfilingRulesInBulk). + SetError(&Error). + Post(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ImportProfilingRulesInBulk(requestAIEndpointAnalyticsImportProfilingRulesInBulk) + } + + return response, fmt.Errorf("error with operation ImportProfilingRulesInBulk") + } + + return response, err + +} + +//UpdateARegisteredEndpoint Update a registered endpoint - e5af-892c-40e9-a2a1 +/* Update attributes of a registered endpoint. + + +@param epID epId path parameter. Unique identifier for the endpoint. + +*/ +func (s *AIEndpointAnalyticsService) UpdateARegisteredEndpoint(epID string, requestAIEndpointAnalyticsUpdateARegisteredEndpoint *RequestAIEndpointAnalyticsUpdateARegisteredEndpoint) (*resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/endpoints/{epId}" + path = strings.Replace(path, "{epId}", fmt.Sprintf("%v", epID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestAIEndpointAnalyticsUpdateARegisteredEndpoint). + SetError(&Error). + Put(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateARegisteredEndpoint(epID, requestAIEndpointAnalyticsUpdateARegisteredEndpoint) + } + return response, fmt.Errorf("error with operation UpdateARegisteredEndpoint") + } + + return response, err + +} + +//ApplyAncPolicy Apply ANC Policy - 2ebb-79f2-4489-8b73 +/* Applies given ANC policy to the endpoint. + + +@param epID epId path parameter. Unique identifier for the endpoint. + +*/ +func (s *AIEndpointAnalyticsService) ApplyAncPolicy(epID string, requestAIEndpointAnalyticsApplyANCPolicy *RequestAIEndpointAnalyticsApplyAncPolicy) (*resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/endpoints/{epId}/anc-policy" + path = strings.Replace(path, "{epId}", fmt.Sprintf("%v", epID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestAIEndpointAnalyticsApplyANCPolicy). + SetError(&Error). + Put(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ApplyAncPolicy(epID, requestAIEndpointAnalyticsApplyANCPolicy) + } + return response, fmt.Errorf("error with operation ApplyAncPolicy") + } + + return response, err + +} + +//UpdateAnExistingProfilingRule Update an existing profiling rule - c197-6aa2-4fd9-82d7 +/* Updates the profiling rule for the given 'ruleId'. + + +@param ruleID ruleId path parameter. Unique rule identifier + +*/ +func (s *AIEndpointAnalyticsService) UpdateAnExistingProfilingRule(ruleID string, requestAIEndpointAnalyticsUpdateAnExistingProfilingRule *RequestAIEndpointAnalyticsUpdateAnExistingProfilingRule) (*resty.Response, error) { + path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/{ruleId}" + path = strings.Replace(path, "{ruleId}", fmt.Sprintf("%v", ruleID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestAIEndpointAnalyticsUpdateAnExistingProfilingRule). + SetError(&Error). + Put(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateAnExistingProfilingRule(ruleID, requestAIEndpointAnalyticsUpdateAnExistingProfilingRule) + } + return response, fmt.Errorf("error with operation UpdateAnExistingProfilingRule") + } + + return response, err + +} + +//DeleteAnEndpoint Delete an endpoint - 689d-e83b-442a-9435 +/* Deletes the endpoint for the given unique identifier 'epId'. + + +@param epID epId path parameter. Unique identifier for the endpoint. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-an-endpoint-v1 +*/ +func (s *AIEndpointAnalyticsService) DeleteAnEndpoint(epID string) (*resty.Response, error) { + //epID string + path := "/dna/intent/api/v1/endpoint-analytics/endpoints/{epId}" + path = strings.Replace(path, "{epId}", fmt.Sprintf("%v", epID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteAnEndpoint( + epID) + } + return response, fmt.Errorf("error with operation DeleteAnEndpoint") + } + + return response, err + +} + +//RevokeAncPolicy Revoke ANC policy - 8982-89f3-4e1b-b3dc +/* Revokes given ANC policy from the endpoint. + + +@param epID epId path parameter. Unique identifier for the endpoint. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!revoke-anc-policy-v1 +*/ +func (s *AIEndpointAnalyticsService) RevokeAncPolicy(epID string) (*resty.Response, error) { + //epID string + path := "/dna/intent/api/v1/endpoint-analytics/endpoints/{epId}/anc-policy" + path = strings.Replace(path, "{epId}", fmt.Sprintf("%v", epID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RevokeAncPolicy( + epID) + } + return response, fmt.Errorf("error with operation RevokeAncPolicy") + } + + return response, err + +} + +//DeleteAnExistingProfilingRule Delete an existing profiling rule - 6f9f-98d4-4b0b-9e7c +/* Deletes the profiling rule for the given 'ruleId'. + + +@param ruleID ruleId path parameter. Unique rule identifier + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-an-existing-profiling-rule-v1 +*/ +func (s *AIEndpointAnalyticsService) DeleteAnExistingProfilingRule(ruleID string) (*resty.Response, error) { + //ruleID string + path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/{ruleId}" + path = strings.Replace(path, "{ruleId}", fmt.Sprintf("%v", ruleID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteAnExistingProfilingRule( + ruleID) + } + return response, fmt.Errorf("error with operation DeleteAnExistingProfilingRule") + } + + return response, err + +} diff --git a/sdk/api_client.go b/sdk/api_client.go index d6b0f5b..3779ff4 100644 --- a/sdk/api_client.go +++ b/sdk/api_client.go @@ -24,8 +24,10 @@ const DNAC_PASSWORD = "DNAC_PASSWORD" const DNAC_DEBUG = "DNAC_DEBUG" const DNAC_SSL_VERIFY = "DNAC_SSL_VERIFY" const DNAC_WAIT_TIME = "DNAC_WAIT_TIME" -const VERSION = "2.3.5.3" -const USER_AGENT = "go-cisco-dnacsdk/" + VERSION + +var VERSION = "2.3.7.6.1" +var DNAC_USER_STRING = "DNAC_USER_STRING" +var USER_AGENT = "go-cisco-dnacentersdk/" + VERSION type FileDownload struct { FileName string @@ -37,16 +39,17 @@ func (f *FileDownload) SaveDownload(path string) error { return ioutil.WriteFile(fpath, f.FileData, 0664) } -// Client manages communication with the Cisco DNA Center API +// Client manages communication with the Cisco Catalyst Center API type Client struct { common service // Reuse a single struct instead of allocating one for each service on the heap. // API Services Authentication *AuthenticationService + AuthenticationManagement *AuthenticationManagementService + AIEndpointAnalytics *AIEndpointAnalyticsService ApplicationPolicy *ApplicationPolicyService Applications *ApplicationsService - AuthenticationManagement *AuthenticationManagementService - CiscoDnaCenterSystem *CiscoDnaCenterSystemService + CiscoTrustedCertificates *CiscoTrustedCertificatesService Clients *ClientsService CommandRunner *CommandRunnerService Compliance *ComplianceService @@ -55,6 +58,7 @@ type Client struct { DeviceOnboardingPnp *DeviceOnboardingPnpService DeviceReplacement *DeviceReplacementService Devices *DevicesService + DisasterRecovery *DisasterRecoveryService Discovery *DiscoveryService EoX *EoXService EventManagement *EventManagementService @@ -95,7 +99,7 @@ func (s *Client) SetAuthToken(accessToken string) { s.common.client.SetHeader("X-Auth-Token", accessToken) } -// Error indicates an error from the invocation of a Cisco DNA Center API. +// Error indicates an error from the invocation of a Cisco Catalyst Center API. var Error map[string]interface{} // NewClient creates a new API client. Requires a userAgent string describing your application. @@ -116,10 +120,15 @@ func NewClient() (*Client, error) { } // NewClientWithOptions is the client with options passed with parameters -func NewClientWithOptions(baseURL string, username string, password string, debug string, sslVerify string, waitTimeToManyRequest *int) (*Client, error) { +func NewClientWithOptions(baseURL string, username string, password string, debug string, sslVerify string, waitTimeToManyRequest *int, userString ...string) (*Client, error) { var err error - err = SetOptions(baseURL, username, password, debug, sslVerify, waitTimeToManyRequest) + var user string + if len(userString) > 0 { + user = "-" + userString[0] + } + + err = SetOptions(baseURL, username, password, debug, sslVerify, waitTimeToManyRequest, user) if err != nil { return nil, err } @@ -128,7 +137,7 @@ func NewClientWithOptions(baseURL string, username string, password string, debu } // SetOptions sets the environment variables -func SetOptions(baseURL string, username string, password string, debug string, sslVerify string, waitTimeToManyRequest *int) error { +func SetOptions(baseURL string, username string, password string, debug string, sslVerify string, waitTimeToManyRequest *int, userString string) error { var err error err = os.Setenv(DNAC_BASE_URL, baseURL) if err != nil { @@ -150,6 +159,10 @@ func SetOptions(baseURL string, username string, password string, debug string, if err != nil { return err } + err = os.Setenv(DNAC_USER_STRING, userString) + if err != nil { + return err + } if waitTimeToManyRequest != nil { err = os.Setenv(DNAC_WAIT_TIME, strconv.Itoa(*waitTimeToManyRequest)) if err != nil { @@ -164,12 +177,17 @@ func SetOptions(baseURL string, username string, password string, debug string, return nil } +func GetUserAgent() string { + return USER_AGENT + os.Getenv(DNAC_USER_STRING) +} + // NewClientNoAuth returns the client object without trying to authenticate func NewClientNoAuth() (*Client, error) { var err error client := resty.New() - client.SetHeader("User-Agent", USER_AGENT) + + client.SetHeader("User-Agent", GetUserAgent()) c := &Client{} c.common.client = client waitTimeToManyRequest := 0 @@ -186,6 +204,7 @@ func NewClientNoAuth() (*Client, error) { } else { err = fmt.Errorf("enviroment variable %s was not defined", DNAC_BASE_URL) } + if os.Getenv(DNAC_WAIT_TIME) != "" { waitTimeToManyRequest, err = strconv.Atoi(os.Getenv(DNAC_WAIT_TIME)) if err != nil { @@ -194,6 +213,7 @@ func NewClientNoAuth() (*Client, error) { } else { waitTimeToManyRequest = 1 } + c.common.client.AddRetryCondition( // RetryConditionFunc type is for retry condition function // input: non-nil Response OR request execution error @@ -201,7 +221,7 @@ func NewClientNoAuth() (*Client, error) { retry := false if r.StatusCode() == http.StatusUnauthorized { cl := resty.New() - cl.SetHeader("User-Agent", USER_AGENT) + cl.SetHeader("User-Agent", GetUserAgent()) username := os.Getenv("DNAC_USERNAME") password := os.Getenv("DNAC_PASSWORD") @@ -244,15 +264,16 @@ func NewClientNoAuth() (*Client, error) { // MaxWaitTime can be overridden as well. // Default is 2 seconds. SetRetryMaxWaitTime(time.Duration(waitTimeToManyRequest+1) * time.Minute) + if err != nil { return nil, err } c.Authentication = (*AuthenticationService)(&c.common) + c.AIEndpointAnalytics = (*AIEndpointAnalyticsService)(&c.common) c.ApplicationPolicy = (*ApplicationPolicyService)(&c.common) c.Applications = (*ApplicationsService)(&c.common) - c.AuthenticationManagement = (*AuthenticationManagementService)(&c.common) - c.CiscoDnaCenterSystem = (*CiscoDnaCenterSystemService)(&c.common) + c.CiscoTrustedCertificates = (*CiscoTrustedCertificatesService)(&c.common) c.Clients = (*ClientsService)(&c.common) c.CommandRunner = (*CommandRunnerService)(&c.common) c.Compliance = (*ComplianceService)(&c.common) @@ -261,6 +282,7 @@ func NewClientNoAuth() (*Client, error) { c.DeviceOnboardingPnp = (*DeviceOnboardingPnpService)(&c.common) c.DeviceReplacement = (*DeviceReplacementService)(&c.common) c.Devices = (*DevicesService)(&c.common) + c.DisasterRecovery = (*DisasterRecoveryService)(&c.common) c.Discovery = (*DiscoveryService)(&c.common) c.EoX = (*EoXService)(&c.common) c.EventManagement = (*EventManagementService)(&c.common) @@ -295,10 +317,17 @@ func NewClientNoAuth() (*Client, error) { } // NewClientWithOptionsNoAuth returns the client object without trying to authenticate and sets environment variables -func NewClientWithOptionsNoAuth(baseURL string, username string, password string, debug string, sslVerify string, waitTimeToManyRequest *int) (*Client, error) { +func NewClientWithOptionsNoAuth(baseURL string, username string, password string, debug string, sslVerify string, waitTimeToManyRequest *int, userString ...string) (*Client, error) { var err error - err = SetOptions(baseURL, username, password, debug, sslVerify, waitTimeToManyRequest) + var user string + if len(userString) > 0 { + user = "-" + userString[0] + } else { + user = "" + } + + err = SetOptions(baseURL, username, password, debug, sslVerify, waitTimeToManyRequest, user) if err != nil { return nil, err } @@ -343,11 +372,11 @@ func (s *Client) AuthClient() error { // RestyClient returns the resty.Client used by the sdk func (s *Client) RestyClient() *resty.Client { - s.common.client.SetHeader("User-Agent", USER_AGENT) + s.common.client.SetHeader("User-Agent", GetUserAgent()) return s.common.client } -func (s *Client) SetDNACWaitTimeToManyRequest(waitTimeToManyRequest int) error { +func (s *Client) SetCatalystWaitTimeToManyRequest(waitTimeToManyRequest int) error { err := os.Setenv(DNAC_WAIT_TIME, strconv.Itoa(waitTimeToManyRequest)) if err != nil { diff --git a/sdk/application_policy.go b/sdk/application_policy.go index 63e392c..5bee4e1 100644 --- a/sdk/application_policy.go +++ b/sdk/application_policy.go @@ -36,6 +36,24 @@ type GetApplicationsQueryParams struct { type GetQosDeviceInterfaceInfoQueryParams struct { NetworkDeviceID string `url:"networkDeviceId,omitempty"` //network device id } +type GetApplicationSetsV2QueryParams struct { + Attributes string `url:"attributes,omitempty"` //Attributes to retrieve, valid value applicationSet + Name string `url:"name,omitempty"` //Application set name + Offset float64 `url:"offset,omitempty"` //The starting point or index from where the paginated results should begin. + Limit float64 `url:"limit,omitempty"` //The limit which is the maximum number of items to include in a single page of results, max value 500 +} +type GetApplicationSetCountV2QueryParams struct { + ScalableGroupType string `url:"scalableGroupType,omitempty"` //Scalable group type to retrieve, valid value APPLICATION_GROUP +} +type GetApplicationsV2QueryParams struct { + Attributes string `url:"attributes,omitempty"` //Attributes to retrieve, valid value application + Name string `url:"name,omitempty"` //The application name + Offset float64 `url:"offset,omitempty"` //The starting point or index from where the paginated results should begin. + Limit float64 `url:"limit,omitempty"` //The limit which is the maximum number of items to include in a single page of results, max value 500 +} +type GetApplicationCountV2QueryParams struct { + ScalableGroupType string `url:"scalableGroupType,omitempty"` //scalable group type to retrieve, valid value APPLICATION +} type ResponseApplicationPolicyGetApplicationPolicy struct { Response *[]ResponseApplicationPolicyGetApplicationPolicyResponse `json:"response,omitempty"` // @@ -418,26 +436,15 @@ type ResponseApplicationPolicyDeleteApplicationResponse struct { TaskID string `json:"taskId,omitempty"` // Task Id URL string `json:"url,omitempty"` // Url } -type ResponseApplicationPolicyGetApplications struct { - Response *[]ResponseApplicationPolicyGetApplicationsResponse `json:"response,omitempty"` // -} -type ResponseApplicationPolicyGetApplicationsResponse struct { - ID string `json:"id,omitempty"` // Id - Name string `json:"name,omitempty"` // Name - IndicativeNetworkIDentity *[]ResponseApplicationPolicyGetApplicationsResponseIndicativeNetworkIDentity `json:"indicativeNetworkIdentity,omitempty"` // - NetworkApplications *[]ResponseApplicationPolicyGetApplicationsResponseNetworkApplications `json:"networkApplications,omitempty"` // - NetworkIDentity *[]ResponseApplicationPolicyGetApplicationsResponseNetworkIDentity `json:"networkIdentity,omitempty"` // - ApplicationSet *ResponseApplicationPolicyGetApplicationsResponseApplicationSet `json:"applicationSet,omitempty"` // -} -type ResponseApplicationPolicyGetApplicationsResponseIndicativeNetworkIDentity struct { - ID string `json:"id,omitempty"` // id - DisplayName string `json:"displayName,omitempty"` // displayName - LowerPort *int `json:"lowerPort,omitempty"` // lowerPort - Ports string `json:"ports,omitempty"` // ports - Protocol string `json:"protocol,omitempty"` // protocol - UpperPort *int `json:"upperPort,omitempty"` // upperPort +type ResponseApplicationPolicyGetApplications []ResponseItemApplicationPolicyGetApplications // Array of ResponseApplicationPolicyGetApplications +type ResponseItemApplicationPolicyGetApplications struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + NetworkApplications *[]ResponseItemApplicationPolicyGetApplicationsNetworkApplications `json:"networkApplications,omitempty"` // + NetworkIDentity *[]ResponseItemApplicationPolicyGetApplicationsNetworkIDentity `json:"networkIdentity,omitempty"` // + ApplicationSet *ResponseItemApplicationPolicyGetApplicationsApplicationSet `json:"applicationSet,omitempty"` // } -type ResponseApplicationPolicyGetApplicationsResponseNetworkApplications struct { +type ResponseItemApplicationPolicyGetApplicationsNetworkApplications struct { ID string `json:"id,omitempty"` // Id AppProtocol string `json:"appProtocol,omitempty"` // App Protocol ApplicationSubType string `json:"applicationSubType,omitempty"` // Application Sub Type @@ -448,27 +455,27 @@ type ResponseApplicationPolicyGetApplicationsResponseNetworkApplications struct HelpString string `json:"helpString,omitempty"` // Help String LongDescription string `json:"longDescription,omitempty"` // Long Description Name string `json:"name,omitempty"` // Name - Popularity *int `json:"popularity,omitempty"` // Popularity - Rank *int `json:"rank,omitempty"` // Rank + Popularity string `json:"popularity,omitempty"` // Popularity + Rank string `json:"rank,omitempty"` // Rank TrafficClass string `json:"trafficClass,omitempty"` // Traffic Class ServerName string `json:"serverName,omitempty"` // Server Name URL string `json:"url,omitempty"` // Url Dscp string `json:"dscp,omitempty"` // Dscp IgnoreConflict string `json:"ignoreConflict,omitempty"` // Ignore Conflict } -type ResponseApplicationPolicyGetApplicationsResponseNetworkIDentity struct { +type ResponseItemApplicationPolicyGetApplicationsNetworkIDentity struct { ID string `json:"id,omitempty"` // Id DisplayName string `json:"displayName,omitempty"` // Display Name - LowerPort *int `json:"lowerPort,omitempty"` // Lower Port + LowerPort string `json:"lowerPort,omitempty"` // Lower Port Ports string `json:"ports,omitempty"` // Ports Protocol string `json:"protocol,omitempty"` // Protocol - UpperPort *int `json:"upperPort,omitempty"` // Upper Port + UpperPort string `json:"upperPort,omitempty"` // Upper Port } -type ResponseApplicationPolicyGetApplicationsResponseApplicationSet struct { +type ResponseItemApplicationPolicyGetApplicationsApplicationSet struct { IDRef string `json:"idRef,omitempty"` // Id Ref } type ResponseApplicationPolicyGetApplicationsCount struct { - Response *int `json:"response,omitempty"` // Response + Response string `json:"response,omitempty"` // Response Version string `json:"version,omitempty"` // Version } type ResponseApplicationPolicyGetQosDeviceInterfaceInfo struct { @@ -547,6 +554,142 @@ type ResponseApplicationPolicyDeleteQosDeviceInterfaceInfoResponse struct { TaskID string `json:"taskId,omitempty"` // Task id URL string `json:"url,omitempty"` // Task url } +type ResponseApplicationPolicyCreateApplicationSetsV2 struct { + Response *ResponseApplicationPolicyCreateApplicationSetsV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyCreateApplicationSetsV2Response struct { + TaskID string `json:"taskId,omitempty"` // Task id + URL string `json:"url,omitempty"` // Task url +} +type ResponseApplicationPolicyGetApplicationSetsV2 struct { + Response *[]ResponseApplicationPolicyGetApplicationSetsV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyGetApplicationSetsV2Response struct { + ID string `json:"id,omitempty"` // Id of Application Set + InstanceID *int `json:"instanceId,omitempty"` // Instance id + DisplayName string `json:"displayName,omitempty"` // Display name + InstanceVersion *float64 `json:"instanceVersion,omitempty"` // Instance version + DefaultBusinessRelevance string `json:"defaultBusinessRelevance,omitempty"` // Default business relevance + IDentitySource *ResponseApplicationPolicyGetApplicationSetsV2ResponseIDentitySource `json:"identitySource,omitempty"` // + Name string `json:"name,omitempty"` // Application Set name + Namespace string `json:"namespace,omitempty"` // Namespace, valid value scalablegroup:application + ScalableGroupExternalHandle string `json:"scalableGroupExternalHandle,omitempty"` // Scalable group external handle, should be equal to Application Set name + ScalableGroupType string `json:"scalableGroupType,omitempty"` // Scalable group type, valid value APPLICATION_GROUP + Type string `json:"type,omitempty"` // Type, valid value scalablegroup +} +type ResponseApplicationPolicyGetApplicationSetsV2ResponseIDentitySource struct { + ID string `json:"id,omitempty"` // Id + Type string `json:"type,omitempty"` // Type of identify source. NBAR: build in Application Set, APIC_EM: custom Application Set +} +type ResponseApplicationPolicyGetApplicationSetCountV2 struct { + Response *int `json:"response,omitempty"` // Total number of Application Set + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyDeleteApplicationSetV2 struct { + Response *ResponseApplicationPolicyDeleteApplicationSetV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyDeleteApplicationSetV2Response struct { + TaskID string `json:"taskId,omitempty"` // Task id + URL string `json:"url,omitempty"` // Task url +} +type ResponseApplicationPolicyEditApplicationsV2 struct { + Response *ResponseApplicationPolicyEditApplicationsV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyEditApplicationsV2Response struct { + TaskID string `json:"taskId,omitempty"` // Task id + URL string `json:"url,omitempty"` // Task url +} +type ResponseApplicationPolicyCreateApplicationsV2 struct { + Response *ResponseApplicationPolicyCreateApplicationsV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyCreateApplicationsV2Response struct { + TaskID string `json:"taskId,omitempty"` // Task id + URL string `json:"url,omitempty"` // Task url +} +type ResponseApplicationPolicyGetApplicationsV2 struct { + Response *[]ResponseApplicationPolicyGetApplicationsV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyGetApplicationsV2Response struct { + ID string `json:"id,omitempty"` // Id of Application + InstanceID *int `json:"instanceId,omitempty"` // Instance id + DisplayName string `json:"displayName,omitempty"` // Display name + InstanceVersion *float64 `json:"instanceVersion,omitempty"` // Instance version + IDentitySource *ResponseApplicationPolicyGetApplicationsV2ResponseIDentitySource `json:"identitySource,omitempty"` // + IndicativeNetworkIDentity *[]ResponseApplicationPolicyGetApplicationsV2ResponseIndicativeNetworkIDentity `json:"indicativeNetworkIdentity,omitempty"` // + Name string `json:"name,omitempty"` // Application name + Namespace string `json:"namespace,omitempty"` // Namespace, valid value scalablegroup:application + NetworkApplications *[]ResponseApplicationPolicyGetApplicationsV2ResponseNetworkApplications `json:"networkApplications,omitempty"` // + NetworkIDentity *[]ResponseApplicationPolicyGetApplicationsV2ResponseNetworkIDentity `json:"networkIdentity,omitempty"` // + ParentScalableGroup *ResponseApplicationPolicyGetApplicationsV2ResponseParentScalableGroup `json:"parentScalableGroup,omitempty"` // + Qualifier string `json:"qualifier,omitempty"` // Qualifier, valid value application + ScalableGroupExternalHandle string `json:"scalableGroupExternalHandle,omitempty"` // Scalable group external handle, should be equal to Application name + ScalableGroupType string `json:"scalableGroupType,omitempty"` // Scalable group type, valid value APPLICATION + Type string `json:"type,omitempty"` // Type, valid value scalablegroup +} +type ResponseApplicationPolicyGetApplicationsV2ResponseIDentitySource struct { + ID string `json:"id,omitempty"` // Id + Type string `json:"type,omitempty"` // Type of identify source. NBAR: build in Application, APIC_EM: custom Application +} +type ResponseApplicationPolicyGetApplicationsV2ResponseIndicativeNetworkIDentity struct { + ID string `json:"id,omitempty"` // Id + DisplayName string `json:"displayName,omitempty"` // Display name + LowerPort *float64 `json:"lowerPort,omitempty"` // Lower port + Ports string `json:"ports,omitempty"` // Ports + Protocol string `json:"protocol,omitempty"` // Protocol + UpperPort *float64 `json:"upperPort,omitempty"` // Upper port +} +type ResponseApplicationPolicyGetApplicationsV2ResponseNetworkApplications struct { + ID string `json:"id,omitempty"` // Id + AppProtocol string `json:"appProtocol,omitempty"` // App protocol + ApplicationSubType string `json:"applicationSubType,omitempty"` // Application sub type, LEARNED: discovered application, NONE: nbar and custom application + ApplicationType string `json:"applicationType,omitempty"` // Application type, DEFAULT: nbar application, DEFAULT_MODIFIED: nbar modified application, CUSTOM: custom application + CategoryID string `json:"categoryId,omitempty"` // Category id + DisplayName string `json:"displayName,omitempty"` // Display name + Dscp string `json:"dscp,omitempty"` // Dscp + EngineID string `json:"engineId,omitempty"` // Engine id + HelpString string `json:"helpString,omitempty"` // Help string + LongDescription string `json:"longDescription,omitempty"` // Long description + Name string `json:"name,omitempty"` // Application name + Popularity *float64 `json:"popularity,omitempty"` // Popularity + Rank *int `json:"rank,omitempty"` // Rank, any value between 1 to 65535 + SelectorID string `json:"selectorId,omitempty"` // Selector id + ServerName string `json:"serverName,omitempty"` // Server name + URL string `json:"url,omitempty"` // Url + TrafficClass string `json:"trafficClass,omitempty"` // Traffic class +} +type ResponseApplicationPolicyGetApplicationsV2ResponseNetworkIDentity struct { + ID string `json:"id,omitempty"` // Id + DisplayName string `json:"displayName,omitempty"` // Display name + IPv4Subnet []string `json:"ipv4Subnet,omitempty"` // Ipv4 subnet + IPv6Subnet *[]ResponseApplicationPolicyGetApplicationsV2ResponseNetworkIDentityIPv6Subnet `json:"ipv6Subnet,omitempty"` // Ipv6 subnet + LowerPort *float64 `json:"lowerPort,omitempty"` // Lower port + Ports string `json:"ports,omitempty"` // Ports + Protocol string `json:"protocol,omitempty"` // Protocol + UpperPort *float64 `json:"upperPort,omitempty"` // Upper port +} +type ResponseApplicationPolicyGetApplicationsV2ResponseNetworkIDentityIPv6Subnet interface{} +type ResponseApplicationPolicyGetApplicationsV2ResponseParentScalableGroup struct { + ID string `json:"id,omitempty"` // Id + IDRef string `json:"idRef,omitempty"` // Id reference to parent application set +} +type ResponseApplicationPolicyGetApplicationCountV2 struct { + Response *int `json:"response,omitempty"` // Total number of Application + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyDeleteApplicationV2 struct { + Response *ResponseApplicationPolicyDeleteApplicationV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseApplicationPolicyDeleteApplicationV2Response struct { + TaskID string `json:"taskId,omitempty"` // Task id + URL string `json:"url,omitempty"` // Task url +} type RequestApplicationPolicyApplicationPolicyIntent struct { CreateList *[]RequestApplicationPolicyApplicationPolicyIntentCreateList `json:"createList,omitempty"` // UpdateList *[]RequestApplicationPolicyApplicationPolicyIntentUpdateList `json:"updateList,omitempty"` // @@ -568,7 +711,7 @@ type RequestApplicationPolicyApplicationPolicyIntentCreateListAdvancedPolicyScop AdvancedPolicyScopeElement *[]RequestApplicationPolicyApplicationPolicyIntentCreateListAdvancedPolicyScopeAdvancedPolicyScopeElement `json:"advancedPolicyScopeElement,omitempty"` // } type RequestApplicationPolicyApplicationPolicyIntentCreateListAdvancedPolicyScopeAdvancedPolicyScopeElement struct { - GroupID []string `json:"groupId,omitempty"` // Group id + GroupID []string `json:"groupId,omitempty"` // The site(s) ID where the Application QoS Policy will be deployed. SSID []string `json:"ssid,omitempty"` // Ssid } type RequestApplicationPolicyApplicationPolicyIntentCreateListExclusiveContract struct { @@ -614,7 +757,7 @@ type RequestApplicationPolicyApplicationPolicyIntentUpdateListAdvancedPolicyScop } type RequestApplicationPolicyApplicationPolicyIntentUpdateListAdvancedPolicyScopeAdvancedPolicyScopeElement struct { ID string `json:"id,omitempty"` // Id of Advance policy scope element - GroupID []string `json:"groupId,omitempty"` // Group id + GroupID []string `json:"groupId,omitempty"` // The site(s) ID where the Application QoS Policy will be deployed. SSID []string `json:"ssid,omitempty"` // Ssid } type RequestApplicationPolicyApplicationPolicyIntentUpdateListExclusiveContract struct { @@ -654,7 +797,7 @@ type RequestItemApplicationPolicyUpdateApplicationPolicyQueuingProfile struct { } type RequestItemApplicationPolicyUpdateApplicationPolicyQueuingProfileClause struct { InstanceID *int `json:"instanceId,omitempty"` // Instance id - Type string `json:"type,omitempty"` // Type + Type string `json:"type,omitempty"` // The allowed clause types are: BANDWIDTH, DSCP_CUSTOMIZATION IsCommonBetweenAllInterfaceSpeeds *bool `json:"isCommonBetweenAllInterfaceSpeeds,omitempty"` // Is common between all interface speeds InterfaceSpeedBandwidthClauses *[]RequestItemApplicationPolicyUpdateApplicationPolicyQueuingProfileClauseInterfaceSpeedBandwidthClauses `json:"interfaceSpeedBandwidthClauses,omitempty"` // TcDscpSettings *[]RequestItemApplicationPolicyUpdateApplicationPolicyQueuingProfileClauseTcDscpSettings `json:"tcDscpSettings,omitempty"` // @@ -681,7 +824,7 @@ type RequestItemApplicationPolicyCreateApplicationPolicyQueuingProfile struct { Clause *[]RequestItemApplicationPolicyCreateApplicationPolicyQueuingProfileClause `json:"clause,omitempty"` // } type RequestItemApplicationPolicyCreateApplicationPolicyQueuingProfileClause struct { - Type string `json:"type,omitempty"` // Type + Type string `json:"type,omitempty"` // The allowed clause types are: BANDWIDTH, DSCP_CUSTOMIZATION IsCommonBetweenAllInterfaceSpeeds *bool `json:"isCommonBetweenAllInterfaceSpeeds,omitempty"` // Is common between all interface speeds InterfaceSpeedBandwidthClauses *[]RequestItemApplicationPolicyCreateApplicationPolicyQueuingProfileClauseInterfaceSpeedBandwidthClauses `json:"interfaceSpeedBandwidthClauses,omitempty"` // TcDscpSettings *[]RequestItemApplicationPolicyCreateApplicationPolicyQueuingProfileClauseTcDscpSettings `json:"tcDscpSettings,omitempty"` // @@ -710,6 +853,14 @@ type RequestItemApplicationPolicyCreateApplication struct { ApplicationSet *RequestItemApplicationPolicyCreateApplicationApplicationSet `json:"applicationSet,omitempty"` // IndicativeNetworkIDentity *[]RequestItemApplicationPolicyCreateApplicationIndicativeNetworkIDentity `json:"indicativeNetworkIdentity,omitempty"` // } +type RequestItemApplicationPolicyCreateApplicationIndicativeNetworkIDentity struct { + ID string `json:"id,omitempty"` // id + DisplayName string `json:"displayName,omitempty"` // displayName + LowerPort *int `json:"lowerPort,omitempty"` // lowerPort + Ports string `json:"ports,omitempty"` // ports + Protocol string `json:"protocol,omitempty"` // protocol + UpperPort *int `json:"upperPort,omitempty"` // upperPort +} type RequestItemApplicationPolicyCreateApplicationNetworkApplications struct { AppProtocol string `json:"appProtocol,omitempty"` // App Protocol ApplicationSubType string `json:"applicationSubType,omitempty"` // Application Sub Type @@ -738,14 +889,6 @@ type RequestItemApplicationPolicyCreateApplicationNetworkIDentity struct { type RequestItemApplicationPolicyCreateApplicationApplicationSet struct { IDRef string `json:"idRef,omitempty"` // Id Ref } -type RequestItemApplicationPolicyCreateApplicationIndicativeNetworkIDentity struct { - ID string `json:"id,omitempty"` // id - DisplayName string `json:"displayName,omitempty"` // displayName - LowerPort *int `json:"lowerPort,omitempty"` // lowerPort - Ports string `json:"ports,omitempty"` // ports - Protocol string `json:"protocol,omitempty"` // protocol - UpperPort *int `json:"upperPort,omitempty"` // upperPort -} type RequestApplicationPolicyEditApplication []RequestItemApplicationPolicyEditApplication // Array of RequestApplicationPolicyEditApplication type RequestItemApplicationPolicyEditApplication struct { ID string `json:"id,omitempty"` // Id @@ -816,6 +959,117 @@ type RequestItemApplicationPolicyCreateQosDeviceInterfaceInfoQosDeviceInterfaceI Role string `json:"role,omitempty"` // Interface role UploadBW *int `json:"uploadBW,omitempty"` // Upload bandwidth } +type RequestApplicationPolicyCreateApplicationSetsV2 []RequestItemApplicationPolicyCreateApplicationSetsV2 // Array of RequestApplicationPolicyCreateApplicationSetsV2 +type RequestItemApplicationPolicyCreateApplicationSetsV2 struct { + Name string `json:"name,omitempty"` // Application Set name + ScalableGroupType string `json:"scalableGroupType,omitempty"` // Scalable group type, should be set to APPLICATION_GROUP + DefaultBusinessRelevance string `json:"defaultBusinessRelevance,omitempty"` // Default business relevance + Namespace string `json:"namespace,omitempty"` // Namespace, should be set to scalablegroup:application + Qualifier string `json:"qualifier,omitempty"` // Qualifier, should be set to application + Type string `json:"type,omitempty"` // Type, should be set to scalablegroup + ScalableGroupExternalHandle string `json:"scalableGroupExternalHandle,omitempty"` // Scalable group external handle, should be set to application set name +} +type RequestApplicationPolicyEditApplicationsV2 []RequestItemApplicationPolicyEditApplicationsV2 // Array of RequestApplicationPolicyEditApplicationsV2 +type RequestItemApplicationPolicyEditApplicationsV2 struct { + ID string `json:"id,omitempty"` // Application id + InstanceID *int `json:"instanceId,omitempty"` // Instance id + DisplayName string `json:"displayName,omitempty"` // Display name + InstanceVersion *float64 `json:"instanceVersion,omitempty"` // Instance version + IndicativeNetworkIDentity *[]RequestItemApplicationPolicyEditApplicationsV2IndicativeNetworkIDentity `json:"indicativeNetworkIdentity,omitempty"` // + Name string `json:"name,omitempty"` // Application name + Namespace string `json:"namespace,omitempty"` // Namespace + NetworkApplications *[]RequestItemApplicationPolicyEditApplicationsV2NetworkApplications `json:"networkApplications,omitempty"` // + NetworkIDentity *[]RequestItemApplicationPolicyEditApplicationsV2NetworkIDentity `json:"networkIdentity,omitempty"` // + ParentScalableGroup *RequestItemApplicationPolicyEditApplicationsV2ParentScalableGroup `json:"parentScalableGroup,omitempty"` // + Qualifier string `json:"qualifier,omitempty"` // Qualifier, valid value application + ScalableGroupExternalHandle string `json:"scalableGroupExternalHandle,omitempty"` // Scalable group external handle, should be equal to Application name + ScalableGroupType string `json:"scalableGroupType,omitempty"` // Scalable group type, valid value APPLICATION + Type string `json:"type,omitempty"` // Type, valid value scalablegroup +} +type RequestItemApplicationPolicyEditApplicationsV2IndicativeNetworkIDentity struct { + ID string `json:"id,omitempty"` // Id + DisplayName string `json:"displayName,omitempty"` // Display name + LowerPort *float64 `json:"lowerPort,omitempty"` // Lower port + Ports string `json:"ports,omitempty"` // Ports + Protocol string `json:"protocol,omitempty"` // Protocol + UpperPort *float64 `json:"upperPort,omitempty"` // Upper port +} +type RequestItemApplicationPolicyEditApplicationsV2NetworkApplications struct { + ID string `json:"id,omitempty"` // Id + ApplicationSubType string `json:"applicationSubType,omitempty"` // Application sub type, LEARNED: discovered application, NONE: nbar and custom application + ApplicationType string `json:"applicationType,omitempty"` // Application type, DEFAULT: nbar application, DEFAULT_MODIFIED: nbar modified application, CUSTOM: custom application + CategoryID string `json:"categoryId,omitempty"` // Category id + DisplayName string `json:"displayName,omitempty"` // Display name + EngineID string `json:"engineId,omitempty"` // Engine id + HelpString string `json:"helpString,omitempty"` // Help string + LongDescription string `json:"longDescription,omitempty"` // Long description + Name string `json:"name,omitempty"` // Application name + Popularity *float64 `json:"popularity,omitempty"` // Popularity + Rank *int `json:"rank,omitempty"` // Rank, any value between 1 to 65535 + SelectorID string `json:"selectorId,omitempty"` // Selector id + Dscp string `json:"dscp,omitempty"` // Dscp + AppProtocol string `json:"appProtocol,omitempty"` // App protocol + ServerName string `json:"serverName,omitempty"` // Server name + URL string `json:"url,omitempty"` // Url + TrafficClass string `json:"trafficClass,omitempty"` // Traffic class + IgnoreConflict *bool `json:"ignoreConflict,omitempty"` // Ignore conflict, true or false +} +type RequestItemApplicationPolicyEditApplicationsV2NetworkIDentity struct { + ID string `json:"id,omitempty"` // Id + DisplayName string `json:"displayName,omitempty"` // Display name + IPv4Subnet []string `json:"ipv4Subnet,omitempty"` // Ipv4 subnet + IPv6Subnet *[]RequestItemApplicationPolicyEditApplicationsV2NetworkIDentityIPv6Subnet `json:"ipv6Subnet,omitempty"` // Ipv6 subnet + LowerPort *float64 `json:"lowerPort,omitempty"` // Lower port + Ports string `json:"ports,omitempty"` // Ports + Protocol string `json:"protocol,omitempty"` // Protocol + UpperPort *float64 `json:"upperPort,omitempty"` // Upper port +} +type RequestItemApplicationPolicyEditApplicationsV2NetworkIDentityIPv6Subnet interface{} +type RequestItemApplicationPolicyEditApplicationsV2ParentScalableGroup struct { + IDRef string `json:"idRef,omitempty"` // Id reference to parent application set +} +type RequestApplicationPolicyCreateApplicationsV2 []RequestItemApplicationPolicyCreateApplicationsV2 // Array of RequestApplicationPolicyCreateApplicationsV2 +type RequestItemApplicationPolicyCreateApplicationsV2 struct { + Name string `json:"name,omitempty"` // Application name + NetworkApplications *[]RequestItemApplicationPolicyCreateApplicationsV2NetworkApplications `json:"networkApplications,omitempty"` // + ParentScalableGroup *RequestItemApplicationPolicyCreateApplicationsV2ParentScalableGroup `json:"parentScalableGroup,omitempty"` // + NetworkIDentity *[]RequestItemApplicationPolicyCreateApplicationsV2NetworkIDentity `json:"networkIdentity,omitempty"` // + IndicativeNetworkIDentity *[]RequestItemApplicationPolicyCreateApplicationsV2IndicativeNetworkIDentity `json:"indicativeNetworkIdentity,omitempty"` // + ScalableGroupType string `json:"scalableGroupType,omitempty"` // Scalable group type, valid value APPLICATION + Type string `json:"type,omitempty"` // Type, valid value scalablegroup +} +type RequestItemApplicationPolicyCreateApplicationsV2NetworkApplications struct { + HelpString string `json:"helpString,omitempty"` // Help string + ApplicationType string `json:"applicationType,omitempty"` // Application type + Type string `json:"type,omitempty"` // Custom application type + Dscp string `json:"dscp,omitempty"` // Dscp, valid only in case of _server-ip custom application type + AppProtocol string `json:"appProtocol,omitempty"` // App protocol, in case of _servername should not be set, in case of _url should be set to TCP + ServerName string `json:"serverName,omitempty"` // Server name, should be set only in case of _servername + URL string `json:"url,omitempty"` // Url, should be set only in case of _url + TrafficClass string `json:"trafficClass,omitempty"` // Traffic class + CategoryID string `json:"categoryId,omitempty"` // Category id + IgnoreConflict *bool `json:"ignoreConflict,omitempty"` // Ignore conflict, true or false + Rank *int `json:"rank,omitempty"` // Rank, should be set to 1 + EngineID *int `json:"engineId,omitempty"` // Engine id, should be set to 6 +} +type RequestItemApplicationPolicyCreateApplicationsV2ParentScalableGroup struct { + IDRef string `json:"idRef,omitempty"` // Id reference to parent application set +} +type RequestItemApplicationPolicyCreateApplicationsV2NetworkIDentity struct { + Protocol string `json:"protocol,omitempty"` // Protocol + Ports string `json:"ports,omitempty"` // Ports + IPv4Subnet []string `json:"ipv4Subnet,omitempty"` // Ipv4 subnet + LowerPort *float64 `json:"lowerPort,omitempty"` // Lower port + UpperPort *float64 `json:"upperPort,omitempty"` // Upper port +} +type RequestItemApplicationPolicyCreateApplicationsV2IndicativeNetworkIDentity struct { + Protocol string `json:"protocol,omitempty"` // Protocol + Ports string `json:"ports,omitempty"` // Ports + IPv4Subnet []string `json:"ipv4Subnet,omitempty"` // Ipv4 subnet + IPv6Subnet []string `json:"ipv6Subnet,omitempty"` // Ipv6 subnet + LowerPort *float64 `json:"lowerPort,omitempty"` // The minimum port when used as a port range. For single port number, ports attribute should be used. + UpperPort *float64 `json:"upperPort,omitempty"` // The maximum port when used as a port range. For single port number, ports attribute should be used. +} //GetApplicationPolicy Get Application Policy - 3d9f-6b17-4879-8e45 /* Get all existing application policies @@ -823,7 +1077,7 @@ type RequestItemApplicationPolicyCreateQosDeviceInterfaceInfoQosDeviceInterfaceI @param GetApplicationPolicyQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-policy +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-policy-v1 */ func (s *ApplicationPolicyService) GetApplicationPolicy(GetApplicationPolicyQueryParams *GetApplicationPolicyQueryParams) (*ResponseApplicationPolicyGetApplicationPolicy, *resty.Response, error) { path := "/dna/intent/api/v1/app-policy" @@ -859,7 +1113,7 @@ func (s *ApplicationPolicyService) GetApplicationPolicy(GetApplicationPolicyQuer -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-policy-default +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-policy-default-v1 */ func (s *ApplicationPolicyService) GetApplicationPolicyDefault() (*ResponseApplicationPolicyGetApplicationPolicyDefault, *resty.Response, error) { path := "/dna/intent/api/v1/app-policy-default" @@ -894,7 +1148,7 @@ func (s *ApplicationPolicyService) GetApplicationPolicyDefault() (*ResponseAppli @param GetApplicationPolicyQueuingProfileQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-policy-queuing-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-policy-queuing-profile-v1 */ func (s *ApplicationPolicyService) GetApplicationPolicyQueuingProfile(GetApplicationPolicyQueuingProfileQueryParams *GetApplicationPolicyQueuingProfileQueryParams) (*ResponseApplicationPolicyGetApplicationPolicyQueuingProfile, *resty.Response, error) { path := "/dna/intent/api/v1/app-policy-queuing-profile" @@ -930,7 +1184,7 @@ func (s *ApplicationPolicyService) GetApplicationPolicyQueuingProfile(GetApplica -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-policy-queuing-profile-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-policy-queuing-profile-count-v1 */ func (s *ApplicationPolicyService) GetApplicationPolicyQueuingProfileCount() (*ResponseApplicationPolicyGetApplicationPolicyQueuingProfileCount, *resty.Response, error) { path := "/dna/intent/api/v1/app-policy-queuing-profile-count" @@ -965,7 +1219,7 @@ func (s *ApplicationPolicyService) GetApplicationPolicyQueuingProfileCount() (*R @param GetApplicationSetsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-sets +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-sets-v1 */ func (s *ApplicationPolicyService) GetApplicationSets(GetApplicationSetsQueryParams *GetApplicationSetsQueryParams) (*ResponseApplicationPolicyGetApplicationSets, *resty.Response, error) { path := "/dna/intent/api/v1/application-policy-application-set" @@ -1001,7 +1255,7 @@ func (s *ApplicationPolicyService) GetApplicationSets(GetApplicationSetsQueryPar -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-sets-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-sets-count-v1 */ func (s *ApplicationPolicyService) GetApplicationSetsCount() (*ResponseApplicationPolicyGetApplicationSetsCount, *resty.Response, error) { path := "/dna/intent/api/v1/application-policy-application-set-count" @@ -1036,7 +1290,7 @@ func (s *ApplicationPolicyService) GetApplicationSetsCount() (*ResponseApplicati @param GetApplicationsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-applications +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-applications-v1 */ func (s *ApplicationPolicyService) GetApplications(GetApplicationsQueryParams *GetApplicationsQueryParams) (*ResponseApplicationPolicyGetApplications, *resty.Response, error) { path := "/dna/intent/api/v1/applications" @@ -1072,7 +1326,7 @@ func (s *ApplicationPolicyService) GetApplications(GetApplicationsQueryParams *G -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-applications-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-applications-count-v1 */ func (s *ApplicationPolicyService) GetApplicationsCount() (*ResponseApplicationPolicyGetApplicationsCount, *resty.Response, error) { path := "/dna/intent/api/v1/applications-count" @@ -1107,7 +1361,7 @@ func (s *ApplicationPolicyService) GetApplicationsCount() (*ResponseApplicationP @param GetQosDeviceInterfaceInfoQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-qos-device-interface-info +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-qos-device-interface-info-v1 */ func (s *ApplicationPolicyService) GetQosDeviceInterfaceInfo(GetQosDeviceInterfaceInfoQueryParams *GetQosDeviceInterfaceInfoQueryParams) (*ResponseApplicationPolicyGetQosDeviceInterfaceInfo, *resty.Response, error) { path := "/dna/intent/api/v1/qos-device-interface-info" @@ -1143,7 +1397,7 @@ func (s *ApplicationPolicyService) GetQosDeviceInterfaceInfo(GetQosDeviceInterfa -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-qos-device-interface-info-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-qos-device-interface-info-count-v1 */ func (s *ApplicationPolicyService) GetQosDeviceInterfaceInfoCount() (*ResponseApplicationPolicyGetQosDeviceInterfaceInfoCount, *resty.Response, error) { path := "/dna/intent/api/v1/qos-device-interface-info-count" @@ -1172,12 +1426,160 @@ func (s *ApplicationPolicyService) GetQosDeviceInterfaceInfoCount() (*ResponseAp } +//GetApplicationSetsV2 Get Application Set/s - 00ac-d849-43aa-bc75 +/* Get application set/s by offset/limit or by name + + +@param GetApplicationSetsV2QueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-sets-v2 +*/ +func (s *ApplicationPolicyService) GetApplicationSetsV2(GetApplicationSetsV2QueryParams *GetApplicationSetsV2QueryParams) (*ResponseApplicationPolicyGetApplicationSetsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/application-policy-application-set" + + queryString, _ := query.Values(GetApplicationSetsV2QueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseApplicationPolicyGetApplicationSetsV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetApplicationSetsV2(GetApplicationSetsV2QueryParams) + } + return nil, response, fmt.Errorf("error with operation GetApplicationSetsV2") + } + + result := response.Result().(*ResponseApplicationPolicyGetApplicationSetsV2) + return result, response, err + +} + +//GetApplicationSetCountV2 Get Application Set Count - 798c-fa61-432b-a67e +/* Get the number of all existing application sets + + +@param GetApplicationSetCountV2QueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-set-count-v2 +*/ +func (s *ApplicationPolicyService) GetApplicationSetCountV2(GetApplicationSetCountV2QueryParams *GetApplicationSetCountV2QueryParams) (*ResponseApplicationPolicyGetApplicationSetCountV2, *resty.Response, error) { + path := "/dna/intent/api/v2/application-policy-application-set-count" + + queryString, _ := query.Values(GetApplicationSetCountV2QueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseApplicationPolicyGetApplicationSetCountV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetApplicationSetCountV2(GetApplicationSetCountV2QueryParams) + } + return nil, response, fmt.Errorf("error with operation GetApplicationSetCountV2") + } + + result := response.Result().(*ResponseApplicationPolicyGetApplicationSetCountV2) + return result, response, err + +} + +//GetApplicationsV2 Get Application/s - a395-8970-43bb-bedd +/* Get application/s by offset/limit or by name + + +@param GetApplicationsV2QueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-applications-v2 +*/ +func (s *ApplicationPolicyService) GetApplicationsV2(GetApplicationsV2QueryParams *GetApplicationsV2QueryParams) (*ResponseApplicationPolicyGetApplicationsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/applications" + + queryString, _ := query.Values(GetApplicationsV2QueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseApplicationPolicyGetApplicationsV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetApplicationsV2(GetApplicationsV2QueryParams) + } + return nil, response, fmt.Errorf("error with operation GetApplicationsV2") + } + + result := response.Result().(*ResponseApplicationPolicyGetApplicationsV2) + return result, response, err + +} + +//GetApplicationCountV2 Get Application Count - cfa3-7a5c-4c08-b24e +/* Get the number of all existing applications + + +@param GetApplicationCountV2QueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-application-count-v2 +*/ +func (s *ApplicationPolicyService) GetApplicationCountV2(GetApplicationCountV2QueryParams *GetApplicationCountV2QueryParams) (*ResponseApplicationPolicyGetApplicationCountV2, *resty.Response, error) { + path := "/dna/intent/api/v2/applications-count" + + queryString, _ := query.Values(GetApplicationCountV2QueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseApplicationPolicyGetApplicationCountV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetApplicationCountV2(GetApplicationCountV2QueryParams) + } + return nil, response, fmt.Errorf("error with operation GetApplicationCountV2") + } + + result := response.Result().(*ResponseApplicationPolicyGetApplicationCountV2) + return result, response, err + +} + //ApplicationPolicyIntent Application Policy Intent - aea4-bb7b-4329-bd06 /* Create/Update/Delete application policy -Documentation Link: https://developer.cisco.com/docs/dna-center/#!application-policy-intent +Documentation Link: https://developer.cisco.com/docs/dna-center/#!application-policy-intent-v1 */ func (s *ApplicationPolicyService) ApplicationPolicyIntent(requestApplicationPolicyApplicationPolicyIntent *RequestApplicationPolicyApplicationPolicyIntent) (*ResponseApplicationPolicyApplicationPolicyIntent, *resty.Response, error) { path := "/dna/intent/api/v1/app-policy-intent" @@ -1214,7 +1616,7 @@ func (s *ApplicationPolicyService) ApplicationPolicyIntent(requestApplicationPol -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-application-policy-queuing-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-application-policy-queuing-profile-v1 */ func (s *ApplicationPolicyService) CreateApplicationPolicyQueuingProfile(requestApplicationPolicyCreateApplicationPolicyQueuingProfile *RequestApplicationPolicyCreateApplicationPolicyQueuingProfile) (*ResponseApplicationPolicyCreateApplicationPolicyQueuingProfile, *resty.Response, error) { path := "/dna/intent/api/v1/app-policy-queuing-profile" @@ -1251,7 +1653,7 @@ func (s *ApplicationPolicyService) CreateApplicationPolicyQueuingProfile(request -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-application-set +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-application-set-v1 */ func (s *ApplicationPolicyService) CreateApplicationSet(requestApplicationPolicyCreateApplicationSet *RequestApplicationPolicyCreateApplicationSet) (*ResponseApplicationPolicyCreateApplicationSet, *resty.Response, error) { path := "/dna/intent/api/v1/application-policy-application-set" @@ -1288,7 +1690,7 @@ func (s *ApplicationPolicyService) CreateApplicationSet(requestApplicationPolicy -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-application +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-application-v1 */ func (s *ApplicationPolicyService) CreateApplication(requestApplicationPolicyCreateApplication *RequestApplicationPolicyCreateApplication) (*ResponseApplicationPolicyCreateApplication, *resty.Response, error) { path := "/dna/intent/api/v1/applications" @@ -1325,7 +1727,7 @@ func (s *ApplicationPolicyService) CreateApplication(requestApplicationPolicyCre -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-qos-device-interface-info +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-qos-device-interface-info-v1 */ func (s *ApplicationPolicyService) CreateQosDeviceInterfaceInfo(requestApplicationPolicyCreateQosDeviceInterfaceInfo *RequestApplicationPolicyCreateQosDeviceInterfaceInfo) (*ResponseApplicationPolicyCreateQosDeviceInterfaceInfo, *resty.Response, error) { path := "/dna/intent/api/v1/qos-device-interface-info" @@ -1357,6 +1759,80 @@ func (s *ApplicationPolicyService) CreateQosDeviceInterfaceInfo(requestApplicati } +//CreateApplicationSetsV2 Create Application Set/s - e4bf-ca74-45f9-a374 +/* Create new custom application set/s + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-application-sets-v2 +*/ +func (s *ApplicationPolicyService) CreateApplicationSetsV2(requestApplicationPolicyCreateApplicationSetsV2 *RequestApplicationPolicyCreateApplicationSetsV2) (*ResponseApplicationPolicyCreateApplicationSetsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/application-policy-application-set" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestApplicationPolicyCreateApplicationSetsV2). + SetResult(&ResponseApplicationPolicyCreateApplicationSetsV2{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateApplicationSetsV2(requestApplicationPolicyCreateApplicationSetsV2) + } + + return nil, response, fmt.Errorf("error with operation CreateApplicationSetsV2") + } + + result := response.Result().(*ResponseApplicationPolicyCreateApplicationSetsV2) + return result, response, err + +} + +//CreateApplicationsV2 Create Application/s - b4a6-dae7-4b29-992c +/* Create new custom application/s + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-applications-v2 +*/ +func (s *ApplicationPolicyService) CreateApplicationsV2(requestApplicationPolicyCreateApplicationsV2 *RequestApplicationPolicyCreateApplicationsV2) (*ResponseApplicationPolicyCreateApplicationsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/applications" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestApplicationPolicyCreateApplicationsV2). + SetResult(&ResponseApplicationPolicyCreateApplicationsV2{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateApplicationsV2(requestApplicationPolicyCreateApplicationsV2) + } + + return nil, response, fmt.Errorf("error with operation CreateApplicationsV2") + } + + result := response.Result().(*ResponseApplicationPolicyCreateApplicationsV2) + return result, response, err + +} + //UpdateApplicationPolicyQueuingProfile Update Application Policy Queuing Profile - da98-38ea-44aa-8024 /* Update existing custom application queuing profile @@ -1456,6 +1932,39 @@ func (s *ApplicationPolicyService) UpdateQosDeviceInterfaceInfo(requestApplicati } +//EditApplicationsV2 Edit Application/s - 6995-2aea-4f2b-a053 +/* Edit the attributes of an existing application + + + */ +func (s *ApplicationPolicyService) EditApplicationsV2(requestApplicationPolicyEditApplicationsV2 *RequestApplicationPolicyEditApplicationsV2) (*ResponseApplicationPolicyEditApplicationsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/applications" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestApplicationPolicyEditApplicationsV2). + SetResult(&ResponseApplicationPolicyEditApplicationsV2{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.EditApplicationsV2(requestApplicationPolicyEditApplicationsV2) + } + return nil, response, fmt.Errorf("error with operation EditApplicationsV2") + } + + result := response.Result().(*ResponseApplicationPolicyEditApplicationsV2) + return result, response, err + +} + //DeleteApplicationPolicyQueuingProfile Delete Application Policy Queuing Profile - 09a0-482f-422b-b325 /* Delete existing custom application policy queuing profile by id @@ -1463,7 +1972,7 @@ func (s *ApplicationPolicyService) UpdateQosDeviceInterfaceInfo(requestApplicati @param id id path parameter. Id of custom queuing profile to delete -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-application-policy-queuing-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-application-policy-queuing-profile-v1 */ func (s *ApplicationPolicyService) DeleteApplicationPolicyQueuingProfile(id string) (*ResponseApplicationPolicyDeleteApplicationPolicyQueuingProfile, *resty.Response, error) { //id string @@ -1500,7 +2009,7 @@ func (s *ApplicationPolicyService) DeleteApplicationPolicyQueuingProfile(id stri @param DeleteApplicationSetQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-application-set +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-application-set-v1 */ func (s *ApplicationPolicyService) DeleteApplicationSet(DeleteApplicationSetQueryParams *DeleteApplicationSetQueryParams) (*ResponseApplicationPolicyDeleteApplicationSet, *resty.Response, error) { //DeleteApplicationSetQueryParams *DeleteApplicationSetQueryParams @@ -1538,7 +2047,7 @@ func (s *ApplicationPolicyService) DeleteApplicationSet(DeleteApplicationSetQuer @param DeleteApplicationQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-application +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-application-v1 */ func (s *ApplicationPolicyService) DeleteApplication(DeleteApplicationQueryParams *DeleteApplicationQueryParams) (*ResponseApplicationPolicyDeleteApplication, *resty.Response, error) { //DeleteApplicationQueryParams *DeleteApplicationQueryParams @@ -1577,7 +2086,7 @@ func (s *ApplicationPolicyService) DeleteApplication(DeleteApplicationQueryParam @param id id path parameter. Id of the qos device info, this object holds all qos device interface infos associate with network device id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-qos-device-interface-info +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-qos-device-interface-info-v1 */ func (s *ApplicationPolicyService) DeleteQosDeviceInterfaceInfo(id string) (*ResponseApplicationPolicyDeleteQosDeviceInterfaceInfo, *resty.Response, error) { //id string @@ -1607,3 +2116,79 @@ func (s *ApplicationPolicyService) DeleteQosDeviceInterfaceInfo(id string) (*Res return result, response, err } + +//DeleteApplicationSetV2 Delete Application Set - b2a9-08f1-4879-9f70 +/* Delete existing custom application set by id + + +@param id id path parameter. Id of custom application set to delete + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-application-set-v2 +*/ +func (s *ApplicationPolicyService) DeleteApplicationSetV2(id string) (*ResponseApplicationPolicyDeleteApplicationSetV2, *resty.Response, error) { + //id string + path := "/dna/intent/api/v2/application-policy-application-set/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseApplicationPolicyDeleteApplicationSetV2{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteApplicationSetV2(id) + } + return nil, response, fmt.Errorf("error with operation DeleteApplicationSetV2") + } + + result := response.Result().(*ResponseApplicationPolicyDeleteApplicationSetV2) + return result, response, err + +} + +//DeleteApplicationV2 Delete Application - 9098-8ada-4abb-bedc +/* Delete existing custom application by id + + +@param id id path parameter. Id of custom application to delete + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-application-v2 +*/ +func (s *ApplicationPolicyService) DeleteApplicationV2(id string) (*ResponseApplicationPolicyDeleteApplicationV2, *resty.Response, error) { + //id string + path := "/dna/intent/api/v2/applications/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseApplicationPolicyDeleteApplicationV2{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteApplicationV2(id) + } + return nil, response, fmt.Errorf("error with operation DeleteApplicationV2") + } + + result := response.Result().(*ResponseApplicationPolicyDeleteApplicationV2) + return result, response, err + +} diff --git a/sdk/applications.go b/sdk/applications.go index 88e050d..23d5f9b 100644 --- a/sdk/applications.go +++ b/sdk/applications.go @@ -73,7 +73,7 @@ type ResponseApplicationsApplicationsResponseServerNetworkLatency interface{} @param ApplicationsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!applications +Documentation Link: https://developer.cisco.com/docs/dna-center/#!applications-v1 */ func (s *ApplicationsService) Applications(ApplicationsQueryParams *ApplicationsQueryParams) (*ResponseApplicationsApplications, *resty.Response, error) { path := "/dna/intent/api/v1/application-health" diff --git a/sdk/authentication_management.go b/sdk/authentication_management.go index 276604e..9c4468d 100644 --- a/sdk/authentication_management.go +++ b/sdk/authentication_management.go @@ -49,7 +49,7 @@ type ResponseAuthenticationManagementImportCertificateP12Response struct { TaskID string `json:"taskId,omitempty"` // URL string `json:"url,omitempty"` // } -type ResponseAuthenticationManagementAuthenticationApI struct { +type ResponseAuthenticationManagementAuthenticationAPI struct { Token string `json:"Token,omitempty"` // Token } @@ -140,20 +140,20 @@ func (s *AuthenticationManagementService) ImportCertificateP12(ImportCertificate } -//AuthenticationApI Authentication API - ac8a-e94c-4e69-a09d -/* API to obtain an access token, which remains valid for 1 hour. The token obtained using this API is required to be set as value to the X-Auth-Token HTTP Header for all API calls to Cisco DNA Center. +//AuthenticationAPI Authentication API - ac8a-e94c-4e69-a09d +/* API to obtain an access token, which remains valid for 1 hour. The token obtained using this API is required to be set as value to the X-Auth-Token HTTP Header for all API calls to Cisco Catalyst Center. Documentation Link: https://developer.cisco.com/docs/dna-center/#!authentication-api */ -func (s *AuthenticationManagementService) AuthenticationApI() (*ResponseAuthenticationManagementAuthenticationApI, *resty.Response, error) { +func (s *AuthenticationManagementService) AuthenticationAPI() (*ResponseAuthenticationManagementAuthenticationAPI, *resty.Response, error) { path := "/dna/system/api/v1/auth/token" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseAuthenticationManagementAuthenticationApI{}). + SetResult(&ResponseAuthenticationManagementAuthenticationAPI{}). SetError(&Error). Post(path) @@ -163,10 +163,10 @@ func (s *AuthenticationManagementService) AuthenticationApI() (*ResponseAuthenti } if response.IsError() { - return nil, response, fmt.Errorf("error with operation AuthenticationApI") + return nil, response, fmt.Errorf("error with operation AuthenticationApi") } - result := response.Result().(*ResponseAuthenticationManagementAuthenticationApI) + result := response.Result().(*ResponseAuthenticationManagementAuthenticationAPI) return result, response, err } diff --git a/sdk/cisco_dna_center_system.go b/sdk/cisco_dna_center_system.go deleted file mode 100644 index 25c4d0c..0000000 --- a/sdk/cisco_dna_center_system.go +++ /dev/null @@ -1,60 +0,0 @@ -package dnac - -import ( - "fmt" - "net/http" - - "github.com/go-resty/resty/v2" -) - -type CiscoDnaCenterSystemService service - -type ResponseCiscoDnaCenterSystemAuthorizeDevice struct { - JSONResponse *ResponseCiscoDnaCenterSystemAuthorizeDeviceJSONResponse `json:"jsonResponse,omitempty"` // - Message string `json:"message,omitempty"` // Message - StatusCode *float64 `json:"statusCode,omitempty"` // Status Code - JSONArrayResponse []string `json:"jsonArrayResponse,omitempty"` // Json Array Response -} -type ResponseCiscoDnaCenterSystemAuthorizeDeviceJSONResponse struct { - Empty *bool `json:"empty,omitempty"` // Empty -} -type RequestCiscoDnaCenterSystemAuthorizeDevice struct { - DeviceIDList []string `json:"deviceIdList,omitempty"` // Device Id List -} - -//AuthorizeDevice Authorize Device - 2897-4ae4-4ae9-a1dc -/* Authorizes one of more devices. A device can only be authorized if Authorization is set in Device Settings. - - - -Documentation Link: https://developer.cisco.com/docs/dna-center/#!authorize-device -*/ -func (s *CiscoDnaCenterSystemService) AuthorizeDevice(requestCiscoDnaCenterSystemAuthorizeDevice *RequestCiscoDnaCenterSystemAuthorizeDevice) (*ResponseCiscoDnaCenterSystemAuthorizeDevice, *resty.Response, error) { - path := "/api/v1/onboarding/pnp-device/authorize" - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetBody(requestCiscoDnaCenterSystemAuthorizeDevice). - SetResult(&ResponseCiscoDnaCenterSystemAuthorizeDevice{}). - SetError(&Error). - Post(path) - - if err != nil { - return nil, nil, err - - } - - if response.IsError() { - - if response.StatusCode() == http.StatusUnauthorized { - return s.AuthorizeDevice(requestCiscoDnaCenterSystemAuthorizeDevice) - } - - return nil, response, fmt.Errorf("error with operation AuthorizeDevice") - } - - result := response.Result().(*ResponseCiscoDnaCenterSystemAuthorizeDevice) - return result, response, err - -} diff --git a/sdk/cisco_trusted_certificates.go b/sdk/cisco_trusted_certificates.go new file mode 100644 index 0000000..d4ebab3 --- /dev/null +++ b/sdk/cisco_trusted_certificates.go @@ -0,0 +1,44 @@ +package dnac + +import ( + "fmt" + "net/http" + + "github.com/go-resty/resty/v2" +) + +type CiscoTrustedCertificatesService service + +//ImportTrustedCertificate Import Trusted Certificate - 65bd-0ac7-465a-8bbc +/* Imports trusted certificate into a truststore. Accepts .pem or .der file as input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-trusted-certificate-v1 +*/ +func (s *CiscoTrustedCertificatesService) ImportTrustedCertificate() (*resty.Response, error) { + path := "/dna/intent/api/v1/trustedCertificates/import" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetError(&Error). + Post(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ImportTrustedCertificate() + } + + return response, fmt.Errorf("error with operation ImportTrustedCertificate") + } + + return response, err + +} diff --git a/sdk/clients.go b/sdk/clients.go index d9d923f..4d7aa79 100644 --- a/sdk/clients.go +++ b/sdk/clients.go @@ -3,6 +3,7 @@ package dnac import ( "fmt" "net/http" + "strings" "github.com/go-resty/resty/v2" "github.com/google/go-querystring/query" @@ -10,17 +11,97 @@ import ( type ClientsService service +type RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + SortBy string `url:"sortBy,omitempty"` //A field within the response to sort by. + Order string `url:"order,omitempty"` //The sort order of the field ascending or descending. + Type string `url:"type,omitempty"` //The client device type whether client is connected to network through Wired or Wireless medium. + OsType string `url:"osType,omitempty"` //Client device operating system type. This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*iOS*` or `iOS*` or `*iOS` Examples: `osType=iOS` (single osType requested) `osType=iOS&osType=Android` (multiple osType requested) + OsVersion string `url:"osVersion,omitempty"` //Client device operating system version This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*14.3*` or `14.3*` or `*14.3` Examples: `osVersion=14.3` (single osVersion requested) `osVersion=14.3&osVersion=10.1` (multiple osVersion requested) + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. "Global/AreaName/BuildingName/FloorName") This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*BuildingName*` or `BuildingName*` or `*BuildingName` Examples: `siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `siteHierarchy=Global/AreaName/BuildingName1/FloorName1&siteHierarchy=Global/AreaName/BuildingName1/FloorName2` (multiple siteHierarchy requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. "globalUuid/areaUuid/buildingUuid/floorUuid") This field supports wildcard (`*`) character-based search. Ex: `*buildingUuid*` or `buildingUuid*` or `*buildingUuid` Examples: `siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid` (single siteHierarchyId requested) `siteHierarchyId=globalUuid/areaUuid/buildingUuid1/floorUuid1&siteHierarchyId=globalUuid/areaUuid/buildingUuid1/floorUuid2` (multiple siteHierarchyId requested) + SiteID string `url:"siteId,omitempty"` //The site UUID without the top level hierarchy. (Ex."floorUuid") Examples: `siteId=floorUuid` (single siteId requested) `siteId=floorUuid1&siteId=floorUuid2` (multiple siteId requested) + IPv4Address string `url:"ipv4Address,omitempty"` //IPv4 Address of the network entity either network device or client This field supports wildcard (`*`) character-based search. Ex: `*1.1*` or `1.1*` or `*1.1` Examples: `ipv4Address=1.1.1.1` (single ipv4Address requested) `ipv4Address=1.1.1.1&ipv4Address=2.2.2.2` (multiple ipv4Address requested) + IPv6Address string `url:"ipv6Address,omitempty"` //IPv6 Address of the network entity either network device or client This field supports wildcard (`*`) character-based search. Ex: `*2001:db8*` or `2001:db8*` or `*2001:db8` Examples: `ipv6Address=2001:db8:0:0:0:0:2:1` (single ipv6Address requested) `ipv6Address=2001:db8:0:0:0:0:2:1&ipv6Address=2001:db8:85a3:8d3:1319:8a2e:370:7348` (multiple ipv6Address requested) + MacAddress string `url:"macAddress,omitempty"` //The macAddress of the network device or client This field supports wildcard (`*`) character-based search. Ex: `*AB:AB:AB*` or `AB:AB:AB*` or `*AB:AB:AB` Examples: `macAddress=AB:AB:AB:CD:CD:CD` (single macAddress requested) `macAddress=AB:AB:AB:CD:CD:DC&macAddress=AB:AB:AB:CD:CD:FE` (multiple macAddress requested) + WlcName string `url:"wlcName,omitempty"` //Wireless Controller name that reports the wireless client. This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*wlc-25*` or `wlc-25*` or `*wlc-25` Examples: `wlcName=wlc-25` (single wlcName requested) `wlcName=wlc-25&wlc-34` (multiple wlcName requested) + ConnectedNetworkDeviceName string `url:"connectedNetworkDeviceName,omitempty"` //Name of the neighbor network device that client is connected to. This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*ap-25*` or `ap-25*` or `*ap-25` Examples: `connectedNetworkDeviceName=ap-25` (single connectedNetworkDeviceName requested) `connectedNetworkDeviceName=ap-25&ap-34` (multiple connectedNetworkDeviceName requested) + SSID string `url:"ssid,omitempty"` //SSID is the name of wireless network to which client connects to. It is also referred to as WLAN ID - Wireless Local Area Network Identifier. This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*Alpha*` or `Alpha*` or `*Alpha` Examples: `ssid=Alpha` (single ssid requested) `ssid=Alpha&ssid=Guest` (multiple ssid requested) + Band string `url:"band,omitempty"` //WiFi frequency band that client or Access Point operates. Band value is represented in Giga Hertz - GHz Examples: `band=5GHZ` (single band requested) `band=2.4GHZ&band=6GHZ` (multiple band requested) + View string `url:"view,omitempty"` //Client related Views Refer to ClientView schema for list of views supported Examples: `view=Wireless` (single view requested) `view=WirelessHealth&view=WirelessTraffic` (multiple view requested) + Attribute string `url:"attribute,omitempty"` //List of attributes related to resource that can be requested to only be part of the response along with the required attributes. Refer to ClientAttribute schema for list of attributes supported Examples: `attribute=band` (single attribute requested) `attribute=band&attribute=ssid&attribute=overallScore` (multiple attribute requested) +} +type RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type RetrievesTheTotalCountOfClientsByApplyingBasicFilteringQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + Type string `url:"type,omitempty"` //The client device type whether client is connected to network through Wired or Wireless medium. + OsType string `url:"osType,omitempty"` //Client device operating system type. This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*iOS*` or `iOS*` or `*iOS` Examples: `osType=iOS` (single osType requested) `osType=iOS&osType=Android` (multiple osType requested) + OsVersion string `url:"osVersion,omitempty"` //Client device operating system version This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*14.3*` or `14.3*` or `*14.3` Examples: `osVersion=14.3` (single osVersion requested) `osVersion=14.3&osVersion=10.1` (multiple osVersion requested) + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. "Global/AreaName/BuildingName/FloorName") This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*BuildingName*` or `BuildingName*` or `*BuildingName` Examples: `siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `siteHierarchy=Global/AreaName/BuildingName1/FloorName1&siteHierarchy=Global/AreaName/BuildingName1/FloorName2` (multiple siteHierarchy requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. "globalUuid/areaUuid/buildingUuid/floorUuid") This field supports wildcard (`*`) character-based search. Ex: `*buildingUuid*` or `buildingUuid*` or `*buildingUuid` Examples: `siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid` (single siteHierarchyId requested) `siteHierarchyId=globalUuid/areaUuid/buildingUuid1/floorUuid1&siteHierarchyId=globalUuid/areaUuid/buildingUuid1/floorUuid2` (multiple siteHierarchyId requested) + SiteID string `url:"siteId,omitempty"` //The site UUID without the top level hierarchy. (Ex."floorUuid") Examples: `siteId=floorUuid` (single siteId requested) `siteId=floorUuid1&siteId=floorUuid2` (multiple siteId requested) + IPv4Address string `url:"ipv4Address,omitempty"` //IPv4 Address of the network entity either network device or client This field supports wildcard (`*`) character-based search. Ex: `*1.1*` or `1.1*` or `*1.1` Examples: `ipv4Address=1.1.1.1` (single ipv4Address requested) `ipv4Address=1.1.1.1&ipv4Address=2.2.2.2` (multiple ipv4Address requested) + IPv6Address string `url:"ipv6Address,omitempty"` //IPv6 Address of the network entity either network device or client This field supports wildcard (`*`) character-based search. Ex: `*2001:db8*` or `2001:db8*` or `*2001:db8` Examples: `ipv6Address=2001:db8:0:0:0:0:2:1` (single ipv6Address requested) `ipv6Address=2001:db8:0:0:0:0:2:1&ipv6Address=2001:db8:85a3:8d3:1319:8a2e:370:7348` (multiple ipv6Address requested) + MacAddress string `url:"macAddress,omitempty"` //The macAddress of the network device or client This field supports wildcard (`*`) character-based search. Ex: `*AB:AB:AB*` or `AB:AB:AB*` or `*AB:AB:AB` Examples: `macAddress=AB:AB:AB:CD:CD:CD` (single macAddress requested) `macAddress=AB:AB:AB:CD:CD:DC&macAddress=AB:AB:AB:CD:CD:FE` (multiple macAddress requested) + WlcName string `url:"wlcName,omitempty"` //Wireless Controller name that reports the wireless client. This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*wlc-25*` or `wlc-25*` or `*wlc-25` Examples: `wlcName=wlc-25` (single wlcName requested) `wlcName=wlc-25&wlc-34` (multiple wlcName requested) + ConnectedNetworkDeviceName string `url:"connectedNetworkDeviceName,omitempty"` //Name of the neighbor network device that client is connected to. This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*ap-25*` or `ap-25*` or `*ap-25` Examples: `connectedNetworkDeviceName=ap-25` (single connectedNetworkDeviceName requested) `connectedNetworkDeviceName=ap-25&ap-34` (multiple connectedNetworkDeviceName requested) + SSID string `url:"ssid,omitempty"` //SSID is the name of wireless network to which client connects to. It is also referred to as WLAN ID - Wireless Local Area Network Identifier. This field supports wildcard (`*`) character-based search. If the value contains the (`*`) character, please use the /query API for regex search. Ex: `*Alpha*` or `Alpha*` or `*Alpha` Examples: `ssid=Alpha` (single ssid requested) `ssid=Alpha&ssid=Guest` (multiple ssid requested) + Band string `url:"band,omitempty"` //WiFi frequency band that client or Access Point operates. Band value is represented in Giga Hertz - GHz Examples: `band=5GHZ` (single band requested) `band=2.4GHZ&band=6GHZ` (multiple band requested) +} +type RetrievesTheTotalCountOfClientsByApplyingBasicFilteringHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type RetrievesTheNumberOfClientsByApplyingComplexFiltersHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type RetrievesSummaryAnalyticsDataRelatedToClientsHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type RetrievesTheTopNAnalyticsDataRelatedToClientsHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type RetrievesTheTrendAnalyticsDataRelatedToClientsHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type RetrievesSpecificClientInformationMatchingTheMacaddressQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + View string `url:"view,omitempty"` //Client related Views Refer to ClientView schema for list of views supported Examples: `view=Wireless` (single view requested) `view=WirelessHealth&view=WirelessTraffic` (multiple view requested) + Attribute string `url:"attribute,omitempty"` //List of attributes related to resource that can be requested to only be part of the response along with the required attributes. Refer to ClientAttribute schema for list of attributes supported Examples: `attribute=band` (single attribute requested) `attribute=band&attribute=ssid&attribute=overallScore` (multiple attribute requested) +} +type RetrievesSpecificClientInformationMatchingTheMacaddressHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type RetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} type GetClientDetailQueryParams struct { - Timestamp string `url:"timestamp,omitempty"` //Epoch time(in milliseconds) when the Client health data is required - MacAddress string `url:"macAddress,omitempty"` //MAC Address of the client + MacAddress string `url:"macAddress,omitempty"` //MAC Address of the client + Timestamp float64 `url:"timestamp,omitempty"` //Epoch time(in milliseconds) when the Client health data is required } type GetClientEnrichmentDetailsHeaderParams struct { - EntityType string `url:"entity_type,omitempty"` //Expects type string. Client enrichment details can be fetched based on either User ID or Client MAC address. This parameter value must either be network_user_id/mac_address - EntityValue string `url:"entity_value,omitempty"` //Expects type string. Contains the actual value for the entity type that has been defined - IssueCategory string `url:"issueCategory,omitempty"` //Expects type string. The category of the DNA event based on which the underlying issues need to be fetched + EntityType string `url:"entity_type,omitempty"` //Expects type string. Client enrichment details can be fetched based on either User ID or Client MAC address. This parameter value must either be network_user_id/mac_address + EntityValue string `url:"entity_value,omitempty"` //Expects type string. Contains the actual value for the entity type that has been defined + IssueCategory string `url:"issueCategory,omitempty"` //Expects type string. The category of the DNA event based on which the underlying issues need to be fetched + Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. } type GetOverallClientHealthQueryParams struct { - Timestamp string `url:"timestamp,omitempty"` //Epoch time(in milliseconds) when the Client health data is required + Timestamp float64 `url:"timestamp,omitempty"` //Epoch time(in milliseconds) when the Client health data is required } type ClientProximityQueryParams struct { Username string `url:"username,omitempty"` //Wireless client username for which proximity information is required @@ -28,159 +109,781 @@ type ClientProximityQueryParams struct { TimeResolution float64 `url:"time_resolution,omitempty"` //Time interval (in minutes) to measure proximity. Defaults to 15 minutes with a minimum 5 minutes. } +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilities struct { + Response *[]ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponse `json:"response,omitempty"` // + Page *ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponse struct { + ID string `json:"id,omitempty"` // Id + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Type string `json:"type,omitempty"` // Type + Name string `json:"name,omitempty"` // Name + UserID string `json:"userId,omitempty"` // User Id + Username string `json:"username,omitempty"` // Username + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6Addresses []string `json:"ipv6Addresses,omitempty"` // Ipv6 Addresses + Vendor string `json:"vendor,omitempty"` // Vendor + OsType string `json:"osType,omitempty"` // Os Type + OsVersion string `json:"osVersion,omitempty"` // Os Version + FormFactor string `json:"formFactor,omitempty"` // Form Factor + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteID string `json:"siteId,omitempty"` // Site Id + LastUpdatedTime *int `json:"lastUpdatedTime,omitempty"` // Last Updated Time + ConnectionStatus string `json:"connectionStatus,omitempty"` // Connection Status + Tracked string `json:"tracked,omitempty"` // Tracked + IsPrivateMacAddress *bool `json:"isPrivateMacAddress,omitempty"` // Is Private Mac Address + Health *ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseHealth `json:"health,omitempty"` // + Traffic *ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseTraffic `json:"traffic,omitempty"` // + ConnectedNetworkDevice *ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseConnectedNetworkDevice `json:"connectedNetworkDevice,omitempty"` // + Connection *ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseConnection `json:"connection,omitempty"` // + Onboarding *ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseOnboarding `json:"onboarding,omitempty"` // + Latency *ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseLatency `json:"latency,omitempty"` // +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseHealth struct { + OverallScore *int `json:"overallScore,omitempty"` // Overall Score + OnboardingScore *int `json:"onboardingScore,omitempty"` // Onboarding Score + ConnectedScore *int `json:"connectedScore,omitempty"` // Connected Score + LinkErrorPercentageThreshold *int `json:"linkErrorPercentageThreshold,omitempty"` // Link Error Percentage Threshold + IsLinkErrorIncluded *bool `json:"isLinkErrorIncluded,omitempty"` // Is Link Error Included + RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold + SnrThreshold *int `json:"snrThreshold,omitempty"` // Snr Threshold + IsRssiIncluded *bool `json:"isRssiIncluded,omitempty"` // Is Rssi Included + IsSnrIncluded *bool `json:"isSnrIncluded,omitempty"` // Is Snr Included +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseTraffic struct { + TxBytes *int `json:"txBytes,omitempty"` // Tx Bytes + RxBytes *int `json:"rxBytes,omitempty"` // Rx Bytes + Usage *int `json:"usage,omitempty"` // Usage + RxPackets *int `json:"rxPackets,omitempty"` // Rx Packets + TxPackets *int `json:"txPackets,omitempty"` // Tx Packets + RxRate *float64 `json:"rxRate,omitempty"` // Rx Rate + TxRate *int `json:"txRate,omitempty"` // Tx Rate + RxLinkErrorPercentage *float64 `json:"rxLinkErrorPercentage,omitempty"` // Rx Link Error Percentage + TxLinkErrorPercentage *float64 `json:"txLinkErrorPercentage,omitempty"` // Tx Link Error Percentage + RxRetries *int `json:"rxRetries,omitempty"` // Rx Retries + RxRetryPercentage *float64 `json:"rxRetryPercentage,omitempty"` // Rx Retry Percentage + TxDrops *int `json:"txDrops,omitempty"` // Tx Drops + TxDropPercentage *int `json:"txDropPercentage,omitempty"` // Tx Drop Percentage + DNSRequestCount *int `json:"dnsRequestCount,omitempty"` // Dns Request Count + DNSResponseCount *int `json:"dnsResponseCount,omitempty"` // Dns Response Count +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseConnectedNetworkDevice struct { + ConnectedNetworkDeviceID string `json:"connectedNetworkDeviceId,omitempty"` // Connected Network Device Id + ConnectedNetworkDeviceName string `json:"connectedNetworkDeviceName,omitempty"` // Connected Network Device Name + ConnectedNetworkDeviceManagementIP string `json:"connectedNetworkDeviceManagementIp,omitempty"` // Connected Network Device Management Ip + ConnectedNetworkDeviceMac string `json:"connectedNetworkDeviceMac,omitempty"` // Connected Network Device Mac + ConnectedNetworkDeviceType string `json:"connectedNetworkDeviceType,omitempty"` // Connected Network Device Type + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + InterfaceSpeed *int `json:"interfaceSpeed,omitempty"` // Interface Speed + DuplexMode string `json:"duplexMode,omitempty"` // Duplex Mode +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseConnection struct { + VLANID string `json:"vlanId,omitempty"` // Vlan Id + SessionDuration *int `json:"sessionDuration,omitempty"` // Session Duration + VnID string `json:"vnId,omitempty"` // Vn Id + L2Vn string `json:"l2Vn,omitempty"` // L2 Vn + L3Vn string `json:"l3Vn,omitempty"` // L3 Vn + SecurityGroupTag string `json:"securityGroupTag,omitempty"` // Security Group Tag + LinkSpeed *int `json:"linkSpeed,omitempty"` // Link Speed + BridgeVMMode string `json:"bridgeVMMode,omitempty"` // Bridge V M Mode + Band string `json:"band,omitempty"` // Band + SSID string `json:"ssid,omitempty"` // Ssid + AuthType string `json:"authType,omitempty"` // Auth Type + WlcName string `json:"wlcName,omitempty"` // Wlc Name + WlcID string `json:"wlcId,omitempty"` // Wlc Id + ApMac string `json:"apMac,omitempty"` // Ap Mac + ApEthernetMac string `json:"apEthernetMac,omitempty"` // Ap Ethernet Mac + ApMode string `json:"apMode,omitempty"` // Ap Mode + RadioID *int `json:"radioId,omitempty"` // Radio Id + Channel string `json:"channel,omitempty"` // Channel + ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width + Protocol string `json:"protocol,omitempty"` // Protocol + ProtocolCapability string `json:"protocolCapability,omitempty"` // Protocol Capability + UpnID string `json:"upnId,omitempty"` // Upn Id + UpnName string `json:"upnName,omitempty"` // Upn Name + UpnOwner string `json:"upnOwner,omitempty"` // Upn Owner + UpnDuid string `json:"upnDuid,omitempty"` // Upn Duid + Rssi *int `json:"rssi,omitempty"` // Rssi + Snr *int `json:"snr,omitempty"` // Snr + DataRate *int `json:"dataRate,omitempty"` // Data Rate + IsIosAnalyticsCapable *bool `json:"isIosAnalyticsCapable,omitempty"` // Is Ios Analytics Capable +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseOnboarding struct { + AvgRunDuration *int `json:"avgRunDuration,omitempty"` // Avg Run Duration + MaxRunDuration *int `json:"maxRunDuration,omitempty"` // Max Run Duration + AvgAssocDuration *int `json:"avgAssocDuration,omitempty"` // Avg Assoc Duration + MaxAssocDuration *int `json:"maxAssocDuration,omitempty"` // Max Assoc Duration + AvgAuthDuration *int `json:"avgAuthDuration,omitempty"` // Avg Auth Duration + MaxAuthDuration *int `json:"maxAuthDuration,omitempty"` // Max Auth Duration + AvgDhcpDuration *int `json:"avgDhcpDuration,omitempty"` // Avg Dhcp Duration + MaxDhcpDuration *int `json:"maxDhcpDuration,omitempty"` // Max Dhcp Duration + MaxRoamingDuration *int `json:"maxRoamingDuration,omitempty"` // Max Roaming Duration + AAAServerIP string `json:"aaaServerIp,omitempty"` // Aaa Server Ip + DhcpServerIP string `json:"dhcpServerIp,omitempty"` // Dhcp Server Ip + OnboardingTime *int `json:"onboardingTime,omitempty"` // Onboarding Time + AuthDoneTime *int `json:"authDoneTime,omitempty"` // Auth Done Time + AssocDoneTime *int `json:"assocDoneTime,omitempty"` // Assoc Done Time + DhcpDoneTime *int `json:"dhcpDoneTime,omitempty"` // Dhcp Done Time + RoamingTime *int `json:"roamingTime,omitempty"` // Roaming Time + FailedRoamingCount *int `json:"failedRoamingCount,omitempty"` // Failed Roaming Count + SuccessfulRoamingCount *int `json:"successfulRoamingCount,omitempty"` // Successful Roaming Count + TotalRoamingAttempts *int `json:"totalRoamingAttempts,omitempty"` // Total Roaming Attempts + AssocFailureReason string `json:"assocFailureReason,omitempty"` // Assoc Failure Reason + AAAFailureReason string `json:"aaaFailureReason,omitempty"` // Aaa Failure Reason + DhcpFailureReason string `json:"dhcpFailureReason,omitempty"` // Dhcp Failure Reason + OtherFailureReason string `json:"otherFailureReason,omitempty"` // Other Failure Reason + LatestFailureReason string `json:"latestFailureReason,omitempty"` // Latest Failure Reason +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesResponseLatency struct { + Video *int `json:"video,omitempty"` // Video + Voice *int `json:"voice,omitempty"` // Voice + BestEffort *int `json:"bestEffort,omitempty"` // Best Effort + Background *int `json:"background,omitempty"` // Background +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseClientsRetrievesTheTotalCountOfClientsByApplyingBasicFiltering struct { + Response *ResponseClientsRetrievesTheTotalCountOfClientsByApplyingBasicFilteringResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesTheTotalCountOfClientsByApplyingBasicFilteringResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes struct { + Response *[]ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponse `json:"response,omitempty"` // + Page *ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponse struct { + ID string `json:"id,omitempty"` // Id + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Type string `json:"type,omitempty"` // Type + Name string `json:"name,omitempty"` // Name + UserID string `json:"userId,omitempty"` // User Id + Username string `json:"username,omitempty"` // Username + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6Addresses []string `json:"ipv6Addresses,omitempty"` // Ipv6 Addresses + Vendor string `json:"vendor,omitempty"` // Vendor + OsType string `json:"osType,omitempty"` // Os Type + OsVersion string `json:"osVersion,omitempty"` // Os Version + FormFactor string `json:"formFactor,omitempty"` // Form Factor + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteID string `json:"siteId,omitempty"` // Site Id + LastUpdatedTime *int `json:"lastUpdatedTime,omitempty"` // Last Updated Time + ConnectionStatus string `json:"connectionStatus,omitempty"` // Connection Status + Tracked string `json:"tracked,omitempty"` // Tracked + IsPrivateMacAddress *bool `json:"isPrivateMacAddress,omitempty"` // Is Private Mac Address + Health *ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseHealth `json:"health,omitempty"` // + Traffic *ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseTraffic `json:"traffic,omitempty"` // + ConnectedNetworkDevice *ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseConnectedNetworkDevice `json:"connectedNetworkDevice,omitempty"` // + Connection *ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseConnection `json:"connection,omitempty"` // + Onboarding *ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseOnboarding `json:"onboarding,omitempty"` // + Latency *ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseLatency `json:"latency,omitempty"` // + AggregateAttributes *[]ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseHealth struct { + OverallScore *int `json:"overallScore,omitempty"` // Overall Score + OnboardingScore *int `json:"onboardingScore,omitempty"` // Onboarding Score + ConnectedScore *int `json:"connectedScore,omitempty"` // Connected Score + LinkErrorPercentageThreshold *int `json:"linkErrorPercentageThreshold,omitempty"` // Link Error Percentage Threshold + IsLinkErrorIncluded *bool `json:"isLinkErrorIncluded,omitempty"` // Is Link Error Included + RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold + SnrThreshold *int `json:"snrThreshold,omitempty"` // Snr Threshold + IsRssiIncluded *bool `json:"isRssiIncluded,omitempty"` // Is Rssi Included + IsSnrIncluded *bool `json:"isSnrIncluded,omitempty"` // Is Snr Included +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseTraffic struct { + TxBytes *int `json:"txBytes,omitempty"` // Tx Bytes + RxBytes *int `json:"rxBytes,omitempty"` // Rx Bytes + Usage *int `json:"usage,omitempty"` // Usage + RxPackets *int `json:"rxPackets,omitempty"` // Rx Packets + TxPackets *int `json:"txPackets,omitempty"` // Tx Packets + RxRate *float64 `json:"rxRate,omitempty"` // Rx Rate + TxRate *int `json:"txRate,omitempty"` // Tx Rate + RxLinkErrorPercentage *float64 `json:"rxLinkErrorPercentage,omitempty"` // Rx Link Error Percentage + TxLinkErrorPercentage *float64 `json:"txLinkErrorPercentage,omitempty"` // Tx Link Error Percentage + RxRetries *int `json:"rxRetries,omitempty"` // Rx Retries + RxRetryPercentage *float64 `json:"rxRetryPercentage,omitempty"` // Rx Retry Percentage + TxDrops *int `json:"txDrops,omitempty"` // Tx Drops + TxDropPercentage *int `json:"txDropPercentage,omitempty"` // Tx Drop Percentage + DNSRequestCount *int `json:"dnsRequestCount,omitempty"` // Dns Request Count + DNSResponseCount *int `json:"dnsResponseCount,omitempty"` // Dns Response Count +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseConnectedNetworkDevice struct { + ConnectedNetworkDeviceID string `json:"connectedNetworkDeviceId,omitempty"` // Connected Network Device Id + ConnectedNetworkDeviceName string `json:"connectedNetworkDeviceName,omitempty"` // Connected Network Device Name + ConnectedNetworkDeviceManagementIP string `json:"connectedNetworkDeviceManagementIp,omitempty"` // Connected Network Device Management Ip + ConnectedNetworkDeviceMac string `json:"connectedNetworkDeviceMac,omitempty"` // Connected Network Device Mac + ConnectedNetworkDeviceType string `json:"connectedNetworkDeviceType,omitempty"` // Connected Network Device Type + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + InterfaceSpeed *int `json:"interfaceSpeed,omitempty"` // Interface Speed + DuplexMode string `json:"duplexMode,omitempty"` // Duplex Mode +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseConnection struct { + VLANID string `json:"vlanId,omitempty"` // Vlan Id + SessionDuration *int `json:"sessionDuration,omitempty"` // Session Duration + VnID string `json:"vnId,omitempty"` // Vn Id + L2Vn string `json:"l2Vn,omitempty"` // L2 Vn + L3Vn string `json:"l3Vn,omitempty"` // L3 Vn + SecurityGroupTag string `json:"securityGroupTag,omitempty"` // Security Group Tag + LinkSpeed *int `json:"linkSpeed,omitempty"` // Link Speed + BridgeVMMode string `json:"bridgeVMMode,omitempty"` // Bridge V M Mode + Band string `json:"band,omitempty"` // Band + SSID string `json:"ssid,omitempty"` // Ssid + AuthType string `json:"authType,omitempty"` // Auth Type + WlcName string `json:"wlcName,omitempty"` // Wlc Name + WlcID string `json:"wlcId,omitempty"` // Wlc Id + ApMac string `json:"apMac,omitempty"` // Ap Mac + ApEthernetMac string `json:"apEthernetMac,omitempty"` // Ap Ethernet Mac + ApMode string `json:"apMode,omitempty"` // Ap Mode + RadioID *int `json:"radioId,omitempty"` // Radio Id + Channel string `json:"channel,omitempty"` // Channel + ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width + Protocol string `json:"protocol,omitempty"` // Protocol + ProtocolCapability string `json:"protocolCapability,omitempty"` // Protocol Capability + UpnID string `json:"upnId,omitempty"` // Upn Id + UpnName string `json:"upnName,omitempty"` // Upn Name + UpnOwner string `json:"upnOwner,omitempty"` // Upn Owner + UpnDuid string `json:"upnDuid,omitempty"` // Upn Duid + Rssi *int `json:"rssi,omitempty"` // Rssi + Snr *int `json:"snr,omitempty"` // Snr + DataRate *int `json:"dataRate,omitempty"` // Data Rate + IsIosAnalyticsCapable *bool `json:"isIosAnalyticsCapable,omitempty"` // Is Ios Analytics Capable +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseOnboarding struct { + AvgRunDuration *int `json:"avgRunDuration,omitempty"` // Avg Run Duration + MaxRunDuration *int `json:"maxRunDuration,omitempty"` // Max Run Duration + AvgAssocDuration *int `json:"avgAssocDuration,omitempty"` // Avg Assoc Duration + MaxAssocDuration *int `json:"maxAssocDuration,omitempty"` // Max Assoc Duration + AvgAuthDuration *int `json:"avgAuthDuration,omitempty"` // Avg Auth Duration + MaxAuthDuration *int `json:"maxAuthDuration,omitempty"` // Max Auth Duration + AvgDhcpDuration *int `json:"avgDhcpDuration,omitempty"` // Avg Dhcp Duration + MaxDhcpDuration *int `json:"maxDhcpDuration,omitempty"` // Max Dhcp Duration + MaxRoamingDuration *int `json:"maxRoamingDuration,omitempty"` // Max Roaming Duration + AAAServerIP string `json:"aaaServerIp,omitempty"` // Aaa Server Ip + DhcpServerIP string `json:"dhcpServerIp,omitempty"` // Dhcp Server Ip + OnboardingTime *int `json:"onboardingTime,omitempty"` // Onboarding Time + AuthDoneTime *int `json:"authDoneTime,omitempty"` // Auth Done Time + AssocDoneTime *int `json:"assocDoneTime,omitempty"` // Assoc Done Time + DhcpDoneTime *int `json:"dhcpDoneTime,omitempty"` // Dhcp Done Time + RoamingTime *int `json:"roamingTime,omitempty"` // Roaming Time + FailedRoamingCount *int `json:"failedRoamingCount,omitempty"` // Failed Roaming Count + SuccessfulRoamingCount *int `json:"successfulRoamingCount,omitempty"` // Successful Roaming Count + TotalRoamingAttempts *int `json:"totalRoamingAttempts,omitempty"` // Total Roaming Attempts + AssocFailureReason string `json:"assocFailureReason,omitempty"` // Assoc Failure Reason + AAAFailureReason string `json:"aaaFailureReason,omitempty"` // Aaa Failure Reason + DhcpFailureReason string `json:"dhcpFailureReason,omitempty"` // Dhcp Failure Reason + OtherFailureReason string `json:"otherFailureReason,omitempty"` // Other Failure Reason + LatestFailureReason string `json:"latestFailureReason,omitempty"` // Latest Failure Reason +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseLatency struct { + Video *int `json:"video,omitempty"` // Video + Voice *int `json:"voice,omitempty"` // Voice + BestEffort *int `json:"bestEffort,omitempty"` // Best Effort + Background *int `json:"background,omitempty"` // Background +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseClientsRetrievesTheNumberOfClientsByApplyingComplexFilters struct { + Response *ResponseClientsRetrievesTheNumberOfClientsByApplyingComplexFiltersResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesTheNumberOfClientsByApplyingComplexFiltersResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClients struct { + Response *ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsResponse `json:"response,omitempty"` // + Page *ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsResponse struct { + Groups *[]ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsResponseGroups `json:"groups,omitempty"` // +} +type ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsResponseGroups struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsResponseGroupsAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsResponseGroupsAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsResponseGroupsAttributes struct { + Name string `json:"name,omitempty"` // Name + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsResponseGroupsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Cursor string `json:"cursor,omitempty"` // Cursor + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClientsPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClients struct { + Response *[]ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsResponse `json:"response,omitempty"` // + Page *ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsResponse struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsResponseAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsResponseAttributes struct { + Name string `json:"name,omitempty"` // Name + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Cursor string `json:"cursor,omitempty"` // Cursor + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClientsPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClients struct { + Response *[]ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsResponse `json:"response,omitempty"` // + Page *ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsResponse struct { + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + Groups *[]ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsResponseGroups `json:"groups,omitempty"` // +} +type ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsResponseGroups struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsResponseGroupsAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsResponseGroupsAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsResponseGroupsAttributes struct { + Name string `json:"name,omitempty"` // Name + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsResponseGroupsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClientsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Cursor string `json:"cursor,omitempty"` // Cursor + Count *int `json:"count,omitempty"` // Count + TimeSortOrder string `json:"timeSortOrder,omitempty"` // Time Sort Order +} +type ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddress struct { + Response *ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponse struct { + ID string `json:"id,omitempty"` // Id + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Type string `json:"type,omitempty"` // Type + Name string `json:"name,omitempty"` // Name + UserID string `json:"userId,omitempty"` // User Id + Username string `json:"username,omitempty"` // Username + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6Addresses []string `json:"ipv6Addresses,omitempty"` // Ipv6 Addresses + Vendor string `json:"vendor,omitempty"` // Vendor + OsType string `json:"osType,omitempty"` // Os Type + OsVersion string `json:"osVersion,omitempty"` // Os Version + FormFactor string `json:"formFactor,omitempty"` // Form Factor + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteID string `json:"siteId,omitempty"` // Site Id + LastUpdatedTime *int `json:"lastUpdatedTime,omitempty"` // Last Updated Time + ConnectionStatus string `json:"connectionStatus,omitempty"` // Connection Status + Tracked string `json:"tracked,omitempty"` // Tracked + IsPrivateMacAddress *bool `json:"isPrivateMacAddress,omitempty"` // Is Private Mac Address + Health *ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseHealth `json:"health,omitempty"` // + Traffic *ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseTraffic `json:"traffic,omitempty"` // + ConnectedNetworkDevice *ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseConnectedNetworkDevice `json:"connectedNetworkDevice,omitempty"` // + Connection *ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseConnection `json:"connection,omitempty"` // + Onboarding *ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseOnboarding `json:"onboarding,omitempty"` // + Latency *ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseLatency `json:"latency,omitempty"` // +} +type ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseHealth struct { + OverallScore *int `json:"overallScore,omitempty"` // Overall Score + OnboardingScore *int `json:"onboardingScore,omitempty"` // Onboarding Score + ConnectedScore *int `json:"connectedScore,omitempty"` // Connected Score + LinkErrorPercentageThreshold *int `json:"linkErrorPercentageThreshold,omitempty"` // Link Error Percentage Threshold + IsLinkErrorIncluded *bool `json:"isLinkErrorIncluded,omitempty"` // Is Link Error Included + RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold + SnrThreshold *int `json:"snrThreshold,omitempty"` // Snr Threshold + IsRssiIncluded *bool `json:"isRssiIncluded,omitempty"` // Is Rssi Included + IsSnrIncluded *bool `json:"isSnrIncluded,omitempty"` // Is Snr Included +} +type ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseTraffic struct { + TxBytes *int `json:"txBytes,omitempty"` // Tx Bytes + RxBytes *int `json:"rxBytes,omitempty"` // Rx Bytes + Usage *int `json:"usage,omitempty"` // Usage + RxPackets *int `json:"rxPackets,omitempty"` // Rx Packets + TxPackets *int `json:"txPackets,omitempty"` // Tx Packets + RxRate *float64 `json:"rxRate,omitempty"` // Rx Rate + TxRate *int `json:"txRate,omitempty"` // Tx Rate + RxLinkErrorPercentage *float64 `json:"rxLinkErrorPercentage,omitempty"` // Rx Link Error Percentage + TxLinkErrorPercentage *float64 `json:"txLinkErrorPercentage,omitempty"` // Tx Link Error Percentage + RxRetries *int `json:"rxRetries,omitempty"` // Rx Retries + RxRetryPercentage *float64 `json:"rxRetryPercentage,omitempty"` // Rx Retry Percentage + TxDrops *int `json:"txDrops,omitempty"` // Tx Drops + TxDropPercentage *int `json:"txDropPercentage,omitempty"` // Tx Drop Percentage + DNSRequestCount *int `json:"dnsRequestCount,omitempty"` // Dns Request Count + DNSResponseCount *int `json:"dnsResponseCount,omitempty"` // Dns Response Count +} +type ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseConnectedNetworkDevice struct { + ConnectedNetworkDeviceID string `json:"connectedNetworkDeviceId,omitempty"` // Connected Network Device Id + ConnectedNetworkDeviceName string `json:"connectedNetworkDeviceName,omitempty"` // Connected Network Device Name + ConnectedNetworkDeviceManagementIP string `json:"connectedNetworkDeviceManagementIp,omitempty"` // Connected Network Device Management Ip + ConnectedNetworkDeviceMac string `json:"connectedNetworkDeviceMac,omitempty"` // Connected Network Device Mac + ConnectedNetworkDeviceType string `json:"connectedNetworkDeviceType,omitempty"` // Connected Network Device Type + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + InterfaceSpeed *int `json:"interfaceSpeed,omitempty"` // Interface Speed + DuplexMode string `json:"duplexMode,omitempty"` // Duplex Mode +} +type ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseConnection struct { + VLANID string `json:"vlanId,omitempty"` // Vlan Id + SessionDuration *int `json:"sessionDuration,omitempty"` // Session Duration + VnID string `json:"vnId,omitempty"` // Vn Id + L2Vn string `json:"l2Vn,omitempty"` // L2 Vn + L3Vn string `json:"l3Vn,omitempty"` // L3 Vn + SecurityGroupTag string `json:"securityGroupTag,omitempty"` // Security Group Tag + LinkSpeed *int `json:"linkSpeed,omitempty"` // Link Speed + BridgeVMMode string `json:"bridgeVMMode,omitempty"` // Bridge V M Mode + Band string `json:"band,omitempty"` // Band + SSID string `json:"ssid,omitempty"` // Ssid + AuthType string `json:"authType,omitempty"` // Auth Type + WlcName string `json:"wlcName,omitempty"` // Wlc Name + WlcID string `json:"wlcId,omitempty"` // Wlc Id + ApMac string `json:"apMac,omitempty"` // Ap Mac + ApEthernetMac string `json:"apEthernetMac,omitempty"` // Ap Ethernet Mac + ApMode string `json:"apMode,omitempty"` // Ap Mode + RadioID *int `json:"radioId,omitempty"` // Radio Id + Channel string `json:"channel,omitempty"` // Channel + ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width + Protocol string `json:"protocol,omitempty"` // Protocol + ProtocolCapability string `json:"protocolCapability,omitempty"` // Protocol Capability + UpnID string `json:"upnId,omitempty"` // Upn Id + UpnName string `json:"upnName,omitempty"` // Upn Name + UpnOwner string `json:"upnOwner,omitempty"` // Upn Owner + UpnDuid string `json:"upnDuid,omitempty"` // Upn Duid + Rssi *int `json:"rssi,omitempty"` // Rssi + Snr *int `json:"snr,omitempty"` // Snr + DataRate *int `json:"dataRate,omitempty"` // Data Rate + IsIosAnalyticsCapable *bool `json:"isIosAnalyticsCapable,omitempty"` // Is Ios Analytics Capable +} +type ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseOnboarding struct { + AvgRunDuration *int `json:"avgRunDuration,omitempty"` // Avg Run Duration + MaxRunDuration *int `json:"maxRunDuration,omitempty"` // Max Run Duration + AvgAssocDuration *int `json:"avgAssocDuration,omitempty"` // Avg Assoc Duration + MaxAssocDuration *int `json:"maxAssocDuration,omitempty"` // Max Assoc Duration + AvgAuthDuration *int `json:"avgAuthDuration,omitempty"` // Avg Auth Duration + MaxAuthDuration *int `json:"maxAuthDuration,omitempty"` // Max Auth Duration + AvgDhcpDuration *int `json:"avgDhcpDuration,omitempty"` // Avg Dhcp Duration + MaxDhcpDuration *int `json:"maxDhcpDuration,omitempty"` // Max Dhcp Duration + MaxRoamingDuration *int `json:"maxRoamingDuration,omitempty"` // Max Roaming Duration + AAAServerIP string `json:"aaaServerIp,omitempty"` // Aaa Server Ip + DhcpServerIP string `json:"dhcpServerIp,omitempty"` // Dhcp Server Ip + OnboardingTime *int `json:"onboardingTime,omitempty"` // Onboarding Time + AuthDoneTime *int `json:"authDoneTime,omitempty"` // Auth Done Time + AssocDoneTime *int `json:"assocDoneTime,omitempty"` // Assoc Done Time + DhcpDoneTime *int `json:"dhcpDoneTime,omitempty"` // Dhcp Done Time + RoamingTime *int `json:"roamingTime,omitempty"` // Roaming Time + FailedRoamingCount *int `json:"failedRoamingCount,omitempty"` // Failed Roaming Count + SuccessfulRoamingCount *int `json:"successfulRoamingCount,omitempty"` // Successful Roaming Count + TotalRoamingAttempts *int `json:"totalRoamingAttempts,omitempty"` // Total Roaming Attempts + AssocFailureReason string `json:"assocFailureReason,omitempty"` // Assoc Failure Reason + AAAFailureReason string `json:"aaaFailureReason,omitempty"` // Aaa Failure Reason + DhcpFailureReason string `json:"dhcpFailureReason,omitempty"` // Dhcp Failure Reason + OtherFailureReason string `json:"otherFailureReason,omitempty"` // Other Failure Reason + LatestFailureReason string `json:"latestFailureReason,omitempty"` // Latest Failure Reason +} +type ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddressResponseLatency struct { + Video *int `json:"video,omitempty"` // Video + Voice *int `json:"voice,omitempty"` // Voice + BestEffort *int `json:"bestEffort,omitempty"` // Best Effort + Background *int `json:"background,omitempty"` // Background +} +type ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime struct { + Response *[]ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeResponse `json:"response,omitempty"` // + Page *ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimePage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeResponse struct { + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + Groups *[]ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeResponseGroups `json:"groups,omitempty"` // +} +type ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeResponseGroups struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeResponseGroupsAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeResponseGroupsAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeResponseGroupsAttributes struct { + Name string `json:"name,omitempty"` // Name + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeResponseGroupsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimePage struct { + Limit *int `json:"limit,omitempty"` // Limit + Cursor string `json:"cursor,omitempty"` // Cursor + Count *int `json:"count,omitempty"` // Count + TimeSortOrder string `json:"timeSortOrder,omitempty"` // Time Sort Order +} type ResponseClientsGetClientDetail struct { Detail *ResponseClientsGetClientDetailDetail `json:"detail,omitempty"` // ConnectionInfo *ResponseClientsGetClientDetailConnectionInfo `json:"connectionInfo,omitempty"` // Topology *ResponseClientsGetClientDetailTopology `json:"topology,omitempty"` // } type ResponseClientsGetClientDetailDetail struct { - ID string `json:"id,omitempty"` // Id - ConnectionStatus string `json:"connectionStatus,omitempty"` // Connection Status - HostType string `json:"hostType,omitempty"` // Host Type - UserID *ResponseClientsGetClientDetailDetailUserID `json:"userId,omitempty"` // User Id - HostName string `json:"hostName,omitempty"` // Host Name - HostOs *ResponseClientsGetClientDetailDetailHostOs `json:"hostOs,omitempty"` // Host Os - HostVersion *ResponseClientsGetClientDetailDetailHostVersion `json:"hostVersion,omitempty"` // Host Version - SubType string `json:"subType,omitempty"` // Sub Type - LastUpdated *int `json:"lastUpdated,omitempty"` // Last Updated - HealthScore *[]ResponseClientsGetClientDetailDetailHealthScore `json:"healthScore,omitempty"` // - HostMac string `json:"hostMac,omitempty"` // Host Mac - HostIPV4 string `json:"hostIpV4,omitempty"` // Host Ip V4 - HostIPV6 []string `json:"hostIpV6,omitempty"` // Host Ip V6 - AuthType string `json:"authType,omitempty"` // Auth Type - VLANID *int `json:"vlanId,omitempty"` // Vlan Id - Vnid *int `json:"vnid,omitempty"` // Vnid - SSID string `json:"ssid,omitempty"` // Ssid - Frequency string `json:"frequency,omitempty"` // Frequency - Channel string `json:"channel,omitempty"` // Channel - ApGroup *ResponseClientsGetClientDetailDetailApGroup `json:"apGroup,omitempty"` // Ap Group - Location *ResponseClientsGetClientDetailDetailLocation `json:"location,omitempty"` // Location - ClientConnection string `json:"clientConnection,omitempty"` // Client Connection - ConnectedDevice *[]ResponseClientsGetClientDetailDetailConnectedDevice `json:"connectedDevice,omitempty"` // Connected Device - IssueCount *float64 `json:"issueCount,omitempty"` // Issue Count - Rssi string `json:"rssi,omitempty"` // Rssi - AvgRssi *ResponseClientsGetClientDetailDetailAvgRssi `json:"avgRssi,omitempty"` // Avg Rssi - Snr string `json:"snr,omitempty"` // Snr - AvgSnr *ResponseClientsGetClientDetailDetailAvgSnr `json:"avgSnr,omitempty"` // Avg Snr - DataRate string `json:"dataRate,omitempty"` // Data Rate - TxBytes string `json:"txBytes,omitempty"` // Tx Bytes - RxBytes string `json:"rxBytes,omitempty"` // Rx Bytes - DNSSuccess *ResponseClientsGetClientDetailDetailDNSSuccess `json:"dnsSuccess,omitempty"` // Dns Success - DNSFailure *ResponseClientsGetClientDetailDetailDNSFailure `json:"dnsFailure,omitempty"` // Dns Failure - Onboarding *ResponseClientsGetClientDetailDetailOnboarding `json:"onboarding,omitempty"` // - ClientType string `json:"clientType,omitempty"` // Client Type - OnboardingTime *ResponseClientsGetClientDetailDetailOnboardingTime `json:"onboardingTime,omitempty"` // Onboarding Time - Port *ResponseClientsGetClientDetailDetailPort `json:"port,omitempty"` // Port - IosCapable *bool `json:"iosCapable,omitempty"` // Ios Capable -} -type ResponseClientsGetClientDetailDetailUserID interface{} -type ResponseClientsGetClientDetailDetailHostOs interface{} -type ResponseClientsGetClientDetailDetailHostVersion interface{} + ID string `json:"id,omitempty"` // Unique identifier representing a specific host + ConnectionStatus string `json:"connectionStatus,omitempty"` // The client is connected, connecting, or disconnected + Tracked string `json:"tracked,omitempty"` // Tracking status of this host + HostType string `json:"hostType,omitempty"` // WIRED or WIRELESS + UserID string `json:"userId,omitempty"` // The user ID of this host + Duid string `json:"duid,omitempty"` // Device UID for MAC + IDentifier string `json:"identifier,omitempty"` // The host's unique identifier, which is populated by and in order of userId, hostName, hostIpV4, hostIpV6, or hostMac + HostName string `json:"hostName,omitempty"` // The hostname of the host + HostOs string `json:"hostOs,omitempty"` // The OS of host + HostVersion string `json:"hostVersion,omitempty"` // The version of OS of host + SubType string `json:"subType,omitempty"` // The device type of host + FirmwareVersion string `json:"firmwareVersion,omitempty"` // The firmware version of the host + DeviceVendor string `json:"deviceVendor,omitempty"` // The device vendor string + DeviceForm string `json:"deviceForm,omitempty"` // The device form of the host (e.g. Phone/Tablet) + SalesCode string `json:"salesCode,omitempty"` // The Sales Code of the host + CountryCode string `json:"countryCode,omitempty"` // The country code of the host + LastUpdated *int `json:"lastUpdated,omitempty"` // Epoch/Unix time in milliseconds + HealthScore *[]ResponseClientsGetClientDetailDetailHealthScore `json:"healthScore,omitempty"` // + HostMac string `json:"hostMac,omitempty"` // MAC address of the interface + HostIPV4 string `json:"hostIpV4,omitempty"` // IPv4 address of the interface + HostIPV6 []string `json:"hostIpV6,omitempty"` // List of IPv6 addresses + AuthType string `json:"authType,omitempty"` // Authentication mechanism of the client + VLANID *int `json:"vlanId,omitempty"` // VLAN ID for the host + L3VirtualNetwork string `json:"l3VirtualNetwork,omitempty"` // Comma separated Level 3 virtual network names + L2VirtualNetwork string `json:"l2VirtualNetwork,omitempty"` // Comma separated Level 2 virtual network names + Vnid *int `json:"vnid,omitempty"` // VNID of the host + UpnID string `json:"upnId,omitempty"` // Registered UPN ID of the host + UpnName string `json:"upnName,omitempty"` // Registered UPN name of the host + SSID string `json:"ssid,omitempty"` // WLAN SSID to which the client is connected + Frequency string `json:"frequency,omitempty"` // Frequency band to which the client is connected + Channel string `json:"channel,omitempty"` // Channel to which the client is connected + ApGroup string `json:"apGroup,omitempty"` // AP group to which the client belongs + Sgt string `json:"sgt,omitempty"` // Security group tag + Location string `json:"location,omitempty"` // Site location of client + ClientConnection string `json:"clientConnection,omitempty"` // AP/Switch to which the client is connected + ConnectedDevice *[]ResponseClientsGetClientDetailDetailConnectedDevice `json:"connectedDevice,omitempty"` // + IssueCount *int `json:"issueCount,omitempty"` // Issue count for a device + Rssi string `json:"rssi,omitempty"` // Min RSSI value for the client + RssiThreshold string `json:"rssiThreshold,omitempty"` // RSSI threshold + RssiIsInclude string `json:"rssiIsInclude,omitempty"` // RSSI include/exclude flag + AvgRssi string `json:"avgRssi,omitempty"` // Average RSSI value for the client + Snr string `json:"snr,omitempty"` // Min signal to noise ratio for the client + SnrThreshold string `json:"snrThreshold,omitempty"` // SNR threshold + SnrIsInclude string `json:"snrIsInclude,omitempty"` // SNR include/exclude flag + AvgSnr string `json:"avgSnr,omitempty"` // Average signal to noise ratio for a client + DataRate string `json:"dataRate,omitempty"` // MCS data rates for a client + TxBytes string `json:"txBytes,omitempty"` // total transmitted bytes for a client + RxBytes string `json:"rxBytes,omitempty"` // Total received bytes for a client + DNSResponse string `json:"dnsResponse,omitempty"` // DNS response attempts for a client + DNSRequest string `json:"dnsRequest,omitempty"` // DNS request attempts for a client + Onboarding *ResponseClientsGetClientDetailDetailOnboarding `json:"onboarding,omitempty"` // + ClientType string `json:"clientType,omitempty"` // OLD or NEW + OnboardingTime *int `json:"onboardingTime,omitempty"` // Epoch/Unix time in milliseconds + Port string `json:"port,omitempty"` // switch port for client + IosCapable *bool `json:"iosCapable,omitempty"` // IOS Capable + Usage *float64 `json:"usage,omitempty"` // Usage of txBytes and rxBytes of client + LinkSpeed *float64 `json:"linkSpeed,omitempty"` // The speed of wired client + LinkThreshold string `json:"linkThreshold,omitempty"` // Link error threshold of wired client + RemoteEndDuplexMode string `json:"remoteEndDuplexMode,omitempty"` // The remote end duplex mode of wired client + TxLinkError *float64 `json:"txLinkError,omitempty"` // The error of tx link + RxLinkError *float64 `json:"rxLinkError,omitempty"` // The error of rx link + TxRate *float64 `json:"txRate,omitempty"` // The rate of tx + RxRate *float64 `json:"rxRate,omitempty"` // The rate of rx + RxRetryPct string `json:"rxRetryPct,omitempty"` // The retry count as percentage wrt to total rx packets + VersionTime *int `json:"versionTime,omitempty"` // The metric modification time of the new version + Dot11Protocol string `json:"dot11Protocol,omitempty"` // Description of dot11 protocol + SlotID *int `json:"slotId,omitempty"` // Slot ID of AP which client is connected + Dot11ProtocolCapability string `json:"dot11ProtocolCapability,omitempty"` // description of dot11 protocol capability + PrivateMac *bool `json:"privateMac,omitempty"` // Private Mac + DhcpServerIP string `json:"dhcpServerIp,omitempty"` // The DHCP server IP + AAAServerIP string `json:"aaaServerIp,omitempty"` // The AAA server IP + AAAServerTransaction *int `json:"aaaServerTransaction,omitempty"` // The number of AAA server transactions + AAAServerFailedTransaction *int `json:"aaaServerFailedTransaction,omitempty"` // The number of failed AAA server transactions + AAAServerSuccessTransaction *int `json:"aaaServerSuccessTransaction,omitempty"` // The number of successful AAA server transactions + AAAServerLatency *float64 `json:"aaaServerLatency,omitempty"` // The AAA server latency + AAAServerMABLatency *float64 `json:"aaaServerMABLatency,omitempty"` // The AAA server MAB latency + AAAServerEApLatency *float64 `json:"aaaServerEAPLatency,omitempty"` // The AAA server EAP latency + DhcpServerTransaction *int `json:"dhcpServerTransaction,omitempty"` // The number of DHCP server transactions + DhcpServerFailedTransaction *int `json:"dhcpServerFailedTransaction,omitempty"` // The number of failed DHCP server transactions + DhcpServerSuccessTransaction *int `json:"dhcpServerSuccessTransaction,omitempty"` // The number of successful DHCP server transactions + DhcpServerLatency *float64 `json:"dhcpServerLatency,omitempty"` // The DHCP server latency + DhcpServerDOLatency *float64 `json:"dhcpServerDOLatency,omitempty"` // The DHCP server DO latency + DhcpServerRALatency *float64 `json:"dhcpServerRALatency,omitempty"` // The DHCP RA latency + MaxRoamingDuration string `json:"maxRoamingDuration,omitempty"` // Max roaming duration for a client + UpnOwner string `json:"upnOwner,omitempty"` // Owner of registered UPN name + ConnectedUpn string `json:"connectedUpn,omitempty"` // connected UPN ID + ConnectedUpnOwner string `json:"connectedUpnOwner,omitempty"` // Connected UPN owner + ConnectedUpnID string `json:"connectedUpnId,omitempty"` // Connected UPN ID + IsGuestUPNEndpoint *bool `json:"isGuestUPNEndpoint,omitempty"` // Whether it is guest UPN endpoint + WlcName string `json:"wlcName,omitempty"` // The name of the connected wireless controller + WlcUUID string `json:"wlcUuid,omitempty"` // UUID of the WLC the client connected to + SessionDuration string `json:"sessionDuration,omitempty"` // Time duration the session took from run time to delete time + IntelCapable *bool `json:"intelCapable,omitempty"` // Whether support Intel device analytics + HwModel string `json:"hwModel,omitempty"` // Hardware model + PowerType string `json:"powerType,omitempty"` // AC/DC voltage + ModelName string `json:"modelName,omitempty"` // System model + BridgeVMMode string `json:"bridgeVMMode,omitempty"` // Bridge VM mode + DhcpNakIP string `json:"dhcpNakIp,omitempty"` // DHCP NAK IP + DhcpDeclineIP string `json:"dhcpDeclineIp,omitempty"` // DHCP decline IP + PortDescription string `json:"portDescription,omitempty"` // Port desctiption of wired client + LatencyVoice *float64 `json:"latencyVoice,omitempty"` // Voice latency + LatencyVideo *float64 `json:"latencyVideo,omitempty"` // Video latency + LatencyBg *float64 `json:"latencyBg,omitempty"` // Background latency + LatencyBe *float64 `json:"latencyBe,omitempty"` // Best-effort latency + TrustScore string `json:"trustScore,omitempty"` // Trust score of Client received from EndPoint Analytics + TrustDetails string `json:"trustDetails,omitempty"` // Trust details explaining reason for corresponding Trust score +} type ResponseClientsGetClientDetailDetailHealthScore struct { - HealthType string `json:"healthType,omitempty"` // Health Type - Reason string `json:"reason,omitempty"` // Reason - Score *int `json:"score,omitempty"` // Score + HealthType string `json:"healthType,omitempty"` // Type of device health + Reason string `json:"reason,omitempty"` // Reason for the health score value + Score *int `json:"score,omitempty"` // health score of client device in the range of 1 to 10. Value 0 for a client represents an IDLE client +} +type ResponseClientsGetClientDetailDetailConnectedDevice struct { + Type string `json:"type,omitempty"` // Type of device (AP or SWITCH) + Name string `json:"name,omitempty"` // Name of the device + Mac string `json:"mac,omitempty"` // MAC address of the access point + ID string `json:"id,omitempty"` // Unique identifier of the device + IPaddress string `json:"ip address,omitempty"` // Management IP address of the connected device. (deprecated soon in favor of 'mgmtIp') + MgmtIP string `json:"mgmtIp,omitempty"` // The IP address of the connected device + Band string `json:"band,omitempty"` // Band of the AP + Mode string `json:"mode,omitempty"` // The mode of the access point } -type ResponseClientsGetClientDetailDetailApGroup interface{} -type ResponseClientsGetClientDetailDetailLocation interface{} -type ResponseClientsGetClientDetailDetailConnectedDevice interface{} -type ResponseClientsGetClientDetailDetailAvgRssi interface{} -type ResponseClientsGetClientDetailDetailAvgSnr interface{} -type ResponseClientsGetClientDetailDetailDNSSuccess interface{} -type ResponseClientsGetClientDetailDetailDNSFailure interface{} type ResponseClientsGetClientDetailDetailOnboarding struct { - AverageRunDuration *ResponseClientsGetClientDetailDetailOnboardingAverageRunDuration `json:"averageRunDuration,omitempty"` // Average Run Duration - MaxRunDuration *ResponseClientsGetClientDetailDetailOnboardingMaxRunDuration `json:"maxRunDuration,omitempty"` // Max Run Duration - AverageAssocDuration *ResponseClientsGetClientDetailDetailOnboardingAverageAssocDuration `json:"averageAssocDuration,omitempty"` // Average Assoc Duration - MaxAssocDuration *ResponseClientsGetClientDetailDetailOnboardingMaxAssocDuration `json:"maxAssocDuration,omitempty"` // Max Assoc Duration - AverageAuthDuration *ResponseClientsGetClientDetailDetailOnboardingAverageAuthDuration `json:"averageAuthDuration,omitempty"` // Average Auth Duration - MaxAuthDuration *ResponseClientsGetClientDetailDetailOnboardingMaxAuthDuration `json:"maxAuthDuration,omitempty"` // Max Auth Duration - AverageDhcpDuration *ResponseClientsGetClientDetailDetailOnboardingAverageDhcpDuration `json:"averageDhcpDuration,omitempty"` // Average Dhcp Duration - MaxDhcpDuration *ResponseClientsGetClientDetailDetailOnboardingMaxDhcpDuration `json:"maxDhcpDuration,omitempty"` // Max Dhcp Duration - AAAServerIP string `json:"aaaServerIp,omitempty"` // Aaa Server Ip - DhcpServerIP *ResponseClientsGetClientDetailDetailOnboardingDhcpServerIP `json:"dhcpServerIp,omitempty"` // Dhcp Server Ip - AuthDoneTime *ResponseClientsGetClientDetailDetailOnboardingAuthDoneTime `json:"authDoneTime,omitempty"` // Auth Done Time - AssocDoneTime *ResponseClientsGetClientDetailDetailOnboardingAssocDoneTime `json:"assocDoneTime,omitempty"` // Assoc Done Time - DhcpDoneTime *ResponseClientsGetClientDetailDetailOnboardingDhcpDoneTime `json:"dhcpDoneTime,omitempty"` // Dhcp Done Time - AssocRootcauseList *[]ResponseClientsGetClientDetailDetailOnboardingAssocRootcauseList `json:"assocRootcauseList,omitempty"` // Assoc Rootcause List - AAARootcauseList *[]ResponseClientsGetClientDetailDetailOnboardingAAARootcauseList `json:"aaaRootcauseList,omitempty"` // Aaa Rootcause List - DhcpRootcauseList *[]ResponseClientsGetClientDetailDetailOnboardingDhcpRootcauseList `json:"dhcpRootcauseList,omitempty"` // Dhcp Rootcause List - OtherRootcauseList *[]ResponseClientsGetClientDetailDetailOnboardingOtherRootcauseList `json:"otherRootcauseList,omitempty"` // Other Rootcause List -} -type ResponseClientsGetClientDetailDetailOnboardingAverageRunDuration interface{} -type ResponseClientsGetClientDetailDetailOnboardingMaxRunDuration interface{} -type ResponseClientsGetClientDetailDetailOnboardingAverageAssocDuration interface{} -type ResponseClientsGetClientDetailDetailOnboardingMaxAssocDuration interface{} -type ResponseClientsGetClientDetailDetailOnboardingAverageAuthDuration interface{} -type ResponseClientsGetClientDetailDetailOnboardingMaxAuthDuration interface{} -type ResponseClientsGetClientDetailDetailOnboardingAverageDhcpDuration interface{} -type ResponseClientsGetClientDetailDetailOnboardingMaxDhcpDuration interface{} -type ResponseClientsGetClientDetailDetailOnboardingDhcpServerIP interface{} -type ResponseClientsGetClientDetailDetailOnboardingAuthDoneTime interface{} -type ResponseClientsGetClientDetailDetailOnboardingAssocDoneTime interface{} -type ResponseClientsGetClientDetailDetailOnboardingDhcpDoneTime interface{} -type ResponseClientsGetClientDetailDetailOnboardingAssocRootcauseList interface{} -type ResponseClientsGetClientDetailDetailOnboardingAAARootcauseList interface{} -type ResponseClientsGetClientDetailDetailOnboardingDhcpRootcauseList interface{} -type ResponseClientsGetClientDetailDetailOnboardingOtherRootcauseList interface{} -type ResponseClientsGetClientDetailDetailOnboardingTime interface{} -type ResponseClientsGetClientDetailDetailPort interface{} + AverageRunDuration string `json:"averageRunDuration,omitempty"` // Average run Duration for a client + MaxRunDuration string `json:"maxRunDuration,omitempty"` // Max run duration for a client + AverageAssocDuration string `json:"averageAssocDuration,omitempty"` // Average association duration for a client + MaxAssocDuration string `json:"maxAssocDuration,omitempty"` // Max association duration for a client + AverageAuthDuration string `json:"averageAuthDuration,omitempty"` // Average auth duration for a client + MaxAuthDuration string `json:"maxAuthDuration,omitempty"` // Max auth duration for a client + AverageDhcpDuration string `json:"averageDhcpDuration,omitempty"` // Average DHCP duration for a client + MaxDhcpDuration string `json:"maxDhcpDuration,omitempty"` // Max DHCP duration for a client + AAAServerIP string `json:"aaaServerIp,omitempty"` // AAA server IP for a client + DhcpServerIP string `json:"dhcpServerIp,omitempty"` // DHCP server IP for a client + AuthDoneTime *int `json:"authDoneTime,omitempty"` // Epoch/Unix time in milliseconds + AssocDoneTime *int `json:"assocDoneTime,omitempty"` // Epoch/Unix time in milliseconds + DhcpDoneTime *int `json:"dhcpDoneTime,omitempty"` // Epoch/Unix time in milliseconds + AssocRootcauseList []string `json:"assocRootcauseList,omitempty"` // Root cause list of ASSOC failure category + AAARootcauseList []string `json:"aaaRootcauseList,omitempty"` // Root cause list of AAA failure category + DhcpRootcauseList []string `json:"dhcpRootcauseList,omitempty"` // Root cause list of DHCP failure category + OtherRootcauseList []string `json:"otherRootcauseList,omitempty"` // Root cause list of other failure category + LatestRootCauseList []string `json:"latestRootCauseList,omitempty"` // Root cause list of latest root cause category +} type ResponseClientsGetClientDetailConnectionInfo struct { - HostType string `json:"hostType,omitempty"` // Host Type - NwDeviceName string `json:"nwDeviceName,omitempty"` // Nw Device Name - NwDeviceMac string `json:"nwDeviceMac,omitempty"` // Nw Device Mac - Protocol string `json:"protocol,omitempty"` // Protocol - Band string `json:"band,omitempty"` // Band - SpatialStream string `json:"spatialStream,omitempty"` // Spatial Stream - Channel string `json:"channel,omitempty"` // Channel - ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width - Wmm string `json:"wmm,omitempty"` // Wmm - Uapsd string `json:"uapsd,omitempty"` // Uapsd - Timestamp *int `json:"timestamp,omitempty"` // Timestamp + HostType string `json:"hostType,omitempty"` // Host Type - WIRELESS or WIRED + NwDeviceName string `json:"nwDeviceName,omitempty"` // Name of the network device it is connected to. In case of wireless, it would be an AccessPoint + NwDeviceMac string `json:"nwDeviceMac,omitempty"` // Device MAC address + Protocol string `json:"protocol,omitempty"` // Connection Protocol used. This information is present for wireless hosts only + Band string `json:"band,omitempty"` // The band at which the host is connected. This information is present for wireless hosts only + SpatialStream string `json:"spatialStream,omitempty"` // The spatial stream of host. This information is present for wireless hosts only + Channel string `json:"channel,omitempty"` // The channel used by the host. This information is present for wireless hosts only + ChannelWidth string `json:"channelWidth,omitempty"` // The channel width used by the host. This information is present for wireless hosts only + Wmm string `json:"wmm,omitempty"` // The wmm of the host. This information is present for wireless hosts only + Uapsd string `json:"uapsd,omitempty"` // The UAPSD of the host. This information is present for wireless hosts only + Timestamp *int `json:"timestamp,omitempty"` // Epoch/Unix time in milliseconds } type ResponseClientsGetClientDetailTopology struct { Nodes *[]ResponseClientsGetClientDetailTopologyNodes `json:"nodes,omitempty"` // Links *[]ResponseClientsGetClientDetailTopologyLinks `json:"links,omitempty"` // } type ResponseClientsGetClientDetailTopologyNodes struct { - Role string `json:"role,omitempty"` // Role - Name string `json:"name,omitempty"` // Name - ID string `json:"id,omitempty"` // Id - Description string `json:"description,omitempty"` // Description - DeviceType string `json:"deviceType,omitempty"` // Device Type - PlatformID *ResponseClientsGetClientDetailTopologyNodesPlatformID `json:"platformId,omitempty"` // Platform Id - Family *ResponseClientsGetClientDetailTopologyNodesFamily `json:"family,omitempty"` // Family - IP string `json:"ip,omitempty"` // Ip - SoftwareVersion *ResponseClientsGetClientDetailTopologyNodesSoftwareVersion `json:"softwareVersion,omitempty"` // Software Version - UserID *ResponseClientsGetClientDetailTopologyNodesUserID `json:"userId,omitempty"` // User Id - NodeType string `json:"nodeType,omitempty"` // Node Type - RadioFrequency *ResponseClientsGetClientDetailTopologyNodesRadioFrequency `json:"radioFrequency,omitempty"` // Radio Frequency - Clients *ResponseClientsGetClientDetailTopologyNodesClients `json:"clients,omitempty"` // Clients - Count *ResponseClientsGetClientDetailTopologyNodesCount `json:"count,omitempty"` // Count - HealthScore *int `json:"healthScore,omitempty"` // Health Score - Level *float64 `json:"level,omitempty"` // Level - FabricGroup *ResponseClientsGetClientDetailTopologyNodesFabricGroup `json:"fabricGroup,omitempty"` // Fabric Group - ConnectedDevice *ResponseClientsGetClientDetailTopologyNodesConnectedDevice `json:"connectedDevice,omitempty"` // Connected Device -} -type ResponseClientsGetClientDetailTopologyNodesPlatformID interface{} -type ResponseClientsGetClientDetailTopologyNodesFamily interface{} -type ResponseClientsGetClientDetailTopologyNodesSoftwareVersion interface{} -type ResponseClientsGetClientDetailTopologyNodesUserID interface{} -type ResponseClientsGetClientDetailTopologyNodesRadioFrequency interface{} -type ResponseClientsGetClientDetailTopologyNodesClients interface{} -type ResponseClientsGetClientDetailTopologyNodesCount interface{} -type ResponseClientsGetClientDetailTopologyNodesFabricGroup interface{} -type ResponseClientsGetClientDetailTopologyNodesConnectedDevice interface{} + Role string `json:"role,omitempty"` // Device role + Name string `json:"name,omitempty"` // Device name + ID string `json:"id,omitempty"` // User ID, hostname, IP address, or MAC address + Description string `json:"description,omitempty"` // Description of the topology node + DeviceType string `json:"deviceType,omitempty"` // Device type + PlatformID string `json:"platformId,omitempty"` // Device platform ID + Family string `json:"family,omitempty"` // Device family + IP string `json:"ip,omitempty"` // Device IP + IPv6 []string `json:"ipv6,omitempty"` // Device IPv6 + SoftwareVersion string `json:"softwareVersion,omitempty"` // Device software version + UserID string `json:"userId,omitempty"` // User ID + NodeType string `json:"nodeType,omitempty"` // Node type + RadioFrequency string `json:"radioFrequency,omitempty"` // Radio frequency + Clients *float64 `json:"clients,omitempty"` // Number of clients + Count *int `json:"count,omitempty"` // Count + HealthScore *float64 `json:"healthScore,omitempty"` // Device health score + Level *float64 `json:"level,omitempty"` // Level in the topology + FabricGroup string `json:"fabricGroup,omitempty"` // Fabric Group + FabricRole []string `json:"fabricRole,omitempty"` // Fabric Role + ConnectedDevice string `json:"connectedDevice,omitempty"` // Connected Device + StackType string `json:"stackType,omitempty"` // Stack Type +} type ResponseClientsGetClientDetailTopologyLinks struct { - Source string `json:"source,omitempty"` // Source - LinkStatus string `json:"linkStatus,omitempty"` // Link Status - Label []string `json:"label,omitempty"` // Label - Target string `json:"target,omitempty"` // Target - ID *ResponseClientsGetClientDetailTopologyLinksID `json:"id,omitempty"` // Id - PortUtilization *ResponseClientsGetClientDetailTopologyLinksPortUtilization `json:"portUtilization,omitempty"` // Port Utilization -} -type ResponseClientsGetClientDetailTopologyLinksID interface{} -type ResponseClientsGetClientDetailTopologyLinksPortUtilization interface{} + Source string `json:"source,omitempty"` // Edge line starting node + LinkStatus string `json:"linkStatus,omitempty"` // Link status of the link + SourceLinkStatus string `json:"sourceLinkStatus,omitempty"` // The status of the link + TargetLinkStatus string `json:"targetLinkStatus,omitempty"` // The status of the link + Label []string `json:"label,omitempty"` // The details of the edge + Target string `json:"target,omitempty"` // End node of the edge line + ID string `json:"id,omitempty"` // Identifier of the node + PortUtilization *float64 `json:"portUtilization,omitempty"` // Port utilization + SourceInterfaceName string `json:"sourceInterfaceName,omitempty"` // The interface name of the source + TargetInterfaceName string `json:"targetInterfaceName,omitempty"` // The interface name of the target + SourceDuplexInfo string `json:"sourceDuplexInfo,omitempty"` // The duplex info of the source + TargetDuplexInfo string `json:"targetDuplexInfo,omitempty"` // The duplex info of the target + SourcePortMode string `json:"sourcePortMode,omitempty"` // The port mode of the source + TargetPortMode string `json:"targetPortMode,omitempty"` // The port mode of the target + SourceAdminStatus string `json:"sourceAdminStatus,omitempty"` // The admin status of the source + TargetAdminStatus string `json:"targetAdminStatus,omitempty"` // The admin status of the target + ApRadioAdminStatus string `json:"apRadioAdminStatus,omitempty"` // The admin status of the radio + ApRadioOperStatus string `json:"apRadioOperStatus,omitempty"` // The oper status of the radio + SourcePortVLANInfo string `json:"sourcePortVLANInfo,omitempty"` // List of VLANs configured on the source port + TargetPortVLANInfo string `json:"targetPortVLANInfo,omitempty"` // List of VLANs configured on the target port + InterfaceDetails *[]ResponseClientsGetClientDetailTopologyLinksInterfaceDetails `json:"interfaceDetails,omitempty"` // +} +type ResponseClientsGetClientDetailTopologyLinksInterfaceDetails struct { + ClientMacAddress string `json:"clientMacAddress,omitempty"` // The MAC address of the client device + ConnectedDeviceIntName string `json:"connectedDeviceIntName,omitempty"` // The interface name of the network device + Duplex string `json:"duplex,omitempty"` // The duplex info of the network device interface + PortMode string `json:"portMode,omitempty"` // The port mode info of network device interface + AdminStatus string `json:"adminStatus,omitempty"` // The admin status of network device interface +} type ResponseClientsGetClientEnrichmentDetails []ResponseItemClientsGetClientEnrichmentDetails // Array of ResponseClientsGetClientEnrichmentDetails type ResponseItemClientsGetClientEnrichmentDetails struct { UserDetails *ResponseItemClientsGetClientEnrichmentDetailsUserDetails `json:"userDetails,omitempty"` // @@ -373,64 +1076,354 @@ type ResponseItemClientsGetClientEnrichmentDetailsIssueDetailsIssueImpactedHosts type ResponseItemClientsGetClientEnrichmentDetailsIssueDetailsIssueImpactedHostsLocationFloor interface{} type ResponseItemClientsGetClientEnrichmentDetailsIssueDetailsIssueImpactedHostsLocationApsImpacted interface{} type ResponseClientsGetOverallClientHealth struct { + Version string `json:"version,omitempty"` // Response output version Response *[]ResponseClientsGetOverallClientHealthResponse `json:"response,omitempty"` // } type ResponseClientsGetOverallClientHealthResponse struct { - SiteID string `json:"siteId,omitempty"` // Site Id + SiteID string `json:"siteId,omitempty"` // Site UUID or 'global' ScoreDetail *[]ResponseClientsGetOverallClientHealthResponseScoreDetail `json:"scoreDetail,omitempty"` // } type ResponseClientsGetOverallClientHealthResponseScoreDetail struct { - ScoreCategory *ResponseClientsGetOverallClientHealthResponseScoreDetailScoreCategory `json:"scoreCategory,omitempty"` // - ScoreValue *int `json:"scoreValue,omitempty"` // Score Value - ClientCount *int `json:"clientCount,omitempty"` // Client Count - ClientUniqueCount *int `json:"clientUniqueCount,omitempty"` // Client Unique Count - Starttime *int `json:"starttime,omitempty"` // Starttime - Endtime *int `json:"endtime,omitempty"` // Endtime - ScoreList *[]ResponseClientsGetOverallClientHealthResponseScoreDetailScoreList `json:"scoreList,omitempty"` // + ScoreCategory *ResponseClientsGetOverallClientHealthResponseScoreDetailScoreCategory `json:"scoreCategory,omitempty"` // + ScoreValue *float64 `json:"scoreValue,omitempty"` // Percentage of GOOD health score in the category. (-1 means not applicable for the category) + ClientCount *int `json:"clientCount,omitempty"` // Total client count + ClientUniqueCount *int `json:"clientUniqueCount,omitempty"` // Total unique client count + MaintenanceAffectedClientCount *int `json:"maintenanceAffectedClientCount,omitempty"` // Total client count affected by maintenance + RandomMacCount *int `json:"randomMacCount,omitempty"` // Total client count with random MAC count + DuidCount *int `json:"duidCount,omitempty"` // Device UUID count + Starttime *int `json:"starttime,omitempty"` // UTC timestamp of data start time + Endtime *int `json:"endtime,omitempty"` // UTC timestamp of data end time + ConnectedToUdnCount *int `json:"connectedToUdnCount,omitempty"` // Total connected to UDN count + UnconnectedToUdnCount *int `json:"unconnectedToUdnCount,omitempty"` // Total unconnected to UDN count + ScoreList *[]ResponseClientsGetOverallClientHealthResponseScoreDetailScoreList `json:"scoreList,omitempty"` // } type ResponseClientsGetOverallClientHealthResponseScoreDetailScoreCategory struct { - ScoreCategory string `json:"scoreCategory,omitempty"` // Score Category - Value string `json:"value,omitempty"` // Value + ScoreCategory string `json:"scoreCategory,omitempty"` // Health score category + Value string `json:"value,omitempty"` // Health score category value } type ResponseClientsGetOverallClientHealthResponseScoreDetailScoreList struct { - ScoreCategory *ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreCategory `json:"scoreCategory,omitempty"` // - ScoreValue *int `json:"scoreValue,omitempty"` // Score Value - ClientCount *int `json:"clientCount,omitempty"` // Client Count - ClientUniqueCount *float64 `json:"clientUniqueCount,omitempty"` // Client Unique Count - Starttime *int `json:"starttime,omitempty"` // Starttime - Endtime *int `json:"endtime,omitempty"` // Endtime - ScoreList *[]ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreList `json:"scoreList,omitempty"` // + ScoreCategory *ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreCategory `json:"scoreCategory,omitempty"` // + ScoreValue *float64 `json:"scoreValue,omitempty"` // Percentage of GOOD health score in the category. (-1 means not applicable for the category) + ClientCount *int `json:"clientCount,omitempty"` // Total client count + ClientUniqueCount *int `json:"clientUniqueCount,omitempty"` // Total unique client count + MaintenanceAffectedClientCount *int `json:"maintenanceAffectedClientCount,omitempty"` // Total client count affected by maintenance + RandomMacCount *int `json:"randomMacCount,omitempty"` // Total client count with random MAC count + DuidCount *int `json:"duidCount,omitempty"` // Device UUID count + Starttime *int `json:"starttime,omitempty"` // UTC timestamp of data start time + Endtime *int `json:"endtime,omitempty"` // UTC timestamp of data end time + ConnectedToUdnCount *int `json:"connectedToUdnCount,omitempty"` // Total connected to UDN count + UnconnectedToUdnCount *int `json:"unconnectedToUdnCount,omitempty"` // Total unconnected to UDN count } type ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreCategory struct { - ScoreCategory string `json:"scoreCategory,omitempty"` // Score Category - Value string `json:"value,omitempty"` // Value -} -type ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreList struct { - ScoreCategory *ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreListScoreCategory `json:"scoreCategory,omitempty"` // - ScoreValue *int `json:"scoreValue,omitempty"` // Score Value - ClientCount *int `json:"clientCount,omitempty"` // Client Count - ClientUniqueCount *ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreListClientUniqueCount `json:"clientUniqueCount,omitempty"` // Client Unique Count - Starttime *int `json:"starttime,omitempty"` // Starttime - Endtime *int `json:"endtime,omitempty"` // Endtime -} -type ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreListScoreCategory struct { - ScoreCategory string `json:"scoreCategory,omitempty"` // Score Category - Value string `json:"value,omitempty"` // Value -} -type ResponseClientsGetOverallClientHealthResponseScoreDetailScoreListScoreListClientUniqueCount interface{} + ScoreCategory string `json:"scoreCategory,omitempty"` // Category of the overall health score + Value string `json:"value,omitempty"` // Health score category value +} type ResponseClientsClientProximity struct { ExecutionID string `json:"executionId,omitempty"` // Execution Id ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url Message string `json:"message,omitempty"` // Message } +type RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Views []string `json:"views,omitempty"` // Views + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesPage `json:"page,omitempty"` // +} +type RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value *int `json:"value,omitempty"` // Value +} +type RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + SortBy *[]RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesPageSortBy `json:"sortBy,omitempty"` // +} +type RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestClientsRetrievesTheNumberOfClientsByApplyingComplexFilters struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Filters *[]RequestClientsRetrievesTheNumberOfClientsByApplyingComplexFiltersFilters `json:"filters,omitempty"` // +} +type RequestClientsRetrievesTheNumberOfClientsByApplyingComplexFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value *int `json:"value,omitempty"` // Value +} +type RequestClientsRetrievesSummaryAnalyticsDataRelatedToClients struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + GroupBy []string `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestClientsRetrievesSummaryAnalyticsDataRelatedToClientsFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestClientsRetrievesSummaryAnalyticsDataRelatedToClientsAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestClientsRetrievesSummaryAnalyticsDataRelatedToClientsPage `json:"page,omitempty"` // +} +type RequestClientsRetrievesSummaryAnalyticsDataRelatedToClientsFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value *int `json:"value,omitempty"` // Value +} +type RequestClientsRetrievesSummaryAnalyticsDataRelatedToClientsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestClientsRetrievesSummaryAnalyticsDataRelatedToClientsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Cursor string `json:"cursor,omitempty"` // Cursor + SortBy *[]RequestClientsRetrievesSummaryAnalyticsDataRelatedToClientsPageSortBy `json:"sortBy,omitempty"` // +} +type RequestClientsRetrievesSummaryAnalyticsDataRelatedToClientsPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClients struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + TopN *int `json:"topN,omitempty"` // Top N + GroupBy []string `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClientsFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClientsAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClientsPage `json:"page,omitempty"` // +} +type RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClientsFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value *int `json:"value,omitempty"` // Value +} +type RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClientsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClientsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Cursor string `json:"cursor,omitempty"` // Cursor + SortBy *[]RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClientsPageSortBy `json:"sortBy,omitempty"` // +} +type RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClientsPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestClientsRetrievesTheTrendAnalyticsDataRelatedToClients struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + TrendInterval string `json:"trendInterval,omitempty"` // Trend Interval + GroupBy []string `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestClientsRetrievesTheTrendAnalyticsDataRelatedToClientsFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestClientsRetrievesTheTrendAnalyticsDataRelatedToClientsAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestClientsRetrievesTheTrendAnalyticsDataRelatedToClientsPage `json:"page,omitempty"` // +} +type RequestClientsRetrievesTheTrendAnalyticsDataRelatedToClientsFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value *int `json:"value,omitempty"` // Value +} +type RequestClientsRetrievesTheTrendAnalyticsDataRelatedToClientsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestClientsRetrievesTheTrendAnalyticsDataRelatedToClientsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Cursor string `json:"cursor,omitempty"` // Cursor + TimeSortOrder string `json:"timeSortOrder,omitempty"` // Time Sort Order +} +type RequestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + TrendInterval string `json:"trendInterval,omitempty"` // Trend Interval + GroupBy []string `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimePage `json:"page,omitempty"` // +} +type RequestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value *int `json:"value,omitempty"` // Value +} +type RequestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTimePage struct { + Limit *int `json:"limit,omitempty"` // Limit + Cursor string `json:"cursor,omitempty"` // Cursor + TimeSortOrder string `json:"timeSortOrder,omitempty"` // Time Sort Order +} + +//RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilities Retrieves the list of clients, while also offering basic filtering and sorting capabilities. - ecb7-ab7e-47eb-8793 +/* Retrieves the list of clients, while also offering basic filtering and sorting capabilities. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + + +@param RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesHeaderParams Custom header parameters +@param RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-list-of-clients-while-also-offering-basic-filtering-and-sorting-capabilities-v1 +*/ +func (s *ClientsService) RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilities(RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesHeaderParams *RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesHeaderParams, RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesQueryParams *RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesQueryParams) (*ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilities, *resty.Response, error) { + path := "/dna/data/api/v1/clients" + + queryString, _ := query.Values(RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesHeaderParams != nil { + + if RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilities{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilities(RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesHeaderParams, RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilitiesQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilities") + } + + result := response.Result().(*ResponseClientsRetrievesTheListOfClientsWhileAlsoOfferingBasicFilteringAndSortingCapabilities) + return result, response, err + +} + +//RetrievesTheTotalCountOfClientsByApplyingBasicFiltering Retrieves the total count of clients by applying basic filtering - a486-4bef-4cab-9548 +/* Retrieves the number of clients by applying basic filtering. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + + +@param RetrievesTheTotalCountOfClientsByApplyingBasicFilteringHeaderParams Custom header parameters +@param RetrievesTheTotalCountOfClientsByApplyingBasicFilteringQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-total-count-of-clients-by-applying-basic-filtering-v1 +*/ +func (s *ClientsService) RetrievesTheTotalCountOfClientsByApplyingBasicFiltering(RetrievesTheTotalCountOfClientsByApplyingBasicFilteringHeaderParams *RetrievesTheTotalCountOfClientsByApplyingBasicFilteringHeaderParams, RetrievesTheTotalCountOfClientsByApplyingBasicFilteringQueryParams *RetrievesTheTotalCountOfClientsByApplyingBasicFilteringQueryParams) (*ResponseClientsRetrievesTheTotalCountOfClientsByApplyingBasicFiltering, *resty.Response, error) { + path := "/dna/data/api/v1/clients/count" + + queryString, _ := query.Values(RetrievesTheTotalCountOfClientsByApplyingBasicFilteringQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesTheTotalCountOfClientsByApplyingBasicFilteringHeaderParams != nil { + + if RetrievesTheTotalCountOfClientsByApplyingBasicFilteringHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesTheTotalCountOfClientsByApplyingBasicFilteringHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseClientsRetrievesTheTotalCountOfClientsByApplyingBasicFiltering{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheTotalCountOfClientsByApplyingBasicFiltering(RetrievesTheTotalCountOfClientsByApplyingBasicFilteringHeaderParams, RetrievesTheTotalCountOfClientsByApplyingBasicFilteringQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheTotalCountOfClientsByApplyingBasicFiltering") + } + + result := response.Result().(*ResponseClientsRetrievesTheTotalCountOfClientsByApplyingBasicFiltering) + return result, response, err + +} + +//RetrievesSpecificClientInformationMatchingTheMacaddress Retrieves specific client information matching the MAC address. - 829f-8b65-4779-9069 +/* Retrieves specific client information matching the MAC address. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + -//GetClientDetail Get Client Detail - e2ad-ba79-43ba-b3e9 +@param id id path parameter. id is the client mac address. It can be specified is any notational conventions 01:23:45:67:89:AB or 01-23-45-67-89-AB or 0123.4567.89AB and is case insensitive + +@param RetrievesSpecificClientInformationMatchingTheMACAddressHeaderParams Custom header parameters +@param RetrievesSpecificClientInformationMatchingTheMACAddressQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-specific-client-information-matching-the-macaddress-v1 +*/ +func (s *ClientsService) RetrievesSpecificClientInformationMatchingTheMacaddress(id string, RetrievesSpecificClientInformationMatchingTheMACAddressHeaderParams *RetrievesSpecificClientInformationMatchingTheMacaddressHeaderParams, RetrievesSpecificClientInformationMatchingTheMACAddressQueryParams *RetrievesSpecificClientInformationMatchingTheMacaddressQueryParams) (*ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddress, *resty.Response, error) { + path := "/dna/data/api/v1/clients/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(RetrievesSpecificClientInformationMatchingTheMACAddressQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesSpecificClientInformationMatchingTheMACAddressHeaderParams != nil { + + if RetrievesSpecificClientInformationMatchingTheMACAddressHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesSpecificClientInformationMatchingTheMACAddressHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddress{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesSpecificClientInformationMatchingTheMacaddress(id, RetrievesSpecificClientInformationMatchingTheMACAddressHeaderParams, RetrievesSpecificClientInformationMatchingTheMACAddressQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesSpecificClientInformationMatchingTheMacaddress") + } + + result := response.Result().(*ResponseClientsRetrievesSpecificClientInformationMatchingTheMacaddress) + return result, response, err + +} + +//GetClientDetail Get Client Detail - 1980-1996-4389-9d65 /* Returns detailed Client information retrieved by Mac Address for any given point of time. @param GetClientDetailQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-client-detail +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-client-detail-v1 */ func (s *ClientsService) GetClientDetail(GetClientDetailQueryParams *GetClientDetailQueryParams) (*ResponseClientsGetClientDetail, *resty.Response, error) { path := "/dna/intent/api/v1/client-detail" @@ -467,7 +1460,7 @@ func (s *ClientsService) GetClientDetail(GetClientDetailQueryParams *GetClientDe @param GetClientEnrichmentDetailsHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-client-enrichment-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-client-enrichment-details-v1 */ func (s *ClientsService) GetClientEnrichmentDetails(GetClientEnrichmentDetailsHeaderParams *GetClientEnrichmentDetailsHeaderParams) (*ResponseClientsGetClientEnrichmentDetails, *resty.Response, error) { path := "/dna/intent/api/v1/client-enrichment-details" @@ -492,6 +1485,10 @@ func (s *ClientsService) GetClientEnrichmentDetails(GetClientEnrichmentDetailsHe clientRequest = clientRequest.SetHeader("issueCategory", GetClientEnrichmentDetailsHeaderParams.IssueCategory) } + if GetClientEnrichmentDetailsHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", GetClientEnrichmentDetailsHeaderParams.Persistbapioutput) + } + } response, err = clientRequest. @@ -516,13 +1513,13 @@ func (s *ClientsService) GetClientEnrichmentDetails(GetClientEnrichmentDetailsHe } -//GetOverallClientHealth Get Overall Client Health - 149a-a93b-4ddb-80dd +//GetOverallClientHealth Get Overall Client Health - 3f9f-d80e-4df9-863c /* Returns Overall Client Health information by Client type (Wired and Wireless) for any given point of time @param GetOverallClientHealthQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-overall-client-health +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-overall-client-health-v1 */ func (s *ClientsService) GetOverallClientHealth(GetOverallClientHealthQueryParams *GetOverallClientHealthQueryParams) (*ResponseClientsGetOverallClientHealth, *resty.Response, error) { path := "/dna/intent/api/v1/client-health" @@ -559,7 +1556,7 @@ func (s *ClientsService) GetOverallClientHealth(GetOverallClientHealthQueryParam @param ClientProximityQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!client-proximity +Documentation Link: https://developer.cisco.com/docs/dna-center/#!client-proximity-v1 */ func (s *ClientsService) ClientProximity(ClientProximityQueryParams *ClientProximityQueryParams) (*ResponseClientsClientProximity, *resty.Response, error) { path := "/dna/intent/api/v1/client-proximity" @@ -589,3 +1586,306 @@ func (s *ClientsService) ClientProximity(ClientProximityQueryParams *ClientProxi return result, response, err } + +//RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes Retrieves the list of clients by applying complex filters while also supporting aggregate attributes. - e982-db36-48c9-a651 +/* Retrieves the list of clients by applying complex filters while also supporting aggregate attributes. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + + +@param RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-list-of-clients-by-applying-complex-filters-while-also-supporting-aggregate-attributes-v1 +*/ +func (s *ClientsService) RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes(requestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes *RequestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes, RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesHeaderParams *RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesHeaderParams) (*ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes, *resty.Response, error) { + path := "/dna/data/api/v1/clients/query" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesHeaderParams != nil { + + if RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes). + SetResult(&ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes(requestClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes, RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributesHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation RetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes") + } + + result := response.Result().(*ResponseClientsRetrievesTheListOfClientsByApplyingComplexFiltersWhileAlsoSupportingAggregateAttributes) + return result, response, err + +} + +//RetrievesTheNumberOfClientsByApplyingComplexFilters Retrieves the number of clients by applying complex filters. - b596-a8d5-40ba-9c5c +/* Retrieves the number of clients by applying complex filters. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + + +@param RetrievesTheNumberOfClientsByApplyingComplexFiltersHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-number-of-clients-by-applying-complex-filters-v1 +*/ +func (s *ClientsService) RetrievesTheNumberOfClientsByApplyingComplexFilters(requestClientsRetrievesTheNumberOfClientsByApplyingComplexFilters *RequestClientsRetrievesTheNumberOfClientsByApplyingComplexFilters, RetrievesTheNumberOfClientsByApplyingComplexFiltersHeaderParams *RetrievesTheNumberOfClientsByApplyingComplexFiltersHeaderParams) (*ResponseClientsRetrievesTheNumberOfClientsByApplyingComplexFilters, *resty.Response, error) { + path := "/dna/data/api/v1/clients/query/count" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesTheNumberOfClientsByApplyingComplexFiltersHeaderParams != nil { + + if RetrievesTheNumberOfClientsByApplyingComplexFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesTheNumberOfClientsByApplyingComplexFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestClientsRetrievesTheNumberOfClientsByApplyingComplexFilters). + SetResult(&ResponseClientsRetrievesTheNumberOfClientsByApplyingComplexFilters{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheNumberOfClientsByApplyingComplexFilters(requestClientsRetrievesTheNumberOfClientsByApplyingComplexFilters, RetrievesTheNumberOfClientsByApplyingComplexFiltersHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation RetrievesTheNumberOfClientsByApplyingComplexFilters") + } + + result := response.Result().(*ResponseClientsRetrievesTheNumberOfClientsByApplyingComplexFilters) + return result, response, err + +} + +//RetrievesSummaryAnalyticsDataRelatedToClients Retrieves summary analytics data related to clients. - d7a5-8ae6-4ecb-aab9 +/* Retrieves summary analytics data related to clients while applying complex filtering, aggregate functions, and grouping. This API facilitates obtaining consolidated insights into the performance and status of the clients. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + + +@param RetrievesSummaryAnalyticsDataRelatedToClientsHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-summary-analytics-data-related-to-clients-v1 +*/ +func (s *ClientsService) RetrievesSummaryAnalyticsDataRelatedToClients(requestClientsRetrievesSummaryAnalyticsDataRelatedToClients *RequestClientsRetrievesSummaryAnalyticsDataRelatedToClients, RetrievesSummaryAnalyticsDataRelatedToClientsHeaderParams *RetrievesSummaryAnalyticsDataRelatedToClientsHeaderParams) (*ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClients, *resty.Response, error) { + path := "/dna/data/api/v1/clients/summaryAnalytics" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesSummaryAnalyticsDataRelatedToClientsHeaderParams != nil { + + if RetrievesSummaryAnalyticsDataRelatedToClientsHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesSummaryAnalyticsDataRelatedToClientsHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestClientsRetrievesSummaryAnalyticsDataRelatedToClients). + SetResult(&ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClients{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesSummaryAnalyticsDataRelatedToClients(requestClientsRetrievesSummaryAnalyticsDataRelatedToClients, RetrievesSummaryAnalyticsDataRelatedToClientsHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation RetrievesSummaryAnalyticsDataRelatedToClients") + } + + result := response.Result().(*ResponseClientsRetrievesSummaryAnalyticsDataRelatedToClients) + return result, response, err + +} + +//RetrievesTheTopNAnalyticsDataRelatedToClients Retrieves the Top-N analytics data related to clients. - dd98-6b95-401a-90e7 +/* Retrieves the top N analytics data related to clients based on the provided input data. This API facilitates obtaining insights into the top-performing or most impacted clients. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + + +@param RetrievesTheTopNAnalyticsDataRelatedToClientsHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-top-n-analytics-data-related-to-clients-v1 +*/ +func (s *ClientsService) RetrievesTheTopNAnalyticsDataRelatedToClients(requestClientsRetrievesTheTopNAnalyticsDataRelatedToClients *RequestClientsRetrievesTheTopNAnalyticsDataRelatedToClients, RetrievesTheTopNAnalyticsDataRelatedToClientsHeaderParams *RetrievesTheTopNAnalyticsDataRelatedToClientsHeaderParams) (*ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClients, *resty.Response, error) { + path := "/dna/data/api/v1/clients/topNAnalytics" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesTheTopNAnalyticsDataRelatedToClientsHeaderParams != nil { + + if RetrievesTheTopNAnalyticsDataRelatedToClientsHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesTheTopNAnalyticsDataRelatedToClientsHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestClientsRetrievesTheTopNAnalyticsDataRelatedToClients). + SetResult(&ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClients{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheTopNAnalyticsDataRelatedToClients(requestClientsRetrievesTheTopNAnalyticsDataRelatedToClients, RetrievesTheTopNAnalyticsDataRelatedToClientsHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation RetrievesTheTopNAnalyticsDataRelatedToClients") + } + + result := response.Result().(*ResponseClientsRetrievesTheTopNAnalyticsDataRelatedToClients) + return result, response, err + +} + +//RetrievesTheTrendAnalyticsDataRelatedToClients Retrieves the Trend analytics data related to clients. - 5d8e-eb0c-4988-af1f +/* Retrieves the trend analytics of client data for the specified time range. The data will be grouped based on the given trend time interval. This API facilitates obtaining consolidated insights into the performance and status of the clients over the specified start and end time. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + + +@param RetrievesTheTrendAnalyticsDataRelatedToClientsHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-trend-analytics-data-related-to-clients-v1 +*/ +func (s *ClientsService) RetrievesTheTrendAnalyticsDataRelatedToClients(requestClientsRetrievesTheTrendAnalyticsDataRelatedToClients *RequestClientsRetrievesTheTrendAnalyticsDataRelatedToClients, RetrievesTheTrendAnalyticsDataRelatedToClientsHeaderParams *RetrievesTheTrendAnalyticsDataRelatedToClientsHeaderParams) (*ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClients, *resty.Response, error) { + path := "/dna/data/api/v1/clients/trendAnalytics" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesTheTrendAnalyticsDataRelatedToClientsHeaderParams != nil { + + if RetrievesTheTrendAnalyticsDataRelatedToClientsHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesTheTrendAnalyticsDataRelatedToClientsHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestClientsRetrievesTheTrendAnalyticsDataRelatedToClients). + SetResult(&ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClients{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheTrendAnalyticsDataRelatedToClients(requestClientsRetrievesTheTrendAnalyticsDataRelatedToClients, RetrievesTheTrendAnalyticsDataRelatedToClientsHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation RetrievesTheTrendAnalyticsDataRelatedToClients") + } + + result := response.Result().(*ResponseClientsRetrievesTheTrendAnalyticsDataRelatedToClients) + return result, response, err + +} + +//RetrievesSpecificClientInformationOverASpecifiedPeriodOfTime Retrieves specific client information over a specified period of time. - d086-9874-4ffa-a996 +/* Retrieves the time series information of a specific client by applying complex filters, aggregate functions, and grouping. The data will be grouped based on the specified trend time interval. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-clients1-1.0.0-resolved.yaml + + +@param id id path parameter. id is the client mac address. It can be specified in one of the notational conventions 01:23:45:67:89:AB or 01-23-45-67-89-AB or 0123.4567.89AB and is case insensitive + +@param RetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-specific-client-information-over-a-specified-period-of-time-v1 +*/ +func (s *ClientsService) RetrievesSpecificClientInformationOverASpecifiedPeriodOfTime(id string, requestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime *RequestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime, RetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeHeaderParams *RetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeHeaderParams) (*ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime, *resty.Response, error) { + path := "/dna/data/api/v1/clients/{id}/trendAnalytics" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if RetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeHeaderParams != nil { + + if RetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", RetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime). + SetResult(&ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesSpecificClientInformationOverASpecifiedPeriodOfTime(id, requestClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime, RetrievesSpecificClientInformationOverASpecifiedPeriodOfTimeHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation RetrievesSpecificClientInformationOverASpecifiedPeriodOfTime") + } + + result := response.Result().(*ResponseClientsRetrievesSpecificClientInformationOverASpecifiedPeriodOfTime) + return result, response, err + +} diff --git a/sdk/command_runner.go b/sdk/command_runner.go index 27a834d..a422657 100644 --- a/sdk/command_runner.go +++ b/sdk/command_runner.go @@ -9,7 +9,7 @@ import ( type CommandRunnerService service -type ResponseCommandRunnerGetAllKeywordsOfCliSAcceptedByCommandRunner struct { +type ResponseCommandRunnerGetAllKeywordsOfClisAcceptedByCommandRunner struct { Response []string `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } @@ -22,27 +22,27 @@ type ResponseCommandRunnerRunReadOnlyCommandsOnDevicesToGetTheirRealTimeConfigur URL string `json:"url,omitempty"` // } type RequestCommandRunnerRunReadOnlyCommandsOnDevicesToGetTheirRealTimeConfiguration struct { - Commands []string `json:"commands,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceUUIDs []string `json:"deviceUuids,omitempty"` // - Name string `json:"name,omitempty"` // - Timeout *int `json:"timeout,omitempty"` // + Commands []string `json:"commands,omitempty"` // Commands to be executed + Description string `json:"description,omitempty"` // Describe the details about the command request + DeviceUUIDs []string `json:"deviceUuids,omitempty"` // Device Id of the device + Name string `json:"name,omitempty"` // Name of the the request like getshowrun , deviceinterfacestatusCli. + Timeout *int `json:"timeout,omitempty"` // The timeout value in unit of second. If no timeout provided wait till 300sec } -//GetAllKeywordsOfCliSAcceptedByCommandRunner Get all keywords of CLIs accepted by command runner - 33bb-2b9d-4019-9e14 +//GetAllKeywordsOfClisAcceptedByCommandRunner Get all keywords of CLIs accepted by command runner - 33bb-2b9d-4019-9e14 /* Get valid keywords -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-keywords-of-c-l-is-accepted-by-command-runner +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-keywords-of-clis-accepted-by-command-runner-v1 */ -func (s *CommandRunnerService) GetAllKeywordsOfCliSAcceptedByCommandRunner() (*ResponseCommandRunnerGetAllKeywordsOfCliSAcceptedByCommandRunner, *resty.Response, error) { +func (s *CommandRunnerService) GetAllKeywordsOfClisAcceptedByCommandRunner() (*ResponseCommandRunnerGetAllKeywordsOfClisAcceptedByCommandRunner, *resty.Response, error) { path := "/dna/intent/api/v1/network-device-poller/cli/legit-reads" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseCommandRunnerGetAllKeywordsOfCliSAcceptedByCommandRunner{}). + SetResult(&ResponseCommandRunnerGetAllKeywordsOfClisAcceptedByCommandRunner{}). SetError(&Error). Get(path) @@ -53,12 +53,12 @@ func (s *CommandRunnerService) GetAllKeywordsOfCliSAcceptedByCommandRunner() (*R if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetAllKeywordsOfCliSAcceptedByCommandRunner() + return s.GetAllKeywordsOfClisAcceptedByCommandRunner() } - return nil, response, fmt.Errorf("error with operation GetAllKeywordsOfCliSAcceptedByCommandRunner") + return nil, response, fmt.Errorf("error with operation GetAllKeywordsOfClisAcceptedByCommandRunner") } - result := response.Result().(*ResponseCommandRunnerGetAllKeywordsOfCliSAcceptedByCommandRunner) + result := response.Result().(*ResponseCommandRunnerGetAllKeywordsOfClisAcceptedByCommandRunner) return result, response, err } @@ -68,7 +68,7 @@ func (s *CommandRunnerService) GetAllKeywordsOfCliSAcceptedByCommandRunner() (*R -Documentation Link: https://developer.cisco.com/docs/dna-center/#!run-read-only-commands-on-devices-to-get-their-real-time-configuration +Documentation Link: https://developer.cisco.com/docs/dna-center/#!run-read-only-commands-on-devices-to-get-their-real-time-configuration-v1 */ func (s *CommandRunnerService) RunReadOnlyCommandsOnDevicesToGetTheirRealTimeConfiguration(requestCommandRunnerRunReadOnlyCommandsOnDevicesToGetTheirRealTimeConfiguration *RequestCommandRunnerRunReadOnlyCommandsOnDevicesToGetTheirRealTimeConfiguration) (*ResponseCommandRunnerRunReadOnlyCommandsOnDevicesToGetTheirRealTimeConfiguration, *resty.Response, error) { path := "/dna/intent/api/v1/network-device-poller/cli/read-request" diff --git a/sdk/compliance.go b/sdk/compliance.go index bd323e5..79e5bbf 100644 --- a/sdk/compliance.go +++ b/sdk/compliance.go @@ -12,140 +12,186 @@ import ( type ComplianceService service type GetComplianceStatusQueryParams struct { - ComplianceStatus string `url:"complianceStatus,omitempty"` //Compliance status can be have value among 'COMPLIANT','NON_COMPLIANT','IN_PROGRESS', 'ERROR' - DeviceUUID string `url:"deviceUuid,omitempty"` //Comma separated deviceUuids - Offset float64 `url:"offset,omitempty"` //offset/starting row - Limit float64 `url:"limit,omitempty"` //Number of records to be retrieved + ComplianceStatus string `url:"complianceStatus,omitempty"` //Specify "Compliance status(es)" separated by commas. The Compliance status can be 'COMPLIANT', 'NON_COMPLIANT', 'IN_PROGRESS', 'NOT_AVAILABLE', 'NOT_APPLICABLE', 'ERROR'. + DeviceUUID string `url:"deviceUuid,omitempty"` //Comma separated 'Device Ids' } type GetComplianceStatusCountQueryParams struct { - ComplianceStatus string `url:"complianceStatus,omitempty"` //Compliance status can have value among 'COMPLIANT', 'NON_COMPLIANT', 'IN_PROGRESS', 'NOT_AVAILABLE', 'NOT_APPLICABLE', 'ERROR' + ComplianceStatus string `url:"complianceStatus,omitempty"` //Specify "Compliance status(es)" separated by commas. The Compliance status can be 'COMPLIANT', 'NON_COMPLIANT', 'IN_PROGRESS', 'NOT_AVAILABLE', 'NOT_APPLICABLE', 'ERROR'. } type GetComplianceDetailQueryParams struct { - ComplianceType string `url:"complianceType,omitempty"` //complianceType can have any value among 'NETWORK_PROFILE', 'IMAGE', 'APPLICATION_VISIBILITY', 'FABRIC', 'PSIRT', 'RUNNING_CONFIG', 'WORKFLOW' - ComplianceStatus string `url:"complianceStatus,omitempty"` //Compliance status can have value among 'COMPLIANT', 'NON_COMPLIANT', 'IN_PROGRESS', 'NOT_AVAILABLE', 'NOT_APPLICABLE', 'ERROR' - DeviceUUID string `url:"deviceUuid,omitempty"` //Comma separated deviceUuids - Offset int `url:"offset,omitempty"` //offset/starting row - Limit int `url:"limit,omitempty"` //Number of records to be retrieved + ComplianceType string `url:"complianceType,omitempty"` //Specify "Compliance type(s)" in commas. The Compliance type can be 'NETWORK_PROFILE', 'IMAGE', 'FABRIC', 'APPLICATION_VISIBILITY', 'FABRIC', RUNNING_CONFIG', 'NETWORK_SETTINGS', 'WORKFLOW' , 'EoX'. + ComplianceStatus string `url:"complianceStatus,omitempty"` //Specify "Compliance status(es)" in commas. The Compliance status can be 'COMPLIANT', 'NON_COMPLIANT', 'IN_PROGRESS', 'NOT_AVAILABLE', 'NOT_APPLICABLE', 'ERROR'. + DeviceUUID string `url:"deviceUuid,omitempty"` //Comma separated "Device Id(s)" + Offset float64 `url:"offset,omitempty"` //offset/starting row + Limit float64 `url:"limit,omitempty"` //Number of records to be retrieved } type GetComplianceDetailCountQueryParams struct { - ComplianceType string `url:"complianceType,omitempty"` //complianceType can have any value among 'NETWORK_PROFILE', 'IMAGE', 'APPLICATION_VISIBILITY', 'FABRIC', 'PSIRT', 'RUNNING_CONFIG', 'WORKFLOW'. - ComplianceStatus string `url:"complianceStatus,omitempty"` //Compliance status can have value among 'COMPLIANT', 'NON_COMPLIANT', 'IN_PROGRESS', 'NOT_AVAILABLE', 'NOT_APPLICABLE', 'ERROR' + ComplianceType string `url:"complianceType,omitempty"` //Specify "Compliance type(s)" separated by commas. The Compliance type can be 'APPLICATION_VISIBILITY', 'EoX', 'FABRIC', 'IMAGE', 'NETWORK_PROFILE', 'NETWORK_SETTINGS', 'PSIRT', 'RUNNING_CONFIG', 'WORKFLOW'. + ComplianceStatus string `url:"complianceStatus,omitempty"` //Specify "Compliance status(es)" separated by commas. The Compliance status can be 'COMPLIANT', 'NON_COMPLIANT', 'IN_PROGRESS', 'NOT_AVAILABLE', 'NOT_APPLICABLE', 'ERROR'. } type ComplianceDetailsOfDeviceQueryParams struct { - Category string `url:"category,omitempty"` //complianceCategory can have any value among 'INTENT', 'RUNNING_CONFIG' - ComplianceType string `url:"complianceType,omitempty"` //complianceType can have any value among 'NETWORK_DESIGN', 'NETWORK_PROFILE', 'FABRIC', 'POLICY', 'RUNNING_CONFIG' + Category string `url:"category,omitempty"` //category can have any value among 'INTENT', 'RUNNING_CONFIG' , 'IMAGE' , 'PSIRT' , 'DESIGN_OOD' , 'EoX' , 'NETWORK_SETTINGS' + ComplianceType string `url:"complianceType,omitempty"` //Specify "Compliance type(s)" separated by commas. The Compliance type can be 'APPLICATION_VISIBILITY', 'EoX', 'FABRIC', 'IMAGE', 'NETWORK_PROFILE', 'NETWORK_SETTINGS', 'PSIRT', 'RUNNING_CONFIG', 'WORKFLOW'. DiffList bool `url:"diffList,omitempty"` //diff list [ pass true to fetch the diff list ] - Key string `url:"key,omitempty"` //extended attribute key - Value string `url:"value,omitempty"` //extended attribute value +} +type GetConfigTaskDetailsQueryParams struct { + ParentTaskID string `url:"parentTaskId,omitempty"` //task Id } type ResponseComplianceGetComplianceStatus struct { - Version string `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version of the API. Response *[]ResponseComplianceGetComplianceStatusResponse `json:"response,omitempty"` // } type ResponseComplianceGetComplianceStatusResponse struct { - DeviceUUID string `json:"deviceUuid,omitempty"` // Device Uuid - ComplianceStatus string `json:"complianceStatus,omitempty"` // Compliance Status - Message string `json:"message,omitempty"` // Message - ScheduleTime *float64 `json:"scheduleTime,omitempty"` // Schedule Time - LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Last Update Time + DeviceUUID string `json:"deviceUuid,omitempty"` // UUID of the device. + ComplianceStatus string `json:"complianceStatus,omitempty"` // Current compliance status for the compliance type that will be one of COMPLIANT, NON_COMPLIANT, ERROR, IN_PROGRESS, NOT_APPLICABLE, NOT_AVAILABLE, COMPLIANT_WARNING, REMEDIATION_IN_PROGRESS, or ABORTED. + Message string `json:"message,omitempty"` // Additional message of compliance status for the compliance type. + ScheduleTime *float64 `json:"scheduleTime,omitempty"` // Timestamp when compliance is scheduled to run. + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Timestamp when the latest compliance checks ran. } type ResponseComplianceRunCompliance struct { - Version string `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version of the API. Response *ResponseComplianceRunComplianceResponse `json:"response,omitempty"` // } type ResponseComplianceRunComplianceResponse struct { - TaskID string `json:"taskId,omitempty"` // Task Id - URL string `json:"url,omitempty"` // Url + TaskID string `json:"taskId,omitempty"` // Task id. + URL string `json:"url,omitempty"` // Additional url for task id. } type ResponseComplianceGetComplianceStatusCount struct { - Version string `json:"version,omitempty"` // Version - Response *float64 `json:"response,omitempty"` // Response + Version string `json:"version,omitempty"` // Version of the API. + Response *float64 `json:"response,omitempty"` // Returns count of compliant status } type ResponseComplianceGetComplianceDetail struct { - Version string `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version of the API. Response *[]ResponseComplianceGetComplianceDetailResponse `json:"response,omitempty"` // } type ResponseComplianceGetComplianceDetailResponse struct { - ComplianceType string `json:"complianceType,omitempty"` // Compliance Type - LastSyncTime *int `json:"lastSyncTime,omitempty"` // Last Sync Time - DeviceUUID string `json:"deviceUuid,omitempty"` // Device Uuid - DisplayName string `json:"displayName,omitempty"` // Display Name - Status string `json:"status,omitempty"` // Status - Category string `json:"category,omitempty"` // Category - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time - State string `json:"state,omitempty"` // State + ComplianceType string `json:"complianceType,omitempty"` // Compliance type corresponds to a tile on the UI. Will be one of NETWORK_PROFILE, IMAGE, APPLICATION_VISIBILITY, FABRIC, PSIRT, RUNNING_CONFIG, NETWORK_SETTINGS, WORKFLOW, or EoX. + LastSyncTime *float64 `json:"lastSyncTime,omitempty"` // Timestamp when the status changed from different value to the current value. + DeviceUUID string `json:"deviceUuid,omitempty"` // UUID of the device. + DisplayName string `json:"displayName,omitempty"` // User friendly name for the configuration. + Status string `json:"status,omitempty"` // Current status of compliance for the complianceType. Will be one of COMPLIANT, NON_COMPLIANT, ERROR, IN_PROGRESS, NOT_APPLICABLE, NOT_AVAILABLE, COMPLIANT_WARNING, REMEDIATION_IN_PROGRESS, or ABORTED. + Category string `json:"category,omitempty"` // category can have any value among 'INTENT'(mapped to compliance types: NETWORK_SETTINGS,NETWORK_PROFILE,WORKFLOW,FABRIC,APPLICATION_VISIBILITY), 'RUNNING_CONFIG' , 'IMAGE' , 'PSIRT' , 'EoX' , 'NETWORK_SETTINGS'. + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Timestamp when the latest compliance checks ran. + State string `json:"state,omitempty"` // State of latest compliance check for the complianceType. Will be one of SUCCESS, FAILED, or IN_PROGRESS. } type ResponseComplianceGetComplianceDetailCount struct { - Version string `json:"version,omitempty"` // Version - Response *float64 `json:"response,omitempty"` // Response + Version string `json:"version,omitempty"` // Version of API. + Response *float64 `json:"response,omitempty"` // Count of all devices or devices that match the query parameters. +} +type ResponseComplianceComplianceRemediation struct { + Response *ResponseComplianceComplianceRemediationResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of API. +} +type ResponseComplianceComplianceRemediationResponse struct { + TaskID string `json:"taskId,omitempty"` // The UUID of the task. + URL string `json:"url,omitempty"` // The path to the API endpoint to GET for information on the task. } type ResponseComplianceDeviceComplianceStatus struct { - Version string `json:"version,omitempty"` // Version Response *ResponseComplianceDeviceComplianceStatusResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the API. } type ResponseComplianceDeviceComplianceStatusResponse struct { - DeviceUUID string `json:"deviceUuid,omitempty"` // Device Uuid - ComplianceStatus string `json:"complianceStatus,omitempty"` // Compliance Status - Message string `json:"message,omitempty"` // Message - ScheduleTime *float64 `json:"scheduleTime,omitempty"` // Schedule Time - LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Last Update Time + DeviceUUID string `json:"deviceUuid,omitempty"` // UUID of the device. + ComplianceStatus string `json:"complianceStatus,omitempty"` // Current compliance status of the device that will be one of COMPLIANT, NON_COMPLIANT, ERROR, IN_PROGRESS, NOT_APPLICABLE, NOT_AVAILABLE, COMPLIANT_WARNING, REMEDIATION_IN_PROGRESS, or ABORTED. + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Timestamp when the latest compliance checks ran. + ScheduleTime string `json:"scheduleTime,omitempty"` // Timestamp when the next compliance checks will run. } type ResponseComplianceComplianceDetailsOfDevice struct { - DeviceUUID string `json:"deviceUuid,omitempty"` // Device Uuid - Version string `json:"version,omitempty"` // Version Response *[]ResponseComplianceComplianceDetailsOfDeviceResponse `json:"response,omitempty"` // + DeviceUUID string `json:"deviceUuid,omitempty"` // UUID of the device. } type ResponseComplianceComplianceDetailsOfDeviceResponse struct { - DisplayName string `json:"displayName,omitempty"` // Display Name - ComplianceType string `json:"complianceType,omitempty"` // Compliance Type - LastSyncTime *int `json:"lastSyncTime,omitempty"` // Last Sync Time - AdditionalDataURL string `json:"additionalDataURL,omitempty"` // Additional Data U R L - SourceInfoList *[]ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoList `json:"sourceInfoList,omitempty"` // - DeviceUUID string `json:"deviceUuid,omitempty"` // Device Uuid - Message string `json:"message,omitempty"` // Message - State string `json:"state,omitempty"` // State - Status string `json:"status,omitempty"` // Status - Category string `json:"category,omitempty"` // Category - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time + DeviceUUID string `json:"deviceUuid,omitempty"` // UUID of the device. + ComplianceType string `json:"complianceType,omitempty"` // Compliance type corresponds to a tile on the UI that will be one of NETWORK_PROFILE, IMAGE, APPLICATION_VISIBILITY, FABRIC, PSIRT, RUNNING_CONFIG, NETWORK_SETTINGS, WORKFLOW, or EoX. + Status string `json:"status,omitempty"` // Status of compliance for the compliance type, will be one of COMPLIANT, NON_COMPLIANT, ERROR, IN_PROGRESS, NOT_APPLICABLE, NOT_AVAILABLE, COMPLIANT_WARNING, REMEDIATION_IN_PROGRESS, or ABORTED. + State string `json:"state,omitempty"` // State of the compliance check for the compliance type, will be one of SUCCESS, FAILED, or IN_PROGRESS. + LastSyncTime *float64 `json:"lastSyncTime,omitempty"` // Timestamp when the status changed from a different value to the current value. + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Timestamp of the latest compliance check that was run. + SourceInfoList *[]ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoList `json:"sourceInfoList,omitempty"` // + AckStatus string `json:"ackStatus,omitempty"` // Acknowledgment status of the compliance type. UNACKNOWLEDGED if none of the violations under the compliance type are acknowledged. Otherwise it will be ACKNOWLEDGED. + Version string `json:"version,omitempty"` // Version of the API. } type ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoList struct { - Count *float64 `json:"count,omitempty"` // Count - DisplayName string `json:"displayName,omitempty"` // Display Name - DiffList *[]ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListDiffList `json:"diffList,omitempty"` // - SourceEnum string `json:"sourceEnum,omitempty"` // Source Enum - LicenseAppName string `json:"licenseAppName,omitempty"` // License App Name - ProvisioningArea string `json:"provisioningArea,omitempty"` // Provisioning Area - NetworkProfileName string `json:"networkProfileName,omitempty"` // Network Profile Name + Name string `json:"name,omitempty"` // Name of the type of top level configuration. NameWithBusinessKey string `json:"nameWithBusinessKey,omitempty"` // Name With Business Key - AppName string `json:"appName,omitempty"` // App Name - Name string `json:"name,omitempty"` // Name - Type string `json:"type,omitempty"` // Type + SourceEnum string `json:"sourceEnum,omitempty"` // Will be same as compliance type. + Type string `json:"type,omitempty"` // Type of the top level configuration. + AppName string `json:"appName,omitempty"` // Application name that is used to club the violations. + Count *float64 `json:"count,omitempty"` // Number of violations present. + AckStatus string `json:"ackStatus,omitempty"` // Acknowledgment status of violations. UNACKNOWLEDGED if none of the violations are acknowledged. Otherwise it will be ACKNOWLEDGED. BusinessKey *ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKey `json:"businessKey,omitempty"` // -} -type ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListDiffList struct { - DisplayName string `json:"displayName,omitempty"` // Display Name - MoveFromPath string `json:"moveFromPath,omitempty"` // Move From Path - Op string `json:"op,omitempty"` // Op - ConfiguredValue string `json:"configuredValue,omitempty"` // Configured Value - IntendedValue string `json:"intendedValue,omitempty"` // Intended Value - Path string `json:"path,omitempty"` // Path - BusinessKey string `json:"businessKey,omitempty"` // Business Key - ExtendedAttributes string `json:"extendedAttributes,omitempty"` // Extended Attributes + DiffList *[]ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListDiffList `json:"diffList,omitempty"` // + DisplayName string `json:"displayName,omitempty"` // Model display name. } type ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKey struct { - OtherAttributes *ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKeyOtherAttributes `json:"otherAttributes,omitempty"` // - ResourceName string `json:"resourceName,omitempty"` // Resource Name - BusinessKeyAttributes string `json:"businessKeyAttributes,omitempty"` // Business Key Attributes + ResourceName string `json:"resourceName,omitempty"` // Name of the top level resource. Same as name above. + BusinessKeyAttributes *ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKeyBusinessKeyAttributes `json:"businessKeyAttributes,omitempty"` // Attributes that together uniquely identify the configuration instance. + OtherAttributes *ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKeyOtherAttributes `json:"otherAttributes,omitempty"` // } +type ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKeyBusinessKeyAttributes interface{} type ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKeyOtherAttributes struct { - CfsAttributes string `json:"cfsAttributes,omitempty"` // Cfs Attributes - Name string `json:"name,omitempty"` // Name + Name string `json:"name,omitempty"` // Name of the attributes. + CfsAttributes *ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKeyOtherAttributesCfsAttributes `json:"cfsAttributes,omitempty"` // +} +type ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListBusinessKeyOtherAttributesCfsAttributes struct { + DisplayName string `json:"displayName,omitempty"` // User friendly name for the configuration. + AppName string `json:"appName,omitempty"` // Same as appName above. + Description string `json:"description,omitempty"` // Description for the configuration, if available. + Source string `json:"source,omitempty"` // Will be same as compliance type. + Type string `json:"type,omitempty"` // The type of this attribute (for example, type can be Intent). +} +type ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListDiffList struct { + Op string `json:"op,omitempty"` // Type of change (add, remove, or update). + ConfiguredValue string `json:"configuredValue,omitempty"` // Configured value i.e. running / current value. It will be empty for the template violations due to potentially large size of the template. Use a dedicated API to get the template data. + IntendedValue string `json:"intendedValue,omitempty"` // Enable", Intended value. It will be empty for the template violations due to potentially large size of the template. Use a dedicated API to get the template data. + MoveFromPath string `json:"moveFromPath,omitempty"` // Additional URI to fetch more details, if available. + BusinessKey string `json:"businessKey,omitempty"` // The Unique key of the individual violation does not change after every compliance check, as long as the deployment data doesn't change. + Path string `json:"path,omitempty"` // Path of the configuration relative to the top-level configuration. Use it along with a name to identify certain set of violations. + ExtendedAttributes *ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListDiffListExtendedAttributes `json:"extendedAttributes,omitempty"` // + AckStatus string `json:"ackStatus,omitempty"` // Acknowledgment status of the violation. ACKNOWLEDGED if the violation is acknowledged or at the top-level configuration. Otherwise it will be UNACKNOWLEDGED. + InstanceUUID string `json:"instanceUUID,omitempty"` // UUID of the individual violation. Changes after every compliance check. + DisplayName string `json:"displayName,omitempty"` // Display name for attribute in ui .If business key is null or of type owning entity type. +} +type ResponseComplianceComplianceDetailsOfDeviceResponseSourceInfoListDiffListExtendedAttributes struct { + AttributeDisplayName string `json:"attributeDisplayName,omitempty"` // Display name for attribute in ui .if business key is null or only owning entity type. + Path string `json:"path,omitempty"` // Path to be displayed on the UI, instead of the above path, if available. + DataConverter string `json:"dataConverter,omitempty"` // Name of the converter used to display configurations in user-friendly format, if available. + Type string `json:"type,omitempty"` // Type of this attribute.(example type can be Intent) +} +type ResponseComplianceGetConfigTaskDetails struct { + Version string `json:"version,omitempty"` // Version of the API. + Response *[]ResponseComplianceGetConfigTaskDetailsResponse `json:"response,omitempty"` // +} +type ResponseComplianceGetConfigTaskDetailsResponse struct { + StartTime *int `json:"startTime,omitempty"` // Timestamp when the task started. + ErrorCode string `json:"errorCode,omitempty"` // Error code if the task failed. + DeviceID string `json:"deviceId,omitempty"` // UUID of the device. + TaskID string `json:"taskId,omitempty"` // UUID of the task. + TaskStatus string `json:"taskStatus,omitempty"` // Status of the task. + ParentTaskID string `json:"parentTaskId,omitempty"` // UUID of the parent task. + DeviceIPAddress string `json:"deviceIpAddress,omitempty"` // IP address of the device. + DetailMessage string `json:"detailMessage,omitempty"` // Details of the task, if available. + FailureMessage string `json:"failureMessage,omitempty"` // Failure message, if the task failed. + TaskType string `json:"taskType,omitempty"` // Task type can be 0,1,2 etc(ARCHIVE_RUNNING(0),ARCHIVE_STARTUP(1),ARCHIVE_VLAN(2),DEPLOY_RUNNING(3),DEPLOY_STARTUP(4),DEPLOY_VLAN(5),COPY_RUNNING_TO_STARTUP(6)) + CompletionTime *int `json:"completionTime,omitempty"` // Timestamp when the task was completed. + HostName string `json:"hostName,omitempty"` // Host name of the device. +} +type ResponseComplianceCommitDeviceConfiguration struct { + Version string `json:"version,omitempty"` // Version of the API. + Response *ResponseComplianceCommitDeviceConfigurationResponse `json:"response,omitempty"` // +} +type ResponseComplianceCommitDeviceConfigurationResponse struct { + URL string `json:"url,omitempty"` // Task Id url. + TaskID string `json:"taskId,omitempty"` // Unique Id of task. } type RequestComplianceRunCompliance struct { - TriggerFull *bool `json:"triggerFull,omitempty"` // - Categories []string `json:"categories,omitempty"` // - DeviceUUIDs []string `json:"deviceUuids,omitempty"` // + TriggerFull *bool `json:"triggerFull,omitempty"` // if it is true then compliance will be triggered for all categories. If it is false then compliance will be triggered for categories mentioned in categories section . + Categories []string `json:"categories,omitempty"` // Category can have any value among 'INTENT'(mapped to compliance types: NETWORK_SETTINGS,NETWORK_PROFILE,WORKFLOW,FABRIC,APPLICATION_VISIBILITY), 'RUNNING_CONFIG' , 'IMAGE' , 'PSIRT' , 'EoX' , 'NETWORK_SETTINGS' + DeviceUUIDs []string `json:"deviceUuids,omitempty"` // UUID of the device. +} +type RequestComplianceCommitDeviceConfiguration struct { + DeviceID []string `json:"deviceId,omitempty"` // UUID of the device. } //GetComplianceStatus Get Compliance Status - dda5-cb9a-49aa-aef6 @@ -154,7 +200,7 @@ type RequestComplianceRunCompliance struct { @param GetComplianceStatusQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-compliance-status +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-compliance-status-v1 */ func (s *ComplianceService) GetComplianceStatus(GetComplianceStatusQueryParams *GetComplianceStatusQueryParams) (*ResponseComplianceGetComplianceStatus, *resty.Response, error) { path := "/dna/intent/api/v1/compliance" @@ -191,7 +237,7 @@ func (s *ComplianceService) GetComplianceStatus(GetComplianceStatusQueryParams * @param GetComplianceStatusCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-compliance-status-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-compliance-status-count-v1 */ func (s *ComplianceService) GetComplianceStatusCount(GetComplianceStatusCountQueryParams *GetComplianceStatusCountQueryParams) (*ResponseComplianceGetComplianceStatusCount, *resty.Response, error) { path := "/dna/intent/api/v1/compliance/count" @@ -228,7 +274,7 @@ func (s *ComplianceService) GetComplianceStatusCount(GetComplianceStatusCountQue @param GetComplianceDetailQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-compliance-detail +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-compliance-detail-v1 */ func (s *ComplianceService) GetComplianceDetail(GetComplianceDetailQueryParams *GetComplianceDetailQueryParams) (*ResponseComplianceGetComplianceDetail, *resty.Response, error) { path := "/dna/intent/api/v1/compliance/detail" @@ -265,7 +311,7 @@ func (s *ComplianceService) GetComplianceDetail(GetComplianceDetailQueryParams * @param GetComplianceDetailCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-compliance-detail-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-compliance-detail-count-v1 */ func (s *ComplianceService) GetComplianceDetailCount(GetComplianceDetailCountQueryParams *GetComplianceDetailCountQueryParams) (*ResponseComplianceGetComplianceDetailCount, *resty.Response, error) { path := "/dna/intent/api/v1/compliance/detail/count" @@ -300,9 +346,10 @@ func (s *ComplianceService) GetComplianceDetailCount(GetComplianceDetailCountQue /* Return compliance status of a device. -@param deviceUUID deviceUuid path parameter. +@param deviceUUID deviceUuid path parameter. Device Id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!device-compliance-status + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!device-compliance-status-v1 */ func (s *ComplianceService) DeviceComplianceStatus(deviceUUID string) (*ResponseComplianceDeviceComplianceStatus, *resty.Response, error) { path := "/dna/intent/api/v1/compliance/{deviceUuid}" @@ -336,10 +383,11 @@ func (s *ComplianceService) DeviceComplianceStatus(deviceUUID string) (*Response /* Return compliance detailed report for a device. -@param deviceUUID deviceUuid path parameter. +@param deviceUUID deviceUuid path parameter. Device Id + @param ComplianceDetailsOfDeviceQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!compliance-details-of-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!compliance-details-of-device-v1 */ func (s *ComplianceService) ComplianceDetailsOfDevice(deviceUUID string, ComplianceDetailsOfDeviceQueryParams *ComplianceDetailsOfDeviceQueryParams) (*ResponseComplianceComplianceDetailsOfDevice, *resty.Response, error) { path := "/dna/intent/api/v1/compliance/{deviceUuid}/detail" @@ -371,12 +419,49 @@ func (s *ComplianceService) ComplianceDetailsOfDevice(deviceUUID string, Complia } +//GetConfigTaskDetails Get config task details - 8183-1a90-4788-b8c5 +/* Returns a config task result details by specified id + + +@param GetConfigTaskDetailsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-config-task-details-v1 +*/ +func (s *ComplianceService) GetConfigTaskDetails(GetConfigTaskDetailsQueryParams *GetConfigTaskDetailsQueryParams) (*ResponseComplianceGetConfigTaskDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device-config/task" + + queryString, _ := query.Values(GetConfigTaskDetailsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseComplianceGetConfigTaskDetails{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetConfigTaskDetails(GetConfigTaskDetailsQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetConfigTaskDetails") + } + + result := response.Result().(*ResponseComplianceGetConfigTaskDetails) + return result, response, err + +} + //RunCompliance Run Compliance - f6ae-c8a7-4428-a9ff /* Run compliance check for device(s). -Documentation Link: https://developer.cisco.com/docs/dna-center/#!run-compliance +Documentation Link: https://developer.cisco.com/docs/dna-center/#!run-compliance-v1 */ func (s *ComplianceService) RunCompliance(requestComplianceRunCompliance *RequestComplianceRunCompliance) (*ResponseComplianceRunCompliance, *resty.Response, error) { path := "/dna/intent/api/v1/compliance/" @@ -407,3 +492,80 @@ func (s *ComplianceService) RunCompliance(requestComplianceRunCompliance *Reques return result, response, err } + +//ComplianceRemediation Compliance Remediation - 7d80-2867-4179-8488 +/* Remediates configuration compliance issues. Compliance issues related to 'Routing', 'HA Remediation', 'Software Image', 'Securities Advisories', 'SD-Access Unsupported Configuration', 'Workflow', etc. will not be addressed by this API. +Warning: Fixing compliance mismatches could result in a possible network flap. + + +@param id id path parameter. Network device identifier + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!compliance-remediation-v1 +*/ +func (s *ComplianceService) ComplianceRemediation(id string) (*ResponseComplianceComplianceRemediation, *resty.Response, error) { + path := "/dna/intent/api/v1/compliance/networkDevices/{id}/issues/remediation/provision" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseComplianceComplianceRemediation{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ComplianceRemediation(id) + } + + return nil, response, fmt.Errorf("error with operation ComplianceRemediation") + } + + result := response.Result().(*ResponseComplianceComplianceRemediation) + return result, response, err + +} + +//CommitDeviceConfiguration Commit device configuration - 53a3-5a70-4e3b-87b5 +/* This operation would commit device running configuration to startup by issuing "write memory" to device + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!commit-device-configuration-v1 +*/ +func (s *ComplianceService) CommitDeviceConfiguration(requestComplianceCommitDeviceConfiguration *RequestComplianceCommitDeviceConfiguration) (*ResponseComplianceCommitDeviceConfiguration, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device-config/write-memory" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestComplianceCommitDeviceConfiguration). + SetResult(&ResponseComplianceCommitDeviceConfiguration{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CommitDeviceConfiguration(requestComplianceCommitDeviceConfiguration) + } + + return nil, response, fmt.Errorf("error with operation CommitDeviceConfiguration") + } + + result := response.Result().(*ResponseComplianceCommitDeviceConfiguration) + return result, response, err + +} diff --git a/sdk/configuration_archive.go b/sdk/configuration_archive.go index 28e6524..953932c 100644 --- a/sdk/configuration_archive.go +++ b/sdk/configuration_archive.go @@ -5,29 +5,109 @@ import ( "net/http" "github.com/go-resty/resty/v2" + "github.com/google/go-querystring/query" ) type ConfigurationArchiveService service +type GetConfigurationArchiveDetailsQueryParams struct { + DeviceID string `url:"deviceId,omitempty"` //comma separated device id for example cf35b0a1-407f-412f-b2f4-f0c3156695f9,aaa38191-0c22-4158-befd-779a09d7cec1 . if device id is not provided it will fetch for all devices + FileType string `url:"fileType,omitempty"` //Config File Type can be RUNNINGCONFIG or STARTUPCONFIG + CreatedTime string `url:"createdTime,omitempty"` //Supported with logical filters GT,GTE,LT,LTE & BT : time in milliseconds (epoc format) + CreatedBy string `url:"createdBy,omitempty"` //Comma separated values for createdBy - SCHEDULED, USER, CONFIG_CHANGE_EVENT, SCHEDULED_FIRST_TIME, DR_CALL_BACK, PRE_DEPLOY + Offset float64 `url:"offset,omitempty"` //offset + Limit float64 `url:"limit,omitempty"` //limit +} + type ResponseConfigurationArchiveExportDeviceConfigurations struct { - Response *ResponseConfigurationArchiveExportDeviceConfigurationsResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version + Response *ResponseConfigurationArchiveExportDeviceConfigurationsResponse `json:"response,omitempty"` // } type ResponseConfigurationArchiveExportDeviceConfigurationsResponse struct { - TaskID string `json:"taskId,omitempty"` // Task Id URL string `json:"url,omitempty"` // Url + TaskID string `json:"taskId,omitempty"` // Task Id +} +type ResponseConfigurationArchiveGetConfigurationArchiveDetails []ResponseItemConfigurationArchiveGetConfigurationArchiveDetails // Array of ResponseConfigurationArchiveGetConfigurationArchiveDetails +type ResponseItemConfigurationArchiveGetConfigurationArchiveDetails struct { + IPAddress string `json:"ipAddress,omitempty"` // IP address of the device. + DeviceID string `json:"deviceId,omitempty"` // UUID of the device. + Versions *[]ResponseItemConfigurationArchiveGetConfigurationArchiveDetailsVersions `json:"versions,omitempty"` // + DeviceName string `json:"deviceName,omitempty"` // Hostname of the device. +} +type ResponseItemConfigurationArchiveGetConfigurationArchiveDetailsVersions struct { + Files *[]ResponseItemConfigurationArchiveGetConfigurationArchiveDetailsVersionsFiles `json:"files,omitempty"` // + CreatedBy string `json:"createdBy,omitempty"` // Reason for archive collection (CONFIG_CHANGE_EVENT - Syslog event based colletion, SCHEDULED - Weekly scheduled collection, SCHEDULED_FIRST_TIME-First Time Managed collection,DR_CALL_BACK- Post Disaster Recovery collection, USER- On Demand Trigger, PRE_DEPLOY- Predeploy collection) + ConfigChangeType string `json:"configChangeType,omitempty"` // Source of configuration change (OUT_OF_BAND - Change was made outside Catalyst Center, IN_BAND - Change was made from Catalyst Center, NOT_APPLICABLE - System Triggered) + SyslogConfigEventDto *[]ResponseItemConfigurationArchiveGetConfigurationArchiveDetailsVersionsSyslogConfigEventDto `json:"syslogConfigEventDto,omitempty"` // + CreatedTime *float64 `json:"createdTime,omitempty"` // Source of configuration change (OUT_OF_BAND - Change was made outside Catalyst Center, IN_BAND - Change was made from Catalyst Center, NOT_APPLICABLE - System Triggered) + StartupRunningStatus string `json:"startupRunningStatus,omitempty"` // Sync status of running and startup configurations (IN_SYNC - if both startup and running config are same excluding dynamic configurations, OUT_OF_SYNC - otherwise). + ID string `json:"id,omitempty"` // Unique version ID. + Tags []string `json:"tags,omitempty"` // Labels added to a configuration version. + LastUpdatedTime *float64 `json:"lastUpdatedTime,omitempty"` // Latest time stamp when the collected configuration is verified to be running on the device. LastUpdatedTime and createdTime will differ when verified configs are the same. +} +type ResponseItemConfigurationArchiveGetConfigurationArchiveDetailsVersionsFiles struct { + FileType string `json:"fileType,omitempty"` // Type of configuration file (RUNNINGCONFIG, STARTUPCONFIG, or VLAN). + FileID string `json:"fileId,omitempty"` // Unique file ID. + DownloadPath string `json:"downloadPath,omitempty"` // File download path (deprecated). +} +type ResponseItemConfigurationArchiveGetConfigurationArchiveDetailsVersionsSyslogConfigEventDto struct { + UserName string `json:"userName,omitempty"` // Name of the user who made the configuration change (if available in Syslog). + DeviceUUID string `json:"deviceUuid,omitempty"` // UUID of the device as recieved in syslog. + OutOfBand *bool `json:"outOfBand,omitempty"` // True if configuration changes were made from outside of the Catalist Center. False otherwise. + ConfigMethod string `json:"configMethod,omitempty"` // Connection mode used to do the changes pn the device (if available in Syslog). + TerminalName string `json:"terminalName,omitempty"` // Name of the terminal used to make changes on the device (if available in Syslog). + LoginIPAddress string `json:"loginIpAddress,omitempty"` // IP address from which the configuration changes were made (if available in Syslog). + ProcessName string `json:"processName,omitempty"` // Name of the process that made configuration change (only available when configuration got changed by a program such as YANG suite ) + SyslogTime *float64 `json:"syslogTime,omitempty"` // Time of configuration change as recorded in the syslog. } type RequestConfigurationArchiveExportDeviceConfigurations struct { - DeviceID []string `json:"deviceId,omitempty"` // Device Id - Password string `json:"password,omitempty"` // Password + Password string `json:"password,omitempty"` // Password for the zip file to protect exported configurations. Must contain, at minimum 8 characters, one lowercase letter, one uppercase letter, one number, one special character(-=[];,./~!@#$%^&*()_+{}|:?). It may not contain white space or the characters <>. + DeviceID string `json:"deviceId,omitempty"` // UUIDs of the devices for which configurations need to be exported. +} + +//GetConfigurationArchiveDetails Get configuration archive details - 3bba-48a9-422a-be1e +/* Returns the historical device configurations (running configuration , startup configuration , vlan if applicable) by specified criteria + + +@param GetConfigurationArchiveDetailsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-configuration-archive-details-v1 +*/ +func (s *ConfigurationArchiveService) GetConfigurationArchiveDetails(GetConfigurationArchiveDetailsQueryParams *GetConfigurationArchiveDetailsQueryParams) (*ResponseConfigurationArchiveGetConfigurationArchiveDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device-config" + + queryString, _ := query.Values(GetConfigurationArchiveDetailsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseConfigurationArchiveGetConfigurationArchiveDetails{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetConfigurationArchiveDetails(GetConfigurationArchiveDetailsQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetConfigurationArchiveDetails") + } + + result := response.Result().(*ResponseConfigurationArchiveGetConfigurationArchiveDetails) + return result, response, err + } //ExportDeviceConfigurations Export Device configurations - 51a4-0aba-4c68-ac17 -/* Export Device configurations to an encrypted zip file. +/* Export Device configurations to an encrypted zip file -Documentation Link: https://developer.cisco.com/docs/dna-center/#!export-device-configurations +Documentation Link: https://developer.cisco.com/docs/dna-center/#!export-device-configurations-v1 */ func (s *ConfigurationArchiveService) ExportDeviceConfigurations(requestConfigurationArchiveExportDeviceConfigurations *RequestConfigurationArchiveExportDeviceConfigurations) (*ResponseConfigurationArchiveExportDeviceConfigurations, *resty.Response, error) { path := "/dna/intent/api/v1/network-device-archive/cleartext" @@ -46,9 +126,11 @@ func (s *ConfigurationArchiveService) ExportDeviceConfigurations(requestConfigur } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { return s.ExportDeviceConfigurations(requestConfigurationArchiveExportDeviceConfigurations) } + return nil, response, fmt.Errorf("error with operation ExportDeviceConfigurations") } diff --git a/sdk/configuration_templates.go b/sdk/configuration_templates.go index bc627ae..dd81dba 100644 --- a/sdk/configuration_templates.go +++ b/sdk/configuration_templates.go @@ -40,14 +40,14 @@ type GetsTheTemplatesAvailableQueryParams struct { type GetsDetailsOfAGivenTemplateQueryParams struct { LatestVersion bool `url:"latestVersion,omitempty"` //latestVersion flag to get the latest versioned template } -type GetProjectsDetailsQueryParams struct { +type GetProjectsDetailsV2QueryParams struct { ID string `url:"id,omitempty"` //Id of project to be searched Name string `url:"name,omitempty"` //Name of project to be searched Offset int `url:"offset,omitempty"` //Index of first result Limit int `url:"limit,omitempty"` //Limits number of results SortOrder string `url:"sortOrder,omitempty"` //Sort Order Ascending (asc) or Descending (dsc) } -type GetTemplatesDetailsQueryParams struct { +type GetTemplatesDetailsV2QueryParams struct { ID string `url:"id,omitempty"` //Id of template to be searched Name string `url:"name,omitempty"` //Name of template to be searched ProjectID string `url:"projectId,omitempty"` //Filter template(s) based on project id @@ -869,229 +869,227 @@ type ResponseConfigurationTemplatesGetsDetailsOfAGivenTemplateValidationErrors s } type ResponseConfigurationTemplatesGetsDetailsOfAGivenTemplateValidationErrorsRollbackTemplateErrors interface{} type ResponseConfigurationTemplatesGetsDetailsOfAGivenTemplateValidationErrorsTemplateErrors interface{} - -type ResponseConfigurationTemplatesGetProjectsDetails struct { +type ResponseConfigurationTemplatesGetProjectsDetailsV2 struct { Response []ResponseConfigurationTemplatesGetProjectsDetailsResponse `json:"response,omitempty"` // Response } type ResponseConfigurationTemplatesGetProjectsDetailsResponse struct { - CreateTime *int `json:"createTime,omitempty"` // Create time of project - Description string `json:"description,omitempty"` // Description of project - ID string `json:"id,omitempty"` // UUID of project - IsDeletable *bool `json:"isDeletable,omitempty"` // Flag to check if project is deletable or not(for internal use only) - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Update time of project - Name string `json:"name,omitempty"` // Name of project - Tags *[]ResponseConfigurationTemplatesGetProjectsDetailsTags `json:"tags,omitempty"` // - Templates *ResponseConfigurationTemplatesGetProjectsDetailsTemplates `json:"templates,omitempty"` // List of templates within the project -} -type ResponseConfigurationTemplatesGetProjectsDetailsTags struct { + CreateTime *int `json:"createTime,omitempty"` // Create time of project + Description string `json:"description,omitempty"` // Description of project + ID string `json:"id,omitempty"` // UUID of project + IsDeletable *bool `json:"isDeletable,omitempty"` // Flag to check if project is deletable or not(for internal use only) + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Update time of project + Name string `json:"name,omitempty"` // Name of project + Tags *[]ResponseConfigurationTemplatesGetProjectsDetailsV2Tags `json:"tags,omitempty"` // + Templates *ResponseConfigurationTemplatesGetProjectsDetailsV2Templates `json:"templates,omitempty"` // List of templates within the project +} +type ResponseConfigurationTemplatesGetProjectsDetailsV2Tags struct { ID string `json:"id,omitempty"` // UUID of tag Name string `json:"name,omitempty"` // Name of tag } -type ResponseConfigurationTemplatesGetProjectsDetailsTemplates interface{} - -type ResponseConfigurationTemplatesGetTemplatesDetails struct { - Response []ResponseConfigurationTemplatesGetTemplatesDetailsResponse `json:"response,omitempty"` // Response -} -type ResponseConfigurationTemplatesGetTemplatesDetailsResponse struct { - Author string `json:"author,omitempty"` // Author of template - Composite *bool `json:"composite,omitempty"` // Is it composite template - ContainingTemplates *[]ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplates `json:"containingTemplates,omitempty"` // - CreateTime *int `json:"createTime,omitempty"` // Create time of template - CustomParamsOrder *bool `json:"customParamsOrder,omitempty"` // Custom Params Order - Description string `json:"description,omitempty"` // Description of template - DeviceTypes *[]ResponseConfigurationTemplatesGetTemplatesDetailsDeviceTypes `json:"deviceTypes,omitempty"` // - FailurePolicy string `json:"failurePolicy,omitempty"` // Define failure policy if template provisioning fails - ID string `json:"id,omitempty"` // UUID of template - Language string `json:"language,omitempty"` // Template language (JINJA or VELOCITY) - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Update time of template - LatestVersionTime *int `json:"latestVersionTime,omitempty"` // Latest versioned template time - Name string `json:"name,omitempty"` // Name of template - ParentTemplateID string `json:"parentTemplateId,omitempty"` // Parent templateID - ProjectAssociated *bool `json:"projectAssociated,omitempty"` // - ProjectID string `json:"projectId,omitempty"` // Project UUID - ProjectName string `json:"projectName,omitempty"` // Project name - RollbackTemplateContent string `json:"rollbackTemplateContent,omitempty"` // Rollback template content - RollbackTemplateParams *[]ResponseConfigurationTemplatesGetTemplatesDetailsRollbackTemplateParams `json:"rollbackTemplateParams,omitempty"` // - SoftwareType string `json:"softwareType,omitempty"` // Applicable device software type - SoftwareVariant string `json:"softwareVariant,omitempty"` // Applicable device software variant - SoftwareVersion string `json:"softwareVersion,omitempty"` // Applicable device software version - Tags *[]ResponseConfigurationTemplatesGetTemplatesDetailsTags `json:"tags,omitempty"` // - TemplateContent string `json:"templateContent,omitempty"` // Template content - TemplateParams *[]ResponseConfigurationTemplatesGetTemplatesDetailsTemplateParams `json:"templateParams,omitempty"` // - ValidationErrors *ResponseConfigurationTemplatesGetTemplatesDetailsValidationErrors `json:"validationErrors,omitempty"` // - Version string `json:"version,omitempty"` // Current version of template - VersionsInfo *[]ResponseConfigurationTemplatesGetTemplatesDetailsVersionsInfo `json:"versionsInfo,omitempty"` // -} -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplates struct { - Composite *bool `json:"composite,omitempty"` // Is it composite template - Description string `json:"description,omitempty"` // Description of template - DeviceTypes *[]ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesDeviceTypes `json:"deviceTypes,omitempty"` // - ID string `json:"id,omitempty"` // UUID of template - Language string `json:"language,omitempty"` // Template language (JINJA or VELOCITY) - Name string `json:"name,omitempty"` // Name of template - ProjectName string `json:"projectName,omitempty"` // Project name - RollbackTemplateParams *[]ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesRollbackTemplateParams `json:"rollbackTemplateParams,omitempty"` // - Tags *[]ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTags `json:"tags,omitempty"` // - TemplateContent string `json:"templateContent,omitempty"` // Template content - TemplateParams *[]ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTemplateParams `json:"templateParams,omitempty"` // - Version string `json:"version,omitempty"` // Current version of template -} -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesDeviceTypes struct { +type ResponseConfigurationTemplatesGetProjectsDetailsV2Templates interface{} +type ResponseConfigurationTemplatesGetTemplatesV2Details struct { + Response []ResponseConfigurationTemplatesGetTemplatesDetailsV2 `json:"response,omitempty"` // Response +} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2 struct { + Author string `json:"author,omitempty"` // Author of template + Composite *bool `json:"composite,omitempty"` // Is it composite template + ContainingTemplates *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplates `json:"containingTemplates,omitempty"` // + CreateTime *int `json:"createTime,omitempty"` // Create time of template + CustomParamsOrder *bool `json:"customParamsOrder,omitempty"` // Custom Params Order + Description string `json:"description,omitempty"` // Description of template + DeviceTypes *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2DeviceTypes `json:"deviceTypes,omitempty"` // + FailurePolicy string `json:"failurePolicy,omitempty"` // Define failure policy if template provisioning fails + ID string `json:"id,omitempty"` // UUID of template + Language string `json:"language,omitempty"` // Template language (JINJA or VELOCITY) + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Update time of template + LatestVersionTime *int `json:"latestVersionTime,omitempty"` // Latest versioned template time + Name string `json:"name,omitempty"` // Name of template + ParentTemplateID string `json:"parentTemplateId,omitempty"` // Parent templateID + ProjectAssociated *bool `json:"projectAssociated,omitempty"` // + ProjectID string `json:"projectId,omitempty"` // Project UUID + ProjectName string `json:"projectName,omitempty"` // Project name + RollbackTemplateContent string `json:"rollbackTemplateContent,omitempty"` // Rollback template content + RollbackTemplateParams *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2RollbackTemplateParams `json:"rollbackTemplateParams,omitempty"` // + SoftwareType string `json:"softwareType,omitempty"` // Applicable device software type + SoftwareVariant string `json:"softwareVariant,omitempty"` // Applicable device software variant + SoftwareVersion string `json:"softwareVersion,omitempty"` // Applicable device software version + Tags *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2Tags `json:"tags,omitempty"` // + TemplateContent string `json:"templateContent,omitempty"` // Template content + TemplateParams *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2TemplateParams `json:"templateParams,omitempty"` // + ValidationErrors *ResponseConfigurationTemplatesGetTemplatesDetailsV2ValidationErrors `json:"validationErrors,omitempty"` // + Version string `json:"version,omitempty"` // Current version of template + VersionsInfo *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2VersionsInfo `json:"versionsInfo,omitempty"` // +} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplates struct { + Composite *bool `json:"composite,omitempty"` // Is it composite template + Description string `json:"description,omitempty"` // Description of template + DeviceTypes *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesDeviceTypes `json:"deviceTypes,omitempty"` // + ID string `json:"id,omitempty"` // UUID of template + Language string `json:"language,omitempty"` // Template language (JINJA or VELOCITY) + Name string `json:"name,omitempty"` // Name of template + ProjectName string `json:"projectName,omitempty"` // Project name + RollbackTemplateParams *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesRollbackTemplateParams `json:"rollbackTemplateParams,omitempty"` // + Tags *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTags `json:"tags,omitempty"` // + TemplateContent string `json:"templateContent,omitempty"` // Template content + TemplateParams *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTemplateParams `json:"templateParams,omitempty"` // + Version string `json:"version,omitempty"` // Current version of template +} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesDeviceTypes struct { ProductFamily string `json:"productFamily,omitempty"` // Device family ProductSeries string `json:"productSeries,omitempty"` // Device series ProductType string `json:"productType,omitempty"` // Device type } -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesRollbackTemplateParams struct { - Binding string `json:"binding,omitempty"` // Bind to source - CustomOrder *int `json:"customOrder,omitempty"` // CustomOrder of template param - DataType string `json:"dataType,omitempty"` // Datatype of template param - DefaultValue string `json:"defaultValue,omitempty"` // Default value of template param - Description string `json:"description,omitempty"` // Description of template param - DisplayName string `json:"displayName,omitempty"` // Display name of param - Group string `json:"group,omitempty"` // group - ID string `json:"id,omitempty"` // UUID of template param - InstructionText string `json:"instructionText,omitempty"` // Instruction text for param - Key string `json:"key,omitempty"` // key - NotParam *bool `json:"notParam,omitempty"` // Is it not a variable - Order *int `json:"order,omitempty"` // Order of template param - ParamArray *bool `json:"paramArray,omitempty"` // Is it an array - ParameterName string `json:"parameterName,omitempty"` // Name of template param - Provider string `json:"provider,omitempty"` // provider - Range *[]ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesRollbackTemplateParamsRange `json:"range,omitempty"` // - Required *bool `json:"required,omitempty"` // Is param required - Selection *ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesRollbackTemplateParamsSelection `json:"selection,omitempty"` // -} -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesRollbackTemplateParamsRange struct { +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesRollbackTemplateParams struct { + Binding string `json:"binding,omitempty"` // Bind to source + CustomOrder *int `json:"customOrder,omitempty"` // CustomOrder of template param + DataType string `json:"dataType,omitempty"` // Datatype of template param + DefaultValue string `json:"defaultValue,omitempty"` // Default value of template param + Description string `json:"description,omitempty"` // Description of template param + DisplayName string `json:"displayName,omitempty"` // Display name of param + Group string `json:"group,omitempty"` // group + ID string `json:"id,omitempty"` // UUID of template param + InstructionText string `json:"instructionText,omitempty"` // Instruction text for param + Key string `json:"key,omitempty"` // key + NotParam *bool `json:"notParam,omitempty"` // Is it not a variable + Order *int `json:"order,omitempty"` // Order of template param + ParamArray *bool `json:"paramArray,omitempty"` // Is it an array + ParameterName string `json:"parameterName,omitempty"` // Name of template param + Provider string `json:"provider,omitempty"` // provider + Range *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesRollbackTemplateParamsRange `json:"range,omitempty"` // + Required *bool `json:"required,omitempty"` // Is param required + Selection *ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesRollbackTemplateParamsSelection `json:"selection,omitempty"` // +} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesRollbackTemplateParamsRange struct { ID string `json:"id,omitempty"` // UUID of range MaxValue *int `json:"maxValue,omitempty"` // Max value of range MinValue *int `json:"minValue,omitempty"` // Min value of range } -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesRollbackTemplateParamsSelection struct { - DefaultSelectedValues []string `json:"defaultSelectedValues,omitempty"` // Default selection values - ID string `json:"id,omitempty"` // UUID of selection - SelectionType string `json:"selectionType,omitempty"` // Type of selection(SINGLE_SELECT or MULTI_SELECT) - SelectionValues *ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesRollbackTemplateParamsSelectionSelectionValues `json:"selectionValues,omitempty"` // Selection values +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesRollbackTemplateParamsSelection struct { + DefaultSelectedValues []string `json:"defaultSelectedValues,omitempty"` // Default selection values + ID string `json:"id,omitempty"` // UUID of selection + SelectionType string `json:"selectionType,omitempty"` // Type of selection(SINGLE_SELECT or MULTI_SELECT) + SelectionValues *ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesRollbackTemplateParamsSelectionSelectionValues `json:"selectionValues,omitempty"` // Selection values } -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesRollbackTemplateParamsSelectionSelectionValues interface{} -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTags struct { +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesRollbackTemplateParamsSelectionSelectionValues interface{} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTags struct { ID string `json:"id,omitempty"` // UUID of tag Name string `json:"name,omitempty"` // Name of tag } -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTemplateParams struct { - Binding string `json:"binding,omitempty"` // Bind to source - CustomOrder *int `json:"customOrder,omitempty"` // CustomOrder of template param - DataType string `json:"dataType,omitempty"` // Datatype of template param - DefaultValue string `json:"defaultValue,omitempty"` // Default value of template param - Description string `json:"description,omitempty"` // Description of template param - DisplayName string `json:"displayName,omitempty"` // Display name of param - Group string `json:"group,omitempty"` // group - ID string `json:"id,omitempty"` // UUID of template param - InstructionText string `json:"instructionText,omitempty"` // Instruction text for param - Key string `json:"key,omitempty"` // key - NotParam *bool `json:"notParam,omitempty"` // Is it not a variable - Order *int `json:"order,omitempty"` // Order of template param - ParamArray *bool `json:"paramArray,omitempty"` // Is it an array - ParameterName string `json:"parameterName,omitempty"` // Name of template param - Provider string `json:"provider,omitempty"` // provider - Range *[]ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTemplateParamsRange `json:"range,omitempty"` // - Required *bool `json:"required,omitempty"` // Is param required - Selection *ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTemplateParamsSelection `json:"selection,omitempty"` // +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTemplateParams struct { + Binding string `json:"binding,omitempty"` // Bind to source + CustomOrder *int `json:"customOrder,omitempty"` // CustomOrder of template param + DataType string `json:"dataType,omitempty"` // Datatype of template param + DefaultValue string `json:"defaultValue,omitempty"` // Default value of template param + Description string `json:"description,omitempty"` // Description of template param + DisplayName string `json:"displayName,omitempty"` // Display name of param + Group string `json:"group,omitempty"` // group + ID string `json:"id,omitempty"` // UUID of template param + InstructionText string `json:"instructionText,omitempty"` // Instruction text for param + Key string `json:"key,omitempty"` // key + NotParam *bool `json:"notParam,omitempty"` // Is it not a variable + Order *int `json:"order,omitempty"` // Order of template param + ParamArray *bool `json:"paramArray,omitempty"` // Is it an array + ParameterName string `json:"parameterName,omitempty"` // Name of template param + Provider string `json:"provider,omitempty"` // provider + Range *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTemplateParamsRange `json:"range,omitempty"` // + Required *bool `json:"required,omitempty"` // Is param required + Selection *ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTemplateParamsSelection `json:"selection,omitempty"` // } -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTemplateParamsRange struct { +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTemplateParamsRange struct { ID string `json:"id,omitempty"` // UUID of range MaxValue *int `json:"maxValue,omitempty"` // Max value of range MinValue *int `json:"minValue,omitempty"` // Min value of range } -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTemplateParamsSelection struct { - DefaultSelectedValues []string `json:"defaultSelectedValues,omitempty"` // Default selection values - ID string `json:"id,omitempty"` // UUID of selection - SelectionType string `json:"selectionType,omitempty"` // Type of selection(SINGLE_SELECT or MULTI_SELECT) - SelectionValues *ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTemplateParamsSelectionSelectionValues `json:"selectionValues,omitempty"` // Selection values +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTemplateParamsSelection struct { + DefaultSelectedValues []string `json:"defaultSelectedValues,omitempty"` // Default selection values + ID string `json:"id,omitempty"` // UUID of selection + SelectionType string `json:"selectionType,omitempty"` // Type of selection(SINGLE_SELECT or MULTI_SELECT) + SelectionValues *ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTemplateParamsSelectionSelectionValues `json:"selectionValues,omitempty"` // Selection values } -type ResponseConfigurationTemplatesGetTemplatesDetailsContainingTemplatesTemplateParamsSelectionSelectionValues interface{} -type ResponseConfigurationTemplatesGetTemplatesDetailsDeviceTypes struct { +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ContainingTemplatesTemplateParamsSelectionSelectionValues interface{} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2DeviceTypes struct { ProductFamily string `json:"productFamily,omitempty"` // Device family ProductSeries string `json:"productSeries,omitempty"` // Device series ProductType string `json:"productType,omitempty"` // Device type } -type ResponseConfigurationTemplatesGetTemplatesDetailsRollbackTemplateParams struct { - Binding string `json:"binding,omitempty"` // Bind to source - CustomOrder *int `json:"customOrder,omitempty"` // CustomOrder of template param - DataType string `json:"dataType,omitempty"` // Datatype of template param - DefaultValue string `json:"defaultValue,omitempty"` // Default value of template param - Description string `json:"description,omitempty"` // Description of template param - DisplayName string `json:"displayName,omitempty"` // Display name of param - Group string `json:"group,omitempty"` // group - ID string `json:"id,omitempty"` // UUID of template param - InstructionText string `json:"instructionText,omitempty"` // Instruction text for param - Key string `json:"key,omitempty"` // key - NotParam *bool `json:"notParam,omitempty"` // Is it not a variable - Order *int `json:"order,omitempty"` // Order of template param - ParamArray *bool `json:"paramArray,omitempty"` // Is it an array - ParameterName string `json:"parameterName,omitempty"` // Name of template param - Provider string `json:"provider,omitempty"` // provider - Range *[]ResponseConfigurationTemplatesGetTemplatesDetailsRollbackTemplateParamsRange `json:"range,omitempty"` // - Required *bool `json:"required,omitempty"` // Is param required - Selection *ResponseConfigurationTemplatesGetTemplatesDetailsRollbackTemplateParamsSelection `json:"selection,omitempty"` // -} -type ResponseConfigurationTemplatesGetTemplatesDetailsRollbackTemplateParamsRange struct { +type ResponseConfigurationTemplatesGetTemplatesDetailsV2RollbackTemplateParams struct { + Binding string `json:"binding,omitempty"` // Bind to source + CustomOrder *int `json:"customOrder,omitempty"` // CustomOrder of template param + DataType string `json:"dataType,omitempty"` // Datatype of template param + DefaultValue string `json:"defaultValue,omitempty"` // Default value of template param + Description string `json:"description,omitempty"` // Description of template param + DisplayName string `json:"displayName,omitempty"` // Display name of param + Group string `json:"group,omitempty"` // group + ID string `json:"id,omitempty"` // UUID of template param + InstructionText string `json:"instructionText,omitempty"` // Instruction text for param + Key string `json:"key,omitempty"` // key + NotParam *bool `json:"notParam,omitempty"` // Is it not a variable + Order *int `json:"order,omitempty"` // Order of template param + ParamArray *bool `json:"paramArray,omitempty"` // Is it an array + ParameterName string `json:"parameterName,omitempty"` // Name of template param + Provider string `json:"provider,omitempty"` // provider + Range *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2RollbackTemplateParamsRange `json:"range,omitempty"` // + Required *bool `json:"required,omitempty"` // Is param required + Selection *ResponseConfigurationTemplatesGetTemplatesDetailsV2RollbackTemplateParamsSelection `json:"selection,omitempty"` // +} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2RollbackTemplateParamsRange struct { ID string `json:"id,omitempty"` // UUID of range MaxValue *int `json:"maxValue,omitempty"` // Max value of range MinValue *int `json:"minValue,omitempty"` // Min value of range } -type ResponseConfigurationTemplatesGetTemplatesDetailsRollbackTemplateParamsSelection struct { - DefaultSelectedValues []string `json:"defaultSelectedValues,omitempty"` // Default selection values - ID string `json:"id,omitempty"` // UUID of selection - SelectionType string `json:"selectionType,omitempty"` // Type of selection(SINGLE_SELECT or MULTI_SELECT) - SelectionValues *ResponseConfigurationTemplatesGetTemplatesDetailsRollbackTemplateParamsSelectionSelectionValues `json:"selectionValues,omitempty"` // Selection values +type ResponseConfigurationTemplatesGetTemplatesDetailsV2RollbackTemplateParamsSelection struct { + DefaultSelectedValues []string `json:"defaultSelectedValues,omitempty"` // Default selection values + ID string `json:"id,omitempty"` // UUID of selection + SelectionType string `json:"selectionType,omitempty"` // Type of selection(SINGLE_SELECT or MULTI_SELECT) + SelectionValues *ResponseConfigurationTemplatesGetTemplatesDetailsV2RollbackTemplateParamsSelectionSelectionValues `json:"selectionValues,omitempty"` // Selection values } -type ResponseConfigurationTemplatesGetTemplatesDetailsRollbackTemplateParamsSelectionSelectionValues interface{} -type ResponseConfigurationTemplatesGetTemplatesDetailsTags struct { +type ResponseConfigurationTemplatesGetTemplatesDetailsV2RollbackTemplateParamsSelectionSelectionValues interface{} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2Tags struct { ID string `json:"id,omitempty"` // UUID of tag Name string `json:"name,omitempty"` // Name of tag } -type ResponseConfigurationTemplatesGetTemplatesDetailsTemplateParams struct { - Binding string `json:"binding,omitempty"` // Bind to source - CustomOrder *int `json:"customOrder,omitempty"` // CustomOrder of template param - DataType string `json:"dataType,omitempty"` // Datatype of template param - DefaultValue string `json:"defaultValue,omitempty"` // Default value of template param - Description string `json:"description,omitempty"` // Description of template param - DisplayName string `json:"displayName,omitempty"` // Display name of param - Group string `json:"group,omitempty"` // group - ID string `json:"id,omitempty"` // UUID of template param - InstructionText string `json:"instructionText,omitempty"` // Instruction text for param - Key string `json:"key,omitempty"` // key - NotParam *bool `json:"notParam,omitempty"` // Is it not a variable - Order *int `json:"order,omitempty"` // Order of template param - ParamArray *bool `json:"paramArray,omitempty"` // Is it an array - ParameterName string `json:"parameterName,omitempty"` // Name of template param - Provider string `json:"provider,omitempty"` // provider - Range *[]ResponseConfigurationTemplatesGetTemplatesDetailsTemplateParamsRange `json:"range,omitempty"` // - Required *bool `json:"required,omitempty"` // Is param required - Selection *ResponseConfigurationTemplatesGetTemplatesDetailsTemplateParamsSelection `json:"selection,omitempty"` // -} -type ResponseConfigurationTemplatesGetTemplatesDetailsTemplateParamsRange struct { +type ResponseConfigurationTemplatesGetTemplatesDetailsV2TemplateParams struct { + Binding string `json:"binding,omitempty"` // Bind to source + CustomOrder *int `json:"customOrder,omitempty"` // CustomOrder of template param + DataType string `json:"dataType,omitempty"` // Datatype of template param + DefaultValue string `json:"defaultValue,omitempty"` // Default value of template param + Description string `json:"description,omitempty"` // Description of template param + DisplayName string `json:"displayName,omitempty"` // Display name of param + Group string `json:"group,omitempty"` // group + ID string `json:"id,omitempty"` // UUID of template param + InstructionText string `json:"instructionText,omitempty"` // Instruction text for param + Key string `json:"key,omitempty"` // key + NotParam *bool `json:"notParam,omitempty"` // Is it not a variable + Order *int `json:"order,omitempty"` // Order of template param + ParamArray *bool `json:"paramArray,omitempty"` // Is it an array + ParameterName string `json:"parameterName,omitempty"` // Name of template param + Provider string `json:"provider,omitempty"` // provider + Range *[]ResponseConfigurationTemplatesGetTemplatesDetailsV2TemplateParamsRange `json:"range,omitempty"` // + Required *bool `json:"required,omitempty"` // Is param required + Selection *ResponseConfigurationTemplatesGetTemplatesDetailsV2TemplateParamsSelection `json:"selection,omitempty"` // +} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2TemplateParamsRange struct { ID string `json:"id,omitempty"` // UUID of range MaxValue *int `json:"maxValue,omitempty"` // Max value of range MinValue *int `json:"minValue,omitempty"` // Min value of range } -type ResponseConfigurationTemplatesGetTemplatesDetailsTemplateParamsSelection struct { - DefaultSelectedValues []string `json:"defaultSelectedValues,omitempty"` // Default selection values - ID string `json:"id,omitempty"` // UUID of selection - SelectionType string `json:"selectionType,omitempty"` // Type of selection(SINGLE_SELECT or MULTI_SELECT) - SelectionValues *ResponseConfigurationTemplatesGetTemplatesDetailsTemplateParamsSelectionSelectionValues `json:"selectionValues,omitempty"` // Selection values -} -type ResponseConfigurationTemplatesGetTemplatesDetailsTemplateParamsSelectionSelectionValues interface{} -type ResponseConfigurationTemplatesGetTemplatesDetailsValidationErrors struct { - RollbackTemplateErrors *ResponseConfigurationTemplatesGetTemplatesDetailsValidationErrorsRollbackTemplateErrors `json:"rollbackTemplateErrors,omitempty"` // Validation or design conflicts errors of rollback template - TemplateErrors *ResponseConfigurationTemplatesGetTemplatesDetailsValidationErrorsTemplateErrors `json:"templateErrors,omitempty"` // Validation or design conflicts errors - TemplateID string `json:"templateId,omitempty"` // UUID of template - TemplateVersion string `json:"templateVersion,omitempty"` // Current version of template -} -type ResponseConfigurationTemplatesGetTemplatesDetailsValidationErrorsRollbackTemplateErrors interface{} -type ResponseConfigurationTemplatesGetTemplatesDetailsValidationErrorsTemplateErrors interface{} -type ResponseConfigurationTemplatesGetTemplatesDetailsVersionsInfo struct { +type ResponseConfigurationTemplatesGetTemplatesDetailsV2TemplateParamsSelection struct { + DefaultSelectedValues []string `json:"defaultSelectedValues,omitempty"` // Default selection values + ID string `json:"id,omitempty"` // UUID of selection + SelectionType string `json:"selectionType,omitempty"` // Type of selection(SINGLE_SELECT or MULTI_SELECT) + SelectionValues *ResponseConfigurationTemplatesGetTemplatesDetailsV2TemplateParamsSelectionSelectionValues `json:"selectionValues,omitempty"` // Selection values +} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2TemplateParamsSelectionSelectionValues interface{} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ValidationErrors struct { + RollbackTemplateErrors *ResponseConfigurationTemplatesGetTemplatesDetailsV2ValidationErrorsRollbackTemplateErrors `json:"rollbackTemplateErrors,omitempty"` // Validation or design conflicts errors of rollback template + TemplateErrors *ResponseConfigurationTemplatesGetTemplatesDetailsV2ValidationErrorsTemplateErrors `json:"templateErrors,omitempty"` // Validation or design conflicts errors + TemplateID string `json:"templateId,omitempty"` // UUID of template + TemplateVersion string `json:"templateVersion,omitempty"` // Current version of template +} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ValidationErrorsRollbackTemplateErrors interface{} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2ValidationErrorsTemplateErrors interface{} +type ResponseConfigurationTemplatesGetTemplatesDetailsV2VersionsInfo struct { Author string `json:"author,omitempty"` // Description string `json:"description,omitempty"` // ID string `json:"id,omitempty"` // @@ -1282,6 +1280,7 @@ type RequestItemConfigurationTemplatesImportsTheTemplatesProvidedRollbackTemplat Required *bool `json:"required,omitempty"` // Is param required Selection *RequestItemConfigurationTemplatesImportsTheTemplatesProvidedRollbackTemplateParamsSelection `json:"selection,omitempty"` // } + type RequestItemConfigurationTemplatesImportsTheTemplatesProvidedRollbackTemplateParamsRange struct { ID string `json:"id,omitempty"` // UUID of range MaxValue *int `json:"maxValue,omitempty"` // Max value of range @@ -1730,20 +1729,19 @@ type RequestConfigurationTemplatesDeployTemplate struct { ForcePushTemplate *bool `json:"forcePushTemplate,omitempty"` // IsComposite *bool `json:"isComposite,omitempty"` // Composite template flag MainTemplateID string `json:"mainTemplateId,omitempty"` // Main template UUID of versioned template - MemberTemplateDeploymentInfo string `json:"memberTemplateDeploymentInfo,omitempty"` // memberTemplateDeploymentInfo + MemberTemplateDeploymentInfo []string `json:"memberTemplateDeploymentInfo,omitempty"` // memberTemplateDeploymentInfo TargetInfo *[]RequestConfigurationTemplatesDeployTemplateTargetInfo `json:"targetInfo,omitempty"` // TemplateID string `json:"templateId,omitempty"` // UUID of template to be provisioned } type RequestConfigurationTemplatesDeployTemplateTargetInfo struct { - HostName string `json:"hostName,omitempty"` // Hostname of device is required if targetType is MANAGED_DEVICE_HOSTNAME - ID string `json:"id,omitempty"` // UUID of target is required if targetType is MANAGED_DEVICE_UUID - Params *RequestConfigurationTemplatesDeployTemplateTargetInfoParams `json:"params,omitempty"` // Template params/values to be provisioned - ResourceParams *RequestConfigurationTemplatesDeployTemplateTargetInfoResourceParams `json:"resourceParams,omitempty"` // Resource params to be provisioned - Type string `json:"type,omitempty"` // Target type of device - VersionedTemplateID string `json:"versionedTemplateId,omitempty"` // Versioned templateUUID to be provisioned -} -type RequestConfigurationTemplatesDeployTemplateTargetInfoParams map[string]interface{} -type RequestConfigurationTemplatesDeployTemplateTargetInfoResourceParams interface{} + HostName string `json:"hostName,omitempty"` // Hostname of device is required if targetType is MANAGED_DEVICE_HOSTNAME + ID string `json:"id,omitempty"` // UUID of target is required if targetType is MANAGED_DEVICE_UUID + Params *RequestConfigurationTemplatesDeployTemplateTargetInfoParams `json:"params,omitempty"` // Template params/values to be provisioned + ResourceParams []string `json:"resourceParams,omitempty"` // Resource params to be provisioned. Refer to features page for usage details + Type string `json:"type,omitempty"` // Target type of device + VersionedTemplateID string `json:"versionedTemplateId,omitempty"` // Versioned templateUUID to be provisioned +} +type RequestConfigurationTemplatesDeployTemplateTargetInfoParams interface{} type RequestConfigurationTemplatesExportsTheTemplatesForAGivenCriteria []RequestItemConfigurationTemplatesExportsTheTemplatesForAGivenCriteria // Array of RequestConfigurationTemplatesExportsTheTemplatesForAGivenCriteria type RequestItemConfigurationTemplatesExportsTheTemplatesForAGivenCriteria interface{} type RequestConfigurationTemplatesPreviewTemplate struct { @@ -1762,20 +1760,19 @@ type RequestConfigurationTemplatesDeployTemplateV2 struct { ForcePushTemplate *bool `json:"forcePushTemplate,omitempty"` // IsComposite *bool `json:"isComposite,omitempty"` // Composite template flag MainTemplateID string `json:"mainTemplateId,omitempty"` // Main template UUID of versioned template - MemberTemplateDeploymentInfo string `json:"memberTemplateDeploymentInfo,omitempty"` // memberTemplateDeploymentInfo + MemberTemplateDeploymentInfo []string `json:"memberTemplateDeploymentInfo,omitempty"` // memberTemplateDeploymentInfo TargetInfo *[]RequestConfigurationTemplatesDeployTemplateV2TargetInfo `json:"targetInfo,omitempty"` // TemplateID string `json:"templateId,omitempty"` // UUID of template to be provisioned } type RequestConfigurationTemplatesDeployTemplateV2TargetInfo struct { - HostName string `json:"hostName,omitempty"` // Hostname of device is required if targetType is MANAGED_DEVICE_HOSTNAME - ID string `json:"id,omitempty"` // UUID of target is required if targetType is MANAGED_DEVICE_UUID - Params *RequestConfigurationTemplatesDeployTemplateV2TargetInfoParams `json:"params,omitempty"` // Template params/values to be provisioned - ResourceParams *RequestConfigurationTemplatesDeployTemplateV2TargetInfoResourceParams `json:"resourceParams,omitempty"` // Resource params to be provisioned - Type string `json:"type,omitempty"` // Target type of device - VersionedTemplateID string `json:"versionedTemplateId,omitempty"` // Versioned templateUUID to be provisioned + HostName string `json:"hostName,omitempty"` // Hostname of device is required if targetType is MANAGED_DEVICE_HOSTNAME + ID string `json:"id,omitempty"` // UUID of target is required if targetType is MANAGED_DEVICE_UUID + Params *RequestConfigurationTemplatesDeployTemplateV2TargetInfoParams `json:"params,omitempty"` // Template params/values to be provisioned + ResourceParams []string `json:"resourceParams,omitempty"` // Resource params to be provisioned. Refer to features page for usage details + Type string `json:"type,omitempty"` // Target type of device + VersionedTemplateID string `json:"versionedTemplateId,omitempty"` // Versioned templateUUID to be provisioned } type RequestConfigurationTemplatesDeployTemplateV2TargetInfoParams map[string]interface{} -type RequestConfigurationTemplatesDeployTemplateV2TargetInfoResourceParams interface{} //GetsAListOfProjects Gets a list of projects - 4f80-08c2-400b-98ee /* List the projects @@ -1783,7 +1780,7 @@ type RequestConfigurationTemplatesDeployTemplateV2TargetInfoResourceParams inter @param GetsAListOfProjectsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-a-list-of-projects +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-a-list-of-projects-v1 */ func (s *ConfigurationTemplatesService) GetsAListOfProjects(GetsAListOfProjectsQueryParams *GetsAListOfProjectsQueryParams) (*ResponseConfigurationTemplatesGetsAListOfProjects, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/project" @@ -1821,7 +1818,7 @@ func (s *ConfigurationTemplatesService) GetsAListOfProjects(GetsAListOfProjectsQ @param projectID projectId path parameter. projectId(UUID) of project to get project details -Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-details-of-a-given-project +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-details-of-a-given-project-v1 */ func (s *ConfigurationTemplatesService) GetsTheDetailsOfAGivenProject(projectID string) (*ResponseConfigurationTemplatesGetsTheDetailsOfAGivenProject, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/project/{projectId}" @@ -1857,7 +1854,7 @@ func (s *ConfigurationTemplatesService) GetsTheDetailsOfAGivenProject(projectID @param GetsTheTemplatesAvailableQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-templates-available +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-templates-available-v1 */ func (s *ConfigurationTemplatesService) GetsTheTemplatesAvailable(GetsTheTemplatesAvailableQueryParams *GetsTheTemplatesAvailableQueryParams) (*ResponseConfigurationTemplatesGetsTheTemplatesAvailable, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/template" @@ -1895,7 +1892,7 @@ func (s *ConfigurationTemplatesService) GetsTheTemplatesAvailable(GetsTheTemplat @param deploymentID deploymentId path parameter. UUID of deployment to retrieve template deployment status -Documentation Link: https://developer.cisco.com/docs/dna-center/#!status-of-template-deployment +Documentation Link: https://developer.cisco.com/docs/dna-center/#!status-of-template-deployment-v1 */ func (s *ConfigurationTemplatesService) StatusOfTemplateDeployment(deploymentID string) (*ResponseConfigurationTemplatesStatusOfTemplateDeployment, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/template/deploy/status/{deploymentId}" @@ -1932,7 +1929,7 @@ func (s *ConfigurationTemplatesService) StatusOfTemplateDeployment(deploymentID @param templateID templateId path parameter. templateId(UUID) to get list of versioned templates -Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-all-the-versions-of-a-given-template +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-all-the-versions-of-a-given-template-v1 */ func (s *ConfigurationTemplatesService) GetsAllTheVersionsOfAGivenTemplate(templateID string) (*ResponseConfigurationTemplatesGetsAllTheVersionsOfAGivenTemplate, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/template/version/{templateId}" @@ -1970,7 +1967,7 @@ func (s *ConfigurationTemplatesService) GetsAllTheVersionsOfAGivenTemplate(templ @param GetsDetailsOfAGivenTemplateQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-details-of-a-given-template +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-details-of-a-given-template-v1 */ func (s *ConfigurationTemplatesService) GetsDetailsOfAGivenTemplate(templateID string, GetsDetailsOfAGivenTemplateQueryParams *GetsDetailsOfAGivenTemplateQueryParams) (*ResponseConfigurationTemplatesGetsDetailsOfAGivenTemplate, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/template/{templateId}" @@ -2002,23 +1999,23 @@ func (s *ConfigurationTemplatesService) GetsDetailsOfAGivenTemplate(templateID s } -//GetProjectsDetails Get project(s) details - 9a8c-aa6d-459b-a4a2 +//GetProjectsDetailsV2 Get project(s) details - 9a8c-aa6d-459b-a4a2 /* Get project(s) details -@param GetProjectsDetailsQueryParams Filtering parameter +@param GetProjectsDetailsV2QueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-projects-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-projects-details-v2 */ -func (s *ConfigurationTemplatesService) GetProjectsDetails(GetProjectsDetailsQueryParams *GetProjectsDetailsQueryParams) (*ResponseConfigurationTemplatesGetProjectsDetails, *resty.Response, error) { +func (s *ConfigurationTemplatesService) GetProjectsDetailsV2(GetProjectsDetailsV2QueryParams *GetProjectsDetailsV2QueryParams) (*ResponseConfigurationTemplatesGetProjectsDetailsV2, *resty.Response, error) { path := "/dna/intent/api/v2/template-programmer/project" - queryString, _ := query.Values(GetProjectsDetailsQueryParams) + queryString, _ := query.Values(GetProjectsDetailsV2QueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseConfigurationTemplatesGetProjectsDetails{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseConfigurationTemplatesGetProjectsDetailsV2{}). SetError(&Error). Get(path) @@ -2029,33 +2026,33 @@ func (s *ConfigurationTemplatesService) GetProjectsDetails(GetProjectsDetailsQue if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetProjectsDetails(GetProjectsDetailsQueryParams) + return s.GetProjectsDetailsV2(GetProjectsDetailsV2QueryParams) } - return nil, response, fmt.Errorf("error with operation GetProjectsDetails") + return nil, response, fmt.Errorf("error with operation GetProjectsDetailsV2") } - result := response.Result().(*ResponseConfigurationTemplatesGetProjectsDetails) + result := response.Result().(*ResponseConfigurationTemplatesGetProjectsDetailsV2) return result, response, err } -//GetTemplatesDetails Get template(s) details - b0b6-ba49-43c8-9f45 +//GetTemplatesDetailsV2 Get template(s) details - b0b6-ba49-43c8-9f45 /* Get template(s) details -@param GetTemplatesDetailsQueryParams Filtering parameter +@param GetTemplatesDetailsV2QueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-templates-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-templates-details-v2 */ -func (s *ConfigurationTemplatesService) GetTemplatesDetails(GetTemplatesDetailsQueryParams *GetTemplatesDetailsQueryParams) (*ResponseConfigurationTemplatesGetTemplatesDetails, *resty.Response, error) { +func (s *ConfigurationTemplatesService) GetTemplatesDetailsV2(GetTemplatesDetailsV2QueryParams *GetTemplatesDetailsV2QueryParams) (*ResponseConfigurationTemplatesGetTemplatesDetailsV2, *resty.Response, error) { path := "/dna/intent/api/v2/template-programmer/template" - queryString, _ := query.Values(GetTemplatesDetailsQueryParams) + queryString, _ := query.Values(GetTemplatesDetailsV2QueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseConfigurationTemplatesGetTemplatesDetails{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseConfigurationTemplatesGetTemplatesDetailsV2{}). SetError(&Error). Get(path) @@ -2066,12 +2063,12 @@ func (s *ConfigurationTemplatesService) GetTemplatesDetails(GetTemplatesDetailsQ if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetTemplatesDetails(GetTemplatesDetailsQueryParams) + return s.GetTemplatesDetailsV2(GetTemplatesDetailsV2QueryParams) } - return nil, response, fmt.Errorf("error with operation GetTemplatesDetails") + return nil, response, fmt.Errorf("error with operation GetTemplatesDetailsV2") } - result := response.Result().(*ResponseConfigurationTemplatesGetTemplatesDetails) + result := response.Result().(*ResponseConfigurationTemplatesGetTemplatesDetailsV2) return result, response, err } @@ -2087,7 +2084,7 @@ func (s *ConfigurationTemplatesService) GetTemplatesDetails(GetTemplatesDetailsQ @param projectID projectId path parameter. @param CreatesACloneOfTheGivenTemplateQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!creates-a-clone-of-the-given-template +Documentation Link: https://developer.cisco.com/docs/dna-center/#!creates-a-clone-of-the-given-template-v1 */ func (s *ConfigurationTemplatesService) CreatesACloneOfTheGivenTemplate(name string, templateID string, projectID string, CreatesACloneOfTheGivenTemplateQueryParams *CreatesACloneOfTheGivenTemplateQueryParams) (*ResponseConfigurationTemplatesCreatesACloneOfTheGivenTemplate, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/clone/name/{name}/project/{projectId}/template/{templateId}" @@ -2129,7 +2126,7 @@ func (s *ConfigurationTemplatesService) CreatesACloneOfTheGivenTemplate(name str -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-project +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-project-v1 */ func (s *ConfigurationTemplatesService) CreateProject(requestConfigurationTemplatesCreateProject *RequestConfigurationTemplatesCreateProject) (*ResponseConfigurationTemplatesCreateProject, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/project" @@ -2167,7 +2164,7 @@ func (s *ConfigurationTemplatesService) CreateProject(requestConfigurationTempla @param ImportsTheProjectsProvidedQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!imports-the-projects-provided +Documentation Link: https://developer.cisco.com/docs/dna-center/#!imports-the-projects-provided-v1 */ func (s *ConfigurationTemplatesService) ImportsTheProjectsProvided(ImportsTheProjectsProvidedQueryParams *ImportsTheProjectsProvidedQueryParams) (*ResponseConfigurationTemplatesImportsTheProjectsProvided, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/project/importprojects" @@ -2206,7 +2203,7 @@ func (s *ConfigurationTemplatesService) ImportsTheProjectsProvided(ImportsThePro -Documentation Link: https://developer.cisco.com/docs/dna-center/#!exports-the-projects-for-a-given-criteria +Documentation Link: https://developer.cisco.com/docs/dna-center/#!exports-the-projects-for-a-given-criteria-v1 */ func (s *ConfigurationTemplatesService) ExportsTheProjectsForAGivenCriteria(requestConfigurationTemplatesExportsTheProjectsForAGivenCriteria *RequestConfigurationTemplatesExportsTheProjectsForAGivenCriteria) (*ResponseConfigurationTemplatesExportsTheProjectsForAGivenCriteria, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/project/name/exportprojects" @@ -2246,7 +2243,7 @@ func (s *ConfigurationTemplatesService) ExportsTheProjectsForAGivenCriteria(requ @param ImportsTheTemplatesProvidedQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!imports-the-templates-provided +Documentation Link: https://developer.cisco.com/docs/dna-center/#!imports-the-templates-provided-v1 */ func (s *ConfigurationTemplatesService) ImportsTheTemplatesProvided(projectName string, requestConfigurationTemplatesImportsTheTemplatesProvided *RequestConfigurationTemplatesImportsTheTemplatesProvided, ImportsTheTemplatesProvidedQueryParams *ImportsTheTemplatesProvidedQueryParams) (*ResponseConfigurationTemplatesImportsTheTemplatesProvided, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/project/name/{projectName}/template/importtemplates" @@ -2288,7 +2285,7 @@ func (s *ConfigurationTemplatesService) ImportsTheTemplatesProvided(projectName @param projectID projectId path parameter. UUID of the project in which the template needs to be created -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-template +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-template-v1 */ func (s *ConfigurationTemplatesService) CreateTemplate(projectID string, requestConfigurationTemplatesCreateTemplate *RequestConfigurationTemplatesCreateTemplate) (*ResponseConfigurationTemplatesCreateTemplate, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/project/{projectId}/template" @@ -2326,7 +2323,7 @@ func (s *ConfigurationTemplatesService) CreateTemplate(projectID string, request -Documentation Link: https://developer.cisco.com/docs/dna-center/#!deploy-template +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deploy-template-v1 */ func (s *ConfigurationTemplatesService) DeployTemplate(requestConfigurationTemplatesDeployTemplate *RequestConfigurationTemplatesDeployTemplate) (*ResponseConfigurationTemplatesDeployTemplate, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/template/deploy" @@ -2363,7 +2360,7 @@ func (s *ConfigurationTemplatesService) DeployTemplate(requestConfigurationTempl -Documentation Link: https://developer.cisco.com/docs/dna-center/#!exports-the-templates-for-a-given-criteria +Documentation Link: https://developer.cisco.com/docs/dna-center/#!exports-the-templates-for-a-given-criteria-v1 */ func (s *ConfigurationTemplatesService) ExportsTheTemplatesForAGivenCriteria(requestConfigurationTemplatesExportsTheTemplatesForAGivenCriteria *RequestConfigurationTemplatesExportsTheTemplatesForAGivenCriteria) (*ResponseConfigurationTemplatesExportsTheTemplatesForAGivenCriteria, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/template/exporttemplates" @@ -2400,7 +2397,7 @@ func (s *ConfigurationTemplatesService) ExportsTheTemplatesForAGivenCriteria(req -Documentation Link: https://developer.cisco.com/docs/dna-center/#!version-template +Documentation Link: https://developer.cisco.com/docs/dna-center/#!version-template-v1 */ func (s *ConfigurationTemplatesService) VersionTemplate(requestConfigurationTemplatesVersionTemplate *RequestConfigurationTemplatesVersionTemplate) (*ResponseConfigurationTemplatesVersionTemplate, *resty.Response, error) { path := "/dna/intent/api/v1/template-programmer/template/version" @@ -2575,7 +2572,7 @@ func (s *ConfigurationTemplatesService) PreviewTemplate(requestConfigurationTemp @param projectID projectId path parameter. projectId(UUID) of project to be deleted -Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-the-project +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-the-project-v1 */ func (s *ConfigurationTemplatesService) DeletesTheProject(projectID string) (*ResponseConfigurationTemplatesDeletesTheProject, *resty.Response, error) { //projectID string @@ -2613,7 +2610,7 @@ func (s *ConfigurationTemplatesService) DeletesTheProject(projectID string) (*Re @param templateID templateId path parameter. templateId(UUID) of template to be deleted -Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-the-template +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-the-template-v1 */ func (s *ConfigurationTemplatesService) DeletesTheTemplate(templateID string) (*ResponseConfigurationTemplatesDeletesTheTemplate, *resty.Response, error) { //templateID string diff --git a/sdk/device_onboarding_pnp.go b/sdk/device_onboarding_pnp.go index 88cde2e..94f5425 100644 --- a/sdk/device_onboarding_pnp.go +++ b/sdk/device_onboarding_pnp.go @@ -11,7 +11,7 @@ import ( type DeviceOnboardingPnpService service -type GetDeviceList2QueryParams struct { +type GetDeviceListSiteManagementQueryParams struct { Limit int `url:"limit,omitempty"` //Limits number of results Offset int `url:"offset,omitempty"` //Index of first result Sort []string `url:"sort,omitempty"` //Comma seperated list of fields to sort on @@ -19,13 +19,10 @@ type GetDeviceList2QueryParams struct { SerialNumber []string `url:"serialNumber,omitempty"` //Device Serial Number State []string `url:"state,omitempty"` //Device State OnbState []string `url:"onbState,omitempty"` //Device Onboarding State - CmState []string `url:"cmState,omitempty"` //Device Connection Manager State Name []string `url:"name,omitempty"` //Device Name Pid []string `url:"pid,omitempty"` //Device ProductId Source []string `url:"source,omitempty"` //Device Source - ProjectID []string `url:"projectId,omitempty"` //Device Project Id WorkflowID []string `url:"workflowId,omitempty"` //Device Workflow Id - ProjectName []string `url:"projectName,omitempty"` //Device Project Name WorkflowName []string `url:"workflowName,omitempty"` //Device Workflow Name SmartAccountID []string `url:"smartAccountId,omitempty"` //Device Smart Account VirtualAccountID []string `url:"virtualAccountId,omitempty"` //Device Virtual Account @@ -38,13 +35,10 @@ type GetDeviceCountQueryParams struct { SerialNumber []string `url:"serialNumber,omitempty"` //Device Serial Number State []string `url:"state,omitempty"` //Device State OnbState []string `url:"onbState,omitempty"` //Device Onboarding State - CmState []string `url:"cmState,omitempty"` //Device Connection Manager State Name []string `url:"name,omitempty"` //Device Name Pid []string `url:"pid,omitempty"` //Device ProductId Source []string `url:"source,omitempty"` //Device Source - ProjectID []string `url:"projectId,omitempty"` //Device Project Id WorkflowID []string `url:"workflowId,omitempty"` //Device Workflow Id - ProjectName []string `url:"projectName,omitempty"` //Device Project Name WorkflowName []string `url:"workflowName,omitempty"` //Device Workflow Name SmartAccountID []string `url:"smartAccountId,omitempty"` //Device Smart Account VirtualAccountID []string `url:"virtualAccountId,omitempty"` //Device Virtual Account @@ -71,6 +65,15 @@ type GetWorkflowCountQueryParams struct { Name []string `url:"name,omitempty"` //Workflow Name } +type ResponseDeviceOnboardingPnpAuthorizeDevice struct { + JSONResponse *ResponseDeviceOnboardingPnpAuthorizeDeviceJSONResponse `json:"jsonResponse,omitempty"` // + Message string `json:"message,omitempty"` // Message + StatusCode *float64 `json:"statusCode,omitempty"` // Status Code + JSONArrayResponse []string `json:"jsonArrayResponse,omitempty"` // Json Array Response +} +type ResponseDeviceOnboardingPnpAuthorizeDeviceJSONResponse struct { + Empty *bool `json:"empty,omitempty"` // Empty +} type ResponseDeviceOnboardingPnpAddDevice struct { TypeID string `json:"_id,omitempty"` // Id DeviceInfo *ResponseDeviceOnboardingPnpAddDeviceDeviceInfo `json:"deviceInfo,omitempty"` // @@ -397,82 +400,82 @@ type ResponseDeviceOnboardingPnpAddDeviceDayZeroConfig struct { Config string `json:"config,omitempty"` // Config } type ResponseDeviceOnboardingPnpAddDeviceDayZeroConfigPreview interface{} -type ResponseDeviceOnboardingPnpGetDeviceList2 []ResponseItemDeviceOnboardingPnpGetDeviceList2 // Array of ResponseDeviceOnboardingPnpGetDeviceList2 -type ResponseItemDeviceOnboardingPnpGetDeviceList2 struct { - DeviceInfo *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfo `json:"deviceInfo,omitempty"` // - SystemResetWorkflow *ResponseItemDeviceOnboardingPnpGetDeviceList2SystemResetWorkflow `json:"systemResetWorkflow,omitempty"` // - SystemWorkflow *ResponseItemDeviceOnboardingPnpGetDeviceList2SystemWorkflow `json:"systemWorkflow,omitempty"` // - Workflow *ResponseItemDeviceOnboardingPnpGetDeviceList2Workflow `json:"workflow,omitempty"` // - RunSummaryList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryList `json:"runSummaryList,omitempty"` // - WorkflowParameters *ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowParameters `json:"workflowParameters,omitempty"` // - DayZeroConfig *ResponseItemDeviceOnboardingPnpGetDeviceList2DayZeroConfig `json:"dayZeroConfig,omitempty"` // - DayZeroConfigPreview *ResponseItemDeviceOnboardingPnpGetDeviceList2DayZeroConfigPreview `json:"dayZeroConfigPreview,omitempty"` // Day Zero Config Preview - Version *float64 `json:"version,omitempty"` // Version - TenantID string `json:"tenantId,omitempty"` // Tenant Id - Progress *ResponseItemDeviceOnboardingPnpGetDeviceList2Progress `json:"progress,omitempty"` // - ID string `json:"id,omitempty"` // Id -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfo struct { - Source string `json:"source,omitempty"` // Source - SerialNumber string `json:"serialNumber,omitempty"` // Serial Number - Stack *bool `json:"stack,omitempty"` // Stack - Mode string `json:"mode,omitempty"` // Mode - State string `json:"state,omitempty"` // State - Location *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoLocation `json:"location,omitempty"` // - Description string `json:"description,omitempty"` // Description - OnbState string `json:"onbState,omitempty"` // Onb State - AuthenticatedMicNumber string `json:"authenticatedMicNumber,omitempty"` // Authenticated Mic Number - AuthenticatedSudiSerialNo string `json:"authenticatedSudiSerialNo,omitempty"` // Authenticated Sudi Serial No - CapabilitiesSupported []string `json:"capabilitiesSupported,omitempty"` // Capabilities Supported - FeaturesSupported []string `json:"featuresSupported,omitempty"` // Features Supported - CmState string `json:"cmState,omitempty"` // Cm State - FirstContact *float64 `json:"firstContact,omitempty"` // First Contact - LastContact *float64 `json:"lastContact,omitempty"` // Last Contact - MacAddress string `json:"macAddress,omitempty"` // Mac Address - Pid string `json:"pid,omitempty"` // Pid - DeviceSudiSerialNos []string `json:"deviceSudiSerialNos,omitempty"` // Device Sudi Serial Nos - LastUpdateOn *float64 `json:"lastUpdateOn,omitempty"` // Last Update On - WorkflowID string `json:"workflowId,omitempty"` // Workflow Id - WorkflowName string `json:"workflowName,omitempty"` // Workflow Name - ProjectID string `json:"projectId,omitempty"` // Project Id - ProjectName string `json:"projectName,omitempty"` // Project Name - DeviceType string `json:"deviceType,omitempty"` // Device Type - AgentType string `json:"agentType,omitempty"` // Agent Type - ImageVersion string `json:"imageVersion,omitempty"` // Image Version - FileSystemList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoFileSystemList `json:"fileSystemList,omitempty"` // - PnpProfileList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileList `json:"pnpProfileList,omitempty"` // - ImageFile string `json:"imageFile,omitempty"` // Image File - HTTPHeaders *[]ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoHTTPHeaders `json:"httpHeaders,omitempty"` // - NeighborLinks *[]ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoNeighborLinks `json:"neighborLinks,omitempty"` // - LastSyncTime *float64 `json:"lastSyncTime,omitempty"` // Last Sync Time - IPInterfaces *[]ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoIPInterfaces `json:"ipInterfaces,omitempty"` // - Hostname string `json:"hostname,omitempty"` // Hostname - AuthStatus string `json:"authStatus,omitempty"` // Auth Status - StackInfo *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoStackInfo `json:"stackInfo,omitempty"` // - ReloadRequested *bool `json:"reloadRequested,omitempty"` // Reload Requested - AddedOn *float64 `json:"addedOn,omitempty"` // Added On - SiteID string `json:"siteId,omitempty"` // Site Id - AAACredentials *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoAAACredentials `json:"aaaCredentials,omitempty"` // - UserMicNumbers []string `json:"userMicNumbers,omitempty"` // User Mic Numbers - UserSudiSerialNos []string `json:"userSudiSerialNos,omitempty"` // User Sudi Serial Nos - AddnMacAddrs []string `json:"addnMacAddrs,omitempty"` // Addn Mac Addrs - PreWorkflowCliOuputs *[]ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPreWorkflowCliOuputs `json:"preWorkflowCliOuputs,omitempty"` // - Tags *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoTags `json:"tags,omitempty"` // Tags - SudiRequired *bool `json:"sudiRequired,omitempty"` // Sudi Required - SmartAccountID string `json:"smartAccountId,omitempty"` // Smart Account Id - VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id - PopulateInventory *bool `json:"populateInventory,omitempty"` // Populate Inventory - SiteName string `json:"siteName,omitempty"` // Site Name - Name string `json:"name,omitempty"` // Name -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoLocation struct { +type ResponseDeviceOnboardingPnpGetDeviceListSiteManagement []ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagement // Array of ResponseDeviceOnboardingPnpGetDeviceListSiteManagement +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagement struct { + DeviceInfo *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfo `json:"deviceInfo,omitempty"` // + SystemResetWorkflow *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemResetWorkflow `json:"systemResetWorkflow,omitempty"` // + SystemWorkflow *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemWorkflow `json:"systemWorkflow,omitempty"` // + Workflow *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflow `json:"workflow,omitempty"` // + RunSummaryList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementRunSummaryList `json:"runSummaryList,omitempty"` // + WorkflowParameters *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowParameters `json:"workflowParameters,omitempty"` // + DayZeroConfig *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDayZeroConfig `json:"dayZeroConfig,omitempty"` // + DayZeroConfigPreview *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDayZeroConfigPreview `json:"dayZeroConfigPreview,omitempty"` // Day Zero Config Preview + Version *float64 `json:"version,omitempty"` // Version + TenantID string `json:"tenantId,omitempty"` // Tenant Id + Progress *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementProgress `json:"progress,omitempty"` // + ID string `json:"id,omitempty"` // Id +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfo struct { + Source string `json:"source,omitempty"` // Source + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + Stack *bool `json:"stack,omitempty"` // Stack + Mode string `json:"mode,omitempty"` // Mode + State string `json:"state,omitempty"` // State + Location *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoLocation `json:"location,omitempty"` // + Description string `json:"description,omitempty"` // Description + OnbState string `json:"onbState,omitempty"` // Onb State + AuthenticatedMicNumber string `json:"authenticatedMicNumber,omitempty"` // Authenticated Mic Number + AuthenticatedSudiSerialNo string `json:"authenticatedSudiSerialNo,omitempty"` // Authenticated Sudi Serial No + CapabilitiesSupported []string `json:"capabilitiesSupported,omitempty"` // Capabilities Supported + FeaturesSupported []string `json:"featuresSupported,omitempty"` // Features Supported + CmState string `json:"cmState,omitempty"` // Cm State + FirstContact *float64 `json:"firstContact,omitempty"` // First Contact + LastContact *float64 `json:"lastContact,omitempty"` // Last Contact + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Pid string `json:"pid,omitempty"` // Pid + DeviceSudiSerialNos []string `json:"deviceSudiSerialNos,omitempty"` // Device Sudi Serial Nos + LastUpdateOn *float64 `json:"lastUpdateOn,omitempty"` // Last Update On + WorkflowID string `json:"workflowId,omitempty"` // Workflow Id + WorkflowName string `json:"workflowName,omitempty"` // Workflow Name + ProjectID string `json:"projectId,omitempty"` // Project Id + ProjectName string `json:"projectName,omitempty"` // Project Name + DeviceType string `json:"deviceType,omitempty"` // Device Type + AgentType string `json:"agentType,omitempty"` // Agent Type + ImageVersion string `json:"imageVersion,omitempty"` // Image Version + FileSystemList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoFileSystemList `json:"fileSystemList,omitempty"` // + PnpProfileList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileList `json:"pnpProfileList,omitempty"` // + ImageFile string `json:"imageFile,omitempty"` // Image File + HTTPHeaders *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoHTTPHeaders `json:"httpHeaders,omitempty"` // + NeighborLinks *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoNeighborLinks `json:"neighborLinks,omitempty"` // + LastSyncTime *float64 `json:"lastSyncTime,omitempty"` // Last Sync Time + IPInterfaces *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoIPInterfaces `json:"ipInterfaces,omitempty"` // + Hostname string `json:"hostname,omitempty"` // Hostname + AuthStatus string `json:"authStatus,omitempty"` // Auth Status + StackInfo *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoStackInfo `json:"stackInfo,omitempty"` // + ReloadRequested *bool `json:"reloadRequested,omitempty"` // Reload Requested + AddedOn *float64 `json:"addedOn,omitempty"` // Added On + SiteID string `json:"siteId,omitempty"` // Site Id + AAACredentials *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoAAACredentials `json:"aaaCredentials,omitempty"` // + UserMicNumbers []string `json:"userMicNumbers,omitempty"` // User Mic Numbers + UserSudiSerialNos []string `json:"userSudiSerialNos,omitempty"` // User Sudi Serial Nos + AddnMacAddrs []string `json:"addnMacAddrs,omitempty"` // Addn Mac Addrs + PreWorkflowCliOuputs *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPreWorkflowCliOuputs `json:"preWorkflowCliOuputs,omitempty"` // + Tags *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoTags `json:"tags,omitempty"` // Tags + SudiRequired *bool `json:"sudiRequired,omitempty"` // Sudi Required + SmartAccountID string `json:"smartAccountId,omitempty"` // Smart Account Id + VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id + PopulateInventory *bool `json:"populateInventory,omitempty"` // Populate Inventory + SiteName string `json:"siteName,omitempty"` // Site Name + Name string `json:"name,omitempty"` // Name +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoLocation struct { SiteID string `json:"siteId,omitempty"` // Site Id Address string `json:"address,omitempty"` // Address Latitude string `json:"latitude,omitempty"` // Latitude Longitude string `json:"longitude,omitempty"` // Longitude Altitude string `json:"altitude,omitempty"` // Altitude } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoFileSystemList struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoFileSystemList struct { Type string `json:"type,omitempty"` // Type Writeable *bool `json:"writeable,omitempty"` // Writeable Freespace *float64 `json:"freespace,omitempty"` // Freespace @@ -480,38 +483,38 @@ type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoFileSystemList struc Readable *bool `json:"readable,omitempty"` // Readable Size *float64 `json:"size,omitempty"` // Size } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileList struct { - ProfileName string `json:"profileName,omitempty"` // Profile Name - DiscoveryCreated *bool `json:"discoveryCreated,omitempty"` // Discovery Created - CreatedBy string `json:"createdBy,omitempty"` // Created By - PrimaryEndpoint *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListPrimaryEndpoint `json:"primaryEndpoint,omitempty"` // - SecondaryEndpoint *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListSecondaryEndpoint `json:"secondaryEndpoint,omitempty"` // -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListPrimaryEndpoint struct { - Port *float64 `json:"port,omitempty"` // Port - Protocol string `json:"protocol,omitempty"` // Protocol - IPv4Address *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListPrimaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // Ipv4 Address - IPv6Address *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListPrimaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // Ipv6 Address - Fqdn string `json:"fqdn,omitempty"` // Fqdn - Certificate string `json:"certificate,omitempty"` // Certificate -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListPrimaryEndpointIPv4Address interface{} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListPrimaryEndpointIPv6Address interface{} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListSecondaryEndpoint struct { - Port *float64 `json:"port,omitempty"` // Port - Protocol string `json:"protocol,omitempty"` // Protocol - IPv4Address *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListSecondaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // Ipv4 Address - IPv6Address *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListSecondaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // Ipv6 Address - Fqdn string `json:"fqdn,omitempty"` // Fqdn - Certificate string `json:"certificate,omitempty"` // Certificate -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListSecondaryEndpointIPv4Address interface{} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPnpProfileListSecondaryEndpointIPv6Address interface{} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoHTTPHeaders struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileList struct { + ProfileName string `json:"profileName,omitempty"` // Profile Name + DiscoveryCreated *bool `json:"discoveryCreated,omitempty"` // Discovery Created + CreatedBy string `json:"createdBy,omitempty"` // Created By + PrimaryEndpoint *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListPrimaryEndpoint `json:"primaryEndpoint,omitempty"` // + SecondaryEndpoint *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListSecondaryEndpoint `json:"secondaryEndpoint,omitempty"` // +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListPrimaryEndpoint struct { + Port *float64 `json:"port,omitempty"` // Port + Protocol string `json:"protocol,omitempty"` // Protocol + IPv4Address *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListPrimaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6Address *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListPrimaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // Ipv6 Address + Fqdn string `json:"fqdn,omitempty"` // Fqdn + Certificate string `json:"certificate,omitempty"` // Certificate +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListPrimaryEndpointIPv4Address interface{} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListPrimaryEndpointIPv6Address interface{} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListSecondaryEndpoint struct { + Port *float64 `json:"port,omitempty"` // Port + Protocol string `json:"protocol,omitempty"` // Protocol + IPv4Address *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListSecondaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6Address *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListSecondaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // Ipv6 Address + Fqdn string `json:"fqdn,omitempty"` // Fqdn + Certificate string `json:"certificate,omitempty"` // Certificate +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListSecondaryEndpointIPv4Address interface{} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPnpProfileListSecondaryEndpointIPv6Address interface{} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoHTTPHeaders struct { Key string `json:"key,omitempty"` // Key Value string `json:"value,omitempty"` // Value } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoNeighborLinks struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoNeighborLinks struct { LocalInterfaceName string `json:"localInterfaceName,omitempty"` // Local Interface Name LocalShortInterfaceName string `json:"localShortInterfaceName,omitempty"` // Local Short Interface Name LocalMacAddress string `json:"localMacAddress,omitempty"` // Local Mac Address @@ -522,24 +525,24 @@ type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoNeighborLinks struct RemotePlatform string `json:"remotePlatform,omitempty"` // Remote Platform RemoteVersion string `json:"remoteVersion,omitempty"` // Remote Version } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoIPInterfaces struct { - Status string `json:"status,omitempty"` // Status - MacAddress string `json:"macAddress,omitempty"` // Mac Address - IPv4Address *ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoIPInterfacesIPv4Address `json:"ipv4Address,omitempty"` // Ipv4 Address - IPv6AddressList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoIPInterfacesIPv6AddressList `json:"ipv6AddressList,omitempty"` // Ipv6 Address List - Name string `json:"name,omitempty"` // Name -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoIPInterfacesIPv4Address interface{} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoIPInterfacesIPv6AddressList interface{} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoStackInfo struct { - SupportsStackWorkflows *bool `json:"supportsStackWorkflows,omitempty"` // Supports Stack Workflows - IsFullRing *bool `json:"isFullRing,omitempty"` // Is Full Ring - StackMemberList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoStackInfoStackMemberList `json:"stackMemberList,omitempty"` // - StackRingProtocol string `json:"stackRingProtocol,omitempty"` // Stack Ring Protocol - ValidLicenseLevels []string `json:"validLicenseLevels,omitempty"` // Valid License Levels - TotalMemberCount *float64 `json:"totalMemberCount,omitempty"` // Total Member Count -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoStackInfoStackMemberList struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoIPInterfaces struct { + Status string `json:"status,omitempty"` // Status + MacAddress string `json:"macAddress,omitempty"` // Mac Address + IPv4Address *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoIPInterfacesIPv4Address `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6AddressList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoIPInterfacesIPv6AddressList `json:"ipv6AddressList,omitempty"` // Ipv6 Address List + Name string `json:"name,omitempty"` // Name +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoIPInterfacesIPv4Address interface{} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoIPInterfacesIPv6AddressList interface{} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoStackInfo struct { + SupportsStackWorkflows *bool `json:"supportsStackWorkflows,omitempty"` // Supports Stack Workflows + IsFullRing *bool `json:"isFullRing,omitempty"` // Is Full Ring + StackMemberList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoStackInfoStackMemberList `json:"stackMemberList,omitempty"` // + StackRingProtocol string `json:"stackRingProtocol,omitempty"` // Stack Ring Protocol + ValidLicenseLevels []string `json:"validLicenseLevels,omitempty"` // Valid License Levels + TotalMemberCount *float64 `json:"totalMemberCount,omitempty"` // Total Member Count +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoStackInfoStackMemberList struct { SerialNumber string `json:"serialNumber,omitempty"` // Serial Number State string `json:"state,omitempty"` // State Role string `json:"role,omitempty"` // Role @@ -553,48 +556,48 @@ type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoStackInfoStackMember SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version Priority *float64 `json:"priority,omitempty"` // Priority } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoAAACredentials struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoAAACredentials struct { Password string `json:"password,omitempty"` // Password Username string `json:"username,omitempty"` // Username } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoPreWorkflowCliOuputs struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoPreWorkflowCliOuputs struct { Cli string `json:"cli,omitempty"` // Cli CliOutput string `json:"cliOutput,omitempty"` // Cli Output } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DeviceInfoTags interface{} -type ResponseItemDeviceOnboardingPnpGetDeviceList2SystemResetWorkflow struct { - TypeID string `json:"_id,omitempty"` // Id - State string `json:"state,omitempty"` // State - Type string `json:"type,omitempty"` // Type - Description string `json:"description,omitempty"` // Description - LastupdateOn *float64 `json:"lastupdateOn,omitempty"` // Lastupdate On - ImageID string `json:"imageId,omitempty"` // Image Id - CurrTaskIDx *float64 `json:"currTaskIdx,omitempty"` // Curr Task Idx - AddedOn *float64 `json:"addedOn,omitempty"` // Added On - Tasks *[]ResponseItemDeviceOnboardingPnpGetDeviceList2SystemResetWorkflowTasks `json:"tasks,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // Add To Inventory - InstanceType string `json:"instanceType,omitempty"` // Instance Type - EndTime *float64 `json:"endTime,omitempty"` // End Time - ExecTime *float64 `json:"execTime,omitempty"` // Exec Time - StartTime *float64 `json:"startTime,omitempty"` // Start Time - UseState string `json:"useState,omitempty"` // Use State - ConfigID string `json:"configId,omitempty"` // Config Id - Name string `json:"name,omitempty"` // Name - Version *float64 `json:"version,omitempty"` // Version - TenantID string `json:"tenantId,omitempty"` // Tenant Id -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2SystemResetWorkflowTasks struct { - State string `json:"state,omitempty"` // State - Type string `json:"type,omitempty"` // Type - CurrWorkItemIDx *float64 `json:"currWorkItemIdx,omitempty"` // Curr Work Item Idx - TaskSeqNo *float64 `json:"taskSeqNo,omitempty"` // Task Seq No - EndTime *float64 `json:"endTime,omitempty"` // End Time - StartTime *float64 `json:"startTime,omitempty"` // Start Time - WorkItemList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2SystemResetWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // - TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken - Name string `json:"name,omitempty"` // Name +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDeviceInfoTags interface{} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemResetWorkflow struct { + TypeID string `json:"_id,omitempty"` // Id + State string `json:"state,omitempty"` // State + Type string `json:"type,omitempty"` // Type + Description string `json:"description,omitempty"` // Description + LastupdateOn *float64 `json:"lastupdateOn,omitempty"` // Lastupdate On + ImageID string `json:"imageId,omitempty"` // Image Id + CurrTaskIDx *float64 `json:"currTaskIdx,omitempty"` // Curr Task Idx + AddedOn *float64 `json:"addedOn,omitempty"` // Added On + Tasks *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemResetWorkflowTasks `json:"tasks,omitempty"` // + AddToInventory *bool `json:"addToInventory,omitempty"` // Add To Inventory + InstanceType string `json:"instanceType,omitempty"` // Instance Type + EndTime *float64 `json:"endTime,omitempty"` // End Time + ExecTime *float64 `json:"execTime,omitempty"` // Exec Time + StartTime *float64 `json:"startTime,omitempty"` // Start Time + UseState string `json:"useState,omitempty"` // Use State + ConfigID string `json:"configId,omitempty"` // Config Id + Name string `json:"name,omitempty"` // Name + Version *float64 `json:"version,omitempty"` // Version + TenantID string `json:"tenantId,omitempty"` // Tenant Id +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemResetWorkflowTasks struct { + State string `json:"state,omitempty"` // State + Type string `json:"type,omitempty"` // Type + CurrWorkItemIDx *float64 `json:"currWorkItemIdx,omitempty"` // Curr Work Item Idx + TaskSeqNo *float64 `json:"taskSeqNo,omitempty"` // Task Seq No + EndTime *float64 `json:"endTime,omitempty"` // End Time + StartTime *float64 `json:"startTime,omitempty"` // Start Time + WorkItemList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemResetWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // + TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken + Name string `json:"name,omitempty"` // Name } -type ResponseItemDeviceOnboardingPnpGetDeviceList2SystemResetWorkflowTasksWorkItemList struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemResetWorkflowTasksWorkItemList struct { State string `json:"state,omitempty"` // State Command string `json:"command,omitempty"` // Command OutputStr string `json:"outputStr,omitempty"` // Output Str @@ -602,39 +605,39 @@ type ResponseItemDeviceOnboardingPnpGetDeviceList2SystemResetWorkflowTasksWorkIt StartTime *float64 `json:"startTime,omitempty"` // Start Time TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken } -type ResponseItemDeviceOnboardingPnpGetDeviceList2SystemWorkflow struct { - TypeID string `json:"_id,omitempty"` // Id - State string `json:"state,omitempty"` // State - Type string `json:"type,omitempty"` // Type - Description string `json:"description,omitempty"` // Description - LastupdateOn *float64 `json:"lastupdateOn,omitempty"` // Lastupdate On - ImageID string `json:"imageId,omitempty"` // Image Id - CurrTaskIDx *float64 `json:"currTaskIdx,omitempty"` // Curr Task Idx - AddedOn *float64 `json:"addedOn,omitempty"` // Added On - Tasks *[]ResponseItemDeviceOnboardingPnpGetDeviceList2SystemWorkflowTasks `json:"tasks,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // Add To Inventory - InstanceType string `json:"instanceType,omitempty"` // Instance Type - EndTime *float64 `json:"endTime,omitempty"` // End Time - ExecTime *float64 `json:"execTime,omitempty"` // Exec Time - StartTime *float64 `json:"startTime,omitempty"` // Start Time - UseState string `json:"useState,omitempty"` // Use State - ConfigID string `json:"configId,omitempty"` // Config Id - Name string `json:"name,omitempty"` // Name - Version *float64 `json:"version,omitempty"` // Version - TenantID string `json:"tenantId,omitempty"` // Tenant Id -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2SystemWorkflowTasks struct { - State string `json:"state,omitempty"` // State - Type string `json:"type,omitempty"` // Type - CurrWorkItemIDx *float64 `json:"currWorkItemIdx,omitempty"` // Curr Work Item Idx - TaskSeqNo *float64 `json:"taskSeqNo,omitempty"` // Task Seq No - EndTime *float64 `json:"endTime,omitempty"` // End Time - StartTime *float64 `json:"startTime,omitempty"` // Start Time - WorkItemList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2SystemWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // - TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken - Name string `json:"name,omitempty"` // Name -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2SystemWorkflowTasksWorkItemList struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemWorkflow struct { + TypeID string `json:"_id,omitempty"` // Id + State string `json:"state,omitempty"` // State + Type string `json:"type,omitempty"` // Type + Description string `json:"description,omitempty"` // Description + LastupdateOn *float64 `json:"lastupdateOn,omitempty"` // Lastupdate On + ImageID string `json:"imageId,omitempty"` // Image Id + CurrTaskIDx *float64 `json:"currTaskIdx,omitempty"` // Curr Task Idx + AddedOn *float64 `json:"addedOn,omitempty"` // Added On + Tasks *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemWorkflowTasks `json:"tasks,omitempty"` // + AddToInventory *bool `json:"addToInventory,omitempty"` // Add To Inventory + InstanceType string `json:"instanceType,omitempty"` // Instance Type + EndTime *float64 `json:"endTime,omitempty"` // End Time + ExecTime *float64 `json:"execTime,omitempty"` // Exec Time + StartTime *float64 `json:"startTime,omitempty"` // Start Time + UseState string `json:"useState,omitempty"` // Use State + ConfigID string `json:"configId,omitempty"` // Config Id + Name string `json:"name,omitempty"` // Name + Version *float64 `json:"version,omitempty"` // Version + TenantID string `json:"tenantId,omitempty"` // Tenant Id +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemWorkflowTasks struct { + State string `json:"state,omitempty"` // State + Type string `json:"type,omitempty"` // Type + CurrWorkItemIDx *float64 `json:"currWorkItemIdx,omitempty"` // Curr Work Item Idx + TaskSeqNo *float64 `json:"taskSeqNo,omitempty"` // Task Seq No + EndTime *float64 `json:"endTime,omitempty"` // End Time + StartTime *float64 `json:"startTime,omitempty"` // Start Time + WorkItemList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // + TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken + Name string `json:"name,omitempty"` // Name +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementSystemWorkflowTasksWorkItemList struct { State string `json:"state,omitempty"` // State Command string `json:"command,omitempty"` // Command OutputStr string `json:"outputStr,omitempty"` // Output Str @@ -642,39 +645,39 @@ type ResponseItemDeviceOnboardingPnpGetDeviceList2SystemWorkflowTasksWorkItemLis StartTime *float64 `json:"startTime,omitempty"` // Start Time TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken } -type ResponseItemDeviceOnboardingPnpGetDeviceList2Workflow struct { - TypeID string `json:"_id,omitempty"` // Id - State string `json:"state,omitempty"` // State - Type string `json:"type,omitempty"` // Type - Description string `json:"description,omitempty"` // Description - LastupdateOn *float64 `json:"lastupdateOn,omitempty"` // Lastupdate On - ImageID string `json:"imageId,omitempty"` // Image Id - CurrTaskIDx *float64 `json:"currTaskIdx,omitempty"` // Curr Task Idx - AddedOn *float64 `json:"addedOn,omitempty"` // Added On - Tasks *[]ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowTasks `json:"tasks,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // Add To Inventory - InstanceType string `json:"instanceType,omitempty"` // Instance Type - EndTime *float64 `json:"endTime,omitempty"` // End Time - ExecTime *float64 `json:"execTime,omitempty"` // Exec Time - StartTime *float64 `json:"startTime,omitempty"` // Start Time - UseState string `json:"useState,omitempty"` // Use State - ConfigID string `json:"configId,omitempty"` // Config Id - Name string `json:"name,omitempty"` // Name - Version *float64 `json:"version,omitempty"` // Version - TenantID string `json:"tenantId,omitempty"` // Tenant Id -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowTasks struct { - State string `json:"state,omitempty"` // State - Type string `json:"type,omitempty"` // Type - CurrWorkItemIDx *float64 `json:"currWorkItemIdx,omitempty"` // Curr Work Item Idx - TaskSeqNo *float64 `json:"taskSeqNo,omitempty"` // Task Seq No - EndTime *float64 `json:"endTime,omitempty"` // End Time - StartTime *float64 `json:"startTime,omitempty"` // Start Time - WorkItemList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowTasksWorkItemList `json:"workItemList,omitempty"` // - TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken - Name string `json:"name,omitempty"` // Name -} -type ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowTasksWorkItemList struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflow struct { + TypeID string `json:"_id,omitempty"` // Id + State string `json:"state,omitempty"` // State + Type string `json:"type,omitempty"` // Type + Description string `json:"description,omitempty"` // Description + LastupdateOn *float64 `json:"lastupdateOn,omitempty"` // Lastupdate On + ImageID string `json:"imageId,omitempty"` // Image Id + CurrTaskIDx *float64 `json:"currTaskIdx,omitempty"` // Curr Task Idx + AddedOn *float64 `json:"addedOn,omitempty"` // Added On + Tasks *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowTasks `json:"tasks,omitempty"` // + AddToInventory *bool `json:"addToInventory,omitempty"` // Add To Inventory + InstanceType string `json:"instanceType,omitempty"` // Instance Type + EndTime *float64 `json:"endTime,omitempty"` // End Time + ExecTime *float64 `json:"execTime,omitempty"` // Exec Time + StartTime *float64 `json:"startTime,omitempty"` // Start Time + UseState string `json:"useState,omitempty"` // Use State + ConfigID string `json:"configId,omitempty"` // Config Id + Name string `json:"name,omitempty"` // Name + Version *float64 `json:"version,omitempty"` // Version + TenantID string `json:"tenantId,omitempty"` // Tenant Id +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowTasks struct { + State string `json:"state,omitempty"` // State + Type string `json:"type,omitempty"` // Type + CurrWorkItemIDx *float64 `json:"currWorkItemIdx,omitempty"` // Curr Work Item Idx + TaskSeqNo *float64 `json:"taskSeqNo,omitempty"` // Task Seq No + EndTime *float64 `json:"endTime,omitempty"` // End Time + StartTime *float64 `json:"startTime,omitempty"` // Start Time + WorkItemList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // + TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken + Name string `json:"name,omitempty"` // Name +} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowTasksWorkItemList struct { State string `json:"state,omitempty"` // State Command string `json:"command,omitempty"` // Command OutputStr string `json:"outputStr,omitempty"` // Output Str @@ -682,20 +685,20 @@ type ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowTasksWorkItemList stru StartTime *float64 `json:"startTime,omitempty"` // Start Time TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken } -type ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryList struct { - Details string `json:"details,omitempty"` // Details - HistoryTaskInfo *ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryListHistoryTaskInfo `json:"historyTaskInfo,omitempty"` // - ErrorFlag *bool `json:"errorFlag,omitempty"` // Error Flag - Timestamp *float64 `json:"timestamp,omitempty"` // Timestamp +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementRunSummaryList struct { + Details string `json:"details,omitempty"` // Details + HistoryTaskInfo *ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementRunSummaryListHistoryTaskInfo `json:"historyTaskInfo,omitempty"` // + ErrorFlag *bool `json:"errorFlag,omitempty"` // Error Flag + Timestamp *float64 `json:"timestamp,omitempty"` // Timestamp } -type ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryListHistoryTaskInfo struct { - Type string `json:"type,omitempty"` // Type - WorkItemList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryListHistoryTaskInfoWorkItemList `json:"workItemList,omitempty"` // - TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken - AddnDetails *[]ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryListHistoryTaskInfoAddnDetails `json:"addnDetails,omitempty"` // - Name string `json:"name,omitempty"` // Name +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementRunSummaryListHistoryTaskInfo struct { + Type string `json:"type,omitempty"` // Type + WorkItemList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementRunSummaryListHistoryTaskInfoWorkItemList `json:"workItemList,omitempty"` // + TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken + AddnDetails *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementRunSummaryListHistoryTaskInfoAddnDetails `json:"addnDetails,omitempty"` // + Name string `json:"name,omitempty"` // Name } -type ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryListHistoryTaskInfoWorkItemList struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementRunSummaryListHistoryTaskInfoWorkItemList struct { State string `json:"state,omitempty"` // State Command string `json:"command,omitempty"` // Command OutputStr string `json:"outputStr,omitempty"` // Output Str @@ -703,35 +706,35 @@ type ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryListHistoryTaskInfoW StartTime *float64 `json:"startTime,omitempty"` // Start Time TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken } -type ResponseItemDeviceOnboardingPnpGetDeviceList2RunSummaryListHistoryTaskInfoAddnDetails struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementRunSummaryListHistoryTaskInfoAddnDetails struct { Key string `json:"key,omitempty"` // Key Value string `json:"value,omitempty"` // Value } -type ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowParameters struct { - TopOfStackSerialNumber string `json:"topOfStackSerialNumber,omitempty"` // Top Of Stack Serial Number - LicenseLevel string `json:"licenseLevel,omitempty"` // License Level - LicenseType string `json:"licenseType,omitempty"` // License Type - ConfigList *[]ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowParametersConfigList `json:"configList,omitempty"` // +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowParameters struct { + TopOfStackSerialNumber string `json:"topOfStackSerialNumber,omitempty"` // Top Of Stack Serial Number + LicenseLevel string `json:"licenseLevel,omitempty"` // License Level + LicenseType string `json:"licenseType,omitempty"` // License Type + ConfigList *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowParametersConfigList `json:"configList,omitempty"` // } -type ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowParametersConfigList struct { - ConfigParameters *[]ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowParametersConfigListConfigParameters `json:"configParameters,omitempty"` // - ConfigID string `json:"configId,omitempty"` // Config Id +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowParametersConfigList struct { + ConfigParameters *[]ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowParametersConfigListConfigParameters `json:"configParameters,omitempty"` // + ConfigID string `json:"configId,omitempty"` // Config Id } -type ResponseItemDeviceOnboardingPnpGetDeviceList2WorkflowParametersConfigListConfigParameters struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementWorkflowParametersConfigListConfigParameters struct { Key string `json:"key,omitempty"` // Key Value string `json:"value,omitempty"` // Value } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DayZeroConfig struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDayZeroConfig struct { Config string `json:"config,omitempty"` // Config } -type ResponseItemDeviceOnboardingPnpGetDeviceList2DayZeroConfigPreview interface{} +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementDayZeroConfigPreview interface{} type ResponseDeviceOnboardingPnpClaimDevice struct { JSONArrayResponse *[]ResponseDeviceOnboardingPnpClaimDeviceJSONArrayResponse `json:"jsonArrayResponse,omitempty"` // Json Array Response JSONResponse *ResponseDeviceOnboardingPnpClaimDeviceJSONResponse `json:"jsonResponse,omitempty"` // Json Response Message string `json:"message,omitempty"` // Message StatusCode *float64 `json:"statusCode,omitempty"` // Status Code } -type ResponseItemDeviceOnboardingPnpGetDeviceList2Progress struct { +type ResponseItemDeviceOnboardingPnpGetDeviceListSiteManagementProgress struct { Message string `json:"message,omitempty"` InProgress bool `json:"inProgress,omitempty"` ProgressPercent int `json:"progressPercent,omitempty"` @@ -775,7 +778,6 @@ type ResponseDeviceOnboardingPnpImportDevicesInBulk struct { FailureList *[]ResponseDeviceOnboardingPnpImportDevicesInBulkFailureList `json:"failureList,omitempty"` // } type ResponseDeviceOnboardingPnpImportDevicesInBulkSuccessList struct { - TypeID string `json:"_id,omitempty"` // _Id ID string `json:"id,omitempty"` // Id DeviceInfo *ResponseDeviceOnboardingPnpImportDevicesInBulkSuccessListDeviceInfo `json:"deviceInfo,omitempty"` // SystemResetWorkflow *ResponseDeviceOnboardingPnpImportDevicesInBulkSuccessListSystemResetWorkflow `json:"systemResetWorkflow,omitempty"` // @@ -1210,7 +1212,7 @@ type ResponseDeviceOnboardingPnpSyncVirtualAccountDevicesSyncResultSyncList stru DeviceSnList []string `json:"deviceSnList,omitempty"` // Device Sn List } type ResponseDeviceOnboardingPnpUpdateDevice struct { - TypeID string `json:"_id,omitempty"` // Id + ID string `json:"id,omitempty"` // Id DeviceInfo *ResponseDeviceOnboardingPnpUpdateDeviceDeviceInfo `json:"deviceInfo,omitempty"` // SystemResetWorkflow *ResponseDeviceOnboardingPnpUpdateDeviceSystemResetWorkflow `json:"systemResetWorkflow,omitempty"` // SystemWorkflow *ResponseDeviceOnboardingPnpUpdateDeviceSystemWorkflow `json:"systemWorkflow,omitempty"` // @@ -1536,7 +1538,7 @@ type ResponseDeviceOnboardingPnpUpdateDeviceDayZeroConfig struct { } type ResponseDeviceOnboardingPnpUpdateDeviceDayZeroConfigPreview interface{} type ResponseDeviceOnboardingPnpDeleteDeviceByIDFromPnp struct { - TypeID string `json:"_id,omitempty"` // Id + ID string `json:"id,omitempty"` // Id DeviceInfo *ResponseDeviceOnboardingPnpDeleteDeviceByIDFromPnpDeviceInfo `json:"deviceInfo,omitempty"` // SystemResetWorkflow *ResponseDeviceOnboardingPnpDeleteDeviceByIDFromPnpSystemResetWorkflow `json:"systemResetWorkflow,omitempty"` // SystemWorkflow *ResponseDeviceOnboardingPnpDeleteDeviceByIDFromPnpSystemWorkflow `json:"systemWorkflow,omitempty"` // @@ -1873,7 +1875,6 @@ type ResponseDeviceOnboardingPnpGetDeviceByID struct { DayZeroConfigPreview *ResponseDeviceOnboardingPnpGetDeviceByIDDayZeroConfigPreview `json:"dayZeroConfigPreview,omitempty"` // Day Zero Config Preview Version *float64 `json:"version,omitempty"` // Version TenantID string `json:"tenantId,omitempty"` // Tenant Id - Progress *ResponseDeviceOnboardingPnpGetDeviceByIDProgress `json:"progress,omitempty"` // Progress } type ResponseDeviceOnboardingPnpGetDeviceByIDDeviceInfo struct { Source string `json:"source,omitempty"` // Source @@ -1928,13 +1929,6 @@ type ResponseDeviceOnboardingPnpGetDeviceByIDDeviceInfo struct { SiteName string `json:"siteName,omitempty"` // Site Name Name string `json:"name,omitempty"` // Name } - -type ResponseDeviceOnboardingPnpGetDeviceByIDProgress struct { - Message string `json:"message,omitempty"` - InProgress bool `json:"inProgress,omitempty"` - ProgressPercent int `json:"progressPercent,omitempty"` -} - type ResponseDeviceOnboardingPnpGetDeviceByIDDeviceInfoLocation struct { SiteID string `json:"siteId,omitempty"` // Site Id Address string `json:"address,omitempty"` // Address @@ -2203,7 +2197,6 @@ type ResponseDeviceOnboardingPnpUpdatePnpGlobalSettings struct { DefaultProfile *ResponseDeviceOnboardingPnpUpdatePnpGlobalSettingsDefaultProfile `json:"defaultProfile,omitempty"` // AcceptEula *bool `json:"acceptEula,omitempty"` // Accept Eula ID string `json:"id,omitempty"` // Id - TypeID string `json:"_id,omitempty"` // Id Version *float64 `json:"version,omitempty"` // Version } type ResponseDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingList struct { @@ -2263,7 +2256,6 @@ type ResponseDeviceOnboardingPnpGetPnpGlobalSettings struct { DefaultProfile *ResponseDeviceOnboardingPnpGetPnpGlobalSettingsDefaultProfile `json:"defaultProfile,omitempty"` // AcceptEula *bool `json:"acceptEula,omitempty"` // Accept Eula ID string `json:"id,omitempty"` // Id - TypeID string `json:"_id,omitempty"` // Id Version *float64 `json:"version,omitempty"` // Version } type ResponseDeviceOnboardingPnpGetPnpGlobalSettingsSavaMappingList struct { @@ -2318,19 +2310,16 @@ type ResponseDeviceOnboardingPnpGetPnpGlobalSettingsDefaultProfile struct { type ResponseDeviceOnboardingPnpGetSmartAccountList []string // Array of ResponseDeviceOnboardingPnpGetSmartAccountList type ResponseDeviceOnboardingPnpGetVirtualAccountList []string // Array of ResponseDeviceOnboardingPnpGetVirtualAccountList type ResponseDeviceOnboardingPnpAddVirtualAccount struct { - VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id - AutoSyncPeriod *float64 `json:"autoSyncPeriod,omitempty"` // Auto Sync Period - SyncResultStr string `json:"syncResultStr,omitempty"` // Sync Result Str - Profile *ResponseDeviceOnboardingPnpAddVirtualAccountProfile `json:"profile,omitempty"` // - CcoUser string `json:"ccoUser,omitempty"` // Cco User - SyncResult *ResponseDeviceOnboardingPnpAddVirtualAccountSyncResult `json:"syncResult,omitempty"` // - Token string `json:"token,omitempty"` // Token - SyncStartTime *float64 `json:"syncStartTime,omitempty"` // Sync Start Time - LastSync *float64 `json:"lastSync,omitempty"` // Last Sync - TenantID string `json:"tenantId,omitempty"` // Tenant Id - SmartAccountID string `json:"smartAccountId,omitempty"` // Smart Account Id - Expiry *float64 `json:"expiry,omitempty"` // Expiry - SyncStatus string `json:"syncStatus,omitempty"` // Sync Status + VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id + AutoSyncPeriod *float64 `json:"autoSyncPeriod,omitempty"` // Auto Sync Period + Profile *ResponseDeviceOnboardingPnpAddVirtualAccountProfile `json:"profile,omitempty"` // + CcoUser string `json:"ccoUser,omitempty"` // Cco User + SyncStartTime *float64 `json:"syncStartTime,omitempty"` // Sync Start Time + LastSync *float64 `json:"lastSync,omitempty"` // Last Sync + TenantID string `json:"tenantId,omitempty"` // Tenant Id + SmartAccountID string `json:"smartAccountId,omitempty"` // Smart Account Id + Expiry *float64 `json:"expiry,omitempty"` // Expiry + SyncStatus string `json:"syncStatus,omitempty"` // Sync Status } type ResponseDeviceOnboardingPnpAddVirtualAccountProfile struct { Proxy *bool `json:"proxy,omitempty"` // Proxy @@ -2342,14 +2331,6 @@ type ResponseDeviceOnboardingPnpAddVirtualAccountProfile struct { Cert string `json:"cert,omitempty"` // Cert AddressFqdn string `json:"addressFqdn,omitempty"` // Address Fqdn } -type ResponseDeviceOnboardingPnpAddVirtualAccountSyncResult struct { - SyncList *[]ResponseDeviceOnboardingPnpAddVirtualAccountSyncResultSyncList `json:"syncList,omitempty"` // - SyncMsg string `json:"syncMsg,omitempty"` // Sync Msg -} -type ResponseDeviceOnboardingPnpAddVirtualAccountSyncResultSyncList struct { - SyncType string `json:"syncType,omitempty"` // Sync Type - DeviceSnList []string `json:"deviceSnList,omitempty"` // Device Sn List -} type ResponseDeviceOnboardingPnpUpdatePnpServerProfile struct { VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id AutoSyncPeriod *float64 `json:"autoSyncPeriod,omitempty"` // Auto Sync Period @@ -2384,37 +2365,27 @@ type ResponseDeviceOnboardingPnpUpdatePnpServerProfileSyncResultSyncList struct DeviceSnList []string `json:"deviceSnList,omitempty"` // Device Sn List } type ResponseDeviceOnboardingPnpDeregisterVirtualAccount struct { - VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id - AutoSyncPeriod *float64 `json:"autoSyncPeriod,omitempty"` // Auto Sync Period - SyncResultStr string `json:"syncResultStr,omitempty"` // Sync Result Str - Profile *ResponseDeviceOnboardingPnpDeregisterVirtualAccountProfile `json:"profile,omitempty"` // - CcoUser string `json:"ccoUser,omitempty"` // Cco User - SyncResult *ResponseDeviceOnboardingPnpDeregisterVirtualAccountSyncResult `json:"syncResult,omitempty"` // - Token string `json:"token,omitempty"` // Token - SyncStartTime *float64 `json:"syncStartTime,omitempty"` // Sync Start Time - LastSync *float64 `json:"lastSync,omitempty"` // Last Sync - TenantID string `json:"tenantId,omitempty"` // Tenant Id - SmartAccountID string `json:"smartAccountId,omitempty"` // Smart Account Id - Expiry *float64 `json:"expiry,omitempty"` // Expiry - SyncStatus string `json:"syncStatus,omitempty"` // Sync Status + SmartAccountID string `json:"smartAccountId,omitempty"` // Smart Account Id + VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id + LastSync *float64 `json:"lastSync,omitempty"` // Last Sync + CcoUser string `json:"ccoUser,omitempty"` // Cco User + Expiry *float64 `json:"expiry,omitempty"` // Expiry + AutoSyncPeriod *int `json:"autoSyncPeriod,omitempty"` // Auto Sync Period + Profile *ResponseDeviceOnboardingPnpDeregisterVirtualAccountProfile `json:"profile,omitempty"` // + SyncStatus string `json:"syncStatus,omitempty"` // Sync Status + SyncStartTime *float64 `json:"syncStartTime,omitempty"` // Sync Start Time + TenantID string `json:"tenantId,omitempty"` // Tenant Id } type ResponseDeviceOnboardingPnpDeregisterVirtualAccountProfile struct { - Proxy *bool `json:"proxy,omitempty"` // Proxy - MakeDefault *bool `json:"makeDefault,omitempty"` // Make Default - Port *float64 `json:"port,omitempty"` // Port - ProfileID string `json:"profileId,omitempty"` // Profile Id - Name string `json:"name,omitempty"` // Name - AddressIPV4 string `json:"addressIpV4,omitempty"` // Address Ip V4 - Cert string `json:"cert,omitempty"` // Cert - AddressFqdn string `json:"addressFqdn,omitempty"` // Address Fqdn -} -type ResponseDeviceOnboardingPnpDeregisterVirtualAccountSyncResult struct { - SyncList *[]ResponseDeviceOnboardingPnpDeregisterVirtualAccountSyncResultSyncList `json:"syncList,omitempty"` // - SyncMsg string `json:"syncMsg,omitempty"` // Sync Msg -} -type ResponseDeviceOnboardingPnpDeregisterVirtualAccountSyncResultSyncList struct { - SyncType string `json:"syncType,omitempty"` // Sync Type - DeviceSnList []string `json:"deviceSnList,omitempty"` // Device Sn List + Name string `json:"name,omitempty"` // Name + ProfileID string `json:"profileId,omitempty"` // Profile Id + MakeDefault *bool `json:"makeDefault,omitempty"` // Make Default + AddressIPV4 string `json:"addressIpV4,omitempty"` // Address Ip V4 + AddressIPV6 string `json:"addressIpV6,omitempty"` // Address Ip V6 + AddressFqdn string `json:"addressFqdn,omitempty"` // Address Fqdn + Port *int `json:"port,omitempty"` // Port + Cert string `json:"cert,omitempty"` // Cert + Proxy *bool `json:"proxy,omitempty"` // Proxy } type ResponseDeviceOnboardingPnpGetWorkflows []ResponseItemDeviceOnboardingPnpGetWorkflows // Array of ResponseDeviceOnboardingPnpGetWorkflows type ResponseItemDeviceOnboardingPnpGetWorkflows struct { @@ -2438,6 +2409,7 @@ type ResponseItemDeviceOnboardingPnpGetWorkflows struct { Version *float64 `json:"version,omitempty"` // Version TenantID string `json:"tenantId,omitempty"` // Tenant Id } + type ResponseItemDeviceOnboardingPnpGetWorkflowsTasks struct { State string `json:"state,omitempty"` // State Type string `json:"type,omitempty"` // Type @@ -2620,332 +2592,61 @@ type ResponseDeviceOnboardingPnpUpdateWorkflowTasksWorkItemList struct { StartTime *float64 `json:"startTime,omitempty"` // Start Time TimeTaken *float64 `json:"timeTaken,omitempty"` // Time Taken } +type RequestDeviceOnboardingPnpAuthorizeDevice struct { + DeviceIDList []string `json:"deviceIdList,omitempty"` // Device Id List +} type RequestDeviceOnboardingPnpAddDevice struct { - TypeID string `json:"_id,omitempty"` // - DeviceInfo *RequestDeviceOnboardingPnpAddDeviceDeviceInfo `json:"deviceInfo,omitempty"` // - RunSummaryList *[]RequestDeviceOnboardingPnpAddDeviceRunSummaryList `json:"runSummaryList,omitempty"` // - SystemResetWorkflow *RequestDeviceOnboardingPnpAddDeviceSystemResetWorkflow `json:"systemResetWorkflow,omitempty"` // - SystemWorkflow *RequestDeviceOnboardingPnpAddDeviceSystemWorkflow `json:"systemWorkflow,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Version *int `json:"version,omitempty"` // - Workflow *RequestDeviceOnboardingPnpAddDeviceWorkflow `json:"workflow,omitempty"` // - WorkflowParameters *RequestDeviceOnboardingPnpAddDeviceWorkflowParameters `json:"workflowParameters,omitempty"` // + DeviceInfo *RequestDeviceOnboardingPnpAddDeviceDeviceInfo `json:"deviceInfo,omitempty"` // } type RequestDeviceOnboardingPnpAddDeviceDeviceInfo struct { - AAACredentials *RequestDeviceOnboardingPnpAddDeviceDeviceInfoAAACredentials `json:"aaaCredentials,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - AddnMacAddrs []string `json:"addnMacAddrs,omitempty"` // - AgentType string `json:"agentType,omitempty"` // - AuthStatus string `json:"authStatus,omitempty"` // - AuthenticatedSudiSerialNo string `json:"authenticatedSudiSerialNo,omitempty"` // - CapabilitiesSupported []string `json:"capabilitiesSupported,omitempty"` // - CmState string `json:"cmState,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceSudiSerialNos []string `json:"deviceSudiSerialNos,omitempty"` // - DeviceType string `json:"deviceType,omitempty"` // - FeaturesSupported []string `json:"featuresSupported,omitempty"` // - FileSystemList *[]RequestDeviceOnboardingPnpAddDeviceDeviceInfoFileSystemList `json:"fileSystemList,omitempty"` // - FirstContact *int `json:"firstContact,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - HTTPHeaders *[]RequestDeviceOnboardingPnpAddDeviceDeviceInfoHTTPHeaders `json:"httpHeaders,omitempty"` // - ImageFile string `json:"imageFile,omitempty"` // - ImageVersion string `json:"imageVersion,omitempty"` // - IPInterfaces *[]RequestDeviceOnboardingPnpAddDeviceDeviceInfoIPInterfaces `json:"ipInterfaces,omitempty"` // - LastContact *int `json:"lastContact,omitempty"` // - LastSyncTime *int `json:"lastSyncTime,omitempty"` // - LastUpdateOn *int `json:"lastUpdateOn,omitempty"` // - Location *RequestDeviceOnboardingPnpAddDeviceDeviceInfoLocation `json:"location,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Mode string `json:"mode,omitempty"` // - Name string `json:"name,omitempty"` // - NeighborLinks *[]RequestDeviceOnboardingPnpAddDeviceDeviceInfoNeighborLinks `json:"neighborLinks,omitempty"` // - OnbState string `json:"onbState,omitempty"` // - Pid string `json:"pid,omitempty"` // - PnpProfileList *[]RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileList `json:"pnpProfileList,omitempty"` // - PopulateInventory *bool `json:"populateInventory,omitempty"` // - PreWorkflowCliOuputs *[]RequestDeviceOnboardingPnpAddDeviceDeviceInfoPreWorkflowCliOuputs `json:"preWorkflowCliOuputs,omitempty"` // - ProjectID string `json:"projectId,omitempty"` // - ProjectName string `json:"projectName,omitempty"` // - ReloadRequested *bool `json:"reloadRequested,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SmartAccountID string `json:"smartAccountId,omitempty"` // - Source string `json:"source,omitempty"` // - Stack *bool `json:"stack,omitempty"` // - StackInfo *RequestDeviceOnboardingPnpAddDeviceDeviceInfoStackInfo `json:"stackInfo,omitempty"` // - State string `json:"state,omitempty"` // - SudiRequired *bool `json:"sudiRequired,omitempty"` // - Tags *RequestDeviceOnboardingPnpAddDeviceDeviceInfoTags `json:"tags,omitempty"` // - UserSudiSerialNos []string `json:"userSudiSerialNos,omitempty"` // - VirtualAccountID string `json:"virtualAccountId,omitempty"` // - WorkflowID string `json:"workflowId,omitempty"` // - WorkflowName string `json:"workflowName,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoAAACredentials struct { - Password string `json:"password,omitempty"` // - Username string `json:"username,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoFileSystemList struct { - Freespace *int `json:"freespace,omitempty"` // - Name string `json:"name,omitempty"` // - Readable *bool `json:"readable,omitempty"` // - Size *int `json:"size,omitempty"` // - Type string `json:"type,omitempty"` // - Writeable *bool `json:"writeable,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoHTTPHeaders struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoIPInterfaces struct { - IPv4Address *RequestDeviceOnboardingPnpAddDeviceDeviceInfoIPInterfacesIPv4Address `json:"ipv4Address,omitempty"` // - IPv6AddressList *[]RequestDeviceOnboardingPnpAddDeviceDeviceInfoIPInterfacesIPv6AddressList `json:"ipv6AddressList,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Name string `json:"name,omitempty"` // - Status string `json:"status,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoIPInterfacesIPv4Address interface{} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoIPInterfacesIPv6AddressList interface{} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoLocation struct { - Address string `json:"address,omitempty"` // - Altitude string `json:"altitude,omitempty"` // - Latitude string `json:"latitude,omitempty"` // - Longitude string `json:"longitude,omitempty"` // - SiteID string `json:"siteId,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoNeighborLinks struct { - LocalInterfaceName string `json:"localInterfaceName,omitempty"` // - LocalMacAddress string `json:"localMacAddress,omitempty"` // - LocalShortInterfaceName string `json:"localShortInterfaceName,omitempty"` // - RemoteDeviceName string `json:"remoteDeviceName,omitempty"` // - RemoteInterfaceName string `json:"remoteInterfaceName,omitempty"` // - RemoteMacAddress string `json:"remoteMacAddress,omitempty"` // - RemotePlatform string `json:"remotePlatform,omitempty"` // - RemoteShortInterfaceName string `json:"remoteShortInterfaceName,omitempty"` // - RemoteVersion string `json:"remoteVersion,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileList struct { - CreatedBy string `json:"createdBy,omitempty"` // - DiscoveryCreated *bool `json:"discoveryCreated,omitempty"` // - PrimaryEndpoint *RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListPrimaryEndpoint `json:"primaryEndpoint,omitempty"` // - ProfileName string `json:"profileName,omitempty"` // - SecondaryEndpoint *RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListSecondaryEndpoint `json:"secondaryEndpoint,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListPrimaryEndpoint struct { - Certificate string `json:"certificate,omitempty"` // - Fqdn string `json:"fqdn,omitempty"` // - IPv4Address *RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListPrimaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // - IPv6Address *RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListPrimaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // - Port *int `json:"port,omitempty"` // - Protocol string `json:"protocol,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListPrimaryEndpointIPv4Address interface{} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListPrimaryEndpointIPv6Address interface{} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListSecondaryEndpoint struct { - Certificate string `json:"certificate,omitempty"` // - Fqdn string `json:"fqdn,omitempty"` // - IPv4Address *RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListSecondaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // - IPv6Address *RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListSecondaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // - Port *int `json:"port,omitempty"` // - Protocol string `json:"protocol,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListSecondaryEndpointIPv4Address interface{} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoPnpProfileListSecondaryEndpointIPv6Address interface{} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoPreWorkflowCliOuputs struct { - Cli string `json:"cli,omitempty"` // - CliOutput string `json:"cliOutput,omitempty"` // + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + Stack *bool `json:"stack,omitempty"` // Stack + Description string `json:"description,omitempty"` // Description + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Pid string `json:"pid,omitempty"` // Pid + SiteID string `json:"siteId,omitempty"` // Site Id + SudiRequired *bool `json:"sudiRequired,omitempty"` // Is Sudi Required + DeviceSudiSerialNos []string `json:"deviceSudiSerialNos,omitempty"` // Device Sudi Serial Nos + UserMicNumbers []string `json:"userMicNumbers,omitempty"` // User Mic Numbers + UserSudiSerialNos []string `json:"userSudiSerialNos,omitempty"` // List of Secure Unique Device Identifier (SUDI) serial numbers to perform SUDI authorization, Required if sudiRequired is true. + WorkflowID string `json:"workflowId,omitempty"` // Workflow Id + WorkflowName string `json:"workflowName,omitempty"` // Workflow Name + Hostname string `json:"hostname,omitempty"` // Hostname + StackInfo *RequestDeviceOnboardingPnpAddDeviceDeviceInfoStackInfo `json:"stackInfo,omitempty"` // } type RequestDeviceOnboardingPnpAddDeviceDeviceInfoStackInfo struct { - IsFullRing *bool `json:"isFullRing,omitempty"` // + SupportsStackWorkflows *bool `json:"supportsStackWorkflows,omitempty"` // Supports Stack Workflows + IsFullRing *bool `json:"isFullRing,omitempty"` // Is Full Ring StackMemberList *[]RequestDeviceOnboardingPnpAddDeviceDeviceInfoStackInfoStackMemberList `json:"stackMemberList,omitempty"` // - StackRingProtocol string `json:"stackRingProtocol,omitempty"` // - SupportsStackWorkflows *bool `json:"supportsStackWorkflows,omitempty"` // - TotalMemberCount *int `json:"totalMemberCount,omitempty"` // - ValidLicenseLevels []string `json:"validLicenseLevels,omitempty"` // + StackRingProtocol string `json:"stackRingProtocol,omitempty"` // Stack Ring Protocol + ValidLicenseLevels []string `json:"validLicenseLevels,omitempty"` // Valid License Levels + TotalMemberCount *float64 `json:"totalMemberCount,omitempty"` // Total Member Count } type RequestDeviceOnboardingPnpAddDeviceDeviceInfoStackInfoStackMemberList struct { - HardwareVersion string `json:"hardwareVersion,omitempty"` // - LicenseLevel string `json:"licenseLevel,omitempty"` // - LicenseType string `json:"licenseType,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Pid string `json:"pid,omitempty"` // - Priority *int `json:"priority,omitempty"` // - Role string `json:"role,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - StackNumber *int `json:"stackNumber,omitempty"` // - State string `json:"state,omitempty"` // - SudiSerialNumber string `json:"sudiSerialNumber,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceDeviceInfoTags interface{} -type RequestDeviceOnboardingPnpAddDeviceRunSummaryList struct { - Details string `json:"details,omitempty"` // - ErrorFlag *bool `json:"errorFlag,omitempty"` // - HistoryTaskInfo *RequestDeviceOnboardingPnpAddDeviceRunSummaryListHistoryTaskInfo `json:"historyTaskInfo,omitempty"` // - Timestamp *int `json:"timestamp,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceRunSummaryListHistoryTaskInfo struct { - AddnDetails *[]RequestDeviceOnboardingPnpAddDeviceRunSummaryListHistoryTaskInfoAddnDetails `json:"addnDetails,omitempty"` // - Name string `json:"name,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestDeviceOnboardingPnpAddDeviceRunSummaryListHistoryTaskInfoWorkItemList `json:"workItemList,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceRunSummaryListHistoryTaskInfoAddnDetails struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceRunSummaryListHistoryTaskInfoWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceSystemResetWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestDeviceOnboardingPnpAddDeviceSystemResetWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceSystemResetWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestDeviceOnboardingPnpAddDeviceSystemResetWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceSystemResetWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceSystemWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestDeviceOnboardingPnpAddDeviceSystemWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceSystemWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestDeviceOnboardingPnpAddDeviceSystemWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceSystemWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestDeviceOnboardingPnpAddDeviceWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestDeviceOnboardingPnpAddDeviceWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceWorkflowParameters struct { - ConfigList *[]RequestDeviceOnboardingPnpAddDeviceWorkflowParametersConfigList `json:"configList,omitempty"` // - LicenseLevel string `json:"licenseLevel,omitempty"` // - LicenseType string `json:"licenseType,omitempty"` // - TopOfStackSerialNumber string `json:"topOfStackSerialNumber,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceWorkflowParametersConfigList struct { - ConfigID string `json:"configId,omitempty"` // - ConfigParameters *[]RequestDeviceOnboardingPnpAddDeviceWorkflowParametersConfigListConfigParameters `json:"configParameters,omitempty"` // -} -type RequestDeviceOnboardingPnpAddDeviceWorkflowParametersConfigListConfigParameters struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + State string `json:"state,omitempty"` // State + Role string `json:"role,omitempty"` // Role + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Pid string `json:"pid,omitempty"` // Pid + LicenseLevel string `json:"licenseLevel,omitempty"` // License Level + LicenseType string `json:"licenseType,omitempty"` // License Type + SudiSerialNumber string `json:"sudiSerialNumber,omitempty"` // Sudi Serial Number + HardwareVersion string `json:"hardwareVersion,omitempty"` // Hardware Version + StackNumber *float64 `json:"stackNumber,omitempty"` // Stack Number + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version + Priority *float64 `json:"priority,omitempty"` // Priority } type RequestDeviceOnboardingPnpClaimDevice struct { - ConfigFileURL string `json:"configFileUrl,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - DeviceClaimList *[]RequestDeviceOnboardingPnpClaimDeviceDeviceClaimList `json:"deviceClaimList,omitempty"` // - FileServiceID string `json:"fileServiceId,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - ImageURL string `json:"imageUrl,omitempty"` // - PopulateInventory *bool `json:"populateInventory,omitempty"` // - ProjectID string `json:"projectId,omitempty"` // - WorkflowID string `json:"workflowId,omitempty"` // + ConfigFileURL string `json:"configFileUrl,omitempty"` // + ConfigID string `json:"configId,omitempty"` // + DeviceClaimList *[]RequestDeviceOnboardingPnpClaimDeviceDeviceClaimList `json:"deviceClaimList,omitempty"` // + FileServiceID string `json:"fileServiceId,omitempty"` // + ImageID string `json:"imageId,omitempty"` // + ImageURL string `json:"imageUrl,omitempty"` // + PopulateInventory *bool `json:"populateInventory,omitempty"` // + ProjectID string `json:"projectId,omitempty"` // + WorkflowID string `json:"workflowId,omitempty"` // + AuthorizationNeeded *bool `json:"authorizationNeeded,omitempty"` // Flag to enable/disable PnP device authorization. (true means enable) } type RequestDeviceOnboardingPnpClaimDeviceDeviceClaimList struct { ConfigList *[]RequestDeviceOnboardingPnpClaimDeviceDeviceClaimListConfigList `json:"configList,omitempty"` // @@ -2964,321 +2665,46 @@ type RequestDeviceOnboardingPnpClaimDeviceDeviceClaimListConfigListConfigParamet } type RequestDeviceOnboardingPnpImportDevicesInBulk []RequestItemDeviceOnboardingPnpImportDevicesInBulk // Array of RequestDeviceOnboardingPnpImportDevicesInBulk type RequestItemDeviceOnboardingPnpImportDevicesInBulk struct { - TypeID string `json:"_id,omitempty"` // - DeviceInfo *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfo `json:"deviceInfo,omitempty"` // - RunSummaryList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkRunSummaryList `json:"runSummaryList,omitempty"` // - SystemResetWorkflow *RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemResetWorkflow `json:"systemResetWorkflow,omitempty"` // - SystemWorkflow *RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemWorkflow `json:"systemWorkflow,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Version *int `json:"version,omitempty"` // - Workflow *RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflow `json:"workflow,omitempty"` // - WorkflowParameters *RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowParameters `json:"workflowParameters,omitempty"` // + TypeID string `json:"_id,omitempty"` // Id + DeviceInfo *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfo `json:"deviceInfo,omitempty"` // } type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfo struct { - AAACredentials *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoAAACredentials `json:"aaaCredentials,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - AddnMacAddrs []string `json:"addnMacAddrs,omitempty"` // - AgentType string `json:"agentType,omitempty"` // - AuthStatus string `json:"authStatus,omitempty"` // - AuthenticatedSudiSerialNo string `json:"authenticatedSudiSerialNo,omitempty"` // - CapabilitiesSupported []string `json:"capabilitiesSupported,omitempty"` // - CmState string `json:"cmState,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceSudiSerialNos []string `json:"deviceSudiSerialNos,omitempty"` // - DeviceType string `json:"deviceType,omitempty"` // - FeaturesSupported []string `json:"featuresSupported,omitempty"` // - FileSystemList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoFileSystemList `json:"fileSystemList,omitempty"` // - FirstContact *int `json:"firstContact,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - HTTPHeaders *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoHTTPHeaders `json:"httpHeaders,omitempty"` // - ImageFile string `json:"imageFile,omitempty"` // - ImageVersion string `json:"imageVersion,omitempty"` // - IPInterfaces *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoIPInterfaces `json:"ipInterfaces,omitempty"` // - LastContact *int `json:"lastContact,omitempty"` // - LastSyncTime *int `json:"lastSyncTime,omitempty"` // - LastUpdateOn *int `json:"lastUpdateOn,omitempty"` // - Location *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoLocation `json:"location,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Mode string `json:"mode,omitempty"` // - Name string `json:"name,omitempty"` // - NeighborLinks *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoNeighborLinks `json:"neighborLinks,omitempty"` // - OnbState string `json:"onbState,omitempty"` // - Pid string `json:"pid,omitempty"` // - PnpProfileList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileList `json:"pnpProfileList,omitempty"` // - PopulateInventory *bool `json:"populateInventory,omitempty"` // - PreWorkflowCliOuputs *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPreWorkflowCliOuputs `json:"preWorkflowCliOuputs,omitempty"` // - ProjectID string `json:"projectId,omitempty"` // - ProjectName string `json:"projectName,omitempty"` // - ReloadRequested *bool `json:"reloadRequested,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SmartAccountID string `json:"smartAccountId,omitempty"` // - Source string `json:"source,omitempty"` // - Stack *bool `json:"stack,omitempty"` // - StackInfo *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoStackInfo `json:"stackInfo,omitempty"` // - State string `json:"state,omitempty"` // - SudiRequired *bool `json:"sudiRequired,omitempty"` // - Tags *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoTags `json:"tags,omitempty"` // - UserSudiSerialNos []string `json:"userSudiSerialNos,omitempty"` // - VirtualAccountID string `json:"virtualAccountId,omitempty"` // - WorkflowID string `json:"workflowId,omitempty"` // - WorkflowName string `json:"workflowName,omitempty"` // - SiteID string `json:"siteId,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoAAACredentials struct { - Password string `json:"password,omitempty"` // - Username string `json:"username,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoFileSystemList struct { - Freespace *int `json:"freespace,omitempty"` // - Name string `json:"name,omitempty"` // - Readable *bool `json:"readable,omitempty"` // - Size *int `json:"size,omitempty"` // - Type string `json:"type,omitempty"` // - Writeable *bool `json:"writeable,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoHTTPHeaders struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoIPInterfaces struct { - IPv4Address *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoIPInterfacesIPv4Address `json:"ipv4Address,omitempty"` // - IPv6AddressList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoIPInterfacesIPv6AddressList `json:"ipv6AddressList,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Name string `json:"name,omitempty"` // - Status string `json:"status,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoIPInterfacesIPv4Address interface{} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoIPInterfacesIPv6AddressList interface{} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoLocation struct { - Address string `json:"address,omitempty"` // - Altitude string `json:"altitude,omitempty"` // - Latitude string `json:"latitude,omitempty"` // - Longitude string `json:"longitude,omitempty"` // - SiteID string `json:"siteId,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoNeighborLinks struct { - LocalInterfaceName string `json:"localInterfaceName,omitempty"` // - LocalMacAddress string `json:"localMacAddress,omitempty"` // - LocalShortInterfaceName string `json:"localShortInterfaceName,omitempty"` // - RemoteDeviceName string `json:"remoteDeviceName,omitempty"` // - RemoteInterfaceName string `json:"remoteInterfaceName,omitempty"` // - RemoteMacAddress string `json:"remoteMacAddress,omitempty"` // - RemotePlatform string `json:"remotePlatform,omitempty"` // - RemoteShortInterfaceName string `json:"remoteShortInterfaceName,omitempty"` // - RemoteVersion string `json:"remoteVersion,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileList struct { - CreatedBy string `json:"createdBy,omitempty"` // - DiscoveryCreated *bool `json:"discoveryCreated,omitempty"` // - PrimaryEndpoint *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListPrimaryEndpoint `json:"primaryEndpoint,omitempty"` // - ProfileName string `json:"profileName,omitempty"` // - SecondaryEndpoint *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListSecondaryEndpoint `json:"secondaryEndpoint,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListPrimaryEndpoint struct { - Certificate string `json:"certificate,omitempty"` // - Fqdn string `json:"fqdn,omitempty"` // - IPv4Address *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListPrimaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // - IPv6Address *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListPrimaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // - Port *int `json:"port,omitempty"` // - Protocol string `json:"protocol,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListPrimaryEndpointIPv4Address interface{} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListPrimaryEndpointIPv6Address interface{} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListSecondaryEndpoint struct { - Certificate string `json:"certificate,omitempty"` // - Fqdn string `json:"fqdn,omitempty"` // - IPv4Address *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListSecondaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // - IPv6Address *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListSecondaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // - Port *int `json:"port,omitempty"` // - Protocol string `json:"protocol,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListSecondaryEndpointIPv4Address interface{} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPnpProfileListSecondaryEndpointIPv6Address interface{} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoPreWorkflowCliOuputs struct { - Cli string `json:"cli,omitempty"` // - CliOutput string `json:"cliOutput,omitempty"` // + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + Stack *bool `json:"stack,omitempty"` // Stack + Description string `json:"description,omitempty"` // Description + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Pid string `json:"pid,omitempty"` // Pid + SiteID string `json:"siteId,omitempty"` // Site Id + SudiRequired *bool `json:"sudiRequired,omitempty"` // Is Sudi Required + DeviceSudiSerialNos []string `json:"deviceSudiSerialNos,omitempty"` // Device Sudi Serial Nos + UserMicNumbers []string `json:"userMicNumbers,omitempty"` // User Mic Numbers + UserSudiSerialNos []string `json:"userSudiSerialNos,omitempty"` // User Sudi Serial Nos + WorkflowID string `json:"workflowId,omitempty"` // Workflow Id + WorkflowName string `json:"workflowName,omitempty"` // Workflow Name + Hostname string `json:"hostname,omitempty"` // Hostname + StackInfo *RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoStackInfo `json:"stackInfo,omitempty"` // } type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoStackInfo struct { - IsFullRing *bool `json:"isFullRing,omitempty"` // + SupportsStackWorkflows *bool `json:"supportsStackWorkflows,omitempty"` // Supports Stack Workflows + IsFullRing *bool `json:"isFullRing,omitempty"` // Is Full Ring StackMemberList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoStackInfoStackMemberList `json:"stackMemberList,omitempty"` // - StackRingProtocol string `json:"stackRingProtocol,omitempty"` // - SupportsStackWorkflows *bool `json:"supportsStackWorkflows,omitempty"` // - TotalMemberCount *int `json:"totalMemberCount,omitempty"` // - ValidLicenseLevels []string `json:"validLicenseLevels,omitempty"` // + StackRingProtocol string `json:"stackRingProtocol,omitempty"` // Stack Ring Protocol + ValidLicenseLevels []string `json:"validLicenseLevels,omitempty"` // Valid License Levels + TotalMemberCount *float64 `json:"totalMemberCount,omitempty"` // Total Member Count } type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoStackInfoStackMemberList struct { - HardwareVersion string `json:"hardwareVersion,omitempty"` // - LicenseLevel string `json:"licenseLevel,omitempty"` // - LicenseType string `json:"licenseType,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Pid string `json:"pid,omitempty"` // - Priority *int `json:"priority,omitempty"` // - Role string `json:"role,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - StackNumber *int `json:"stackNumber,omitempty"` // - State string `json:"state,omitempty"` // - SudiSerialNumber string `json:"sudiSerialNumber,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkDeviceInfoTags interface{} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkRunSummaryList struct { - Details string `json:"details,omitempty"` // - ErrorFlag *bool `json:"errorFlag,omitempty"` // - HistoryTaskInfo *RequestItemDeviceOnboardingPnpImportDevicesInBulkRunSummaryListHistoryTaskInfo `json:"historyTaskInfo,omitempty"` // - Timestamp *int `json:"timestamp,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkRunSummaryListHistoryTaskInfo struct { - AddnDetails *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkRunSummaryListHistoryTaskInfoAddnDetails `json:"addnDetails,omitempty"` // - Name string `json:"name,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkRunSummaryListHistoryTaskInfoWorkItemList `json:"workItemList,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkRunSummaryListHistoryTaskInfoAddnDetails struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkRunSummaryListHistoryTaskInfoWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemResetWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemResetWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemResetWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemResetWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemResetWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkSystemWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowParameters struct { - ConfigList *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowParametersConfigList `json:"configList,omitempty"` // - LicenseLevel string `json:"licenseLevel,omitempty"` // - LicenseType string `json:"licenseType,omitempty"` // - TopOfStackSerialNumber string `json:"topOfStackSerialNumber,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowParametersConfigList struct { - ConfigID string `json:"configId,omitempty"` // - ConfigParameters *[]RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowParametersConfigListConfigParameters `json:"configParameters,omitempty"` // -} -type RequestItemDeviceOnboardingPnpImportDevicesInBulkWorkflowParametersConfigListConfigParameters struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + State string `json:"state,omitempty"` // State + Role string `json:"role,omitempty"` // Role + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Pid string `json:"pid,omitempty"` // Pid + LicenseLevel string `json:"licenseLevel,omitempty"` // License Level + LicenseType string `json:"licenseType,omitempty"` // License Type + SudiSerialNumber string `json:"sudiSerialNumber,omitempty"` // Sudi Serial Number + HardwareVersion string `json:"hardwareVersion,omitempty"` // Hardware Version + StackNumber *float64 `json:"stackNumber,omitempty"` // Stack Number + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version + Priority *float64 `json:"priority,omitempty"` // Priority } type RequestDeviceOnboardingPnpResetDevice struct { DeviceResetList *[]RequestDeviceOnboardingPnpResetDeviceDeviceResetList `json:"deviceResetList,omitempty"` // @@ -3301,32 +2727,31 @@ type RequestDeviceOnboardingPnpResetDeviceDeviceResetListConfigListConfigParamet Value string `json:"value,omitempty"` // } type RequestDeviceOnboardingPnpClaimADeviceToASite struct { - DeviceID string `json:"deviceId,omitempty"` // Device Id - SiteID string `json:"siteId,omitempty"` // Site Id - Type string `json:"type,omitempty"` // Type - ImageInfo *RequestDeviceOnboardingPnpClaimADeviceToASiteImageInfo `json:"imageInfo"` // - ConfigInfo *RequestDeviceOnboardingPnpClaimADeviceToASiteConfigInfo `json:"configInfo"` // - RfProfile string `json:"rfProfile,omitempty"` // for Access Points - StaticIP string `json:"staticIP,omitempty"` // for CatalystWLC/MobilityExpress - SubnetMask string `json:"subnetMask,omitempty"` // for CatalystWLC/MobilityExpress - Gateway string `json:"gateway,omitempty"` // for CatalystWLC/MobilityExpress - VLANID string `json:"vlanID,omitempty"` // for Catalyst 9800 WLC - InterfaceName string `json:"interfaceName,omitempty"` // for Catalyst 9800 WLC - SensorProfile string `json:"sensorProfile,omitempty"` // for Sensors - TopOfStackSerialNumber string `json:"topOfStackSerialNumber,omitempty"` // if Type is "StackSwitch" - CablingScheme string `json:"cablingScheme,omitempty"` // if Type is "StackSwitch" ["1A", "1B"] + DeviceID string `json:"deviceId,omitempty"` // Device Id + SiteID string `json:"siteId,omitempty"` // Site Id + Type string `json:"type,omitempty"` // Type + ImageInfo *RequestDeviceOnboardingPnpClaimADeviceToASiteImageInfo `json:"imageInfo,omitempty"` // + ConfigInfo *RequestDeviceOnboardingPnpClaimADeviceToASiteConfigInfo `json:"configInfo,omitempty"` // + RfProfile string `json:"rfProfile,omitempty"` // for Access Points + StaticIP string `json:"staticIP,omitempty"` // for CatalystWLC/MobilityExpress + SubnetMask string `json:"subnetMask,omitempty"` // for CatalystWLC/MobilityExpress + Gateway string `json:"gateway,omitempty"` // for CatalystWLC/MobilityExpress + VLANID string `json:"vlanId,omitempty"` // for Catalyst 9800 WLC + IPInterfaceName string `json:"ipInterfaceName,omitempty"` // for Catalyst 9800 WLC + SensorProfile string `json:"sensorProfile,omitempty"` // for Sensors + Hostname string `json:"hostname,omitempty"` // hostname to configure on Device. } type RequestDeviceOnboardingPnpClaimADeviceToASiteImageInfo struct { - ImageID string `json:"imageId"` // Image Id - Skip *bool `json:"skip"` // Skip + ImageID string `json:"imageId,omitempty"` // Image Id + Skip *bool `json:"skip,omitempty"` // Skip } type RequestDeviceOnboardingPnpClaimADeviceToASiteConfigInfo struct { - ConfigID string `json:"configId"` // Config Id - ConfigParameters *[]RequestDeviceOnboardingPnpClaimADeviceToASiteConfigInfoConfigParameters `json:"configParameters"` // + ConfigID string `json:"configId,omitempty"` // Config Id + ConfigParameters *[]RequestDeviceOnboardingPnpClaimADeviceToASiteConfigInfoConfigParameters `json:"configParameters,omitempty"` // } type RequestDeviceOnboardingPnpClaimADeviceToASiteConfigInfoConfigParameters struct { - Key string `json:"key"` // Key - Value string `json:"value"` // Value + Key string `json:"key,omitempty"` // Key + Value string `json:"value,omitempty"` // Value } type RequestDeviceOnboardingPnpPreviewConfig struct { DeviceID string `json:"deviceId,omitempty"` // @@ -3370,379 +2795,46 @@ type RequestDeviceOnboardingPnpSyncVirtualAccountDevicesSyncResultSyncList struc SyncType string `json:"syncType,omitempty"` // } type RequestDeviceOnboardingPnpUpdateDevice struct { - TypeID string `json:"_id,omitempty"` // - DeviceInfo *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfo `json:"deviceInfo,omitempty"` // - RunSummaryList *[]RequestDeviceOnboardingPnpUpdateDeviceRunSummaryList `json:"runSummaryList,omitempty"` // - SystemResetWorkflow *RequestDeviceOnboardingPnpUpdateDeviceSystemResetWorkflow `json:"systemResetWorkflow,omitempty"` // - SystemWorkflow *RequestDeviceOnboardingPnpUpdateDeviceSystemWorkflow `json:"systemWorkflow,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Version *int `json:"version,omitempty"` // - Workflow *RequestDeviceOnboardingPnpUpdateDeviceWorkflow `json:"workflow,omitempty"` // - WorkflowParameters *RequestDeviceOnboardingPnpUpdateDeviceWorkflowParameters `json:"workflowParameters,omitempty"` // + ID string `json:"id,omitempty"` // Id + DeviceInfo *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfo `json:"deviceInfo,omitempty"` // } type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfo struct { - AAACredentials *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoAAACredentials `json:"aaaCredentials,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - AddnMacAddrs []string `json:"addnMacAddrs,omitempty"` // - AgentType string `json:"agentType,omitempty"` // - AuthStatus string `json:"authStatus,omitempty"` // - AuthenticatedSudiSerialNo string `json:"authenticatedSudiSerialNo,omitempty"` // - CapabilitiesSupported []string `json:"capabilitiesSupported,omitempty"` // - CmState string `json:"cmState,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceSudiSerialNos []string `json:"deviceSudiSerialNos,omitempty"` // - DeviceType string `json:"deviceType,omitempty"` // - FeaturesSupported []string `json:"featuresSupported,omitempty"` // - FileSystemList *[]RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoFileSystemList `json:"fileSystemList,omitempty"` // - FirstContact *int `json:"firstContact,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - HTTPHeaders *[]RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoHTTPHeaders `json:"httpHeaders,omitempty"` // - ImageFile string `json:"imageFile,omitempty"` // - ImageVersion string `json:"imageVersion,omitempty"` // - IPInterfaces *[]RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoIPInterfaces `json:"ipInterfaces,omitempty"` // - LastContact *int `json:"lastContact,omitempty"` // - LastSyncTime *int `json:"lastSyncTime,omitempty"` // - LastUpdateOn *int `json:"lastUpdateOn,omitempty"` // - Location *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoLocation `json:"location,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Mode string `json:"mode,omitempty"` // - Name string `json:"name,omitempty"` // - NeighborLinks *[]RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoNeighborLinks `json:"neighborLinks,omitempty"` // - OnbState string `json:"onbState,omitempty"` // - Pid string `json:"pid,omitempty"` // - PnpProfileList *[]RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileList `json:"pnpProfileList,omitempty"` // - PopulateInventory *bool `json:"populateInventory,omitempty"` // - PreWorkflowCliOuputs *[]RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPreWorkflowCliOuputs `json:"preWorkflowCliOuputs,omitempty"` // - ProjectID string `json:"projectId,omitempty"` // - ProjectName string `json:"projectName,omitempty"` // - ReloadRequested *bool `json:"reloadRequested,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SmartAccountID string `json:"smartAccountId,omitempty"` // - Source string `json:"source,omitempty"` // - Stack *bool `json:"stack,omitempty"` // - StackInfo *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoStackInfo `json:"stackInfo,omitempty"` // - State string `json:"state,omitempty"` // - SudiRequired *bool `json:"sudiRequired,omitempty"` // - Tags *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoTags `json:"tags,omitempty"` // - UserSudiSerialNos []string `json:"userSudiSerialNos,omitempty"` // - VirtualAccountID string `json:"virtualAccountId,omitempty"` // - WorkflowID string `json:"workflowId,omitempty"` // - WorkflowName string `json:"workflowName,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoAAACredentials struct { - Password string `json:"password,omitempty"` // - Username string `json:"username,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoFileSystemList struct { - Freespace *int `json:"freespace,omitempty"` // - Name string `json:"name,omitempty"` // - Readable *bool `json:"readable,omitempty"` // - Size *int `json:"size,omitempty"` // - Type string `json:"type,omitempty"` // - Writeable *bool `json:"writeable,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoHTTPHeaders struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoIPInterfaces struct { - IPv4Address *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoIPInterfacesIPv4Address `json:"ipv4Address,omitempty"` // - IPv6AddressList *[]RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoIPInterfacesIPv6AddressList `json:"ipv6AddressList,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Name string `json:"name,omitempty"` // - Status string `json:"status,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoIPInterfacesIPv4Address interface{} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoIPInterfacesIPv6AddressList interface{} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoLocation struct { - Address string `json:"address,omitempty"` // - Altitude string `json:"altitude,omitempty"` // - Latitude string `json:"latitude,omitempty"` // - Longitude string `json:"longitude,omitempty"` // - SiteID string `json:"siteId,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoNeighborLinks struct { - LocalInterfaceName string `json:"localInterfaceName,omitempty"` // - LocalMacAddress string `json:"localMacAddress,omitempty"` // - LocalShortInterfaceName string `json:"localShortInterfaceName,omitempty"` // - RemoteDeviceName string `json:"remoteDeviceName,omitempty"` // - RemoteInterfaceName string `json:"remoteInterfaceName,omitempty"` // - RemoteMacAddress string `json:"remoteMacAddress,omitempty"` // - RemotePlatform string `json:"remotePlatform,omitempty"` // - RemoteShortInterfaceName string `json:"remoteShortInterfaceName,omitempty"` // - RemoteVersion string `json:"remoteVersion,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileList struct { - CreatedBy string `json:"createdBy,omitempty"` // - DiscoveryCreated *bool `json:"discoveryCreated,omitempty"` // - PrimaryEndpoint *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListPrimaryEndpoint `json:"primaryEndpoint,omitempty"` // - ProfileName string `json:"profileName,omitempty"` // - SecondaryEndpoint *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListSecondaryEndpoint `json:"secondaryEndpoint,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListPrimaryEndpoint struct { - Certificate string `json:"certificate,omitempty"` // - Fqdn string `json:"fqdn,omitempty"` // - IPv4Address *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListPrimaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // - IPv6Address *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListPrimaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // - Port *int `json:"port,omitempty"` // - Protocol string `json:"protocol,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListPrimaryEndpointIPv4Address interface{} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListPrimaryEndpointIPv6Address interface{} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListSecondaryEndpoint struct { - Certificate string `json:"certificate,omitempty"` // - Fqdn string `json:"fqdn,omitempty"` // - IPv4Address *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListSecondaryEndpointIPv4Address `json:"ipv4Address,omitempty"` // - IPv6Address *RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListSecondaryEndpointIPv6Address `json:"ipv6Address,omitempty"` // - Port *int `json:"port,omitempty"` // - Protocol string `json:"protocol,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListSecondaryEndpointIPv4Address interface{} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPnpProfileListSecondaryEndpointIPv6Address interface{} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoPreWorkflowCliOuputs struct { - Cli string `json:"cli,omitempty"` // - CliOutput string `json:"cliOutput,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoStackInfo struct { - IsFullRing *bool `json:"isFullRing,omitempty"` // - StackMemberList *[]RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoStackInfoStackMemberList `json:"stackMemberList,omitempty"` // - StackRingProtocol string `json:"stackRingProtocol,omitempty"` // - SupportsStackWorkflows *bool `json:"supportsStackWorkflows,omitempty"` // - TotalMemberCount *int `json:"totalMemberCount,omitempty"` // - ValidLicenseLevels []string `json:"validLicenseLevels,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoStackInfoStackMemberList struct { - HardwareVersion string `json:"hardwareVersion,omitempty"` // - LicenseLevel string `json:"licenseLevel,omitempty"` // - LicenseType string `json:"licenseType,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - Pid string `json:"pid,omitempty"` // - Priority *int `json:"priority,omitempty"` // - Role string `json:"role,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - StackNumber *int `json:"stackNumber,omitempty"` // - State string `json:"state,omitempty"` // - SudiSerialNumber string `json:"sudiSerialNumber,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceDeviceInfoTags interface{} -type RequestDeviceOnboardingPnpUpdateDeviceRunSummaryList struct { - Details string `json:"details,omitempty"` // - ErrorFlag *bool `json:"errorFlag,omitempty"` // - HistoryTaskInfo *RequestDeviceOnboardingPnpUpdateDeviceRunSummaryListHistoryTaskInfo `json:"historyTaskInfo,omitempty"` // - Timestamp *int `json:"timestamp,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceRunSummaryListHistoryTaskInfo struct { - AddnDetails *[]RequestDeviceOnboardingPnpUpdateDeviceRunSummaryListHistoryTaskInfoAddnDetails `json:"addnDetails,omitempty"` // - Name string `json:"name,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestDeviceOnboardingPnpUpdateDeviceRunSummaryListHistoryTaskInfoWorkItemList `json:"workItemList,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceRunSummaryListHistoryTaskInfoAddnDetails struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceRunSummaryListHistoryTaskInfoWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceSystemResetWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestDeviceOnboardingPnpUpdateDeviceSystemResetWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceSystemResetWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestDeviceOnboardingPnpUpdateDeviceSystemResetWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceSystemResetWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceSystemWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestDeviceOnboardingPnpUpdateDeviceSystemWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceSystemWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestDeviceOnboardingPnpUpdateDeviceSystemWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceSystemWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceWorkflow struct { - TypeID string `json:"_id,omitempty"` // - AddToInventory *bool `json:"addToInventory,omitempty"` // - AddedOn *int `json:"addedOn,omitempty"` // - ConfigID string `json:"configId,omitempty"` // - CurrTaskIDx *int `json:"currTaskIdx,omitempty"` // - Description string `json:"description,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ExecTime *int `json:"execTime,omitempty"` // - ImageID string `json:"imageId,omitempty"` // - InstanceType string `json:"instanceType,omitempty"` // - LastupdateOn *int `json:"lastupdateOn,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - Tasks *[]RequestDeviceOnboardingPnpUpdateDeviceWorkflowTasks `json:"tasks,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Type string `json:"type,omitempty"` // - UseState string `json:"useState,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceWorkflowTasks struct { - CurrWorkItemIDx *int `json:"currWorkItemIdx,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - Name string `json:"name,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TaskSeqNo *int `json:"taskSeqNo,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // - Type string `json:"type,omitempty"` // - WorkItemList *[]RequestDeviceOnboardingPnpUpdateDeviceWorkflowTasksWorkItemList `json:"workItemList,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceWorkflowTasksWorkItemList struct { - Command string `json:"command,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - OutputStr string `json:"outputStr,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - State string `json:"state,omitempty"` // - TimeTaken *int `json:"timeTaken,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceWorkflowParameters struct { - ConfigList *[]RequestDeviceOnboardingPnpUpdateDeviceWorkflowParametersConfigList `json:"configList,omitempty"` // - LicenseLevel string `json:"licenseLevel,omitempty"` // - LicenseType string `json:"licenseType,omitempty"` // - TopOfStackSerialNumber string `json:"topOfStackSerialNumber,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceWorkflowParametersConfigList struct { - ConfigID string `json:"configId,omitempty"` // - ConfigParameters *[]RequestDeviceOnboardingPnpUpdateDeviceWorkflowParametersConfigListConfigParameters `json:"configParameters,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdateDeviceWorkflowParametersConfigListConfigParameters struct { - Key string `json:"key,omitempty"` // - Value string `json:"value,omitempty"` // + Hostname string `json:"hostname,omitempty"` // Hostname + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + Pid string `json:"pid,omitempty"` // Pid + SudiRequired *bool `json:"sudiRequired,omitempty"` // Sudi Required + UserSudiSerialNos []string `json:"userSudiSerialNos,omitempty"` // List of Secure Unique Device Identifier (SUDI) serial numbers to perform SUDI authorization, Required if sudiRequired is true. + Stack *bool `json:"stack,omitempty"` // Stack } type RequestDeviceOnboardingPnpUpdatePnpGlobalSettings struct { - TypeID string `json:"_id,omitempty"` // - AAACredentials *RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsAAACredentials `json:"aaaCredentials,omitempty"` // - AcceptEula *bool `json:"acceptEula,omitempty"` // + ID string `json:"id,omitempty"` // Id + AcceptEula string `json:"acceptEula,omitempty"` // Accept Eula DefaultProfile *RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsDefaultProfile `json:"defaultProfile,omitempty"` // SavaMappingList *[]RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingList `json:"savaMappingList,omitempty"` // - TaskTimeOuts *RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsTaskTimeOuts `json:"taskTimeOuts,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsAAACredentials struct { - Password string `json:"password,omitempty"` // - Username string `json:"username,omitempty"` // } type RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsDefaultProfile struct { - Cert string `json:"cert,omitempty"` // - FqdnAddresses []string `json:"fqdnAddresses,omitempty"` // - IPAddresses []string `json:"ipAddresses,omitempty"` // - Port *int `json:"port,omitempty"` // - Proxy *bool `json:"proxy,omitempty"` // + Cert string `json:"cert,omitempty"` // Cert + FqdnAddresses []string `json:"fqdnAddresses,omitempty"` // Fqdn Addresses + IPAddresses []string `json:"ipAddresses,omitempty"` // Ip Addresses + Port string `json:"port,omitempty"` // Port + Proxy string `json:"proxy,omitempty"` // Proxy } type RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingList struct { - AutoSyncPeriod *int `json:"autoSyncPeriod,omitempty"` // - CcoUser string `json:"ccoUser,omitempty"` // - Expiry *int `json:"expiry,omitempty"` // - LastSync *int `json:"lastSync,omitempty"` // - Profile *RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingListProfile `json:"profile,omitempty"` // - SmartAccountID string `json:"smartAccountId,omitempty"` // - SyncResult *RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingListSyncResult `json:"syncResult,omitempty"` // - SyncResultStr string `json:"syncResultStr,omitempty"` // - SyncStartTime *int `json:"syncStartTime,omitempty"` // - SyncStatus string `json:"syncStatus,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Token string `json:"token,omitempty"` // - VirtualAccountID string `json:"virtualAccountId,omitempty"` // + CcoUser string `json:"ccoUser,omitempty"` // Cco User + Expiry string `json:"expiry,omitempty"` // Expiry + Profile *RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingListProfile `json:"profile,omitempty"` // + SmartAccountID string `json:"smartAccountId,omitempty"` // Smart Account Id + VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id } type RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingListProfile struct { - AddressFqdn string `json:"addressFqdn,omitempty"` // - AddressIPV4 string `json:"addressIpV4,omitempty"` // - Cert string `json:"cert,omitempty"` // - MakeDefault *bool `json:"makeDefault,omitempty"` // - Name string `json:"name,omitempty"` // - Port *int `json:"port,omitempty"` // - ProfileID string `json:"profileId,omitempty"` // - Proxy *bool `json:"proxy,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingListSyncResult struct { - SyncList *[]RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingListSyncResultSyncList `json:"syncList,omitempty"` // - SyncMsg string `json:"syncMsg,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsSavaMappingListSyncResultSyncList struct { - DeviceSnList []string `json:"deviceSnList,omitempty"` // - SyncType string `json:"syncType,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdatePnpGlobalSettingsTaskTimeOuts struct { - ConfigTimeOut *int `json:"configTimeOut,omitempty"` // - GeneralTimeOut *int `json:"generalTimeOut,omitempty"` // - ImageDownloadTimeOut *int `json:"imageDownloadTimeOut,omitempty"` // + AddressFqdn string `json:"addressFqdn,omitempty"` // Address Fqdn + AddressIPV4 string `json:"addressIpV4,omitempty"` // Address Ip V4 + Cert string `json:"cert,omitempty"` // Cert + MakeDefault string `json:"makeDefault,omitempty"` // Make Default + Name string `json:"name,omitempty"` // Name + Port string `json:"port,omitempty"` // Port + ProfileID string `json:"profileId,omitempty"` // Profile Id + Proxy string `json:"proxy,omitempty"` // Proxy } type RequestDeviceOnboardingPnpAddVirtualAccount struct { AutoSyncPeriod *int `json:"autoSyncPeriod,omitempty"` // @@ -3752,16 +2844,17 @@ type RequestDeviceOnboardingPnpAddVirtualAccount struct { Profile *RequestDeviceOnboardingPnpAddVirtualAccountProfile `json:"profile,omitempty"` // SmartAccountID string `json:"smartAccountId,omitempty"` // SyncResult *RequestDeviceOnboardingPnpAddVirtualAccountSyncResult `json:"syncResult,omitempty"` // - SyncResultStr string `json:"syncResultStr,omitempty"` // + SyncResultStr string `json:"syncResultStr,omitempty"` // Represent internal state and SHOULD not be used or relied upon. (Deprecated) SyncStartTime *int `json:"syncStartTime,omitempty"` // - SyncStatus string `json:"syncStatus,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Token string `json:"token,omitempty"` // + SyncStatus string `json:"syncStatus,omitempty"` // Represent internal state and SHOULD not be used or relied upon. (Deprecated) + TenantID string `json:"tenantId,omitempty"` // Represent internal state and SHOULD not be used or relied upon. (Deprecated) + Token string `json:"token,omitempty"` // Represent internal state and SHOULD not be used or relied upon. (Deprecated) VirtualAccountID string `json:"virtualAccountId,omitempty"` // } type RequestDeviceOnboardingPnpAddVirtualAccountProfile struct { - AddressFqdn string `json:"addressFqdn,omitempty"` // - AddressIPV4 string `json:"addressIpV4,omitempty"` // + AddressFqdn string `json:"addressFqdn,omitempty"` // Required when cluster is configured with fully qualified domain name (FQDN) + AddressIPV4 string `json:"addressIpV4,omitempty"` // Required when cluster is configured with IPv4 + AddressIPV6 string `json:"addressIpV6,omitempty"` // Required when cluster is configured with IPv6 Cert string `json:"cert,omitempty"` // MakeDefault *bool `json:"makeDefault,omitempty"` // Name string `json:"name,omitempty"` // @@ -3778,37 +2871,21 @@ type RequestDeviceOnboardingPnpAddVirtualAccountSyncResultSyncList struct { SyncType string `json:"syncType,omitempty"` // } type RequestDeviceOnboardingPnpUpdatePnpServerProfile struct { - AutoSyncPeriod *int `json:"autoSyncPeriod,omitempty"` // - CcoUser string `json:"ccoUser,omitempty"` // - Expiry *int `json:"expiry,omitempty"` // - LastSync *int `json:"lastSync,omitempty"` // - Profile *RequestDeviceOnboardingPnpUpdatePnpServerProfileProfile `json:"profile,omitempty"` // - SmartAccountID string `json:"smartAccountId,omitempty"` // - SyncResult *RequestDeviceOnboardingPnpUpdatePnpServerProfileSyncResult `json:"syncResult,omitempty"` // - SyncResultStr string `json:"syncResultStr,omitempty"` // - SyncStartTime *int `json:"syncStartTime,omitempty"` // - SyncStatus string `json:"syncStatus,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // - Token string `json:"token,omitempty"` // - VirtualAccountID string `json:"virtualAccountId,omitempty"` // + SmartAccountID string `json:"smartAccountId,omitempty"` // Smart Account Id + VirtualAccountID string `json:"virtualAccountId,omitempty"` // Virtual Account Id + Profile *RequestDeviceOnboardingPnpUpdatePnpServerProfileProfile `json:"profile,omitempty"` // + CcoUser string `json:"ccoUser,omitempty"` // Cco User } type RequestDeviceOnboardingPnpUpdatePnpServerProfileProfile struct { - AddressFqdn string `json:"addressFqdn,omitempty"` // - AddressIPV4 string `json:"addressIpV4,omitempty"` // - Cert string `json:"cert,omitempty"` // - MakeDefault *bool `json:"makeDefault,omitempty"` // - Name string `json:"name,omitempty"` // - Port *int `json:"port,omitempty"` // - ProfileID string `json:"profileId,omitempty"` // - Proxy *bool `json:"proxy,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdatePnpServerProfileSyncResult struct { - SyncList *[]RequestDeviceOnboardingPnpUpdatePnpServerProfileSyncResultSyncList `json:"syncList,omitempty"` // - SyncMsg string `json:"syncMsg,omitempty"` // -} -type RequestDeviceOnboardingPnpUpdatePnpServerProfileSyncResultSyncList struct { - DeviceSnList []string `json:"deviceSnList,omitempty"` // - SyncType string `json:"syncType,omitempty"` // + Proxy *bool `json:"proxy,omitempty"` // Proxy + MakeDefault *bool `json:"makeDefault,omitempty"` // Make Default + Port *float64 `json:"port,omitempty"` // Port + ProfileID string `json:"profileId,omitempty"` // Profile Id + Name string `json:"name,omitempty"` // Name + AddressFqdn string `json:"addressFqdn,omitempty"` // Required when cluster is configured with fully qualified domain name (FQDN) + AddressIPV4 string `json:"addressIpV4,omitempty"` // Required when cluster is configured with IPv4 + AddressIPV6 string `json:"addressIpV6,omitempty"` // Required when cluster is configured with IPv6 + Cert string `json:"cert,omitempty"` // Cert } type RequestDeviceOnboardingPnpAddAWorkflow struct { TypeID string `json:"_id,omitempty"` // @@ -3891,23 +2968,23 @@ type RequestDeviceOnboardingPnpUpdateWorkflowTasksWorkItemList struct { TimeTaken *int `json:"timeTaken,omitempty"` // } -//GetDeviceList2 Get Device list - e6b3-db80-46c9-9654 -/* Returns list of devices based on filter crieteria. If a limit is not specified, it will default to return 50 devices. Pagination and sorting are also supported by this endpoint +//GetDeviceListSiteManagement Get Device list - e6b3-db80-46c9-9654 +/* Returns list of devices from Plug & Play based on filter criteria. Returns 50 devices by default. This endpoint supports Pagination and Sorting. -@param GetDeviceList2QueryParams Filtering parameter +@param GetDeviceListSiteManagementQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-list2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-list-site-management-v1 */ -func (s *DeviceOnboardingPnpService) GetDeviceList2(GetDeviceList2QueryParams *GetDeviceList2QueryParams) (*ResponseDeviceOnboardingPnpGetDeviceList2, *resty.Response, error) { +func (s *DeviceOnboardingPnpService) GetDeviceListSiteManagement(GetDeviceListSiteManagementQueryParams *GetDeviceListSiteManagementQueryParams) (*ResponseDeviceOnboardingPnpGetDeviceListSiteManagement, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device" - queryString, _ := query.Values(GetDeviceList2QueryParams) + queryString, _ := query.Values(GetDeviceListSiteManagementQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDeviceOnboardingPnpGetDeviceList2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDeviceOnboardingPnpGetDeviceListSiteManagement{}). SetError(&Error). Get(path) @@ -3918,12 +2995,12 @@ func (s *DeviceOnboardingPnpService) GetDeviceList2(GetDeviceList2QueryParams *G if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceList2(GetDeviceList2QueryParams) + return s.GetDeviceListSiteManagement(GetDeviceListSiteManagementQueryParams) } - return nil, response, fmt.Errorf("error with operation GetDeviceList2") + return nil, response, fmt.Errorf("error with operation GetDeviceListSiteManagement") } - result := response.Result().(*ResponseDeviceOnboardingPnpGetDeviceList2) + result := response.Result().(*ResponseDeviceOnboardingPnpGetDeviceListSiteManagement) return result, response, err } @@ -3934,7 +3011,7 @@ func (s *DeviceOnboardingPnpService) GetDeviceList2(GetDeviceList2QueryParams *G @param GetDeviceCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-count-v1 */ func (s *DeviceOnboardingPnpService) GetDeviceCount(GetDeviceCountQueryParams *GetDeviceCountQueryParams) (*ResponseDeviceOnboardingPnpGetDeviceCount, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/count" @@ -3971,7 +3048,7 @@ func (s *DeviceOnboardingPnpService) GetDeviceCount(GetDeviceCountQueryParams *G @param GetDeviceHistoryQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-history +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-history-v1 */ func (s *DeviceOnboardingPnpService) GetDeviceHistory(GetDeviceHistoryQueryParams *GetDeviceHistoryQueryParams) (*ResponseDeviceOnboardingPnpGetDeviceHistory, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/history" @@ -4003,7 +3080,7 @@ func (s *DeviceOnboardingPnpService) GetDeviceHistory(GetDeviceHistoryQueryParam } //GetSyncResultForVirtualAccount Get Sync Result for Virtual Account - 0a9c-9884-45cb-91c8 -/* Returns the summary of devices synced from the given smart account & virtual account with PnP +/* Returns the summary of devices synced from the given smart account & virtual account with PnP (Deprecated) @param domain domain path parameter. Smart Account Domain @@ -4011,7 +3088,7 @@ func (s *DeviceOnboardingPnpService) GetDeviceHistory(GetDeviceHistoryQueryParam @param name name path parameter. Virtual Account Name -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-sync-result-for-virtual-account +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-sync-result-for-virtual-account-v1 */ func (s *DeviceOnboardingPnpService) GetSyncResultForVirtualAccount(domain string, name string) (*ResponseDeviceOnboardingPnpGetSyncResultForVirtualAccount, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/sacct/{domain}/vacct/{name}/sync-result" @@ -4048,7 +3125,7 @@ func (s *DeviceOnboardingPnpService) GetSyncResultForVirtualAccount(domain strin @param id id path parameter. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-by-id-v1 */ func (s *DeviceOnboardingPnpService) GetDeviceByID(id string) (*ResponseDeviceOnboardingPnpGetDeviceByID, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/{id}" @@ -4083,7 +3160,7 @@ func (s *DeviceOnboardingPnpService) GetDeviceByID(id string) (*ResponseDeviceOn -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-pnp-global-settings +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-pnp-global-settings-v1 */ func (s *DeviceOnboardingPnpService) GetPnpGlobalSettings() (*ResponseDeviceOnboardingPnpGetPnpGlobalSettings, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-settings" @@ -4117,7 +3194,7 @@ func (s *DeviceOnboardingPnpService) GetPnpGlobalSettings() (*ResponseDeviceOnbo -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-smart-account-list +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-smart-account-list-v1 */ func (s *DeviceOnboardingPnpService) GetSmartAccountList() (*ResponseDeviceOnboardingPnpGetSmartAccountList, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-settings/sacct" @@ -4153,7 +3230,7 @@ func (s *DeviceOnboardingPnpService) GetSmartAccountList() (*ResponseDeviceOnboa @param domain domain path parameter. Smart Account Domain -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-virtual-account-list +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-virtual-account-list-v1 */ func (s *DeviceOnboardingPnpService) GetVirtualAccountList(domain string) (*ResponseDeviceOnboardingPnpGetVirtualAccountList, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-settings/sacct/{domain}/vacct" @@ -4189,7 +3266,7 @@ func (s *DeviceOnboardingPnpService) GetVirtualAccountList(domain string) (*Resp @param GetWorkflowsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-workflows +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-workflows-v1 */ func (s *DeviceOnboardingPnpService) GetWorkflows(GetWorkflowsQueryParams *GetWorkflowsQueryParams) (*ResponseDeviceOnboardingPnpGetWorkflows, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-workflow" @@ -4226,7 +3303,7 @@ func (s *DeviceOnboardingPnpService) GetWorkflows(GetWorkflowsQueryParams *GetWo @param GetWorkflowCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-workflow-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-workflow-count-v1 */ func (s *DeviceOnboardingPnpService) GetWorkflowCount(GetWorkflowCountQueryParams *GetWorkflowCountQueryParams) (*ResponseDeviceOnboardingPnpGetWorkflowCount, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-workflow/count" @@ -4263,7 +3340,7 @@ func (s *DeviceOnboardingPnpService) GetWorkflowCount(GetWorkflowCountQueryParam @param id id path parameter. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-workflow-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-workflow-by-id-v1 */ func (s *DeviceOnboardingPnpService) GetWorkflowByID(id string) (*ResponseDeviceOnboardingPnpGetWorkflowByID, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-workflow/{id}" @@ -4293,12 +3370,49 @@ func (s *DeviceOnboardingPnpService) GetWorkflowByID(id string) (*ResponseDevice } +//AuthorizeDevice Authorize Device - 2897-4ae4-4ae9-a1dc +/* Authorizes one of more devices. A device can only be authorized if Authorization is set in Device Settings. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!authorize-device-v1 +*/ +func (s *DeviceOnboardingPnpService) AuthorizeDevice(requestDeviceOnboardingPnpAuthorizeDevice *RequestDeviceOnboardingPnpAuthorizeDevice) (*ResponseDeviceOnboardingPnpAuthorizeDevice, *resty.Response, error) { + path := "/api/v1/onboarding/pnp-device/authorize" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestDeviceOnboardingPnpAuthorizeDevice). + SetResult(&ResponseDeviceOnboardingPnpAuthorizeDevice{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AuthorizeDevice(requestDeviceOnboardingPnpAuthorizeDevice) + } + + return nil, response, fmt.Errorf("error with operation AuthorizeDevice") + } + + result := response.Result().(*ResponseDeviceOnboardingPnpAuthorizeDevice) + return result, response, err + +} + //AddDevice Add Device - f3b2-6b55-44ca-bab9 /* Adds a device to the PnP database. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-device-v1 */ func (s *DeviceOnboardingPnpService) AddDevice(requestDeviceOnboardingPnpAddDevice *RequestDeviceOnboardingPnpAddDevice) (*ResponseDeviceOnboardingPnpAddDevice, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device" @@ -4335,7 +3449,7 @@ func (s *DeviceOnboardingPnpService) AddDevice(requestDeviceOnboardingPnpAddDevi -Documentation Link: https://developer.cisco.com/docs/dna-center/#!claim-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!claim-device-v1 */ func (s *DeviceOnboardingPnpService) ClaimDevice(requestDeviceOnboardingPnpClaimDevice *RequestDeviceOnboardingPnpClaimDevice) (*ResponseDeviceOnboardingPnpClaimDevice, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/claim" @@ -4372,7 +3486,7 @@ func (s *DeviceOnboardingPnpService) ClaimDevice(requestDeviceOnboardingPnpClaim -Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-devices-in-bulk +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-devices-in-bulk-v1 */ func (s *DeviceOnboardingPnpService) ImportDevicesInBulk(requestDeviceOnboardingPnpImportDevicesInBulk *RequestDeviceOnboardingPnpImportDevicesInBulk) (*ResponseDeviceOnboardingPnpImportDevicesInBulk, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/import" @@ -4409,7 +3523,7 @@ func (s *DeviceOnboardingPnpService) ImportDevicesInBulk(requestDeviceOnboarding -Documentation Link: https://developer.cisco.com/docs/dna-center/#!reset-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!reset-device-v1 */ func (s *DeviceOnboardingPnpService) ResetDevice(requestDeviceOnboardingPnpResetDevice *RequestDeviceOnboardingPnpResetDevice) (*ResponseDeviceOnboardingPnpResetDevice, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/reset" @@ -4442,15 +3556,15 @@ func (s *DeviceOnboardingPnpService) ResetDevice(requestDeviceOnboardingPnpReset } //ClaimADeviceToASite Claim a Device to a Site - 5889-fb84-4939-a13b -/* Claim a device based on DNA-C Site-based design process. Some required parameters differ based on device platform: +/* Claim a device based on Catalyst Center Site-based design process. Some required parameters differ based on device platform: Default/StackSwitch: imageInfo, configInfo. AccessPoints: rfProfile. Sensors: sensorProfile. -CatalystWLC/MobilityExpress/EWC: staticIP, subnetMask, gateway. vlanID and ipInterfaceName are also allowed for Catalyst 9800 WLCs. +CatalystWLC/MobilityExpress/EWC: staticIP, subnetMask, gateway. vlanId and ipInterfaceName are also allowed for Catalyst 9800 WLCs. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!claim-a-device-to-a-site +Documentation Link: https://developer.cisco.com/docs/dna-center/#!claim-a-device-to-a-site-v1 */ func (s *DeviceOnboardingPnpService) ClaimADeviceToASite(requestDeviceOnboardingPnpClaimADeviceToASite *RequestDeviceOnboardingPnpClaimADeviceToASite) (*ResponseDeviceOnboardingPnpClaimADeviceToASite, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/site-claim" @@ -4487,7 +3601,7 @@ func (s *DeviceOnboardingPnpService) ClaimADeviceToASite(requestDeviceOnboarding -Documentation Link: https://developer.cisco.com/docs/dna-center/#!preview-config +Documentation Link: https://developer.cisco.com/docs/dna-center/#!preview-config-v1 */ func (s *DeviceOnboardingPnpService) PreviewConfig(requestDeviceOnboardingPnpPreviewConfig *RequestDeviceOnboardingPnpPreviewConfig) (*ResponseDeviceOnboardingPnpPreviewConfig, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/site-config-preview" @@ -4520,11 +3634,11 @@ func (s *DeviceOnboardingPnpService) PreviewConfig(requestDeviceOnboardingPnpPre } //UnClaimDevice Un-Claim Device - 0b83-6b7b-4b6a-9fd5 -/* Un-Claims one of more devices with specified workflow +/* Un-Claims one of more devices with specified workflow (Deprecated). -Documentation Link: https://developer.cisco.com/docs/dna-center/#!un-claim-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!un-claim-device-v1 */ func (s *DeviceOnboardingPnpService) UnClaimDevice(requestDeviceOnboardingPnpUnClaimDevice *RequestDeviceOnboardingPnpUnClaimDevice) (*ResponseDeviceOnboardingPnpUnClaimDevice, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/unclaim" @@ -4557,11 +3671,11 @@ func (s *DeviceOnboardingPnpService) UnClaimDevice(requestDeviceOnboardingPnpUnC } //SyncVirtualAccountDevices Sync Virtual Account Devices - a4b6-c87a-4ffb-9efa -/* Synchronizes the device info from the given smart account & virtual account with the PnP database. The response payload returns a list of synced devices +/* Synchronizes the device info from the given smart account & virtual account with the PnP database. The response payload returns a list of synced devices (Deprecated). -Documentation Link: https://developer.cisco.com/docs/dna-center/#!sync-virtual-account-devices +Documentation Link: https://developer.cisco.com/docs/dna-center/#!sync-virtual-account-devices-v1 */ func (s *DeviceOnboardingPnpService) SyncVirtualAccountDevices(requestDeviceOnboardingPnpSyncVirtualAccountDevices *RequestDeviceOnboardingPnpSyncVirtualAccountDevices) (*ResponseDeviceOnboardingPnpSyncVirtualAccountDevices, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-device/vacct-sync" @@ -4598,7 +3712,7 @@ func (s *DeviceOnboardingPnpService) SyncVirtualAccountDevices(requestDeviceOnbo -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-virtual-account +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-virtual-account-v1 */ func (s *DeviceOnboardingPnpService) AddVirtualAccount(requestDeviceOnboardingPnpAddVirtualAccount *RequestDeviceOnboardingPnpAddVirtualAccount) (*ResponseDeviceOnboardingPnpAddVirtualAccount, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-settings/savacct" @@ -4635,7 +3749,7 @@ func (s *DeviceOnboardingPnpService) AddVirtualAccount(requestDeviceOnboardingPn -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-a-workflow +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-a-workflow-v1 */ func (s *DeviceOnboardingPnpService) AddAWorkflow(requestDeviceOnboardingPnpAddAWorkflow *RequestDeviceOnboardingPnpAddAWorkflow) (*ResponseDeviceOnboardingPnpAddAWorkflow, *resty.Response, error) { path := "/dna/intent/api/v1/onboarding/pnp-workflow" @@ -4809,7 +3923,7 @@ func (s *DeviceOnboardingPnpService) UpdateWorkflow(id string, requestDeviceOnbo @param id id path parameter. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-device-by-id-from-pnp +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-device-by-id-from-pnp-v1 */ func (s *DeviceOnboardingPnpService) DeleteDeviceByIDFromPnp(id string) (*ResponseDeviceOnboardingPnpDeleteDeviceByIDFromPnp, *resty.Response, error) { //id string @@ -4830,7 +3944,8 @@ func (s *DeviceOnboardingPnpService) DeleteDeviceByIDFromPnp(id string) (*Respon if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteDeviceByIDFromPnp(id) + return s.DeleteDeviceByIDFromPnp( + id) } return nil, response, fmt.Errorf("error with operation DeleteDeviceByIdFromPnp") } @@ -4846,7 +3961,7 @@ func (s *DeviceOnboardingPnpService) DeleteDeviceByIDFromPnp(id string) (*Respon @param DeregisterVirtualAccountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!deregister-virtual-account +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deregister-virtual-account-v1 */ func (s *DeviceOnboardingPnpService) DeregisterVirtualAccount(DeregisterVirtualAccountQueryParams *DeregisterVirtualAccountQueryParams) (*ResponseDeviceOnboardingPnpDeregisterVirtualAccount, *resty.Response, error) { //DeregisterVirtualAccountQueryParams *DeregisterVirtualAccountQueryParams @@ -4868,7 +3983,8 @@ func (s *DeviceOnboardingPnpService) DeregisterVirtualAccount(DeregisterVirtualA if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeregisterVirtualAccount(DeregisterVirtualAccountQueryParams) + return s.DeregisterVirtualAccount( + DeregisterVirtualAccountQueryParams) } return nil, response, fmt.Errorf("error with operation DeregisterVirtualAccount") } @@ -4884,7 +4000,7 @@ func (s *DeviceOnboardingPnpService) DeregisterVirtualAccount(DeregisterVirtualA @param id id path parameter. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-workflow-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-workflow-by-id-v1 */ func (s *DeviceOnboardingPnpService) DeleteWorkflowByID(id string) (*ResponseDeviceOnboardingPnpDeleteWorkflowByID, *resty.Response, error) { //id string @@ -4905,7 +4021,8 @@ func (s *DeviceOnboardingPnpService) DeleteWorkflowByID(id string) (*ResponseDev if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteWorkflowByID(id) + return s.DeleteWorkflowByID( + id) } return nil, response, fmt.Errorf("error with operation DeleteWorkflowById") } diff --git a/sdk/device_replacement.go b/sdk/device_replacement.go index 2b24c6b..24b6ae7 100644 --- a/sdk/device_replacement.go +++ b/sdk/device_replacement.go @@ -32,20 +32,22 @@ type ResponseDeviceReplacementReturnListOfReplacementDevicesWithReplacementDetai Version string `json:"version,omitempty"` // } type ResponseDeviceReplacementReturnListOfReplacementDevicesWithReplacementDetailsResponse struct { - CreationTime *int `json:"creationTime,omitempty"` // - Family string `json:"family,omitempty"` // - FaultyDeviceID string `json:"faultyDeviceId,omitempty"` // - FaultyDeviceName string `json:"faultyDeviceName,omitempty"` // - FaultyDevicePlatform string `json:"faultyDevicePlatform,omitempty"` // - FaultyDeviceSerialNumber string `json:"faultyDeviceSerialNumber,omitempty"` // - ID string `json:"id,omitempty"` // - NeighbourDeviceID string `json:"neighbourDeviceId,omitempty"` // - NetworkReadinessTaskID string `json:"networkReadinessTaskId,omitempty"` // - ReplacementDevicePlatform string `json:"replacementDevicePlatform,omitempty"` // - ReplacementDeviceSerialNumber string `json:"replacementDeviceSerialNumber,omitempty"` // - ReplacementStatus string `json:"replacementStatus,omitempty"` // - ReplacementTime *int `json:"replacementTime,omitempty"` // - WorkflowID string `json:"workflowId,omitempty"` // + CreationTime *int `json:"creationTime,omitempty"` // Date and time of marking the device for replacement + Family string `json:"family,omitempty"` // Faulty device family + FaultyDeviceID string `json:"faultyDeviceId,omitempty"` // Unique identifier of the faulty device + FaultyDeviceName string `json:"faultyDeviceName,omitempty"` // Faulty device name + FaultyDevicePlatform string `json:"faultyDevicePlatform,omitempty"` // Faulty device platform + FaultyDeviceSerialNumber string `json:"faultyDeviceSerialNumber,omitempty"` // Faulty device serial number + ID string `json:"id,omitempty"` // Unique identifier of the device replacement resource + NeighbourDeviceID string `json:"neighbourDeviceId,omitempty"` // Unique identifier of the neighbor device to create the DHCP server + NetworkReadinessTaskID string `json:"networkReadinessTaskId,omitempty"` // Unique identifier of network readiness task + ReplacementDevicePlatform string `json:"replacementDevicePlatform,omitempty"` // Replacement device platform + ReplacementDeviceSerialNumber string `json:"replacementDeviceSerialNumber,omitempty"` // Replacement device serial number + ReplacementStatus string `json:"replacementStatus,omitempty"` // Device Replacement status + ReplacementTime *int `json:"replacementTime,omitempty"` // Date and time of device replacement + WorkflowID string `json:"workflowId,omitempty"` // Unique identifier of the device replacement workflow + WorkflowFailedStep string `json:"workflowFailedStep,omitempty"` // Step in which the device replacement failed + ReadinesscheckTaskID string `json:"readinesscheckTaskId,omitempty"` // Unique identifier of the readiness check task for the replacement device } type ResponseDeviceReplacementUnmarkDeviceForReplacement struct { Response *ResponseDeviceReplacementUnmarkDeviceForReplacementResponse `json:"response,omitempty"` // @@ -77,41 +79,41 @@ type ResponseDeviceReplacementDeployDeviceReplacementWorkflowResponse struct { } type RequestDeviceReplacementUnmarkDeviceForReplacement []RequestItemDeviceReplacementUnmarkDeviceForReplacement // Array of RequestDeviceReplacementUnMarkDeviceForReplacement type RequestItemDeviceReplacementUnmarkDeviceForReplacement struct { - CreationTime *int `json:"creationTime,omitempty"` // - Family string `json:"family,omitempty"` // - FaultyDeviceID string `json:"faultyDeviceId,omitempty"` // - FaultyDeviceName string `json:"faultyDeviceName,omitempty"` // - FaultyDevicePlatform string `json:"faultyDevicePlatform,omitempty"` // - FaultyDeviceSerialNumber string `json:"faultyDeviceSerialNumber,omitempty"` // - ID string `json:"id,omitempty"` // - NeighbourDeviceID string `json:"neighbourDeviceId,omitempty"` // - NetworkReadinessTaskID string `json:"networkReadinessTaskId,omitempty"` // - ReplacementDevicePlatform string `json:"replacementDevicePlatform,omitempty"` // - ReplacementDeviceSerialNumber string `json:"replacementDeviceSerialNumber,omitempty"` // - ReplacementStatus string `json:"replacementStatus,omitempty"` // - ReplacementTime *int `json:"replacementTime,omitempty"` // - WorkflowID string `json:"workflowId,omitempty"` // + CreationTime *int `json:"creationTime,omitempty"` // Date and time of marking the device for replacement + Family string `json:"family,omitempty"` // Faulty device family + FaultyDeviceID string `json:"faultyDeviceId,omitempty"` // Unique identifier of the faulty device + FaultyDeviceName string `json:"faultyDeviceName,omitempty"` // Faulty device name + FaultyDevicePlatform string `json:"faultyDevicePlatform,omitempty"` // Faulty device platform + FaultyDeviceSerialNumber string `json:"faultyDeviceSerialNumber,omitempty"` // Faulty device serial number + ID string `json:"id,omitempty"` // Unique identifier of the device replacement resource + NeighbourDeviceID string `json:"neighbourDeviceId,omitempty"` // Unique identifier of the neighbor device to create the DHCP server + NetworkReadinessTaskID string `json:"networkReadinessTaskId,omitempty"` // Unique identifier of network readiness task + ReplacementDevicePlatform string `json:"replacementDevicePlatform,omitempty"` // Replacement device platform + ReplacementDeviceSerialNumber string `json:"replacementDeviceSerialNumber,omitempty"` // Replacement device serial number + ReplacementStatus string `json:"replacementStatus,omitempty"` // Device replacement status. Use NON-FAULTY to unmark the device for replacement. + ReplacementTime *int `json:"replacementTime,omitempty"` // Date and time of device replacement + WorkflowID string `json:"workflowId,omitempty"` // Unique identifier of the device replacement workflow } type RequestDeviceReplacementMarkDeviceForReplacement []RequestItemDeviceReplacementMarkDeviceForReplacement // Array of RequestDeviceReplacementMarkDeviceForReplacement type RequestItemDeviceReplacementMarkDeviceForReplacement struct { - CreationTime *int `json:"creationTime,omitempty"` // - Family string `json:"family,omitempty"` // - FaultyDeviceID string `json:"faultyDeviceId,omitempty"` // - FaultyDeviceName string `json:"faultyDeviceName,omitempty"` // - FaultyDevicePlatform string `json:"faultyDevicePlatform,omitempty"` // - FaultyDeviceSerialNumber string `json:"faultyDeviceSerialNumber,omitempty"` // - ID string `json:"id,omitempty"` // - NeighbourDeviceID string `json:"neighbourDeviceId,omitempty"` // - NetworkReadinessTaskID string `json:"networkReadinessTaskId,omitempty"` // - ReplacementDevicePlatform string `json:"replacementDevicePlatform,omitempty"` // - ReplacementDeviceSerialNumber string `json:"replacementDeviceSerialNumber,omitempty"` // - ReplacementStatus string `json:"replacementStatus,omitempty"` // - ReplacementTime *int `json:"replacementTime,omitempty"` // - WorkflowID string `json:"workflowId,omitempty"` // + CreationTime *int `json:"creationTime,omitempty"` // Date and time of marking the device for replacement + Family string `json:"family,omitempty"` // Faulty device family + FaultyDeviceID string `json:"faultyDeviceId,omitempty"` // Unique identifier of the faulty device + FaultyDeviceName string `json:"faultyDeviceName,omitempty"` // Faulty device name + FaultyDevicePlatform string `json:"faultyDevicePlatform,omitempty"` // Faulty device platform + FaultyDeviceSerialNumber string `json:"faultyDeviceSerialNumber,omitempty"` // Faulty device serial number + ID string `json:"id,omitempty"` // Unique identifier of the device replacement resource + NeighbourDeviceID string `json:"neighbourDeviceId,omitempty"` // Unique identifier of the neighbor device to create the DHCP server + NetworkReadinessTaskID string `json:"networkReadinessTaskId,omitempty"` // Unique identifier of network readiness task + ReplacementDevicePlatform string `json:"replacementDevicePlatform,omitempty"` // Replacement device platform + ReplacementDeviceSerialNumber string `json:"replacementDeviceSerialNumber,omitempty"` // Replacement device serial number + ReplacementStatus string `json:"replacementStatus,omitempty"` // Device replacement status. Use MARKED-FOR-REPLACEMENT to mark the device for replacement. + ReplacementTime *int `json:"replacementTime,omitempty"` // Date and time of device replacement + WorkflowID string `json:"workflowId,omitempty"` // Unique identifier of the device replacement workflow } type RequestDeviceReplacementDeployDeviceReplacementWorkflow struct { - FaultyDeviceSerialNumber string `json:"faultyDeviceSerialNumber,omitempty"` // - ReplacementDeviceSerialNumber string `json:"replacementDeviceSerialNumber,omitempty"` // + FaultyDeviceSerialNumber string `json:"faultyDeviceSerialNumber,omitempty"` // Faulty device serial number + ReplacementDeviceSerialNumber string `json:"replacementDeviceSerialNumber,omitempty"` // Replacement device serial number } //ReturnListOfReplacementDevicesWithReplacementDetails Return list of replacement devices with replacement details - 809c-2956-4bc9-97d0 @@ -120,7 +122,7 @@ type RequestDeviceReplacementDeployDeviceReplacementWorkflow struct { @param ReturnListOfReplacementDevicesWithReplacementDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!return-list-of-replacement-devices-with-replacement-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!return-list-of-replacement-devices-with-replacement-details-v1 */ func (s *DeviceReplacementService) ReturnListOfReplacementDevicesWithReplacementDetails(ReturnListOfReplacementDevicesWithReplacementDetailsQueryParams *ReturnListOfReplacementDevicesWithReplacementDetailsQueryParams) (*ResponseDeviceReplacementReturnListOfReplacementDevicesWithReplacementDetails, *resty.Response, error) { path := "/dna/intent/api/v1/device-replacement" @@ -157,7 +159,7 @@ func (s *DeviceReplacementService) ReturnListOfReplacementDevicesWithReplacement @param ReturnReplacementDevicesCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!return-replacement-devices-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!return-replacement-devices-count-v1 */ func (s *DeviceReplacementService) ReturnReplacementDevicesCount(ReturnReplacementDevicesCountQueryParams *ReturnReplacementDevicesCountQueryParams) (*ResponseDeviceReplacementReturnReplacementDevicesCount, *resty.Response, error) { path := "/dna/intent/api/v1/device-replacement/count" @@ -193,7 +195,7 @@ func (s *DeviceReplacementService) ReturnReplacementDevicesCount(ReturnReplaceme -Documentation Link: https://developer.cisco.com/docs/dna-center/#!mark-device-for-replacement +Documentation Link: https://developer.cisco.com/docs/dna-center/#!mark-device-for-replacement-v1 */ func (s *DeviceReplacementService) MarkDeviceForReplacement(requestDeviceReplacementMarkDeviceForReplacement *RequestDeviceReplacementMarkDeviceForReplacement) (*ResponseDeviceReplacementMarkDeviceForReplacement, *resty.Response, error) { path := "/dna/intent/api/v1/device-replacement" @@ -230,7 +232,7 @@ func (s *DeviceReplacementService) MarkDeviceForReplacement(requestDeviceReplace -Documentation Link: https://developer.cisco.com/docs/dna-center/#!deploy-device-replacement-workflow +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deploy-device-replacement-workflow-v1 */ func (s *DeviceReplacementService) DeployDeviceReplacementWorkflow(requestDeviceReplacementDeployDeviceReplacementWorkflow *RequestDeviceReplacementDeployDeviceReplacementWorkflow) (*ResponseDeviceReplacementDeployDeviceReplacementWorkflow, *resty.Response, error) { path := "/dna/intent/api/v1/device-replacement/workflow" diff --git a/sdk/devices.go b/sdk/devices.go index e29e1b5..9a68ce8 100644 --- a/sdk/devices.go +++ b/sdk/devices.go @@ -11,39 +11,198 @@ import ( type DevicesService service +type QueryAssuranceEventsQueryParams struct { + DeviceFamily string `url:"deviceFamily,omitempty"` //Device family. Please note that multiple families across network device type and client type is not allowed. For example, choosing `Routers` along with `Wireless Client` or `Unified AP` is not supported. Examples: `deviceFamily=Switches and Hubs` (single deviceFamily requested) `deviceFamily=Switches and Hubs&deviceFamily=Routers` (multiple deviceFamily requested) + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time minus 24 hours. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `endTime` is not provided, API will default to current time. + MessageType string `url:"messageType,omitempty"` //Message type for the event. Examples: `messageType=Syslog` (single messageType requested) `messageType=Trap&messageType=Syslog` (multiple messageType requested) + Severity float64 `url:"severity,omitempty"` //Severity of the event between 0 and 6. This is applicable only for events related to network devices (other than AP) and `Wired Client` events. | Value | Severity | | ----- | ----------- | | 0 | Emergency | | 1 | Alert | | 2 | Critical | | 3 | Error | | 4 | Warning | | 5 | Notice | | 6 | Info | Examples: `severity=0` (single severity requested) `severity=0&severity=1` (multiple severity requested) + SiteID string `url:"siteId,omitempty"` //The UUID of the site. (Ex. `flooruuid`) Examples: `?siteId=id1` (single siteId requested) `?siteId=id1&siteId=id2&siteId=id3` (multiple siteId requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*` Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyId requested) + NetworkDeviceName string `url:"networkDeviceName,omitempty"` //Network device name. This parameter is applicable for network device related families. This field supports wildcard (`*`) character-based search. Ex: `*Branch*` or `Branch*` or `*Branch` Examples: `networkDeviceName=Branch-3-Gateway` (single networkDeviceName requested) `networkDeviceName=Branch-3-Gateway&networkDeviceName=Branch-3-Switch` (multiple networkDeviceName requested) + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //The list of Network Device Uuids. (Ex. `6bef213c-19ca-4170-8375-b694e251101c`) Examples: `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c` (single networkDeviceId requested) `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c&networkDeviceId=32219612-819e-4b5e-a96b-cf22aca13dd9&networkDeviceId=2541e9a7-b80d-4955-8aa2-79b233318ba0` (multiple networkDeviceId with & separator) + ApMac string `url:"apMac,omitempty"` //MAC address of the access point. This parameter is applicable for `Unified AP` and `Wireless Client` events. This field supports wildcard (`*`) character-based search. Ex: `*50:0F*` or `50:0F*` or `*50:0F` Examples: `apMac=50:0F:80:0F:F7:E0` (single apMac requested) `apMac=50:0F:80:0F:F7:E0&apMac=18:80:90:AB:7E:A0` (multiple apMac requested) + ClientMac string `url:"clientMac,omitempty"` //MAC address of the client. This parameter is applicable for `Wired Client` and `Wireless Client` events. This field supports wildcard (`*`) character-based search. Ex: `*66:2B*` or `66:2B*` or `*66:2B` Examples: `clientMac=66:2B:B8:D2:01:56` (single clientMac requested) `clientMac=66:2B:B8:D2:01:56&clientMac=DC:A6:32:F5:5A:89` (multiple clientMac requested) + Attribute string `url:"attribute,omitempty"` //The list of attributes that needs to be included in the response. If this parameter is not provided, then basic attributes (`id`, `name`, `timestamp`, `details`, `messageType`, `siteHierarchyId`, `siteHierarchy`, `deviceFamily`, `networkDeviceId`, `networkDeviceName`, `managementIpAddress`) would be part of the response. Examples: `attribute=name` (single attribute requested) `attribute=name&attribute=networkDeviceName` (multiple attribute requested) + View string `url:"view,omitempty"` //The list of events views. Please refer to `EventViews` for the supported list Examples: `view=network` (single view requested) `view=network&view=ap` (multiple view requested) + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return + SortBy string `url:"sortBy,omitempty"` //A field within the response to sort by. + Order string `url:"order,omitempty"` //The sort order of the field ascending or descending. +} +type QueryAssuranceEventsHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type CountTheNumberOfEventsQueryParams struct { + DeviceFamily string `url:"deviceFamily,omitempty"` //Device family. Please note that multiple families across network device type and client type is not allowed. For example, choosing `Routers` along with `Wireless Client` or `Unified AP` is not supported. Examples: `deviceFamily=Switches and Hubs` (single deviceFamily requested) `deviceFamily=Switches and Hubs&deviceFamily=Routers` (multiple deviceFamily requested) + StartTime string `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time minus 24 hours. + EndTime string `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `endTime` is not provided, API will default to current time. + MessageType string `url:"messageType,omitempty"` //Message type for the event. Examples: `messageType=Syslog` (single messageType requested) `messageType=Trap&messageType=Syslog` (multiple messageType requested) + Severity string `url:"severity,omitempty"` //Severity of the event between 0 and 6. This is applicable only for events related to network devices (other than AP) and `Wired Client` events. | Value | Severity | | ----- | ----------- | | 0 | Emergency | | 1 | Alert | | 2 | Critical | | 3 | Error | | 4 | Warning | | 5 | Notice | | 6 | Info | Examples: `severity=0` (single severity requested) `severity=0&severity=1` (multiple severity requested) + SiteID string `url:"siteId,omitempty"` //The UUID of the site. (Ex. `flooruuid`) Examples: `?siteId=id1` (single siteId requested) `?siteId=id1&siteId=id2&siteId=id3` (multiple siteId requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*` Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyId requested) + NetworkDeviceName string `url:"networkDeviceName,omitempty"` //Network device name. This parameter is applicable for network device related families. This field supports wildcard (`*`) character-based search. Ex: `*Branch*` or `Branch*` or `*Branch` Examples: `networkDeviceName=Branch-3-Gateway` (single networkDeviceName requested) `networkDeviceName=Branch-3-Gateway&networkDeviceName=Branch-3-Switch` (multiple networkDeviceName requested) + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //The list of Network Device Uuids. (Ex. `6bef213c-19ca-4170-8375-b694e251101c`) Examples: `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c` (single networkDeviceId requested) `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c&networkDeviceId=32219612-819e-4b5e-a96b-cf22aca13dd9&networkDeviceId=2541e9a7-b80d-4955-8aa2-79b233318ba0` (multiple networkDeviceId requested) + ApMac string `url:"apMac,omitempty"` //MAC address of the access point. This parameter is applicable for `Unified AP` and `Wireless Client` events. This field supports wildcard (`*`) character-based search. Ex: `*50:0F*` or `50:0F*` or `*50:0F` Examples: `apMac=50:0F:80:0F:F7:E0` (single apMac requested) `apMac=50:0F:80:0F:F7:E0&apMac=18:80:90:AB:7E:A0` (multiple apMac requested) + ClientMac string `url:"clientMac,omitempty"` //MAC address of the client. This parameter is applicable for `Wired Client` and `Wireless Client` events. This field supports wildcard (`*`) character-based search. Ex: `*66:2B*` or `66:2B*` or `*66:2B` Examples: `clientMac=66:2B:B8:D2:01:56` (single clientMac requested) `clientMac=66:2B:B8:D2:01:56&clientMac=DC:A6:32:F5:5A:89` (multiple clientMac requested) +} +type CountTheNumberOfEventsHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type QueryAssuranceEventsWithFiltersHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type CountTheNumberOfEventsWithFiltersHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type GetDetailsOfASingleAssuranceEventQueryParams struct { + Attribute string `url:"attribute,omitempty"` //The list of attributes that needs to be included in the response. If this parameter is not provided, then basic attributes (`id`, `name`, `timestamp`, `details`, `messageType`, `siteHierarchyId`, `siteHierarchy`, `deviceFamily`, `networkDeviceId`, `networkDeviceName`, `managementIpAddress`) would be part of the response. Examples: `attribute=name` (single attribute requested) `attribute=name&attribute=networkDeviceName` (multiple attribute requested) + View string `url:"view,omitempty"` //The list of events views. Please refer to `EventViews` for the supported list Examples: `view=network` (single view requested) `view=network&view=ap` (multiple view requested) +} +type GetDetailsOfASingleAssuranceEventHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type GetListOfChildEventsForTheGivenWirelessClientEventHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + SortBy string `url:"sortBy,omitempty"` //A field within the response to sort by. + Order string `url:"order,omitempty"` //The sort order of the field ascending or descending. + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (`*`) character search support. E.g. `*/San*, */San, /San*` Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*` Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteID string `url:"siteId,omitempty"` //The UUID of the site. (Ex. `flooruuid`) Examples: `?siteId=id1` (single id requested) `?siteId=id1&siteId=id2&siteId=id3` (multiple ids requested) + View string `url:"view,omitempty"` //The specific summary view being requested. This is an optional parameter which can be passed to get one or more of the specific view associated fields. The default view is ``configuration``. ### Response data proviced by each view: 1. **configuration** [id,adminStatus,description,duplexConfig,duplexOper,interfaceIfIndex,interfaceType,ipv4Address,ipv6AddressList,isL3Interface,isWan,macAddress,mediaType,name,operStatus, portChannelId,portMode, portType,speed,timestamp,vlanId,networkDeviceId,networkDeviceIpAddress,networkDeviceMacAddress,siteName,siteHierarchy,siteHierarchyId] 2. **statistics** [id,name,rxDiscards,rxError,rxRate,rxUtilization,txDiscards,txError,txRate,txUtilization,networkDeviceId,networkDeviceIpAddress,networkDeviceMacAddress,siteName,siteHierarchy,siteHierarchyId] 3. **stackPort** [id,name,peerStackMember,peerStackPort,stackPortType,networkDeviceId,networkDeviceIpAddress,networkDeviceMacAddress,siteName,siteHierarchy,siteHierarchyId] The default view is configuration, If need to access an additional view, simply include the view name in the query parameter. Examples: view=configuration (single view requested) view=configuration&view=statistic&stackPort (multiple views requested) + Attribute string `url:"attribute,omitempty"` //The following list of attributes can be provided in the attribute field [id,adminStatus, description,duplexConfig,duplexOper,interfaceIfIndex,interfaceType,ipv4Address,ipv6AddressList,isL3Interface,isWan,macAddress,mediaType,name,operStatus,peerStackMember,peerStackPort, portChannelId,portMode, portType,rxDiscards,rxError,rxRate,rxUtilization,speed,stackPortType,timestamp,txDiscards,txError,txRate,txUtilization,vlanId,networkDeviceId,networkDeviceIpAddress,networkDeviceMacAddress,siteName,siteHierarchy,siteHierarchyId] If length of attribute list is too long, please use 'views' param instead. Examples: attributes=name (single attribute requested) attributes=name,description,duplexOper (multiple attributes with comma separator) + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //The list of Network Device Uuids. (Ex. `6bef213c-19ca-4170-8375-b694e251101c`) Examples: `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c` (single networkDeviceId requested) `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c&networkDeviceId=32219612-819e-4b5e-a96b-cf22aca13dd9&networkDeviceId=2541e9a7-b80d-4955-8aa2-79b233318ba0` (multiple networkDeviceIds with & separator) + NetworkDeviceIPAddress string `url:"networkDeviceIpAddress,omitempty"` //The list of Network Device management IP Address. (Ex. `121.1.1.10`) This field supports wildcard (`*`) character-based search. Ex: `*1.1*` or `1.1*` or `*1.1` Examples: `networkDeviceIpAddress=121.1.1.10` `networkDeviceIpAddress=121.1.1.10&networkDeviceIpAddress=172.20.1.10&networkDeviceIpAddress=10.10.20.10` (multiple networkDevice IP Address with & separator) + NetworkDeviceMacAddress string `url:"networkDeviceMacAddress,omitempty"` //The list of Network Device MAC Address. (Ex. `64:f6:9d:07:9a:00`) This field supports wildcard (`*`) character-based search. Ex: `*AB:AB:AB*` or `AB:AB:AB*` or `*AB:AB:AB` Examples: `networkDeviceMacAddress=64:f6:9d:07:9a:00` `networkDeviceMacAddress=64:f6:9d:07:9a:00&networkDeviceMacAddress=70:56:9d:07:ac:77` (multiple networkDevice MAC addresses with & separator) + InterfaceID string `url:"interfaceId,omitempty"` //The list of Interface Uuids. (Ex. `6bef213c-19ca-4170-8375-b694e251101c`) Examples: `interfaceId=6bef213c-19ca-4170-8375-b694e251101c` (single interface uuid ) `interfaceId=6bef213c-19ca-4170-8375-b694e251101c&32219612-819e-4b5e-a96b-cf22aca13dd9&2541e9a7-b80d-4955-8aa2-79b233318ba0` (multiple Interface uuid with & separator) + InterfaceName string `url:"interfaceName,omitempty"` //The list of Interface name (Ex. `GigabitEthernet1/0/1`) This field supports wildcard (`*`) character-based search. Ex: `*1/0/1*` or `1/0/1*` or `*1/0/1` Examples: `interfaceNames=GigabitEthernet1/0/1` (single interface name) `interfaceNames=GigabitEthernet1/0/1&GigabitEthernet2/0/1&GigabitEthernet3/0/1` (multiple interface names with & separator) +} +type GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCountQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (`*`) character search support. E.g. `*/San*, */San, /San*` Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*` Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteID string `url:"siteId,omitempty"` //The UUID of the site. (Ex. `flooruuid`) Examples: `?siteId=id1` (single id requested) `?siteId=id1&siteId=id2&siteId=id3` (multiple ids requested) + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //The list of Network Device Uuids. (Ex. `6bef213c-19ca-4170-8375-b694e251101c`) Examples: `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c` (single networkDeviceId requested) `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c&networkDeviceId=32219612-819e-4b5e-a96b-cf22aca13dd9&networkDeviceId=2541e9a7-b80d-4955-8aa2-79b233318ba0` (multiple networkDeviceIds with & separator) + NetworkDeviceIPAddress string `url:"networkDeviceIpAddress,omitempty"` //The list of Network Device management IP Address. (Ex. `121.1.1.10`) This field supports wildcard (`*`) character-based search. Ex: `*1.1*` or `1.1*` or `*1.1` Examples: `networkDeviceIpAddress=121.1.1.10` `networkDeviceIpAddress=121.1.1.10&networkDeviceIpAddress=172.20.1.10&networkDeviceIpAddress=10.10.20.10` (multiple networkDevice IP Address with & separator) + NetworkDeviceMacAddress string `url:"networkDeviceMacAddress,omitempty"` //The list of Network Device MAC Address. (Ex. `64:f6:9d:07:9a:00`) This field supports wildcard (`*`) character-based search. Ex: `*AB:AB:AB*` or `AB:AB:AB*` or `*AB:AB:AB` Examples: `networkDeviceMacAddress=64:f6:9d:07:9a:00` `networkDeviceMacAddress=64:f6:9d:07:9a:00&networkDeviceMacAddress=70:56:9d:07:ac:77` (multiple networkDevice MAC addresses with & separator) + InterfaceID string `url:"interfaceId,omitempty"` //The list of Interface Uuids. (Ex. `6bef213c-19ca-4170-8375-b694e251101c`) Examples: `interfaceId=6bef213c-19ca-4170-8375-b694e251101c` (single interface uuid ) `interfaceId=6bef213c-19ca-4170-8375-b694e251101c&32219612-819e-4b5e-a96b-cf22aca13dd9&2541e9a7-b80d-4955-8aa2-79b233318ba0` (multiple Interface uuid with & separator) + InterfaceName string `url:"interfaceName,omitempty"` //The list of Interface name (Ex. `GigabitEthernet1/0/1`) This field supports wildcard (`*`) character-based search. Ex: `*1/0/1*` or `1/0/1*` or `*1/0/1` Examples: `interfaceNames=GigabitEthernet1/0/1` (single interface name) `interfaceNames=GigabitEthernet1/0/1&GigabitEthernet2/0/1&GigabitEthernet3/0/1` (multiple interface names with & separator) +} +type GetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsDataQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + View string `url:"view,omitempty"` //Interface data model views + Attribute string `url:"attribute,omitempty"` //The following list of attributes can be provided in the attribute field [id,adminStatus, description,duplexConfig,duplexOper,interfaceIfIndex,interfaceType,ipv4Address,ipv6AddressList,isL3Interface,isWan,macAddress,mediaType,name,operStatus,peerStackMember,peerStackPort, portChannelId,portMode, portType,rxDiscards,rxError,rxRate,rxUtilization,speed,stackPortType,timestamp,txDiscards,txError,txRate,txUtilization,vlanId,networkDeviceId,networkDeviceIpAddress,networkDeviceMacAddress,siteName,siteHierarchy,siteHierarchyId] If length of attribute list is too long, please use 'views' param instead. Examples: attributes=name (single attribute requested) attributes=name,description,duplexOper (multiple attributes with comma separator) +} +type GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + SortBy string `url:"sortBy,omitempty"` //A field within the response to sort by. + Order string `url:"order,omitempty"` //The sort order of the field ascending or descending. + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (*) character search support. E.g. */San*, */San, /San* Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (*) character search support. E.g. `*uuid*, *uuid, uuid* Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteID string `url:"siteId,omitempty"` //The UUID of the site. (Ex. `flooruuid`) This field supports wildcard asterisk (*) character search support. E.g.*flooruuid*, *flooruuid, flooruuid* Examples: `?siteId=id1` (single id requested) `?siteId=id1&siteId=id2&siteId=id3` (multiple ids requested) + ID string `url:"id,omitempty"` //The list of entity Uuids. (Ex."6bef213c-19ca-4170-8375-b694e251101c") Examples: id=6bef213c-19ca-4170-8375-b694e251101c (single entity uuid requested) id=6bef213c-19ca-4170-8375-b694e251101c&id=32219612-819e-4b5e-a96b-cf22aca13dd9&id=2541e9a7-b80d-4955-8aa2-79b233318ba0 (multiple entity uuid with '&' separator) + ManagementIPAddress string `url:"managementIpAddress,omitempty"` //The list of entity management IP Address. It can be either Ipv4 or Ipv6 address or combination of both(Ex. "121.1.1.10") This field supports wildcard (`*`) character-based search. Ex: `*1.1*` or `1.1*` or `*1.1` Examples: managementIpAddresses=121.1.1.10 managementIpAddresses=121.1.1.10&managementIpAddresses=172.20.1.10&managementIpAddresses=200:10&=managementIpAddresses172.20.3.4 (multiple entity IP Address with & separator) + MacAddress string `url:"macAddress,omitempty"` //The macAddress of the network device or client This field supports wildcard (`*`) character-based search. Ex: `*AB:AB:AB*` or `AB:AB:AB*` or `*AB:AB:AB` Examples: `macAddress=AB:AB:AB:CD:CD:CD` (single macAddress requested) `macAddress=AB:AB:AB:CD:CD:DC&macAddress=AB:AB:AB:CD:CD:FE` (multiple macAddress requested) + Family string `url:"family,omitempty"` //The list of network device family names Examples:family=Switches and Hubs (single network device family name )family=Switches and Hubs&family=Router&family=Wireless Controller (multiple Network device family names with & separator). This field is not case sensitive. + Type string `url:"type,omitempty"` //The list of network device type This field supports wildcard (`*`) character-based search. Ex: `*9407R*` or `*9407R` or `9407R*` Examples: type=SwitchesCisco Catalyst 9407R Switch (single network device types ) type=Cisco Catalyst 38xx stack-able ethernet switch&type=Cisco 3945 Integrated Services Router G2 (multiple Network device types with & separator) + Role string `url:"role,omitempty"` //The list of network device role. Examples:role=CORE, role=CORE&role=ACCESS&role=ROUTER (multiple Network device roles with & separator). This field is not case sensitive. + SerialNumber string `url:"serialNumber,omitempty"` //The list of network device serial numbers. This field supports wildcard (`*`) character-based search. Ex: `*MS1SV*` or `MS1SV*` or `*MS1SV` Examples: serialNumber=9FUFMS1SVAX serialNumber=9FUFMS1SVAX&FCW2333Q0BY&FJC240617JX(multiple Network device serial number with & separator) + MaintenanceMode bool `url:"maintenanceMode,omitempty"` //The device maintenanceMode status true or false + SoftwareVersion string `url:"softwareVersion,omitempty"` //The list of network device software version This field supports wildcard (`*`) character-based search. Ex: `*17.8*` or `*17.8` or `17.8*` Examples: softwareVersion=2.3.4.0 (single network device software version ) softwareVersion=17.9.3.23&softwareVersion=17.7.1.2&softwareVersion=*.17.7 (multiple Network device software versions with & separator) + HealthScore string `url:"healthScore,omitempty"` //The list of entity health score categories Examples: healthScore=good, healthScore=good&healthScore=fair (multiple entity healthscore values with & separator). This field is not case sensitive. + View string `url:"view,omitempty"` //The List of Network Device model views. Please refer to ```NetworkDeviceView``` for the supported list + Attribute string `url:"attribute,omitempty"` //The List of Network Device model attributes. This is helps to specify the interested fields in the request. +} +type GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParametersQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + ID string `url:"id,omitempty"` //The list of entity Uuids. (Ex."6bef213c-19ca-4170-8375-b694e251101c") Examples: id=6bef213c-19ca-4170-8375-b694e251101c (single entity uuid requested) id=6bef213c-19ca-4170-8375-b694e251101c&id=32219612-819e-4b5e-a96b-cf22aca13dd9&id=2541e9a7-b80d-4955-8aa2-79b233318ba0 (multiple entity uuid with '&' separator) + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (*) character search support. E.g. */San*, */San, /San* Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (*) character search support. E.g. `*uuid*, *uuid, uuid* Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteID string `url:"siteId,omitempty"` //The UUID of the site. (Ex. `flooruuid`) This field supports wildcard asterisk (*) character search support. E.g.*flooruuid*, *flooruuid, flooruuid* Examples: `?siteId=id1` (single id requested) `?siteId=id1&siteId=id2&siteId=id3` (multiple ids requested) + ManagementIPAddress string `url:"managementIpAddress,omitempty"` //The list of entity management IP Address. It can be either Ipv4 or Ipv6 address or combination of both(Ex. "121.1.1.10") This field supports wildcard (`*`) character-based search. Ex: `*1.1*` or `1.1*` or `*1.1` Examples: managementIpAddresses=121.1.1.10 managementIpAddresses=121.1.1.10&managementIpAddresses=172.20.1.10&managementIpAddresses=200:10&=managementIpAddresses172.20.3.4 (multiple entity IP Address with & separator) + MacAddress string `url:"macAddress,omitempty"` //The macAddress of the network device or client This field supports wildcard (`*`) character-based search. Ex: `*AB:AB:AB*` or `AB:AB:AB*` or `*AB:AB:AB` Examples: `macAddress=AB:AB:AB:CD:CD:CD` (single macAddress requested) `macAddress=AB:AB:AB:CD:CD:DC&macAddress=AB:AB:AB:CD:CD:FE` (multiple macAddress requested) + Family string `url:"family,omitempty"` //The list of network device family names Examples:family=Switches and Hubs (single network device family name )family=Switches and Hubs&family=Router&family=Wireless Controller (multiple Network device family names with & separator). This field is not case sensitive. + Type string `url:"type,omitempty"` //The list of network device type This field supports wildcard (`*`) character-based search. Ex: `*9407R*` or `*9407R` or `9407R*`Examples:type=SwitchesCisco Catalyst 9407R Switch (single network device types )type=Cisco Catalyst 38xx stack-able ethernet switch&type=Cisco 3945 Integrated Services Router G2 (multiple Network device types with & separator) + Role string `url:"role,omitempty"` //The list of network device role. Examples:role=CORE, role=CORE&role=ACCESS&role=ROUTER (multiple Network device roles with & separator). This field is not case sensitive. + SerialNumber string `url:"serialNumber,omitempty"` //The list of network device serial numbers. This field supports wildcard (`*`) character-based search. Ex: `*MS1SV*` or `MS1SV*` or `*MS1SV` Examples: serialNumber=9FUFMS1SVAX serialNumber=9FUFMS1SVAX&FCW2333Q0BY&FJC240617JX(multiple Network device serial number with & separator) + MaintenanceMode bool `url:"maintenanceMode,omitempty"` //The device maintenanceMode status true or false + SoftwareVersion string `url:"softwareVersion,omitempty"` //The list of network device software version This field supports wildcard (`*`) character-based search. Ex: `*17.8*` or `*17.8` or `17.8*` Examples: softwareVersion=2.3.4.0 (single network device software version ) softwareVersion=17.9.3.23&softwareVersion=17.7.1.2&softwareVersion=*.17.7 (multiple Network device software versions with & separator) + HealthScore string `url:"healthScore,omitempty"` //The list of entity health score categories Examples:healthScore=good,healthScore=good&healthScore=fair (multiple entity healthscore values with & separator). This field is not case sensitive. + View string `url:"view,omitempty"` //The List of Network Device model views. Please refer to ```NetworkDeviceView``` for the supported list + Attribute string `url:"attribute,omitempty"` //The List of Network Device model attributes. This is helps to specify the interested fields in the request. +} +type GetTheDeviceDataForTheGivenDeviceIDUUIDQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + View string `url:"view,omitempty"` //The List of Network Device model views. Please refer to ```NetworkDeviceView``` for the supported list + Attribute string `url:"attribute,omitempty"` //The List of Network Device model attributes. This is helps to specify the interested fields in the request. +} type GetPlannedAccessPointsForBuildingQueryParams struct { - Limit float64 `url:"limit,omitempty"` //limit - Offset float64 `url:"offset,omitempty"` //offset - Radios bool `url:"radios,omitempty"` //inlcude planned radio details + Limit float64 `url:"limit,omitempty"` //The page size limit for the response, e.g. limit=100 will return a maximum of 100 records + Offset float64 `url:"offset,omitempty"` //The page offset for the response. E.g. if limit=100, offset=0 will return first 100 records, offset=1 will return next 100 records, etc. + Radios bool `url:"radios,omitempty"` //Whether to include the planned radio details of the planned access points } type GetDeviceDetailQueryParams struct { - Timestamp string `url:"timestamp,omitempty"` //Epoch time(in milliseconds) when the device data is required - SearchBy string `url:"searchBy,omitempty"` //MAC Address or Device Name value or UUID of the network device - IDentifier string `url:"identifier,omitempty"` //One of keywords : macAddress or uuid or nwDeviceName + Timestamp float64 `url:"timestamp,omitempty"` //UTC timestamp of device data in milliseconds + IDentifier string `url:"identifier,omitempty"` //One of "macAddress", "nwDeviceName", "uuid" (case insensitive) + SearchBy string `url:"searchBy,omitempty"` //MAC Address, device name, or UUID of the network device } type GetDeviceEnrichmentDetailsHeaderParams struct { - EntityType string `url:"entity_type,omitempty"` //Expects type string. Device enrichment details can be fetched based on either Device ID or Device MAC address or Device IP Address. This parameter value must either be device_id/mac_address/ip_address - EntityValue string `url:"entity_value,omitempty"` //Expects type string. Contains the actual value for the entity type that has been defined + EntityType string `url:"entity_type,omitempty"` //Expects type string. Device enrichment details can be fetched based on either Device ID or Device MAC address or Device IP Address. This parameter value must either be device_id/mac_address/ip_address + EntityValue string `url:"entity_value,omitempty"` //Expects type string. Contains the actual value for the entity type that has been defined + Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. } type DevicesQueryParams struct { - DeviceRole string `url:"deviceRole,omitempty"` //The device role (One of CORE, ACCESS, DISTRIBUTION, ROUTER, WLC, AP) - SiteID string `url:"siteId,omitempty"` //Assurance site UUID value - Health string `url:"health,omitempty"` //The device overall health (One of POOR, FAIR, GOOD) + DeviceRole string `url:"deviceRole,omitempty"` //CORE, ACCESS, DISTRIBUTION, ROUTER, WLC, or AP (case insensitive) + SiteID string `url:"siteId,omitempty"` //DNAC site UUID + Health string `url:"health,omitempty"` //DNAC health catagory: POOR, FAIR, or GOOD (case insensitive) StartTime float64 `url:"startTime,omitempty"` //UTC epoch time in milliseconds - EndTime float64 `url:"endTime,omitempty"` //UTC epoch time in miliseconds - Limit float64 `url:"limit,omitempty"` //Max number of device entries in the response (default to 50. Max at 1000) - Offset float64 `url:"offset,omitempty"` //The offset of the first device in the returned data + EndTime float64 `url:"endTime,omitempty"` //UTC epoch time in milliseconds + Limit float64 `url:"limit,omitempty"` //Max number of device entries in the response (default to 50. Max at 500) + Offset float64 `url:"offset,omitempty"` //The offset of the first device in the returned data (Mutiple of 'limit' + 1) } type GetPlannedAccessPointsForFloorQueryParams struct { - Limit float64 `url:"limit,omitempty"` //limit - Offset float64 `url:"offset,omitempty"` //offset - Radios bool `url:"radios,omitempty"` //inlcude planned radio details + Limit float64 `url:"limit,omitempty"` //The page size limit for the response, e.g. limit=100 will return a maximum of 100 records + Offset float64 `url:"offset,omitempty"` //The page offset for the response. E.g. if limit=100, offset=0 will return first 100 records, offset=1 will return next 100 records, etc. + Radios bool `url:"radios,omitempty"` //Whether to include the planned radio details of the planned access points +} +type GetAllHealthScoreDefinitionsForGivenFiltersQueryParams struct { + DeviceType string `url:"deviceType,omitempty"` //These are the device families supported for health score definitions. If no input is made on device family, all device families are considered. + ID string `url:"id,omitempty"` //The definition identifier. Examples: id=015d9cba-4f53-4087-8317-7e49e5ffef46 (single entity id request) id=015d9cba-4f53-4087-8317-7e49e5ffef46&id=015d9cba-4f53-4087-8317-7e49e5ffef47 (multiple ids in the query param) + IncludeForOverallHealth bool `url:"includeForOverallHealth,omitempty"` //The inclusion status of the issue definition, either true or false. true indicates that particular health metric is included in overall health computation, otherwise false. By default it's set to true. + Attribute string `url:"attribute,omitempty"` //These are the attributes supported in health score definitions response. By default, all properties are sent in response. + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return +} +type GetAllHealthScoreDefinitionsForGivenFiltersHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type UpdateHealthScoreDefinitionsHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type GetHealthScoreDefinitionForTheGivenIDHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. } type GetAllInterfacesQueryParams struct { - Offset float64 `url:"offset,omitempty"` //Offset - Limit float64 `url:"limit,omitempty"` //Limit - LastInputTime string `url:"lastInputTime,omitempty"` //Last Input Time - LastOutputTime string `url:"lastOutputTime,omitempty"` //Last Output Time + Offset int `url:"offset,omitempty"` //Offset + Limit int `url:"limit,omitempty"` //Limit + LastInputTime string `url:"lastInputTime,omitempty"` //Last Input Time + LastOutputTime string `url:"lastOutputTime,omitempty"` //Last Output Time } type GetInterfaceDetailsByDeviceIDAndInterfaceNameQueryParams struct { Name string `url:"name,omitempty"` //Interface name @@ -87,50 +246,50 @@ type GetDeviceListQueryParams struct { Moduleoperationstatecode []string `url:"module+operationstatecode,omitempty"` //moduleOperationStateCode ID string `url:"id,omitempty"` //Accepts comma separated ids and return list of network-devices for the given ids. If invalid or not-found ids are provided, null entry will be returned in the list. DeviceSupportLevel string `url:"deviceSupportLevel,omitempty"` //deviceSupportLevel - Offset float64 `url:"offset,omitempty"` //offset >= 1 [X gives results from Xth device onwards] - Limit float64 `url:"limit,omitempty"` //1 <= limit <= 500 [max. no. of devices to be returned in the result] + Offset int `url:"offset,omitempty"` //offset >= 1 [X gives results from Xth device onwards] + Limit int `url:"limit,omitempty"` //1 <= limit <= 500 [max. no. of devices to be returned in the result] } type GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams struct { - VrfName string `url:"vrfName,omitempty"` //vrfName - ManagementIPAddress string `url:"managementIpAddress,omitempty"` //managementIpAddress - Hostname string `url:"hostname,omitempty"` //hostname - MacAddress string `url:"macAddress,omitempty"` //macAddress - Family string `url:"family,omitempty"` //family - CollectionStatus string `url:"collectionStatus,omitempty"` //collectionStatus - CollectionInterval string `url:"collectionInterval,omitempty"` //collectionInterval - SoftwareVersion string `url:"softwareVersion,omitempty"` //softwareVersion - SoftwareType string `url:"softwareType,omitempty"` //softwareType - ReachabilityStatus string `url:"reachabilityStatus,omitempty"` //reachabilityStatus - ReachabilityFailureReason string `url:"reachabilityFailureReason,omitempty"` //reachabilityFailureReason - ErrorCode string `url:"errorCode,omitempty"` //errorCode - PlatformID string `url:"platformId,omitempty"` //platformId - Series string `url:"series,omitempty"` //series - Type string `url:"type,omitempty"` //type - SerialNumber string `url:"serialNumber,omitempty"` //serialNumber - UpTime string `url:"upTime,omitempty"` //upTime - Role string `url:"role,omitempty"` //role - RoleSource string `url:"roleSource,omitempty"` //roleSource - AssociatedWlcIP string `url:"associatedWlcIp,omitempty"` //associatedWlcIp - Offset float64 `url:"offset,omitempty"` //offset - Limit float64 `url:"limit,omitempty"` //limit + VrfName string `url:"vrfName,omitempty"` //vrfName + ManagementIPAddress string `url:"managementIpAddress,omitempty"` //managementIpAddress + Hostname string `url:"hostname,omitempty"` //hostname + MacAddress string `url:"macAddress,omitempty"` //macAddress + Family string `url:"family,omitempty"` //family + CollectionStatus string `url:"collectionStatus,omitempty"` //collectionStatus + CollectionInterval string `url:"collectionInterval,omitempty"` //collectionInterval + SoftwareVersion string `url:"softwareVersion,omitempty"` //softwareVersion + SoftwareType string `url:"softwareType,omitempty"` //softwareType + ReachabilityStatus string `url:"reachabilityStatus,omitempty"` //reachabilityStatus + ReachabilityFailureReason string `url:"reachabilityFailureReason,omitempty"` //reachabilityFailureReason + ErrorCode string `url:"errorCode,omitempty"` //errorCode + PlatformID string `url:"platformId,omitempty"` //platformId + Series string `url:"series,omitempty"` //series + Type string `url:"type,omitempty"` //type + SerialNumber string `url:"serialNumber,omitempty"` //serialNumber + UpTime string `url:"upTime,omitempty"` //upTime + Role string `url:"role,omitempty"` //role + RoleSource string `url:"roleSource,omitempty"` //roleSource + AssociatedWlcIP string `url:"associatedWlcIp,omitempty"` //associatedWlcIp + Offset int `url:"offset,omitempty"` //offset + Limit int `url:"limit,omitempty"` //limit +} +type GetDeviceCountKnowYourNetworkQueryParams struct { + Hostname []string `url:"hostname,omitempty"` //hostname + ManagementIPAddress []string `url:"managementIpAddress,omitempty"` //managementIpAddress + MacAddress []string `url:"macAddress,omitempty"` //macAddress + LocationName []string `url:"locationName,omitempty"` //locationName } type GetFunctionalCapabilityForDevicesQueryParams struct { DeviceID string `url:"deviceId,omitempty"` //Accepts comma separated deviceid's and return list of functional-capabilities for the given id's. If invalid or not-found id's are provided, null entry will be returned in the list. FunctionName []string `url:"functionName,omitempty"` //functionName } -type InventoryInsightDeviceLinkMismatchApIQueryParams struct { +type InventoryInsightDeviceLinkMismatchAPIQueryParams struct { Offset int `url:"offset,omitempty"` //Row Number. Default value is 1 Limit int `url:"limit,omitempty"` //Default value is 500 Category string `url:"category,omitempty"` //Links mismatch category. Value can be speed-duplex or vlan. SortBy string `url:"sortBy,omitempty"` //Sort By Order string `url:"order,omitempty"` //Order. Value can be asc or desc. Default value is asc } -type ReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DESQueryParams struct { - Offset int `url:"offset,omitempty"` //Row Number. Default value is 1 - Limit int `url:"limit,omitempty"` //Default value is 500 - SortBy string `url:"sortBy,omitempty"` //Sort By - Order string `url:"order,omitempty"` //Order -} type GetModulesQueryParams struct { DeviceID string `url:"deviceId,omitempty"` //deviceId Limit int `url:"limit,omitempty"` //limit @@ -161,168 +320,1314 @@ type GetAllUserDefinedFieldsQueryParams struct { type RemoveUserDefinedFieldFromDeviceQueryParams struct { Name string `url:"name,omitempty"` //Name of UDF to be removed } -type ReturnPowerSupplyFanDetailsForTheGivenDeviceQueryParams struct { +type GetTheDetailsOfPhysicalComponentsOfTheGivenDeviceQueryParams struct { Type string `url:"type,omitempty"` //Type value can be PowerSupply, Fan, Chassis, Backplane, Module, PROCESSOR, Other, SFP. If no type is mentioned, All equipments are fetched for the device. } type ReturnsPoeInterfaceDetailsForTheDeviceQueryParams struct { InterfaceNameList string `url:"interfaceNameList,omitempty"` //comma seperated interface names } type DeleteDeviceByIDQueryParams struct { - CleanConfig bool `url:"cleanConfig,omitempty"` //cleanConfig + CleanConfig bool `url:"cleanConfig,omitempty"` //Selecting the clean up configuration option will attempt to remove device settings that were configured during the addition of the device to the inventory and site assignment. Please note that this operation is different from deprovisioning. It does not remove configurations that were pushed during device provisioning. } type GetDeviceInterfaceVLANsQueryParams struct { - InterfaceType string `url:"interfaceType,omitempty"` //Vlan assocaited with sub-interface + InterfaceType string `url:"interfaceType,omitempty"` //Vlan associated with sub-interface. If no interfaceType mentioned it will return all types of Vlan interfaces. If interfaceType is selected but not specified then it will take default value. +} +type GetAllowedMacAddressQueryParams struct { + Offset float64 `url:"offset,omitempty"` //The offset of the first item in the collection to return. + Limit float64 `url:"limit,omitempty"` //The maximum number of entries to return. If the value exceeds the total count, then the maximum entries will be returned. +} +type GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersQueryParams struct { + DeviceType string `url:"deviceType,omitempty"` //These are the device families supported for health score definitions. If no input is made on device family, all device families are considered. + ID string `url:"id,omitempty"` //The definition identifier. Examples: id=015d9cba-4f53-4087-8317-7e49e5ffef46 (single entity id request) id=015d9cba-4f53-4087-8317-7e49e5ffef46&id=015d9cba-4f53-4087-8317-7e49e5ffef47 (multiple ids in the query param) + IncludeForOverallHealth bool `url:"includeForOverallHealth,omitempty"` //The inclusion status of the issue definition, either true or false. true indicates that particular health metric is included in overall health computation, otherwise false. By default it's set to true. +} +type GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. } +type ResponseDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions struct { + Response *ResponseDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseDevicesQueryAssuranceEvents struct { + Response *[]ResponseDevicesQueryAssuranceEventsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version + Page *ResponseDevicesQueryAssuranceEventsPage `json:"page,omitempty"` // +} +type ResponseDevicesQueryAssuranceEventsResponse struct { + OldRadioChannelWidth string `json:"oldRadioChannelWidth,omitempty"` // Old Radio Channel Width + ClientMac string `json:"clientMac,omitempty"` // Client Mac + SwitchNumber string `json:"switchNumber,omitempty"` // Switch Number + AssocRssi *int `json:"assocRssi,omitempty"` // Assoc Rssi + AffectedClients []string `json:"affectedClients,omitempty"` // Affected Clients + IsPrivateMac *bool `json:"isPrivateMac,omitempty"` // Is Private Mac + Frequency string `json:"frequency,omitempty"` // Frequency + ApRole string `json:"apRole,omitempty"` // Ap Role + ReplacingDeviceSerialNumber string `json:"replacingDeviceSerialNumber,omitempty"` // Replacing Device Serial Number + MessageType string `json:"messageType,omitempty"` // Message Type + FailureCategory string `json:"failureCategory,omitempty"` // Failure Category + ApSwitchName string `json:"apSwitchName,omitempty"` // Ap Switch Name + ApSwitchID string `json:"apSwitchId,omitempty"` // Ap Switch Id + RadioChannelUtilization string `json:"radioChannelUtilization,omitempty"` // Radio Channel Utilization + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + RadioChannelSlot *int `json:"radioChannelSlot,omitempty"` // Radio Channel Slot + Details string `json:"details,omitempty"` // Details + ID string `json:"id,omitempty"` // Id + LastApDisconnectReason string `json:"lastApDisconnectReason,omitempty"` // Last Ap Disconnect Reason + NetworkDeviceName string `json:"networkDeviceName,omitempty"` // Network Device Name + IDentifier string `json:"identifier,omitempty"` // Identifier + ReasonDescription string `json:"reasonDescription,omitempty"` // Reason Description + VLANID string `json:"vlanId,omitempty"` // Vlan Id + UdnID string `json:"udnId,omitempty"` // Udn Id + AuditSessionID string `json:"auditSessionId,omitempty"` // Audit Session Id + ApMac string `json:"apMac,omitempty"` // Ap Mac + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + RadioNoise string `json:"radioNoise,omitempty"` // Radio Noise + WlcName string `json:"wlcName,omitempty"` // Wlc Name + ApRadioOperationState string `json:"apRadioOperationState,omitempty"` // Ap Radio Operation State + Name string `json:"name,omitempty"` // Name + FailureIPAddress string `json:"failureIpAddress,omitempty"` // Failure Ip Address + NewRadioChannelList string `json:"newRadioChannelList,omitempty"` // New Radio Channel List + Duid string `json:"duid,omitempty"` // Duid + RoamType string `json:"roamType,omitempty"` // Roam Type + CandidateAPs *[]ResponseDevicesQueryAssuranceEventsResponseCandidateAPs `json:"candidateAPs,omitempty"` // + ReplacedDeviceSerialNumber string `json:"replacedDeviceSerialNumber,omitempty"` // Replaced Device Serial Number + OldRadioChannelList string `json:"oldRadioChannelList,omitempty"` // Old Radio Channel List + SSID string `json:"ssid,omitempty"` // Ssid + SubReasonDescription string `json:"subReasonDescription,omitempty"` // Sub Reason Description + WirelessClientEventEndTime *int `json:"wirelessClientEventEndTime,omitempty"` // Wireless Client Event End Time + IPv4 string `json:"ipv4,omitempty"` // Ipv4 + WlcID string `json:"wlcId,omitempty"` // Wlc Id + IPv6 string `json:"ipv6,omitempty"` // Ipv6 + MissingResponseAPs *[]ResponseDevicesQueryAssuranceEventsResponseMissingResponseAPs `json:"missingResponseAPs,omitempty"` // + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + Severity *int `json:"severity,omitempty"` // Severity + CurrentRadioPowerLevel *int `json:"currentRadioPowerLevel,omitempty"` // Current Radio Power Level + NewRadioChannelWidth string `json:"newRadioChannelWidth,omitempty"` // New Radio Channel Width + AssocSnr *int `json:"assocSnr,omitempty"` // Assoc Snr + AuthServerIP string `json:"authServerIp,omitempty"` // Auth Server Ip + ChildEvents *[]ResponseDevicesQueryAssuranceEventsResponseChildEvents `json:"childEvents,omitempty"` // + ConnectedInterfaceName string `json:"connectedInterfaceName,omitempty"` // Connected Interface Name + DhcpServerIP string `json:"dhcpServerIp,omitempty"` // Dhcp Server Ip + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address + PreviousRadioPowerLevel *int `json:"previousRadioPowerLevel,omitempty"` // Previous Radio Power Level + ResultStatus string `json:"resultStatus,omitempty"` // Result Status + RadioInterference string `json:"radioInterference,omitempty"` // Radio Interference + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network Device Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + EventStatus string `json:"eventStatus,omitempty"` // Event Status + WirelessClientEventStartTime *int `json:"wirelessClientEventStartTime,omitempty"` // Wireless Client Event Start Time + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + UdnName string `json:"udnName,omitempty"` // Udn Name + Facility string `json:"facility,omitempty"` // Facility + LastApResetType string `json:"lastApResetType,omitempty"` // Last Ap Reset Type + InvalidIeAPs *[]ResponseDevicesQueryAssuranceEventsResponseInvalidIeAPs `json:"invalidIeAPs,omitempty"` // + Username string `json:"username,omitempty"` // Username +} +type ResponseDevicesQueryAssuranceEventsResponseCandidateAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Rssi *int `json:"rssi,omitempty"` // Rssi +} +type ResponseDevicesQueryAssuranceEventsResponseMissingResponseAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Type string `json:"type,omitempty"` // Type + FrameType string `json:"frameType,omitempty"` // Frame Type +} +type ResponseDevicesQueryAssuranceEventsResponseChildEvents struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + WirelessEventType *int `json:"wirelessEventType,omitempty"` // Wireless Event Type + Details string `json:"details,omitempty"` // Details + ReasonCode string `json:"reasonCode,omitempty"` // Reason Code + ReasonDescription string `json:"reasonDescription,omitempty"` // Reason Description + SubReasonCode string `json:"subReasonCode,omitempty"` // Sub Reason Code + SubReasonDescription string `json:"subReasonDescription,omitempty"` // Sub Reason Description + ResultStatus string `json:"resultStatus,omitempty"` // Result Status + FailureCategory string `json:"failureCategory,omitempty"` // Failure Category +} +type ResponseDevicesQueryAssuranceEventsResponseInvalidIeAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Type string `json:"type,omitempty"` // Type + FrameType string `json:"frameType,omitempty"` // Frame Type + Ies string `json:"ies,omitempty"` // Ies +} +type ResponseDevicesQueryAssuranceEventsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseDevicesQueryAssuranceEventsPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseDevicesQueryAssuranceEventsPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseDevicesCountTheNumberOfEvents struct { + Response *ResponseDevicesCountTheNumberOfEventsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesCountTheNumberOfEventsResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseDevicesQueryAssuranceEventsWithFilters struct { + Response *[]ResponseDevicesQueryAssuranceEventsWithFiltersResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version + Page *ResponseDevicesQueryAssuranceEventsWithFiltersPage `json:"page,omitempty"` // +} +type ResponseDevicesQueryAssuranceEventsWithFiltersResponse struct { + OldRadioChannelWidth string `json:"oldRadioChannelWidth,omitempty"` // Old Radio Channel Width + ClientMac string `json:"clientMac,omitempty"` // Client Mac + SwitchNumber string `json:"switchNumber,omitempty"` // Switch Number + AssocRssi *int `json:"assocRssi,omitempty"` // Assoc Rssi + AffectedClients []string `json:"affectedClients,omitempty"` // Affected Clients + IsPrivateMac *bool `json:"isPrivateMac,omitempty"` // Is Private Mac + Frequency string `json:"frequency,omitempty"` // Frequency + ApRole string `json:"apRole,omitempty"` // Ap Role + ReplacingDeviceSerialNumber string `json:"replacingDeviceSerialNumber,omitempty"` // Replacing Device Serial Number + MessageType string `json:"messageType,omitempty"` // Message Type + FailureCategory string `json:"failureCategory,omitempty"` // Failure Category + ApSwitchName string `json:"apSwitchName,omitempty"` // Ap Switch Name + ApSwitchID string `json:"apSwitchId,omitempty"` // Ap Switch Id + RadioChannelUtilization string `json:"radioChannelUtilization,omitempty"` // Radio Channel Utilization + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + RadioChannelSlot *int `json:"radioChannelSlot,omitempty"` // Radio Channel Slot + Details string `json:"details,omitempty"` // Details + ID string `json:"id,omitempty"` // Id + LastApDisconnectReason string `json:"lastApDisconnectReason,omitempty"` // Last Ap Disconnect Reason + NetworkDeviceName string `json:"networkDeviceName,omitempty"` // Network Device Name + IDentifier string `json:"identifier,omitempty"` // Identifier + ReasonDescription string `json:"reasonDescription,omitempty"` // Reason Description + VLANID string `json:"vlanId,omitempty"` // Vlan Id + UdnID string `json:"udnId,omitempty"` // Udn Id + AuditSessionID string `json:"auditSessionId,omitempty"` // Audit Session Id + ApMac string `json:"apMac,omitempty"` // Ap Mac + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + RadioNoise string `json:"radioNoise,omitempty"` // Radio Noise + WlcName string `json:"wlcName,omitempty"` // Wlc Name + ApRadioOperationState string `json:"apRadioOperationState,omitempty"` // Ap Radio Operation State + Name string `json:"name,omitempty"` // Name + FailureIPAddress string `json:"failureIpAddress,omitempty"` // Failure Ip Address + NewRadioChannelList string `json:"newRadioChannelList,omitempty"` // New Radio Channel List + Duid string `json:"duid,omitempty"` // Duid + RoamType string `json:"roamType,omitempty"` // Roam Type + CandidateAPs *[]ResponseDevicesQueryAssuranceEventsWithFiltersResponseCandidateAPs `json:"candidateAPs,omitempty"` // + ReplacedDeviceSerialNumber string `json:"replacedDeviceSerialNumber,omitempty"` // Replaced Device Serial Number + OldRadioChannelList string `json:"oldRadioChannelList,omitempty"` // Old Radio Channel List + SSID string `json:"ssid,omitempty"` // Ssid + SubReasonDescription string `json:"subReasonDescription,omitempty"` // Sub Reason Description + WirelessClientEventEndTime *int `json:"wirelessClientEventEndTime,omitempty"` // Wireless Client Event End Time + IPv4 string `json:"ipv4,omitempty"` // Ipv4 + WlcID string `json:"wlcId,omitempty"` // Wlc Id + IPv6 string `json:"ipv6,omitempty"` // Ipv6 + MissingResponseAPs *[]ResponseDevicesQueryAssuranceEventsWithFiltersResponseMissingResponseAPs `json:"missingResponseAPs,omitempty"` // + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + Severity *int `json:"severity,omitempty"` // Severity + CurrentRadioPowerLevel *int `json:"currentRadioPowerLevel,omitempty"` // Current Radio Power Level + NewRadioChannelWidth string `json:"newRadioChannelWidth,omitempty"` // New Radio Channel Width + AssocSnr *int `json:"assocSnr,omitempty"` // Assoc Snr + AuthServerIP string `json:"authServerIp,omitempty"` // Auth Server Ip + ChildEvents *[]ResponseDevicesQueryAssuranceEventsWithFiltersResponseChildEvents `json:"childEvents,omitempty"` // + ConnectedInterfaceName string `json:"connectedInterfaceName,omitempty"` // Connected Interface Name + DhcpServerIP string `json:"dhcpServerIp,omitempty"` // Dhcp Server Ip + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address + PreviousRadioPowerLevel *int `json:"previousRadioPowerLevel,omitempty"` // Previous Radio Power Level + ResultStatus string `json:"resultStatus,omitempty"` // Result Status + RadioInterference string `json:"radioInterference,omitempty"` // Radio Interference + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network Device Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + EventStatus string `json:"eventStatus,omitempty"` // Event Status + WirelessClientEventStartTime *int `json:"wirelessClientEventStartTime,omitempty"` // Wireless Client Event Start Time + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + UdnName string `json:"udnName,omitempty"` // Udn Name + Facility string `json:"facility,omitempty"` // Facility + LastApResetType string `json:"lastApResetType,omitempty"` // Last Ap Reset Type + InvalidIeAPs *[]ResponseDevicesQueryAssuranceEventsWithFiltersResponseInvalidIeAPs `json:"invalidIeAPs,omitempty"` // + Username string `json:"username,omitempty"` // Username +} +type ResponseDevicesQueryAssuranceEventsWithFiltersResponseCandidateAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Rssi *int `json:"rssi,omitempty"` // Rssi +} +type ResponseDevicesQueryAssuranceEventsWithFiltersResponseMissingResponseAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Type string `json:"type,omitempty"` // Type + FrameType string `json:"frameType,omitempty"` // Frame Type +} +type ResponseDevicesQueryAssuranceEventsWithFiltersResponseChildEvents struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + WirelessEventType *int `json:"wirelessEventType,omitempty"` // Wireless Event Type + Details string `json:"details,omitempty"` // Details + ReasonCode string `json:"reasonCode,omitempty"` // Reason Code + ReasonDescription string `json:"reasonDescription,omitempty"` // Reason Description + SubReasonCode string `json:"subReasonCode,omitempty"` // Sub Reason Code + SubReasonDescription string `json:"subReasonDescription,omitempty"` // Sub Reason Description + ResultStatus string `json:"resultStatus,omitempty"` // Result Status + FailureCategory string `json:"failureCategory,omitempty"` // Failure Category +} +type ResponseDevicesQueryAssuranceEventsWithFiltersResponseInvalidIeAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Type string `json:"type,omitempty"` // Type + FrameType string `json:"frameType,omitempty"` // Frame Type + Ies string `json:"ies,omitempty"` // Ies +} +type ResponseDevicesQueryAssuranceEventsWithFiltersPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseDevicesQueryAssuranceEventsWithFiltersPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseDevicesQueryAssuranceEventsWithFiltersPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseDevicesCountTheNumberOfEventsWithFilters struct { + Response *ResponseDevicesCountTheNumberOfEventsWithFiltersResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesCountTheNumberOfEventsWithFiltersResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseDevicesGetDetailsOfASingleAssuranceEvent struct { + Response *ResponseDevicesGetDetailsOfASingleAssuranceEventResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetDetailsOfASingleAssuranceEventResponse struct { + OldRadioChannelWidth string `json:"oldRadioChannelWidth,omitempty"` // Old Radio Channel Width + ClientMac string `json:"clientMac,omitempty"` // Client Mac + SwitchNumber string `json:"switchNumber,omitempty"` // Switch Number + AssocRssi *int `json:"assocRssi,omitempty"` // Assoc Rssi + AffectedClients []string `json:"affectedClients,omitempty"` // Affected Clients + IsPrivateMac *bool `json:"isPrivateMac,omitempty"` // Is Private Mac + Frequency string `json:"frequency,omitempty"` // Frequency + ApRole string `json:"apRole,omitempty"` // Ap Role + ReplacingDeviceSerialNumber string `json:"replacingDeviceSerialNumber,omitempty"` // Replacing Device Serial Number + MessageType string `json:"messageType,omitempty"` // Message Type + FailureCategory string `json:"failureCategory,omitempty"` // Failure Category + ApSwitchName string `json:"apSwitchName,omitempty"` // Ap Switch Name + ApSwitchID string `json:"apSwitchId,omitempty"` // Ap Switch Id + RadioChannelUtilization string `json:"radioChannelUtilization,omitempty"` // Radio Channel Utilization + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + RadioChannelSlot *int `json:"radioChannelSlot,omitempty"` // Radio Channel Slot + Details string `json:"details,omitempty"` // Details + ID string `json:"id,omitempty"` // Id + LastApDisconnectReason string `json:"lastApDisconnectReason,omitempty"` // Last Ap Disconnect Reason + NetworkDeviceName string `json:"networkDeviceName,omitempty"` // Network Device Name + IDentifier string `json:"identifier,omitempty"` // Identifier + ReasonDescription string `json:"reasonDescription,omitempty"` // Reason Description + VLANID string `json:"vlanId,omitempty"` // Vlan Id + UdnID string `json:"udnId,omitempty"` // Udn Id + AuditSessionID string `json:"auditSessionId,omitempty"` // Audit Session Id + ApMac string `json:"apMac,omitempty"` // Ap Mac + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + RadioNoise string `json:"radioNoise,omitempty"` // Radio Noise + WlcName string `json:"wlcName,omitempty"` // Wlc Name + ApRadioOperationState string `json:"apRadioOperationState,omitempty"` // Ap Radio Operation State + Name string `json:"name,omitempty"` // Name + FailureIPAddress string `json:"failureIpAddress,omitempty"` // Failure Ip Address + NewRadioChannelList string `json:"newRadioChannelList,omitempty"` // New Radio Channel List + Duid string `json:"duid,omitempty"` // Duid + RoamType string `json:"roamType,omitempty"` // Roam Type + CandidateAPs *[]ResponseDevicesGetDetailsOfASingleAssuranceEventResponseCandidateAPs `json:"candidateAPs,omitempty"` // + ReplacedDeviceSerialNumber string `json:"replacedDeviceSerialNumber,omitempty"` // Replaced Device Serial Number + OldRadioChannelList string `json:"oldRadioChannelList,omitempty"` // Old Radio Channel List + SSID string `json:"ssid,omitempty"` // Ssid + SubReasonDescription string `json:"subReasonDescription,omitempty"` // Sub Reason Description + WirelessClientEventEndTime *int `json:"wirelessClientEventEndTime,omitempty"` // Wireless Client Event End Time + IPv4 string `json:"ipv4,omitempty"` // Ipv4 + WlcID string `json:"wlcId,omitempty"` // Wlc Id + IPv6 string `json:"ipv6,omitempty"` // Ipv6 + MissingResponseAPs *[]ResponseDevicesGetDetailsOfASingleAssuranceEventResponseMissingResponseAPs `json:"missingResponseAPs,omitempty"` // + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + Severity *int `json:"severity,omitempty"` // Severity + CurrentRadioPowerLevel *int `json:"currentRadioPowerLevel,omitempty"` // Current Radio Power Level + NewRadioChannelWidth string `json:"newRadioChannelWidth,omitempty"` // New Radio Channel Width + AssocSnr *int `json:"assocSnr,omitempty"` // Assoc Snr + AuthServerIP string `json:"authServerIp,omitempty"` // Auth Server Ip + ChildEvents *[]ResponseDevicesGetDetailsOfASingleAssuranceEventResponseChildEvents `json:"childEvents,omitempty"` // + ConnectedInterfaceName string `json:"connectedInterfaceName,omitempty"` // Connected Interface Name + DhcpServerIP string `json:"dhcpServerIp,omitempty"` // Dhcp Server Ip + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address + PreviousRadioPowerLevel *int `json:"previousRadioPowerLevel,omitempty"` // Previous Radio Power Level + ResultStatus string `json:"resultStatus,omitempty"` // Result Status + RadioInterference string `json:"radioInterference,omitempty"` // Radio Interference + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network Device Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + EventStatus string `json:"eventStatus,omitempty"` // Event Status + WirelessClientEventStartTime *int `json:"wirelessClientEventStartTime,omitempty"` // Wireless Client Event Start Time + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + UdnName string `json:"udnName,omitempty"` // Udn Name + Facility string `json:"facility,omitempty"` // Facility + LastApResetType string `json:"lastApResetType,omitempty"` // Last Ap Reset Type + InvalidIeAPs *[]ResponseDevicesGetDetailsOfASingleAssuranceEventResponseInvalidIeAPs `json:"invalidIeAPs,omitempty"` // + Username string `json:"username,omitempty"` // Username +} +type ResponseDevicesGetDetailsOfASingleAssuranceEventResponseCandidateAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Rssi *int `json:"rssi,omitempty"` // Rssi +} +type ResponseDevicesGetDetailsOfASingleAssuranceEventResponseMissingResponseAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Type string `json:"type,omitempty"` // Type + FrameType string `json:"frameType,omitempty"` // Frame Type +} +type ResponseDevicesGetDetailsOfASingleAssuranceEventResponseChildEvents struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + WirelessEventType *int `json:"wirelessEventType,omitempty"` // Wireless Event Type + Details string `json:"details,omitempty"` // Details + ReasonCode string `json:"reasonCode,omitempty"` // Reason Code + ReasonDescription string `json:"reasonDescription,omitempty"` // Reason Description + SubReasonCode string `json:"subReasonCode,omitempty"` // Sub Reason Code + SubReasonDescription string `json:"subReasonDescription,omitempty"` // Sub Reason Description + ResultStatus string `json:"resultStatus,omitempty"` // Result Status + FailureCategory string `json:"failureCategory,omitempty"` // Failure Category +} +type ResponseDevicesGetDetailsOfASingleAssuranceEventResponseInvalidIeAPs struct { + APID string `json:"apId,omitempty"` // Ap Id + ApName string `json:"apName,omitempty"` // Ap Name + ApMac string `json:"apMac,omitempty"` // Ap Mac + Bssid string `json:"bssid,omitempty"` // Bssid + Type string `json:"type,omitempty"` // Type + FrameType string `json:"frameType,omitempty"` // Frame Type + Ies string `json:"ies,omitempty"` // Ies +} +type ResponseDevicesGetListOfChildEventsForTheGivenWirelessClientEvent struct { + Response *[]ResponseDevicesGetListOfChildEventsForTheGivenWirelessClientEventResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetListOfChildEventsForTheGivenWirelessClientEventResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + WirelessEventType *int `json:"wirelessEventType,omitempty"` // Wireless Event Type + Details string `json:"details,omitempty"` // Details + ReasonCode string `json:"reasonCode,omitempty"` // Reason Code + SubreasonCode string `json:"subreasonCode,omitempty"` // Subreason Code + ResultStatus string `json:"resultStatus,omitempty"` // Result Status + ReasonDescription string `json:"reasonDescription,omitempty"` // Reason Description + SubReasonDescription string `json:"subReasonDescription,omitempty"` // Sub Reason Description + FailureCategory string `json:"failureCategory,omitempty"` // Failure Category +} +type ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevices struct { + Response *[]ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesResponse `json:"response,omitempty"` // + Page *ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesResponse struct { + ID string `json:"id,omitempty"` // Id + AdminStatus string `json:"adminStatus,omitempty"` // Admin Status + Description string `json:"description,omitempty"` // Description + DuplexConfig string `json:"duplexConfig,omitempty"` // Duplex Config + DuplexOper string `json:"duplexOper,omitempty"` // Duplex Oper + InterfaceIfIndex *int `json:"interfaceIfIndex,omitempty"` // Interface If Index + InterfaceType string `json:"interfaceType,omitempty"` // Interface Type + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6AddressList []string `json:"ipv6AddressList,omitempty"` // Ipv6 Address List + IsL3Interface *bool `json:"isL3Interface,omitempty"` // Is L3 Interface + IsWan *bool `json:"isWan,omitempty"` // Is Wan + MacAddr string `json:"macAddr,omitempty"` // Mac Addr + MediaType string `json:"mediaType,omitempty"` // Media Type + Name string `json:"name,omitempty"` // Name + OperStatus string `json:"operStatus,omitempty"` // Oper Status + PeerStackMember *int `json:"peerStackMember,omitempty"` // Peer Stack Member + PeerStackPort string `json:"peerStackPort,omitempty"` // Peer Stack Port + PortChannelID string `json:"portChannelId,omitempty"` // Port Channel Id + PortMode string `json:"portMode,omitempty"` // Port Mode + PortType string `json:"portType,omitempty"` // Port Type + RxDiscards *float64 `json:"rxDiscards,omitempty"` // Rx Discards + RxError *int `json:"rxError,omitempty"` // Rx Error + RxRate *float64 `json:"rxRate,omitempty"` // Rx Rate + RxUtilization *float64 `json:"rxUtilization,omitempty"` // Rx Utilization + Speed string `json:"speed,omitempty"` // Speed + StackPortType string `json:"stackPortType,omitempty"` // Stack Port Type + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + TxDiscards *float64 `json:"txDiscards,omitempty"` // Tx Discards + TxError *int `json:"txError,omitempty"` // Tx Error + TxRate *float64 `json:"txRate,omitempty"` // Tx Rate + TxUtilization *float64 `json:"txUtilization,omitempty"` // Tx Utilization + VLANID string `json:"vlanId,omitempty"` // Vlan Id + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network Device Id + NetworkDeviceIPAddress string `json:"networkDeviceIpAddress,omitempty"` // Network Device Ip Address + NetworkDeviceMacAddress string `json:"networkDeviceMacAddress,omitempty"` // Network Device Mac Address + SiteName string `json:"siteName,omitempty"` // Site Name + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id +} +type ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseDevicesGetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCount struct { + Response *ResponseDevicesGetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCountResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions struct { + Response *[]ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponse `json:"response,omitempty"` // + Page *ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponse struct { + ID string `json:"id,omitempty"` // Id + AdminStatus string `json:"adminStatus,omitempty"` // Admin Status + Description string `json:"description,omitempty"` // Description + DuplexConfig string `json:"duplexConfig,omitempty"` // Duplex Config + DuplexOper string `json:"duplexOper,omitempty"` // Duplex Oper + InterfaceIfIndex *int `json:"interfaceIfIndex,omitempty"` // Interface If Index + InterfaceType string `json:"interfaceType,omitempty"` // Interface Type + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6AddressList []string `json:"ipv6AddressList,omitempty"` // Ipv6 Address List + IsL3Interface *bool `json:"isL3Interface,omitempty"` // Is L3 Interface + IsWan *bool `json:"isWan,omitempty"` // Is Wan + MacAddr string `json:"macAddr,omitempty"` // Mac Addr + MediaType string `json:"mediaType,omitempty"` // Media Type + Name string `json:"name,omitempty"` // Name + OperStatus string `json:"operStatus,omitempty"` // Oper Status + PeerStackMember *int `json:"peerStackMember,omitempty"` // Peer Stack Member + PeerStackPort string `json:"peerStackPort,omitempty"` // Peer Stack Port + PortChannelID string `json:"portChannelId,omitempty"` // Port Channel Id + PortMode string `json:"portMode,omitempty"` // Port Mode + PortType string `json:"portType,omitempty"` // Port Type + RxDiscards *float64 `json:"rxDiscards,omitempty"` // Rx Discards + RxError *int `json:"rxError,omitempty"` // Rx Error + RxRate *float64 `json:"rxRate,omitempty"` // Rx Rate + RxUtilization *float64 `json:"rxUtilization,omitempty"` // Rx Utilization + Speed string `json:"speed,omitempty"` // Speed + StackPortType string `json:"stackPortType,omitempty"` // Stack Port Type + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + TxDiscards *float64 `json:"txDiscards,omitempty"` // Tx Discards + TxError *int `json:"txError,omitempty"` // Tx Error + TxRate *float64 `json:"txRate,omitempty"` // Tx Rate + TxUtilization *float64 `json:"txUtilization,omitempty"` // Tx Utilization + VLANID string `json:"vlanId,omitempty"` // Vlan Id + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network Device Id + NetworkDeviceIPAddress string `json:"networkDeviceIpAddress,omitempty"` // Network Device Ip Address + NetworkDeviceMacAddress string `json:"networkDeviceMacAddress,omitempty"` // Network Device Mac Address + SiteName string `json:"siteName,omitempty"` // Site Name + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + AggregateAttributes *[]ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Values *[]ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseAggregateAttributesValues `json:"values,omitempty"` // +} +type ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseAggregateAttributesValues struct { + Key string `json:"key,omitempty"` // Key + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseDevicesTheTotalInterfacesCountAcrossTheNetworkDevices struct { + Response *ResponseDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseDevicesGetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsData struct { + Response *ResponseDevicesGetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsDataResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsDataResponse struct { + ID string `json:"id,omitempty"` // Id + AdminStatus string `json:"adminStatus,omitempty"` // Admin Status + Description string `json:"description,omitempty"` // Description + DuplexConfig string `json:"duplexConfig,omitempty"` // Duplex Config + DuplexOper string `json:"duplexOper,omitempty"` // Duplex Oper + InterfaceIfIndex *int `json:"interfaceIfIndex,omitempty"` // Interface If Index + InterfaceType string `json:"interfaceType,omitempty"` // Interface Type + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6AddressList []string `json:"ipv6AddressList,omitempty"` // Ipv6 Address List + IsL3Interface *bool `json:"isL3Interface,omitempty"` // Is L3 Interface + IsWan *bool `json:"isWan,omitempty"` // Is Wan + MacAddr string `json:"macAddr,omitempty"` // Mac Addr + MediaType string `json:"mediaType,omitempty"` // Media Type + Name string `json:"name,omitempty"` // Name + OperStatus string `json:"operStatus,omitempty"` // Oper Status + PeerStackMember *int `json:"peerStackMember,omitempty"` // Peer Stack Member + PeerStackPort string `json:"peerStackPort,omitempty"` // Peer Stack Port + PortChannelID string `json:"portChannelId,omitempty"` // Port Channel Id + PortMode string `json:"portMode,omitempty"` // Port Mode + PortType string `json:"portType,omitempty"` // Port Type + RxDiscards *float64 `json:"rxDiscards,omitempty"` // Rx Discards + RxError *int `json:"rxError,omitempty"` // Rx Error + RxRate *float64 `json:"rxRate,omitempty"` // Rx Rate + RxUtilization *float64 `json:"rxUtilization,omitempty"` // Rx Utilization + Speed string `json:"speed,omitempty"` // Speed + StackPortType string `json:"stackPortType,omitempty"` // Stack Port Type + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + TxDiscards *float64 `json:"txDiscards,omitempty"` // Tx Discards + TxError *int `json:"txError,omitempty"` // Tx Error + TxRate *float64 `json:"txRate,omitempty"` // Tx Rate + TxUtilization *float64 `json:"txUtilization,omitempty"` // Tx Utilization + VLANID string `json:"vlanId,omitempty"` // Vlan Id + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network Device Id + NetworkDeviceIPAddress string `json:"networkDeviceIpAddress,omitempty"` // Network Device Ip Address + NetworkDeviceMacAddress string `json:"networkDeviceMacAddress,omitempty"` // Network Device Mac Address + SiteName string `json:"siteName,omitempty"` // Site Name + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id +} +type ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParameters struct { + Response *[]ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponse `json:"response,omitempty"` // + Page *ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address + PlatformID string `json:"platformId,omitempty"` // Platform Id + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + MacAddress string `json:"macAddress,omitempty"` // Mac Address + DeviceSeries string `json:"deviceSeries,omitempty"` // Device Series + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version + ProductVendor string `json:"productVendor,omitempty"` // Product Vendor + DeviceRole string `json:"deviceRole,omitempty"` // Device Role + DeviceType string `json:"deviceType,omitempty"` // Device Type + CommunicationState string `json:"communicationState,omitempty"` // Communication State + CollectionStatus string `json:"collectionStatus,omitempty"` // Collection Status + HaStatus string `json:"haStatus,omitempty"` // Ha Status + LastBootTime *int `json:"lastBootTime,omitempty"` // Last Boot Time + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteID string `json:"siteId,omitempty"` // Site Id + DeviceGroupHierarchyID string `json:"deviceGroupHierarchyId,omitempty"` // Device Group Hierarchy Id + TagNames []string `json:"tagNames,omitempty"` // Tag Names + StackType string `json:"stackType,omitempty"` // Stack Type + OsType string `json:"osType,omitempty"` // Os Type + RingStatus *bool `json:"ringStatus,omitempty"` // Ring Status + MaintenanceModeEnabled *bool `json:"maintenanceModeEnabled,omitempty"` // Maintenance Mode Enabled + UpTime *int `json:"upTime,omitempty"` // Up Time + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6Address string `json:"ipv6Address,omitempty"` // Ipv6 Address + RedundancyMode string `json:"redundancyMode,omitempty"` // Redundancy Mode + FeatureFlagList []string `json:"featureFlagList,omitempty"` // Feature Flag List + HaLastResetReason string `json:"haLastResetReason,omitempty"` // Ha Last Reset Reason + RedundancyPeerStateDerived string `json:"redundancyPeerStateDerived,omitempty"` // Redundancy Peer State Derived + RedundancyPeerState string `json:"redundancyPeerState,omitempty"` // Redundancy Peer State + RedundancyStateDerived string `json:"redundancyStateDerived,omitempty"` // Redundancy State Derived + RedundancyState string `json:"redundancyState,omitempty"` // Redundancy State + WiredClientCount *int `json:"wiredClientCount,omitempty"` // Wired Client Count + WirelessClientCount *int `json:"wirelessClientCount,omitempty"` // Wireless Client Count + PortCount *int `json:"portCount,omitempty"` // Port Count + ClientCount *int `json:"clientCount,omitempty"` // Client Count + ApDetails *ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseApDetails `json:"apDetails,omitempty"` // + MetricsDetails *ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseMetricsDetails `json:"metricsDetails,omitempty"` // + FabricDetails *ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseFabricDetails `json:"fabricDetails,omitempty"` // + AggregateAttributes *[]ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseApDetails struct { + ConnectedWlcName string `json:"connectedWlcName,omitempty"` // Connected Wlc Name + PolicyTagName string `json:"policyTagName,omitempty"` // Policy Tag Name + ApOperationalState string `json:"apOperationalState,omitempty"` // Ap Operational State + PowerSaveMode string `json:"powerSaveMode,omitempty"` // Power Save Mode + OperationalMode string `json:"operationalMode,omitempty"` // Operational Mode + ResetReason string `json:"resetReason,omitempty"` // Reset Reason + Protocol string `json:"protocol,omitempty"` // Protocol + PowerMode string `json:"powerMode,omitempty"` // Power Mode + ConnectedTime *int `json:"connectedTime,omitempty"` // Connected Time + LedFlashEnabled *bool `json:"ledFlashEnabled,omitempty"` // Led Flash Enabled + LedFlashSeconds *int `json:"ledFlashSeconds,omitempty"` // Led Flash Seconds + SubMode string `json:"subMode,omitempty"` // Sub Mode + HomeApEnabled *bool `json:"homeApEnabled,omitempty"` // Home Ap Enabled + PowerType string `json:"powerType,omitempty"` // Power Type + ApType string `json:"apType,omitempty"` // Ap Type + AdminState string `json:"adminState,omitempty"` // Admin State + IcapCapability string `json:"icapCapability,omitempty"` // Icap Capability + RegulatoryDomain string `json:"regulatoryDomain,omitempty"` // Regulatory Domain + EthernetMac string `json:"ethernetMac,omitempty"` // Ethernet Mac + RfTagName string `json:"rfTagName,omitempty"` // Rf Tag Name + SiteTagName string `json:"siteTagName,omitempty"` // Site Tag Name + PowerSaveModeCapable string `json:"powerSaveModeCapable,omitempty"` // Power Save Mode Capable + PowerProfile string `json:"powerProfile,omitempty"` // Power Profile + FlexGroup string `json:"flexGroup,omitempty"` // Flex Group + PowerCalendarProfile string `json:"powerCalendarProfile,omitempty"` // Power Calendar Profile + ApGroup string `json:"apGroup,omitempty"` // Ap Group + Radios *[]ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseApDetailsRadios `json:"radios,omitempty"` // +} +type ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseApDetailsRadios struct { + ID string `json:"id,omitempty"` // Id + Band string `json:"band,omitempty"` // Band + Noise *int `json:"noise,omitempty"` // Noise + AirQuality *float64 `json:"airQuality,omitempty"` // Air Quality + Interference *float64 `json:"interference,omitempty"` // Interference + TrafficUtil *int `json:"trafficUtil,omitempty"` // Traffic Util + Utilization *float64 `json:"utilization,omitempty"` // Utilization + ClientCount *int `json:"clientCount,omitempty"` // Client Count +} +type ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseMetricsDetails struct { + OverallHealthScore *int `json:"overallHealthScore,omitempty"` // Overall Health Score + OverallFabricScore *int `json:"overallFabricScore,omitempty"` // Overall Fabric Score + CPUUtilization *float64 `json:"cpuUtilization,omitempty"` // Cpu Utilization + CPUScore *int `json:"cpuScore,omitempty"` // Cpu Score + MemoryUtilization *float64 `json:"memoryUtilization,omitempty"` // Memory Utilization + MemoryScore *int `json:"memoryScore,omitempty"` // Memory Score + AvgTemperature *float64 `json:"avgTemperature,omitempty"` // Avg Temperature + MaxTemperature *float64 `json:"maxTemperature,omitempty"` // Max Temperature + DiscardScore *int `json:"discardScore,omitempty"` // Discard Score + DiscardInterfaces []string `json:"discardInterfaces,omitempty"` // Discard Interfaces + ErrorScore *int `json:"errorScore,omitempty"` // Error Score + ErrorInterfaces []string `json:"errorInterfaces,omitempty"` // Error Interfaces + InterDeviceLinkScore *int `json:"interDeviceLinkScore,omitempty"` // Inter Device Link Score + InterDeviceConnectedDownInterfaces []string `json:"interDeviceConnectedDownInterfaces,omitempty"` // Inter Device Connected Down Interfaces + LinkUtilizationScore *int `json:"linkUtilizationScore,omitempty"` // Link Utilization Score + HighLinkUtilizationInterfaces []string `json:"highLinkUtilizationInterfaces,omitempty"` // High Link Utilization Interfaces + FreeTimerScore *int `json:"freeTimerScore,omitempty"` // Free Timer Score + FreeTimer *float64 `json:"freeTimer,omitempty"` // Free Timer + PacketPoolScore *int `json:"packetPoolScore,omitempty"` // Packet Pool Score + PacketPool *int `json:"packetPool,omitempty"` // Packet Pool + FreeMemoryBufferScore *int `json:"freeMemoryBufferScore,omitempty"` // Free Memory Buffer Score + FreeMemoryBuffer *float64 `json:"freeMemoryBuffer,omitempty"` // Free Memory Buffer + WqePoolScore *int `json:"wqePoolScore,omitempty"` // Wqe Pool Score + WqePool *int `json:"wqePool,omitempty"` // Wqe Pool + ApCount *int `json:"apCount,omitempty"` // Ap Count + NoiseScore *int `json:"noiseScore,omitempty"` // Noise Score + UtilizationScore *int `json:"utilizationScore,omitempty"` // Utilization Score + InterferenceScore *int `json:"interferenceScore,omitempty"` // Interference Score + AirQualityScore *int `json:"airQualityScore,omitempty"` // Air Quality Score +} +type ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseFabricDetails struct { + FabricRole []string `json:"fabricRole,omitempty"` // Fabric Role + FabricSiteName string `json:"fabricSiteName,omitempty"` // Fabric Site Name + TransitFabrics []string `json:"transitFabrics,omitempty"` // Transit Fabrics +} +type ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy string `json:"sortBy,omitempty"` // Sort By + Order string `json:"order,omitempty"` // Order +} +type ResponseDevicesGetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParameters struct { + Response *ResponseDevicesGetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParametersResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParametersResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions struct { + Response *[]ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponse `json:"response,omitempty"` // + Page *ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address + PlatformID string `json:"platformId,omitempty"` // Platform Id + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + MacAddress string `json:"macAddress,omitempty"` // Mac Address + DeviceSeries string `json:"deviceSeries,omitempty"` // Device Series + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version + ProductVendor string `json:"productVendor,omitempty"` // Product Vendor + DeviceRole string `json:"deviceRole,omitempty"` // Device Role + DeviceType string `json:"deviceType,omitempty"` // Device Type + CommunicationState string `json:"communicationState,omitempty"` // Communication State + CollectionStatus string `json:"collectionStatus,omitempty"` // Collection Status + HaStatus string `json:"haStatus,omitempty"` // Ha Status + LastBootTime *int `json:"lastBootTime,omitempty"` // Last Boot Time + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteID string `json:"siteId,omitempty"` // Site Id + DeviceGroupHierarchyID string `json:"deviceGroupHierarchyId,omitempty"` // Device Group Hierarchy Id + TagNames []string `json:"tagNames,omitempty"` // Tag Names + StackType string `json:"stackType,omitempty"` // Stack Type + OsType string `json:"osType,omitempty"` // Os Type + RingStatus *bool `json:"ringStatus,omitempty"` // Ring Status + MaintenanceModeEnabled *bool `json:"maintenanceModeEnabled,omitempty"` // Maintenance Mode Enabled + UpTime *int `json:"upTime,omitempty"` // Up Time + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6Address string `json:"ipv6Address,omitempty"` // Ipv6 Address + RedundancyMode string `json:"redundancyMode,omitempty"` // Redundancy Mode + FeatureFlagList []string `json:"featureFlagList,omitempty"` // Feature Flag List + HaLastResetReason string `json:"haLastResetReason,omitempty"` // Ha Last Reset Reason + RedundancyPeerStateDerived string `json:"redundancyPeerStateDerived,omitempty"` // Redundancy Peer State Derived + RedundancyPeerState string `json:"redundancyPeerState,omitempty"` // Redundancy Peer State + RedundancyStateDerived string `json:"redundancyStateDerived,omitempty"` // Redundancy State Derived + RedundancyState string `json:"redundancyState,omitempty"` // Redundancy State + WiredClientCount *int `json:"wiredClientCount,omitempty"` // Wired Client Count + WirelessClientCount *int `json:"wirelessClientCount,omitempty"` // Wireless Client Count + PortCount *int `json:"portCount,omitempty"` // Port Count + ClientCount *int `json:"clientCount,omitempty"` // Client Count + ApDetails *ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseApDetails `json:"apDetails,omitempty"` // + MetricsDetails *ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseMetricsDetails `json:"metricsDetails,omitempty"` // + FabricDetails *ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseFabricDetails `json:"fabricDetails,omitempty"` // + AggregateAttributes *[]ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseApDetails struct { + ConnectedWlcName string `json:"connectedWlcName,omitempty"` // Connected Wlc Name + PolicyTagName string `json:"policyTagName,omitempty"` // Policy Tag Name + ApOperationalState string `json:"apOperationalState,omitempty"` // Ap Operational State + PowerSaveMode string `json:"powerSaveMode,omitempty"` // Power Save Mode + OperationalMode string `json:"operationalMode,omitempty"` // Operational Mode + ResetReason string `json:"resetReason,omitempty"` // Reset Reason + Protocol string `json:"protocol,omitempty"` // Protocol + PowerMode string `json:"powerMode,omitempty"` // Power Mode + ConnectedTime *int `json:"connectedTime,omitempty"` // Connected Time + LedFlashEnabled *bool `json:"ledFlashEnabled,omitempty"` // Led Flash Enabled + LedFlashSeconds *int `json:"ledFlashSeconds,omitempty"` // Led Flash Seconds + SubMode string `json:"subMode,omitempty"` // Sub Mode + HomeApEnabled *bool `json:"homeApEnabled,omitempty"` // Home Ap Enabled + PowerType string `json:"powerType,omitempty"` // Power Type + ApType string `json:"apType,omitempty"` // Ap Type + AdminState string `json:"adminState,omitempty"` // Admin State + IcapCapability string `json:"icapCapability,omitempty"` // Icap Capability + RegulatoryDomain string `json:"regulatoryDomain,omitempty"` // Regulatory Domain + EthernetMac string `json:"ethernetMac,omitempty"` // Ethernet Mac + RfTagName string `json:"rfTagName,omitempty"` // Rf Tag Name + SiteTagName string `json:"siteTagName,omitempty"` // Site Tag Name + PowerSaveModeCapable string `json:"powerSaveModeCapable,omitempty"` // Power Save Mode Capable + PowerProfile string `json:"powerProfile,omitempty"` // Power Profile + FlexGroup string `json:"flexGroup,omitempty"` // Flex Group + PowerCalendarProfile string `json:"powerCalendarProfile,omitempty"` // Power Calendar Profile + ApGroup string `json:"apGroup,omitempty"` // Ap Group + Radios *[]ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseApDetailsRadios `json:"radios,omitempty"` // +} +type ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseApDetailsRadios struct { + ID string `json:"id,omitempty"` // Id + Band string `json:"band,omitempty"` // Band + Noise *int `json:"noise,omitempty"` // Noise + AirQuality *float64 `json:"airQuality,omitempty"` // Air Quality + Interference *float64 `json:"interference,omitempty"` // Interference + TrafficUtil *int `json:"trafficUtil,omitempty"` // Traffic Util + Utilization *float64 `json:"utilization,omitempty"` // Utilization + ClientCount *int `json:"clientCount,omitempty"` // Client Count +} +type ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseMetricsDetails struct { + OverallHealthScore *int `json:"overallHealthScore,omitempty"` // Overall Health Score + OverallFabricScore *int `json:"overallFabricScore,omitempty"` // Overall Fabric Score + CPUUtilization *float64 `json:"cpuUtilization,omitempty"` // Cpu Utilization + CPUScore *int `json:"cpuScore,omitempty"` // Cpu Score + MemoryUtilization *float64 `json:"memoryUtilization,omitempty"` // Memory Utilization + MemoryScore *int `json:"memoryScore,omitempty"` // Memory Score + AvgTemperature *float64 `json:"avgTemperature,omitempty"` // Avg Temperature + MaxTemperature *float64 `json:"maxTemperature,omitempty"` // Max Temperature + DiscardScore *int `json:"discardScore,omitempty"` // Discard Score + DiscardInterfaces []string `json:"discardInterfaces,omitempty"` // Discard Interfaces + ErrorScore *int `json:"errorScore,omitempty"` // Error Score + ErrorInterfaces []string `json:"errorInterfaces,omitempty"` // Error Interfaces + InterDeviceLinkScore *int `json:"interDeviceLinkScore,omitempty"` // Inter Device Link Score + InterDeviceConnectedDownInterfaces []string `json:"interDeviceConnectedDownInterfaces,omitempty"` // Inter Device Connected Down Interfaces + LinkUtilizationScore *int `json:"linkUtilizationScore,omitempty"` // Link Utilization Score + HighLinkUtilizationInterfaces []string `json:"highLinkUtilizationInterfaces,omitempty"` // High Link Utilization Interfaces + FreeTimerScore *int `json:"freeTimerScore,omitempty"` // Free Timer Score + FreeTimer *float64 `json:"freeTimer,omitempty"` // Free Timer + PacketPoolScore *int `json:"packetPoolScore,omitempty"` // Packet Pool Score + PacketPool *int `json:"packetPool,omitempty"` // Packet Pool + FreeMemoryBufferScore *int `json:"freeMemoryBufferScore,omitempty"` // Free Memory Buffer Score + FreeMemoryBuffer *float64 `json:"freeMemoryBuffer,omitempty"` // Free Memory Buffer + WqePoolScore *int `json:"wqePoolScore,omitempty"` // Wqe Pool Score + WqePool *int `json:"wqePool,omitempty"` // Wqe Pool + ApCount *int `json:"apCount,omitempty"` // Ap Count + NoiseScore *int `json:"noiseScore,omitempty"` // Noise Score + UtilizationScore *int `json:"utilizationScore,omitempty"` // Utilization Score + InterferenceScore *int `json:"interferenceScore,omitempty"` // Interference Score + AirQualityScore *int `json:"airQualityScore,omitempty"` // Air Quality Score +} +type ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseFabricDetails struct { + FabricRole []string `json:"fabricRole,omitempty"` // Fabric Role + FabricSiteName string `json:"fabricSiteName,omitempty"` // Fabric Site Name + TransitFabrics []string `json:"transitFabrics,omitempty"` // Transit Fabrics +} +type ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy string `json:"sortBy,omitempty"` // Sort By + Order string `json:"order,omitempty"` // Order +} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices struct { + Response *ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponse `json:"response,omitempty"` // + Page *[]ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesPage `json:"page,omitempty"` // +} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponse struct { + Attributes *[]ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseAttributes `json:"attributes,omitempty"` // Attributes + AggregateAttributes *[]ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // Aggregate Attributes + Groups *[]ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseGroups `json:"groups,omitempty"` // +} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseAttributes interface{} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseAggregateAttributes interface{} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseGroups struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseGroupsAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseGroupsAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseGroupsAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesResponseGroupsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseDevicesGetsTheTrendAnalyticsData struct { + Response *[]ResponseDevicesGetsTheTrendAnalyticsDataResponse `json:"response,omitempty"` // + Page *ResponseDevicesGetsTheTrendAnalyticsDataPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetsTheTrendAnalyticsDataResponse struct { + Timestamp *float64 `json:"timestamp,omitempty"` // Timestamp + Attributes *[]ResponseDevicesGetsTheTrendAnalyticsDataResponseAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseDevicesGetsTheTrendAnalyticsDataResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Groups *[]ResponseDevicesGetsTheTrendAnalyticsDataResponseGroups `json:"groups,omitempty"` // +} +type ResponseDevicesGetsTheTrendAnalyticsDataResponseAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheTrendAnalyticsDataResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheTrendAnalyticsDataResponseGroups struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseDevicesGetsTheTrendAnalyticsDataResponseGroupsAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseDevicesGetsTheTrendAnalyticsDataResponseGroupsAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseDevicesGetsTheTrendAnalyticsDataResponseGroupsAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheTrendAnalyticsDataResponseGroupsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesGetsTheTrendAnalyticsDataPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + TimestampOrder string `json:"timestampOrder,omitempty"` // Timestamp Order +} +type ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUID struct { + Response *ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address + PlatformID string `json:"platformId,omitempty"` // Platform Id + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number + MacAddress string `json:"macAddress,omitempty"` // Mac Address + DeviceSeries string `json:"deviceSeries,omitempty"` // Device Series + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version + ProductVendor string `json:"productVendor,omitempty"` // Product Vendor + DeviceRole string `json:"deviceRole,omitempty"` // Device Role + DeviceType string `json:"deviceType,omitempty"` // Device Type + CommunicationState string `json:"communicationState,omitempty"` // Communication State + CollectionStatus string `json:"collectionStatus,omitempty"` // Collection Status + HaStatus string `json:"haStatus,omitempty"` // Ha Status + LastBootTime *int `json:"lastBootTime,omitempty"` // Last Boot Time + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteID string `json:"siteId,omitempty"` // Site Id + DeviceGroupHierarchyID string `json:"deviceGroupHierarchyId,omitempty"` // Device Group Hierarchy Id + TagNames []string `json:"tagNames,omitempty"` // Tag Names + StackType string `json:"stackType,omitempty"` // Stack Type + OsType string `json:"osType,omitempty"` // Os Type + RingStatus *bool `json:"ringStatus,omitempty"` // Ring Status + MaintenanceModeEnabled *bool `json:"maintenanceModeEnabled,omitempty"` // Maintenance Mode Enabled + UpTime *int `json:"upTime,omitempty"` // Up Time + IPv4Address string `json:"ipv4Address,omitempty"` // Ipv4 Address + IPv6Address string `json:"ipv6Address,omitempty"` // Ipv6 Address + RedundancyMode string `json:"redundancyMode,omitempty"` // Redundancy Mode + FeatureFlagList []string `json:"featureFlagList,omitempty"` // Feature Flag List + HaLastResetReason string `json:"haLastResetReason,omitempty"` // Ha Last Reset Reason + RedundancyPeerStateDerived string `json:"redundancyPeerStateDerived,omitempty"` // Redundancy Peer State Derived + RedundancyPeerState string `json:"redundancyPeerState,omitempty"` // Redundancy Peer State + RedundancyStateDerived string `json:"redundancyStateDerived,omitempty"` // Redundancy State Derived + RedundancyState string `json:"redundancyState,omitempty"` // Redundancy State + WiredClientCount *int `json:"wiredClientCount,omitempty"` // Wired Client Count + WirelessClientCount *int `json:"wirelessClientCount,omitempty"` // Wireless Client Count + PortCount *int `json:"portCount,omitempty"` // Port Count + ClientCount *int `json:"clientCount,omitempty"` // Client Count + ApDetails *ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseApDetails `json:"apDetails,omitempty"` // + MetricsDetails *ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseMetricsDetails `json:"metricsDetails,omitempty"` // + FabricDetails *ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseFabricDetails `json:"fabricDetails,omitempty"` // + AggregateAttributes *[]ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseApDetails struct { + ConnectedWlcName string `json:"connectedWlcName,omitempty"` // Connected Wlc Name + PolicyTagName string `json:"policyTagName,omitempty"` // Policy Tag Name + ApOperationalState string `json:"apOperationalState,omitempty"` // Ap Operational State + PowerSaveMode string `json:"powerSaveMode,omitempty"` // Power Save Mode + OperationalMode string `json:"operationalMode,omitempty"` // Operational Mode + ResetReason string `json:"resetReason,omitempty"` // Reset Reason + Protocol string `json:"protocol,omitempty"` // Protocol + PowerMode string `json:"powerMode,omitempty"` // Power Mode + ConnectedTime *int `json:"connectedTime,omitempty"` // Connected Time + LedFlashEnabled *bool `json:"ledFlashEnabled,omitempty"` // Led Flash Enabled + LedFlashSeconds *int `json:"ledFlashSeconds,omitempty"` // Led Flash Seconds + SubMode string `json:"subMode,omitempty"` // Sub Mode + HomeApEnabled *bool `json:"homeApEnabled,omitempty"` // Home Ap Enabled + PowerType string `json:"powerType,omitempty"` // Power Type + ApType string `json:"apType,omitempty"` // Ap Type + AdminState string `json:"adminState,omitempty"` // Admin State + IcapCapability string `json:"icapCapability,omitempty"` // Icap Capability + RegulatoryDomain string `json:"regulatoryDomain,omitempty"` // Regulatory Domain + EthernetMac string `json:"ethernetMac,omitempty"` // Ethernet Mac + RfTagName string `json:"rfTagName,omitempty"` // Rf Tag Name + SiteTagName string `json:"siteTagName,omitempty"` // Site Tag Name + PowerSaveModeCapable string `json:"powerSaveModeCapable,omitempty"` // Power Save Mode Capable + PowerProfile string `json:"powerProfile,omitempty"` // Power Profile + FlexGroup string `json:"flexGroup,omitempty"` // Flex Group + PowerCalendarProfile string `json:"powerCalendarProfile,omitempty"` // Power Calendar Profile + ApGroup string `json:"apGroup,omitempty"` // Ap Group + Radios *[]ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseApDetailsRadios `json:"radios,omitempty"` // +} +type ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseApDetailsRadios struct { + ID string `json:"id,omitempty"` // Id + Band string `json:"band,omitempty"` // Band + Noise *int `json:"noise,omitempty"` // Noise + AirQuality *float64 `json:"airQuality,omitempty"` // Air Quality + Interference *float64 `json:"interference,omitempty"` // Interference + TrafficUtil *int `json:"trafficUtil,omitempty"` // Traffic Util + Utilization *float64 `json:"utilization,omitempty"` // Utilization + ClientCount *int `json:"clientCount,omitempty"` // Client Count +} +type ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseMetricsDetails struct { + OverallHealthScore *int `json:"overallHealthScore,omitempty"` // Overall Health Score + OverallFabricScore *int `json:"overallFabricScore,omitempty"` // Overall Fabric Score + CPUUtilization *float64 `json:"cpuUtilization,omitempty"` // Cpu Utilization + CPUScore *int `json:"cpuScore,omitempty"` // Cpu Score + MemoryUtilization *float64 `json:"memoryUtilization,omitempty"` // Memory Utilization + MemoryScore *int `json:"memoryScore,omitempty"` // Memory Score + AvgTemperature *float64 `json:"avgTemperature,omitempty"` // Avg Temperature + MaxTemperature *float64 `json:"maxTemperature,omitempty"` // Max Temperature + DiscardScore *int `json:"discardScore,omitempty"` // Discard Score + DiscardInterfaces []string `json:"discardInterfaces,omitempty"` // Discard Interfaces + ErrorScore *int `json:"errorScore,omitempty"` // Error Score + ErrorInterfaces []string `json:"errorInterfaces,omitempty"` // Error Interfaces + InterDeviceLinkScore *int `json:"interDeviceLinkScore,omitempty"` // Inter Device Link Score + InterDeviceConnectedDownInterfaces []string `json:"interDeviceConnectedDownInterfaces,omitempty"` // Inter Device Connected Down Interfaces + LinkUtilizationScore *int `json:"linkUtilizationScore,omitempty"` // Link Utilization Score + HighLinkUtilizationInterfaces []string `json:"highLinkUtilizationInterfaces,omitempty"` // High Link Utilization Interfaces + FreeTimerScore *int `json:"freeTimerScore,omitempty"` // Free Timer Score + FreeTimer *float64 `json:"freeTimer,omitempty"` // Free Timer + PacketPoolScore *int `json:"packetPoolScore,omitempty"` // Packet Pool Score + PacketPool *int `json:"packetPool,omitempty"` // Packet Pool + FreeMemoryBufferScore *int `json:"freeMemoryBufferScore,omitempty"` // Free Memory Buffer Score + FreeMemoryBuffer *float64 `json:"freeMemoryBuffer,omitempty"` // Free Memory Buffer + WqePoolScore *int `json:"wqePoolScore,omitempty"` // Wqe Pool Score + WqePool *int `json:"wqePool,omitempty"` // Wqe Pool + ApCount *int `json:"apCount,omitempty"` // Ap Count + NoiseScore *int `json:"noiseScore,omitempty"` // Noise Score + UtilizationScore *int `json:"utilizationScore,omitempty"` // Utilization Score + InterferenceScore *int `json:"interferenceScore,omitempty"` // Interference Score + AirQualityScore *int `json:"airQualityScore,omitempty"` // Air Quality Score +} +type ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseFabricDetails struct { + FabricRole []string `json:"fabricRole,omitempty"` // Fabric Role + FabricSiteName string `json:"fabricSiteName,omitempty"` // Fabric Site Name + TransitFabrics []string `json:"transitFabrics,omitempty"` // Transit Fabrics +} +type ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUIDResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange struct { + Response *[]ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponse `json:"response,omitempty"` // + Page *ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangePage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponse struct { + Timestamp *float64 `json:"timestamp,omitempty"` // Timestamp + Attributes *[]ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Groups *[]ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseGroups `json:"groups,omitempty"` // +} +type ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseGroups struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseGroupsAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseGroupsAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseGroupsAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeResponseGroupsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *float64 `json:"value,omitempty"` // Value +} +type ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangePage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + TimestampOrder string `json:"timestampOrder,omitempty"` // Timestamp Order +} type ResponseDevicesGetPlannedAccessPointsForBuilding struct { Response *[]ResponseDevicesGetPlannedAccessPointsForBuildingResponse `json:"response,omitempty"` // - Version *int `json:"version,omitempty"` // Version - Total *int `json:"total,omitempty"` // Total + Version *int `json:"version,omitempty"` // Version of the api response model + Total *int `json:"total,omitempty"` // Total number of the planned access points } type ResponseDevicesGetPlannedAccessPointsForBuildingResponse struct { Attributes *ResponseDevicesGetPlannedAccessPointsForBuildingResponseAttributes `json:"attributes,omitempty"` // - Location *ResponseDevicesGetPlannedAccessPointsForBuildingResponseLocation `json:"location,omitempty"` // Location + Location *ResponseDevicesGetPlannedAccessPointsForBuildingResponseLocation `json:"location,omitempty"` // Position *ResponseDevicesGetPlannedAccessPointsForBuildingResponsePosition `json:"position,omitempty"` // - RadioCount *int `json:"radioCount,omitempty"` // Radio Count + RadioCount *int `json:"radioCount,omitempty"` // Number of radios of the planned access point Radios *[]ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadios `json:"radios,omitempty"` // - IsSensor *bool `json:"isSensor,omitempty"` // Is Sensor + IsSensor *bool `json:"isSensor,omitempty"` // Determines if the planned access point is sensor or not } type ResponseDevicesGetPlannedAccessPointsForBuildingResponseAttributes struct { - ID *int `json:"id,omitempty"` // Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - Name string `json:"name,omitempty"` // Name - TypeString string `json:"typeString,omitempty"` // Type String - Domain string `json:"domain,omitempty"` // Domain - HeirarchyName string `json:"heirarchyName,omitempty"` // Heirarchy Name - Source string `json:"source,omitempty"` // Source - CreateDate *int `json:"createDate,omitempty"` // Create Date - Macaddress *ResponseDevicesGetPlannedAccessPointsForBuildingResponseAttributesMacaddress `json:"macaddress,omitempty"` // Macaddress -} -type ResponseDevicesGetPlannedAccessPointsForBuildingResponseAttributesMacaddress interface{} -type ResponseDevicesGetPlannedAccessPointsForBuildingResponseLocation interface{} + ID *float64 `json:"id,omitempty"` // Unique id of the planned access point + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance uuid of the planned access point + Name string `json:"name,omitempty"` // Display name of the planned access point + TypeString string `json:"typeString,omitempty"` // Type string representation of the planned access point + Domain string `json:"domain,omitempty"` // Service domain to which the planned access point belongs + HeirarchyName string `json:"heirarchyName,omitempty"` // Hierarchy name of the planned access point + Source string `json:"source,omitempty"` // Source of the data used to create the planned access point + CreateDate *float64 `json:"createDate,omitempty"` // Created date of the planned access point + MacAddress string `json:"macAddress,omitempty"` // MAC address of the planned access point +} +type ResponseDevicesGetPlannedAccessPointsForBuildingResponseLocation struct { + Altitude *float64 `json:"altitude,omitempty"` // Altitude of the planned access point's location + Lattitude *float64 `json:"lattitude,omitempty"` // Latitude of the planned access point's location + Longtitude *float64 `json:"longtitude,omitempty"` // Longitude of the planned access point's location +} type ResponseDevicesGetPlannedAccessPointsForBuildingResponsePosition struct { - X *float64 `json:"x,omitempty"` // X - Y *float64 `json:"y,omitempty"` // Y - Z *float64 `json:"z,omitempty"` // Z + X *float64 `json:"x,omitempty"` // x-coordinate of the planned access point on the map, 0,0 point being the top-left corner + Y *float64 `json:"y,omitempty"` // y-coordinate of the planned access point on the map, 0,0 point being the top-left corner + Z *float64 `json:"z,omitempty"` // z-coordinate, or height, of the planned access point on the map } type ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadios struct { Attributes *ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadiosAttributes `json:"attributes,omitempty"` // Antenna *ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadiosAntenna `json:"antenna,omitempty"` // - IsSensor *bool `json:"isSensor,omitempty"` // Is Sensor + IsSensor *bool `json:"isSensor,omitempty"` // Determines if it is sensor or not } type ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadiosAttributes struct { - ID *int `json:"id,omitempty"` // Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - SlotID *int `json:"slotId,omitempty"` // Slot Id - IfTypeString string `json:"ifTypeString,omitempty"` // If Type String - IfTypeSubband string `json:"ifTypeSubband,omitempty"` // If Type Subband - Channel *ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadiosAttributesChannel `json:"channel,omitempty"` // Channel - ChannelString *ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadiosAttributesChannelString `json:"channelString,omitempty"` // Channel String - IfMode string `json:"ifMode,omitempty"` // If Mode -} -type ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadiosAttributesChannel interface{} -type ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadiosAttributesChannelString interface{} + ID *int `json:"id,omitempty"` // Id of the radio + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the radio + SlotID *float64 `json:"slotId,omitempty"` // Slot number in which the radio resides in the parent access point + IfTypeString string `json:"ifTypeString,omitempty"` // String representation of native band + IfTypeSubband string `json:"ifTypeSubband,omitempty"` // Sub band type of the radio + Channel *float64 `json:"channel,omitempty"` // Channel in which the radio operates + ChannelString string `json:"channelString,omitempty"` // Channel string representation + IfMode string `json:"ifMode,omitempty"` // IF mode of the radio + TxPowerLevel *float64 `json:"txPowerLevel,omitempty"` // Tx Power at which this radio operates (in dBm) +} type ResponseDevicesGetPlannedAccessPointsForBuildingResponseRadiosAntenna struct { - Name string `json:"name,omitempty"` // Name - Type string `json:"type,omitempty"` // Type - Mode string `json:"mode,omitempty"` // Mode - AzimuthAngle *float64 `json:"azimuthAngle,omitempty"` // Azimuth Angle - ElevationAngle *float64 `json:"elevationAngle,omitempty"` // Elevation Angle - Gain *float64 `json:"gain,omitempty"` // Gain + Name string `json:"name,omitempty"` // Name of the antenna + Type string `json:"type,omitempty"` // Type of the antenna associated with this radio + Mode string `json:"mode,omitempty"` // Mode of the antenna associated with this radio + AzimuthAngle *float64 `json:"azimuthAngle,omitempty"` // Azimuth angle of the antenna + ElevationAngle *float64 `json:"elevationAngle,omitempty"` // Elevation angle of the antenna + Gain *float64 `json:"gain,omitempty"` // Gain of the antenna } type ResponseDevicesGetDeviceDetail struct { Response *ResponseDevicesGetDeviceDetailResponse `json:"response,omitempty"` // } type ResponseDevicesGetDeviceDetailResponse struct { - HALastResetReason string `json:"HALastResetReason,omitempty"` // H A Last Reset Reason - ManagementIPAddr string `json:"managementIpAddr,omitempty"` // Management Ip Addr - HAPrimaryPowerStatus string `json:"HAPrimaryPowerStatus,omitempty"` // H A Primary Power Status - RedundancyMode string `json:"redundancyMode,omitempty"` // Redundancy Mode - CommunicationState string `json:"communicationState,omitempty"` // Communication State - NwDeviceName string `json:"nwDeviceName,omitempty"` // Nw Device Name - RedundancyUnit string `json:"redundancyUnit,omitempty"` // Redundancy Unit - PlatformID string `json:"platformId,omitempty"` // Platform Id - RedundancyPeerState string `json:"redundancyPeerState,omitempty"` // Redundancy Peer State - NwDeviceID string `json:"nwDeviceId,omitempty"` // Nw Device Id - RedundancyState string `json:"redundancyState,omitempty"` // Redundancy State - NwDeviceRole string `json:"nwDeviceRole,omitempty"` // Nw Device Role - NwDeviceFamily string `json:"nwDeviceFamily,omitempty"` // Nw Device Family - MacAddress string `json:"macAddress,omitempty"` // Mac Address - CollectionStatus string `json:"collectionStatus,omitempty"` // Collection Status - DeviceSeries string `json:"deviceSeries,omitempty"` // Device Series - OsType string `json:"osType,omitempty"` // Os Type - ClientCount string `json:"clientCount,omitempty"` // Client Count - HASecondaryPowerStatus string `json:"HASecondaryPowerStatus,omitempty"` // H A Secondary Power Status - SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version - NwDeviceType string `json:"nwDeviceType,omitempty"` // Nw Device Type - OverallHealth *int `json:"overallHealth,omitempty"` // Overall Health - MemoryScore *int `json:"memoryScore,omitempty"` // Memory Score - CPUScore *int `json:"cpuScore,omitempty"` // Cpu Score - NoiseScore *int `json:"noiseScore,omitempty"` // Noise Score - UtilizationScore *int `json:"utilizationScore,omitempty"` // Utilization Score - AirQualityScore *int `json:"airQualityScore,omitempty"` // Air Quality Score - InterferenceScore *int `json:"interferenceScore,omitempty"` // Interference Score - WqeScore *int `json:"wqeScore,omitempty"` // Wqe Score - FreeMbufScore *int `json:"freeMbufScore,omitempty"` // Free Mbuf Score - PacketPoolScore *int `json:"packetPoolScore,omitempty"` // Packet Pool Score - FreeTimerScore *int `json:"freeTimerScore,omitempty"` // Free Timer Score - Memory string `json:"memory,omitempty"` // Memory - CPU string `json:"cpu,omitempty"` // Cpu - Noise string `json:"noise,omitempty"` // Noise - Utilization string `json:"utilization,omitempty"` // Utilization - AirQuality string `json:"airQuality,omitempty"` // Air Quality - Interference string `json:"interference,omitempty"` // Interference - Wqe string `json:"wqe,omitempty"` // Wqe - FreeMbuf string `json:"freeMbuf,omitempty"` // Free Mbuf - PacketPool string `json:"packetPool,omitempty"` // Packet Pool - FreeTimer string `json:"freeTimer,omitempty"` // Free Timer - Location string `json:"location,omitempty"` // Location - Timestamp *int `json:"timestamp,omitempty"` // Timestamp - TagIDList *[]string `json:"tagIdList,omitempty"` // Timestamp - SiteHierarchyGraphId string `json:"SiteHierarchyGraphId,omitempty"` //Site Hierarchy Graph Id -} + NoiseScore *int `json:"noiseScore,omitempty"` // Device (AP) WIFI signal noise health score + PolicyTagName string `json:"policyTagName,omitempty"` // Device (AP) policy tag + InterferenceScore *int `json:"interferenceScore,omitempty"` // Device (AP) WIFI signal interference health score + OpState string `json:"opState,omitempty"` // Operation state of device (AP) + PowerSaveMode string `json:"powerSaveMode,omitempty"` // Device power save mode + Mode string `json:"mode,omitempty"` // Device mode (AP) + ResetReason string `json:"resetReason,omitempty"` // Device reset reason + NwDeviceRole string `json:"nwDeviceRole,omitempty"` // Device role + Protocol string `json:"protocol,omitempty"` // Protocol code + PowerMode string `json:"powerMode,omitempty"` // Device's power mode + ConnectedTime string `json:"connectedTime,omitempty"` // UTC timestamp + RingStatus *bool `json:"ringStatus,omitempty"` // Device's ring status + LedFlashSeconds string `json:"ledFlashSeconds,omitempty"` // LED flash seconds + IPAddrManagementIPAddr string `json:"ip_addr_managementIpAddr,omitempty"` // Device's management IP address + StackType string `json:"stackType,omitempty"` // Device stack type (applicable for stackable devices) + SubMode string `json:"subMode,omitempty"` // Device submode + SerialNumber string `json:"serialNumber,omitempty"` // Device serial number + NwDeviceName string `json:"nwDeviceName,omitempty"` // Device name + DeviceGroupHierarchyID string `json:"deviceGroupHierarchyId,omitempty"` // Device group site hierarchy UUID + CPU *float64 `json:"cpu,omitempty"` // Device CPU utilization + Utilization string `json:"utilization,omitempty"` // Device utilization + NwDeviceID string `json:"nwDeviceId,omitempty"` // Device's UUID + SiteHierarchyGraphID string `json:"siteHierarchyGraphId,omitempty"` // Site hierarchy UUID in which device is assigned to + NwDeviceFamily string `json:"nwDeviceFamily,omitempty"` // Device faimly string + MacAddress string `json:"macAddress,omitempty"` // Device MAC address + HomeApEnabled string `json:"homeApEnabled,omitempty"` // Home Ap Enabled + DeviceSeries string `json:"deviceSeries,omitempty"` // Device series string + CollectionStatus string `json:"collectionStatus,omitempty"` // Device's telemetry data collection status for DNAC + UtilizationScore *int `json:"utilizationScore,omitempty"` // Device utilization health score + MaintenanceMode *bool `json:"maintenanceMode,omitempty"` // Whether device is in maintenance mode + Interference string `json:"interference,omitempty"` // Device (AP) WIFI signal interference + SoftwareVersion string `json:"softwareVersion,omitempty"` // Device's software version string + TagIDList *[]ResponseDevicesGetDeviceDetailResponseTagIDList `json:"tagIdList,omitempty"` // Tag ID List + PowerType string `json:"powerType,omitempty"` // Device (AP) power type + OverallHealth *int `json:"overallHealth,omitempty"` // Device's overall health score + ManagementIPAddr string `json:"managementIpAddr,omitempty"` // Management IP address of the device + Memory string `json:"memory,omitempty"` // Device memory utilization + CommunicationState string `json:"communicationState,omitempty"` // Device communication state + ApType string `json:"apType,omitempty"` // Ap Type + AdminState string `json:"adminState,omitempty"` // Device (AP) admin state + Noise string `json:"noise,omitempty"` // Device (AP) WIFI signal noise + IcapCapability string `json:"icapCapability,omitempty"` // Device (AP) ICAP capability bit values + RegulatoryDomain string `json:"regulatoryDomain,omitempty"` // Device (AP) WIFI domain + EthernetMac string `json:"ethernetMac,omitempty"` // Device (AP) ethernet MAC address + NwDeviceType string `json:"nwDeviceType,omitempty"` // Device type + AirQuality string `json:"airQuality,omitempty"` // Device (AP) WIFI air quality + RfTagName string `json:"rfTagName,omitempty"` // Device (AP) RF tag name + SiteTagName string `json:"siteTagName,omitempty"` // Device (AP) site tag name + PlatformID string `json:"platformId,omitempty"` // Device's platform ID + UpTime string `json:"upTime,omitempty"` // Device up time + MemoryScore *int `json:"memoryScore,omitempty"` // Device's memory usage score + PowerSaveModeCapable string `json:"powerSaveModeCapable,omitempty"` // Device (AP) power save mode capability + PowerProfile string `json:"powerProfile,omitempty"` // Device (AP) power profile name + AirQualityScore *int `json:"airQualityScore,omitempty"` // Device (AP) air quality health score + Location string `json:"location,omitempty"` // Device's site hierarchy UUID + FlexGroup string `json:"flexGroup,omitempty"` // Deivce (A) flexconnect group + LastBootTime *float64 `json:"lastBootTime,omitempty"` // Device's last boot UTC timestamp + PowerCalendarProfile string `json:"powerCalendarProfile,omitempty"` // Device (AP) power calendar profile name + ConnectivityStatus *int `json:"connectivityStatus,omitempty"` // Device connectivity status + LedFlashEnabled string `json:"ledFlashEnabled,omitempty"` // Device (AP) LED flash + CPUScore *int `json:"cpuScore,omitempty"` // Device's CPU usage score + AvgTemperature *float64 `json:"avgTemperature,omitempty"` // Device's average temperature + MaxTemperature *float64 `json:"maxTemperature,omitempty"` // Device's max temperature + HaStatus string `json:"haStatus,omitempty"` // Device's HA status + OsType string `json:"osType,omitempty"` // Device's OS type + Timestamp *int `json:"timestamp,omitempty"` // UTC timestamp of the device health data + ApGroup string `json:"apGroup,omitempty"` // Device (AP) AP group + RedundancyMode string `json:"redundancyMode,omitempty"` // Device redundancy mode + FeatureFlagList []string `json:"featureFlagList,omitempty"` // List of device feature capabilities + FreeMbufScore *int `json:"freeMbufScore,omitempty"` // Free memory buffer health score + HALastResetReason string `json:"HALastResetReason,omitempty"` // Last HA reset reason + WqeScore *int `json:"wqeScore,omitempty"` // WQE health score + RedundancyPeerStateDerived string `json:"redundancyPeerStateDerived,omitempty"` // Redundancy Peer State Derived + FreeTimerScore *int `json:"freeTimerScore,omitempty"` // Free Timer Score + RedundancyPeerState string `json:"redundancyPeerState,omitempty"` // Redundancy Peer State + RedundancyStateDerived string `json:"redundancyStateDerived,omitempty"` // Derived redundancy state + RedundancyState string `json:"redundancyState,omitempty"` // Redundancy state + PacketPoolScore *int `json:"packetPoolScore,omitempty"` // Device packet pool health score + FreeTimer *float64 `json:"freeTimer,omitempty"` // Free timer of the device + PacketPool *float64 `json:"packetPool,omitempty"` // Packet pool of the device + Wqe *float64 `json:"wqe,omitempty"` // WQE of the device + FreeMbuf *float64 `json:"freeMbuf,omitempty"` // Free memory buffer of the device +} +type ResponseDevicesGetDeviceDetailResponseTagIDList interface{} type ResponseDevicesGetDeviceEnrichmentDetails []ResponseItemDevicesGetDeviceEnrichmentDetails // Array of ResponseDevicesGetDeviceEnrichmentDetails type ResponseItemDevicesGetDeviceEnrichmentDetails struct { DeviceDetails *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetails `json:"deviceDetails,omitempty"` // } type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetails struct { - Family string `json:"family,omitempty"` // Family - Type string `json:"type,omitempty"` // Type - Location *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsLocation `json:"location,omitempty"` // Location - ErrorCode string `json:"errorCode,omitempty"` // Error Code - MacAddress string `json:"macAddress,omitempty"` // Mac Address - Role string `json:"role,omitempty"` // Role - ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // Ap Manager Interface Ip - AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated Wlc Ip - BootDateTime string `json:"bootDateTime,omitempty"` // Boot Date Time - CollectionStatus string `json:"collectionStatus,omitempty"` // Collection Status - InterfaceCount string `json:"interfaceCount,omitempty"` // Interface Count - LineCardCount string `json:"lineCardCount,omitempty"` // Line Card Count - LineCardID string `json:"lineCardId,omitempty"` // Line Card Id - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address - MemorySize string `json:"memorySize,omitempty"` // Memory Size - PlatformID string `json:"platformId,omitempty"` // Platform Id - ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Reachability Failure Reason - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Reachability Status - SNMPContact string `json:"snmpContact,omitempty"` // Snmp Contact - SNMPLocation string `json:"snmpLocation,omitempty"` // Snmp Location - TunnelUDPPort *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsTunnelUDPPort `json:"tunnelUdpPort,omitempty"` // Tunnel Udp Port - WaasDeviceMode *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsWaasDeviceMode `json:"waasDeviceMode,omitempty"` // Waas Device Mode - Series string `json:"series,omitempty"` // Series - InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Inventory Status Detail - CollectionInterval string `json:"collectionInterval,omitempty"` // Collection Interval - SerialNumber string `json:"serialNumber,omitempty"` // Serial Number - SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version - RoleSource string `json:"roleSource,omitempty"` // Role Source - Hostname string `json:"hostname,omitempty"` // Hostname - UpTime string `json:"upTime,omitempty"` // Up Time - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time - ErrorDescription string `json:"errorDescription,omitempty"` // Error Description - LocationName *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsLocationName `json:"locationName,omitempty"` // Location Name - TagCount string `json:"tagCount,omitempty"` // Tag Count - LastUpdated string `json:"lastUpdated,omitempty"` // Last Updated - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - ID string `json:"id,omitempty"` // Id + Family string `json:"family,omitempty"` // Device Family + Type string `json:"type,omitempty"` // Device Type + Location *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsLocation `json:"location,omitempty"` // Device location - Site hierarchy + ErrorCode string `json:"errorCode,omitempty"` // Inventory status error code + MacAddress string `json:"macAddress,omitempty"` // Device MAC address + Role string `json:"role,omitempty"` // Device role + ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // IP address of WLC on AP manager interface + AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated WLC IP address of the AP device + BootDateTime string `json:"bootDateTime,omitempty"` // Device's last boot UTC timestamp + CollectionStatus string `json:"collectionStatus,omitempty"` // Device's telemetry data collection status for DNAC + InterfaceCount string `json:"interfaceCount,omitempty"` // Number of interfaces on the device + LineCardCount string `json:"lineCardCount,omitempty"` // Number of linecards on the device + LineCardID string `json:"lineCardId,omitempty"` // IDs of linecards of the device + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Device Management Ip Address + MemorySize string `json:"memorySize,omitempty"` // Processor memory size + PlatformID string `json:"platformId,omitempty"` // Device's platform ID + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Failure reason for unreachable devices + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Reachability Status of the Device(Reachable/Unreachable) + SNMPContact string `json:"snmpContact,omitempty"` // SNMP contact on device + SNMPLocation string `json:"snmpLocation,omitempty"` // SNMP location on device + TunnelUDPPort *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsTunnelUDPPort `json:"tunnelUdpPort,omitempty"` // Mobility protocol port is stored as tunneludpport for WLC + WaasDeviceMode *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsWaasDeviceMode `json:"waasDeviceMode,omitempty"` // WAAS device mode + Series string `json:"series,omitempty"` // Device Series + InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Status detail of inventory sync + CollectionInterval string `json:"collectionInterval,omitempty"` // Re sync Interval of the device + SerialNumber string `json:"serialNumber,omitempty"` // Device Serial Number + SoftwareVersion string `json:"softwareVersion,omitempty"` // Device Software Version + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto + Hostname string `json:"hostname,omitempty"` // Device Hostname + UpTime string `json:"upTime,omitempty"` // Device's uptime + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Time in epoch when the network device info last got updated + ErrorDescription string `json:"errorDescription,omitempty"` // Inventory status description + LocationName *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsLocationName `json:"locationName,omitempty"` // [Deprecated] Name of the associated location + TagCount string `json:"tagCount,omitempty"` // Number of tags associated with the device + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the network device info last got updated + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the device + ID string `json:"id,omitempty"` // Device's UUID NeighborTopology *[]ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopology `json:"neighborTopology,omitempty"` // } type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsLocation interface{} @@ -334,24 +1639,24 @@ type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopology Links *[]ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinks `json:"links,omitempty"` // } type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodes struct { - Role string `json:"role,omitempty"` // Role - Name string `json:"name,omitempty"` // Name - ID string `json:"id,omitempty"` // Id - Description string `json:"description,omitempty"` // Description - DeviceType string `json:"deviceType,omitempty"` // Device Type - PlatformID string `json:"platformId,omitempty"` // Platform Id - Family string `json:"family,omitempty"` // Family - IP string `json:"ip,omitempty"` // Ip - SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version - UserID *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesUserID `json:"userId,omitempty"` // User Id - NodeType string `json:"nodeType,omitempty"` // Node Type - RadioFrequency *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesRadioFrequency `json:"radioFrequency,omitempty"` // Radio Frequency - Clients *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesClients `json:"clients,omitempty"` // Clients - Count *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesCount `json:"count,omitempty"` // Count - HealthScore *int `json:"healthScore,omitempty"` // Health Score - Level *float64 `json:"level,omitempty"` // Level - FabricGroup *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesFabricGroup `json:"fabricGroup,omitempty"` // Fabric Group - ConnectedDevice *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesConnectedDevice `json:"connectedDevice,omitempty"` // Connected Device + Role string `json:"role,omitempty"` // Role of the Node + Name string `json:"name,omitempty"` // Hostname of the Node + ID string `json:"id,omitempty"` // Id of the Node + Description string `json:"description,omitempty"` // Description of the Node + DeviceType string `json:"deviceType,omitempty"` // Device type of the node, like switch, AP, WCL,GateWay + PlatformID string `json:"platformId,omitempty"` // Type of platform + Family string `json:"family,omitempty"` // Device Family of the Node + IP string `json:"ip,omitempty"` // IP Address of the Node + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version of the Node + UserID *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesUserID `json:"userId,omitempty"` // User Id of the Node + NodeType string `json:"nodeType,omitempty"` // Type of the Node + RadioFrequency *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesRadioFrequency `json:"radioFrequency,omitempty"` // Frequency of wireless radio channel + Clients *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesClients `json:"clients,omitempty"` // Number of clients + Count *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesCount `json:"count,omitempty"` // The number of group nodes (for ap sepecifically) + HealthScore *int `json:"healthScore,omitempty"` // The total health score of the node + Level *float64 `json:"level,omitempty"` // The level index to be used by UI widget (starts from 0) + FabricGroup *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesFabricGroup `json:"fabricGroup,omitempty"` // Fabric device group name + ConnectedDevice *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesConnectedDevice `json:"connectedDevice,omitempty"` // The connected device to show the connected switch to wlc } type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesUserID interface{} type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesRadioFrequency interface{} @@ -360,166 +1665,308 @@ type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyN type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesFabricGroup interface{} type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyNodesConnectedDevice interface{} type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinks struct { - Source string `json:"source,omitempty"` // Source - LinkStatus string `json:"linkStatus,omitempty"` // Link Status - Label *[]ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksLabel `json:"label,omitempty"` // Label - Target string `json:"target,omitempty"` // Target - ID *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksID `json:"id,omitempty"` // Id - PortUtilization *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksPortUtilization `json:"portUtilization,omitempty"` // Port Utilization + Source string `json:"source,omitempty"` // Edge line starting node + LinkStatus string `json:"linkStatus,omitempty"` // The status of the link (up/down) + Label *[]ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksLabel `json:"label,omitempty"` // The details of the edge + Target string `json:"target,omitempty"` // End node of the edge line + ID *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksID `json:"id,omitempty"` // Id of the node + PortUtilization *ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksPortUtilization `json:"portUtilization,omitempty"` // Number of clients } type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksLabel interface{} type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksID interface{} type ResponseItemDevicesGetDeviceEnrichmentDetailsDeviceDetailsNeighborTopologyLinksPortUtilization interface{} type ResponseDevicesDevices struct { - Version string `json:"version,omitempty"` // Version - TotalCount *int `json:"totalCount,omitempty"` // Total Count + Version string `json:"version,omitempty"` // Response data's version string + TotalCount *int `json:"totalCount,omitempty"` // Total number of devices Response *[]ResponseDevicesDevicesResponse `json:"response,omitempty"` // } type ResponseDevicesDevicesResponse struct { - Name string `json:"name,omitempty"` // Name - Model string `json:"model,omitempty"` // Model - OsVersion string `json:"osVersion,omitempty"` // Os Version - IPAddress string `json:"ipAddress,omitempty"` // Ip Address - OverallHealth *int `json:"overallHealth,omitempty"` // Overall Health - IssueCount *float64 `json:"issueCount,omitempty"` // Issue Count - Location string `json:"location,omitempty"` // Location - DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family - DeviceType string `json:"deviceType,omitempty"` // Device Type - MacAddress string `json:"macAddress,omitempty"` // Mac Address - InterfaceLinkErrHealth *int `json:"interfaceLinkErrHealth,omitempty"` // Interface Link Err Health - CPUUlitilization *int `json:"cpuUlitilization,omitempty"` // Cpu Ulitilization - CPUHealth *int `json:"cpuHealth,omitempty"` // Cpu Health - MemoryUtilizationHealth *int `json:"memoryUtilizationHealth,omitempty"` // Memory Utilization Health - MemoryUtilization *int `json:"memoryUtilization,omitempty"` // Memory Utilization - InterDeviceLinkAvailHealth *int `json:"interDeviceLinkAvailHealth,omitempty"` // Inter Device Link Avail Health - ReachabilityHealth string `json:"reachabilityHealth,omitempty"` // Reachability Health - ClientCount *ResponseDevicesDevicesResponseClientCount `json:"clientCount,omitempty"` // - InterferenceHealth *ResponseDevicesDevicesResponseInterferenceHealth `json:"interferenceHealth,omitempty"` // - NoiseHealth *ResponseDevicesDevicesResponseNoiseHealth `json:"noiseHealth,omitempty"` // - AirQualityHealth *ResponseDevicesDevicesResponseAirQualityHealth `json:"airQualityHealth,omitempty"` // + DeviceType string `json:"deviceType,omitempty"` // Device type + CPUUtilization *float64 `json:"cpuUtilization,omitempty"` // Device's CPU utilization + OverallHealth *int `json:"overallHealth,omitempty"` // Overall health score UtilizationHealth *ResponseDevicesDevicesResponseUtilizationHealth `json:"utilizationHealth,omitempty"` // + AirQualityHealth *ResponseDevicesDevicesResponseAirQualityHealth `json:"airQualityHealth,omitempty"` // + IPAddress string `json:"ipAddress,omitempty"` // Management IP address of the device + CPUHealth *int `json:"cpuHealth,omitempty"` // Device CPU health score + DeviceFamily string `json:"deviceFamily,omitempty"` // Device family + IssueCount *int `json:"issueCount,omitempty"` // Number of issues + MacAddress string `json:"macAddress,omitempty"` // MAC address of the device + NoiseHealth *ResponseDevicesDevicesResponseNoiseHealth `json:"noiseHealth,omitempty"` // + OsVersion string `json:"osVersion,omitempty"` // Device OS version string + Name string `json:"name,omitempty"` // Device name + InterfaceLinkErrHealth *int `json:"interfaceLinkErrHealth,omitempty"` // Device (AP) error health score + MemoryUtilization *float64 `json:"memoryUtilization,omitempty"` // Device memory utilization + InterDeviceLinkAvailHealth *int `json:"interDeviceLinkAvailHealth,omitempty"` // Device connectivity status + InterferenceHealth *ResponseDevicesDevicesResponseInterferenceHealth `json:"interferenceHealth,omitempty"` // + Model string `json:"model,omitempty"` // Device model string + Location string `json:"location,omitempty"` // Site location in which this device is assigned to + ReachabilityHealth string `json:"reachabilityHealth,omitempty"` // Device reachability in the network + Band *ResponseDevicesDevicesResponseBand `json:"band,omitempty"` // + MemoryUtilizationHealth *int `json:"memoryUtilizationHealth,omitempty"` // Device memory utilization health score + ClientCount *ResponseDevicesDevicesResponseClientCount `json:"clientCount,omitempty"` // + AvgTemperature *float64 `json:"avgTemperature,omitempty"` // Average device (switch) temperature + MaxTemperature *float64 `json:"maxTemperature,omitempty"` // Max device (switch) temperature + InterDeviceLinkAvailFabric *int `json:"interDeviceLinkAvailFabric,omitempty"` // Device uplink health + ApCount *int `json:"apCount,omitempty"` // Number of AP count + FreeTimerScore *int `json:"freeTimerScore,omitempty"` // Device free timer health score + FreeTimer *float64 `json:"freeTimer,omitempty"` // Device free timer + PacketPoolHealth *int `json:"packetPoolHealth,omitempty"` // Device packet pool + PacketPool *int `json:"packetPool,omitempty"` // Device packet pool + FreeMemoryBufferHealth *int `json:"freeMemoryBufferHealth,omitempty"` // Device free memory buffer health + FreeMemoryBuffer *float64 `json:"freeMemoryBuffer,omitempty"` // Device free memory + WqePoolsHealth *int `json:"wqePoolsHealth,omitempty"` // Device WQE pool health + WqePools *float64 `json:"wqePools,omitempty"` // Device WQE pool + WanLinkUtilization *float64 `json:"wanLinkUtilization,omitempty"` // WLAN link utilization + CPUUlitilization *float64 `json:"cpuUlitilization,omitempty"` // Device's CPU utilization + UUID string `json:"uuid,omitempty"` // Device UUID } -type ResponseDevicesDevicesResponseClientCount struct { - Radio0 *float64 `json:"radio0,omitempty"` // Radio0 - Radio1 *int `json:"radio1,omitempty"` // Radio1 - Ghz24 *float64 `json:"Ghz24,omitempty"` // Ghz24 - Ghz50 *int `json:"Ghz50,omitempty"` // Ghz50 +type ResponseDevicesDevicesResponseUtilizationHealth struct { + Radio0 *int `json:"radio0,omitempty"` // Radio0 + Radio1 *int `json:"radio1,omitempty"` // Radio1 + Radio2 *int `json:"radio2,omitempty"` // Radio2 + Radio3 *int `json:"radio3,omitempty"` // Radio3 + Ghz24 *int `json:"Ghz24,omitempty"` // Ghz24 + Ghz50 *int `json:"Ghz50,omitempty"` // Ghz50 } -type ResponseDevicesDevicesResponseInterferenceHealth struct { +type ResponseDevicesDevicesResponseAirQualityHealth struct { Radio0 *int `json:"radio0,omitempty"` // Radio0 Radio1 *int `json:"radio1,omitempty"` // Radio1 + Radio2 *int `json:"radio2,omitempty"` // Radio2 + Radio3 *int `json:"radio3,omitempty"` // Radio3 Ghz24 *int `json:"Ghz24,omitempty"` // Ghz24 Ghz50 *int `json:"Ghz50,omitempty"` // Ghz50 } type ResponseDevicesDevicesResponseNoiseHealth struct { + Radio0 *int `json:"radio0,omitempty"` // Radio0 Radio1 *int `json:"radio1,omitempty"` // Radio1 + Radio2 *int `json:"radio2,omitempty"` // Radio2 + Radio3 *int `json:"radio3,omitempty"` // Radio3 + Ghz24 *int `json:"Ghz24,omitempty"` // Ghz24 Ghz50 *int `json:"Ghz50,omitempty"` // Ghz50 } -type ResponseDevicesDevicesResponseAirQualityHealth struct { +type ResponseDevicesDevicesResponseInterferenceHealth struct { Radio0 *int `json:"radio0,omitempty"` // Radio0 Radio1 *int `json:"radio1,omitempty"` // Radio1 + Radio2 *int `json:"radio2,omitempty"` // Radio2 + Radio3 *int `json:"radio3,omitempty"` // Radio3 Ghz24 *int `json:"Ghz24,omitempty"` // Ghz24 Ghz50 *int `json:"Ghz50,omitempty"` // Ghz50 } -type ResponseDevicesDevicesResponseUtilizationHealth struct { +type ResponseDevicesDevicesResponseBand struct { + Radio0 string `json:"radio0,omitempty"` // Radio0 + Radio1 string `json:"radio1,omitempty"` // Radio1 + Radio2 string `json:"radio2,omitempty"` // Radio2 + Radio3 *int `json:"radio3,omitempty"` // Radio3 +} +type ResponseDevicesDevicesResponseClientCount struct { Radio0 *int `json:"radio0,omitempty"` // Radio0 Radio1 *int `json:"radio1,omitempty"` // Radio1 + Radio2 *int `json:"radio2,omitempty"` // Radio2 + Radio3 *int `json:"radio3,omitempty"` // Radio3 Ghz24 *int `json:"Ghz24,omitempty"` // Ghz24 Ghz50 *int `json:"Ghz50,omitempty"` // Ghz50 } +type ResponseDevicesUpdatePlannedAccessPointForFloor struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseDevicesUpdatePlannedAccessPointForFloorResponse `json:"response,omitempty"` // +} +type ResponseDevicesUpdatePlannedAccessPointForFloorResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseDevicesCreatePlannedAccessPointForFloor struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseDevicesCreatePlannedAccessPointForFloorResponse `json:"response,omitempty"` // +} +type ResponseDevicesCreatePlannedAccessPointForFloorResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} type ResponseDevicesGetPlannedAccessPointsForFloor struct { Response *[]ResponseDevicesGetPlannedAccessPointsForFloorResponse `json:"response,omitempty"` // - Version *int `json:"version,omitempty"` // Version - Total *int `json:"total,omitempty"` // Total + Version *int `json:"version,omitempty"` // Version of the api response model + Total *int `json:"total,omitempty"` // Total number of the planned access points } type ResponseDevicesGetPlannedAccessPointsForFloorResponse struct { Attributes *ResponseDevicesGetPlannedAccessPointsForFloorResponseAttributes `json:"attributes,omitempty"` // - Location *ResponseDevicesGetPlannedAccessPointsForFloorResponseLocation `json:"location,omitempty"` // Location + Location *ResponseDevicesGetPlannedAccessPointsForFloorResponseLocation `json:"location,omitempty"` // Position *ResponseDevicesGetPlannedAccessPointsForFloorResponsePosition `json:"position,omitempty"` // - RadioCount *int `json:"radioCount,omitempty"` // Radio Count + RadioCount *int `json:"radioCount,omitempty"` // Number of radios of the planned access point Radios *[]ResponseDevicesGetPlannedAccessPointsForFloorResponseRadios `json:"radios,omitempty"` // - IsSensor *bool `json:"isSensor,omitempty"` // Is Sensor + IsSensor *bool `json:"isSensor,omitempty"` // Determines if the planned access point is sensor or not } type ResponseDevicesGetPlannedAccessPointsForFloorResponseAttributes struct { - ID *int `json:"id,omitempty"` // Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - Name string `json:"name,omitempty"` // Name - TypeString string `json:"typeString,omitempty"` // Type String - Domain string `json:"domain,omitempty"` // Domain - HeirarchyName string `json:"heirarchyName,omitempty"` // Heirarchy Name - Source string `json:"source,omitempty"` // Source - CreateDate *int `json:"createDate,omitempty"` // Create Date - Macaddress *ResponseDevicesGetPlannedAccessPointsForFloorResponseAttributesMacaddress `json:"macaddress,omitempty"` // Macaddress -} -type ResponseDevicesGetPlannedAccessPointsForFloorResponseAttributesMacaddress interface{} -type ResponseDevicesGetPlannedAccessPointsForFloorResponseLocation interface{} + ID *float64 `json:"id,omitempty"` // Unique id of the planned access point + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance uuid of the planned access point + Name string `json:"name,omitempty"` // Display name of the planned access point + TypeString string `json:"typeString,omitempty"` // Type string representation of the planned access point + Domain string `json:"domain,omitempty"` // Service domain to which the planned access point belongs + HeirarchyName string `json:"heirarchyName,omitempty"` // Hierarchy name of the planned access point + Source string `json:"source,omitempty"` // Source of the data used to create the planned access point + CreateDate *float64 `json:"createDate,omitempty"` // Created date of the planned access point + MacAddress string `json:"macAddress,omitempty"` // MAC address of the planned access point +} +type ResponseDevicesGetPlannedAccessPointsForFloorResponseLocation struct { + Altitude *float64 `json:"altitude,omitempty"` // Altitude of the planned access point's location + Lattitude *float64 `json:"lattitude,omitempty"` // Latitude of the planned access point's location + Longtitude *float64 `json:"longtitude,omitempty"` // Longitude of the planned access point's location +} type ResponseDevicesGetPlannedAccessPointsForFloorResponsePosition struct { - X *float64 `json:"x,omitempty"` // X - Y *float64 `json:"y,omitempty"` // Y - Z *float64 `json:"z,omitempty"` // Z + X *float64 `json:"x,omitempty"` // x-coordinate of the planned access point on the map, 0,0 point being the top-left corner + Y *float64 `json:"y,omitempty"` // y-coordinate of the planned access point on the map, 0,0 point being the top-left corner + Z *float64 `json:"z,omitempty"` // z-coordinate, or height, of the planned access point on the map } type ResponseDevicesGetPlannedAccessPointsForFloorResponseRadios struct { Attributes *ResponseDevicesGetPlannedAccessPointsForFloorResponseRadiosAttributes `json:"attributes,omitempty"` // Antenna *ResponseDevicesGetPlannedAccessPointsForFloorResponseRadiosAntenna `json:"antenna,omitempty"` // - IsSensor *bool `json:"isSensor,omitempty"` // Is Sensor + IsSensor *bool `json:"isSensor,omitempty"` // Determines if it is sensor or not } type ResponseDevicesGetPlannedAccessPointsForFloorResponseRadiosAttributes struct { - ID *int `json:"id,omitempty"` // Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - SlotID *int `json:"slotId,omitempty"` // Slot Id - IfTypeString string `json:"ifTypeString,omitempty"` // If Type String - IfTypeSubband string `json:"ifTypeSubband,omitempty"` // If Type Subband - Channel *ResponseDevicesGetPlannedAccessPointsForFloorResponseRadiosAttributesChannel `json:"channel,omitempty"` // Channel - ChannelString *ResponseDevicesGetPlannedAccessPointsForFloorResponseRadiosAttributesChannelString `json:"channelString,omitempty"` // Channel String - IfMode string `json:"ifMode,omitempty"` // If Mode -} -type ResponseDevicesGetPlannedAccessPointsForFloorResponseRadiosAttributesChannel interface{} -type ResponseDevicesGetPlannedAccessPointsForFloorResponseRadiosAttributesChannelString interface{} + ID *int `json:"id,omitempty"` // Id of the radio + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the radio + SlotID *float64 `json:"slotId,omitempty"` // Slot number in which the radio resides in the parent access point + IfTypeString string `json:"ifTypeString,omitempty"` // String representation of native band + IfTypeSubband string `json:"ifTypeSubband,omitempty"` // Sub band type of the radio + Channel *float64 `json:"channel,omitempty"` // Channel in which the radio operates + ChannelString string `json:"channelString,omitempty"` // Channel string representation + IfMode string `json:"ifMode,omitempty"` // IF mode of the radio + TxPowerLevel *float64 `json:"txPowerLevel,omitempty"` // Tx Power at which this radio operates (in dBm) +} type ResponseDevicesGetPlannedAccessPointsForFloorResponseRadiosAntenna struct { - Name string `json:"name,omitempty"` // Name - Type string `json:"type,omitempty"` // Type - Mode string `json:"mode,omitempty"` // Mode - AzimuthAngle *float64 `json:"azimuthAngle,omitempty"` // Azimuth Angle - ElevationAngle *float64 `json:"elevationAngle,omitempty"` // Elevation Angle - Gain *float64 `json:"gain,omitempty"` // Gain + Name string `json:"name,omitempty"` // Name of the antenna + Type string `json:"type,omitempty"` // Type of the antenna associated with this radio + Mode string `json:"mode,omitempty"` // Mode of the antenna associated with this radio + AzimuthAngle *float64 `json:"azimuthAngle,omitempty"` // Azimuth angle of the antenna + ElevationAngle *float64 `json:"elevationAngle,omitempty"` // Elevation angle of the antenna + Gain *float64 `json:"gain,omitempty"` // Gain of the antenna +} +type ResponseDevicesDeletePlannedAccessPointForFloor struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseDevicesDeletePlannedAccessPointForFloorResponse `json:"response,omitempty"` // +} +type ResponseDevicesDeletePlannedAccessPointForFloorResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseDevicesGetAllHealthScoreDefinitionsForGivenFilters struct { + Response *[]ResponseDevicesGetAllHealthScoreDefinitionsForGivenFiltersResponse `json:"response,omitempty"` // +} +type ResponseDevicesGetAllHealthScoreDefinitionsForGivenFiltersResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + DisplayName string `json:"displayName,omitempty"` // Display Name + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + Description string `json:"description,omitempty"` // Description + IncludeForOverallHealth *bool `json:"includeForOverallHealth,omitempty"` // Include For Overall Health + DefinitionStatus string `json:"definitionStatus,omitempty"` // Definition Status + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value + SynchronizeToIssueThreshold *bool `json:"synchronizeToIssueThreshold,omitempty"` // Synchronize To Issue Threshold + LastModified string `json:"lastModified,omitempty"` // Last Modified +} +type ResponseDevicesUpdateHealthScoreDefinitions struct { + Response *[]ResponseDevicesUpdateHealthScoreDefinitionsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesUpdateHealthScoreDefinitionsResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + DisplayName string `json:"displayName,omitempty"` // Display Name + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + Description string `json:"description,omitempty"` // Description + IncludeForOverallHealth *bool `json:"includeForOverallHealth,omitempty"` // Include For Overall Health + DefinitionStatus string `json:"definitionStatus,omitempty"` // Definition Status + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value + SynchronizeToIssueThreshold *bool `json:"synchronizeToIssueThreshold,omitempty"` // Synchronize To Issue Threshold + LastModified string `json:"lastModified,omitempty"` // Last Modified +} +type ResponseDevicesGetHealthScoreDefinitionForTheGivenID struct { + Response *[]ResponseDevicesGetHealthScoreDefinitionForTheGivenIDResponse `json:"response,omitempty"` // +} +type ResponseDevicesGetHealthScoreDefinitionForTheGivenIDResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + DisplayName string `json:"displayName,omitempty"` // Display Name + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + Description string `json:"description,omitempty"` // Description + IncludeForOverallHealth *bool `json:"includeForOverallHealth,omitempty"` // Include For Overall Health + DefinitionStatus string `json:"definitionStatus,omitempty"` // Definition Status + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value + SynchronizeToIssueThreshold *bool `json:"synchronizeToIssueThreshold,omitempty"` // Synchronize To Issue Threshold + LastModified string `json:"lastModified,omitempty"` // Last Modified +} +type ResponseDevicesUpdateHealthScoreDefinitionForTheGivenID struct { + Response *ResponseDevicesUpdateHealthScoreDefinitionForTheGivenIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesUpdateHealthScoreDefinitionForTheGivenIDResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + DisplayName string `json:"displayName,omitempty"` // Display Name + DeviceFamily string `json:"deviceFamily,omitempty"` // Device Family + Description string `json:"description,omitempty"` // Description + IncludeForOverallHealth *bool `json:"includeForOverallHealth,omitempty"` // Include For Overall Health + DefinitionStatus string `json:"definitionStatus,omitempty"` // Definition Status + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value + SynchronizeToIssueThreshold *bool `json:"synchronizeToIssueThreshold,omitempty"` // Synchronize To Issue Threshold + LastModified string `json:"lastModified,omitempty"` // Last Modified } type ResponseDevicesGetAllInterfaces struct { Response *[]ResponseDevicesGetAllInterfacesResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetAllInterfacesResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // - ClassName string `json:"className,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - Duplex string `json:"duplex,omitempty"` // - ID string `json:"id,omitempty"` // - IfIndex string `json:"ifIndex,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceType string `json:"interfaceType,omitempty"` // - IPv4Address string `json:"ipv4Address,omitempty"` // - IPv4Mask string `json:"ipv4Mask,omitempty"` // - IsisSupport string `json:"isisSupport,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // - MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // - MediaType string `json:"mediaType,omitempty"` // - NativeVLANID string `json:"nativeVlanId,omitempty"` // - OspfSupport string `json:"ospfSupport,omitempty"` // - Pid string `json:"pid,omitempty"` // - PortMode string `json:"portMode,omitempty"` // - PortName string `json:"portName,omitempty"` // - PortType string `json:"portType,omitempty"` // - SerialNo string `json:"serialNo,omitempty"` // - Series string `json:"series,omitempty"` // - Speed string `json:"speed,omitempty"` // - Status string `json:"status,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - VoiceVLAN string `json:"voiceVlan,omitempty"` // -} -type ResponseDevicesGetDeviceInterfaceCount struct { + Addresses *[]ResponseDevicesGetAllInterfacesResponseAddresses `json:"addresses,omitempty"` // + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + ClassName string `json:"className,omitempty"` // Classifies the port as switch port ,loopback interface etc. + Description string `json:"description,omitempty"` // Description for the Interface + Name string `json:"name,omitempty"` // Name for the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device + Duplex string `json:"duplex,omitempty"` // Interface duplex as AutoNegotiate or FullDuplex + ID string `json:"id,omitempty"` // ID of the Interface + IfIndex string `json:"ifIndex,omitempty"` // Interface index + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Interface + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Interface + InterfaceType string `json:"interfaceType,omitempty"` // Interface type as Physical or Virtual + IPv4Address string `json:"ipv4Address,omitempty"` // IPV4 Address of the device + IPv4Mask string `json:"ipv4Mask,omitempty"` // IPV4 Mask of the device + IsisSupport string `json:"isisSupport,omitempty"` // Flag for ISIS enabled / disabled + LastOutgoingPacketTime *float64 `json:"lastOutgoingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was sent from this interface + LastIncomingPacketTime *float64 `json:"lastIncomingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was received on this interface + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the device interface info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of interface + MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // ID of physical interface mapped with the virtual interface of WLC + MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // Physical interface name mapped with the virtual interface of WLC + MediaType string `json:"mediaType,omitempty"` // Media Type of the interface + Mtu string `json:"mtu,omitempty"` // MTU Information of Interface + NativeVLANID string `json:"nativeVlanId,omitempty"` // Vlan to receive untagged frames on trunk port + OspfSupport string `json:"ospfSupport,omitempty"` // Flag for OSPF enabled / disabled + Pid string `json:"pid,omitempty"` // Platform ID of the device + PortMode string `json:"portMode,omitempty"` // Port mode as access, trunk, routed + PortName string `json:"portName,omitempty"` // Interface name + PortType string `json:"portType,omitempty"` // Port type as Ethernet Port / Ethernet SVI / Ethernet Sub Interface + SerialNo string `json:"serialNo,omitempty"` // Serial number of the device + Series string `json:"series,omitempty"` // Series of the device + Speed string `json:"speed,omitempty"` // Speed of the interface + Status string `json:"status,omitempty"` // Interface status as Down / Up + VLANID string `json:"vlanId,omitempty"` // Vlan ID of interface + VoiceVLAN string `json:"voiceVlan,omitempty"` // Vlan information of the interface +} +type ResponseDevicesGetAllInterfacesResponseAddresses struct { + Address *ResponseDevicesGetAllInterfacesResponseAddressesAddress `json:"address,omitempty"` // + Type string `json:"type,omitempty"` // Type of the interface. For e.g. IPv4, IPv6 (with unicast, multicast, anycast, etc.) +} +type ResponseDevicesGetAllInterfacesResponseAddressesAddress struct { + IPAddress *ResponseDevicesGetAllInterfacesResponseAddressesAddressIPAddress `json:"ipAddress,omitempty"` // + IPMask *ResponseDevicesGetAllInterfacesResponseAddressesAddressIPMask `json:"ipMask,omitempty"` // + IsInverseMask *bool `json:"isInverseMask,omitempty"` // Inverse Mask of the IP address is enabled or not +} +type ResponseDevicesGetAllInterfacesResponseAddressesAddressIPAddress struct { + Address string `json:"address,omitempty"` // IP address of the interface +} +type ResponseDevicesGetAllInterfacesResponseAddressesAddressIPMask struct { + Address string `json:"address,omitempty"` // IP Mask of the interface +} +type ResponseDevicesGetDeviceInterfaceCountForMultipleDevices struct { Response *int `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } @@ -528,110 +1975,170 @@ type ResponseDevicesGetInterfaceByIP struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetInterfaceByIPResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // - ClassName string `json:"className,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - Duplex string `json:"duplex,omitempty"` // - ID string `json:"id,omitempty"` // - IfIndex string `json:"ifIndex,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceType string `json:"interfaceType,omitempty"` // - IPv4Address string `json:"ipv4Address,omitempty"` // - IPv4Mask string `json:"ipv4Mask,omitempty"` // - IsisSupport string `json:"isisSupport,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // - MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // - MediaType string `json:"mediaType,omitempty"` // - NativeVLANID string `json:"nativeVlanId,omitempty"` // - OspfSupport string `json:"ospfSupport,omitempty"` // - Pid string `json:"pid,omitempty"` // - PortMode string `json:"portMode,omitempty"` // - PortName string `json:"portName,omitempty"` // - PortType string `json:"portType,omitempty"` // - SerialNo string `json:"serialNo,omitempty"` // - Series string `json:"series,omitempty"` // - Speed string `json:"speed,omitempty"` // - Status string `json:"status,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - VoiceVLAN string `json:"voiceVlan,omitempty"` // + Addresses *[]ResponseDevicesGetInterfaceByIPResponseAddresses `json:"addresses,omitempty"` // + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + ClassName string `json:"className,omitempty"` // Classifies the port as switch port ,loopback interface etc. + Description string `json:"description,omitempty"` // Description for the Interface + Name string `json:"name,omitempty"` // Name for the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device + Duplex string `json:"duplex,omitempty"` // Interface duplex as AutoNegotiate or FullDuplex + ID string `json:"id,omitempty"` // ID of the Interface + IfIndex string `json:"ifIndex,omitempty"` // Interface index + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Interface + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Interface + InterfaceType string `json:"interfaceType,omitempty"` // Interface type as Physical or Virtual + IPv4Address string `json:"ipv4Address,omitempty"` // IPV4 Address of the device + IPv4Mask string `json:"ipv4Mask,omitempty"` // IPV4 Mask of the device + IsisSupport string `json:"isisSupport,omitempty"` // Flag for ISIS enabled / disabled + LastOutgoingPacketTime *float64 `json:"lastOutgoingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was sent from this interface + LastIncomingPacketTime *float64 `json:"lastIncomingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was received on this interface + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the device interface info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of interface + MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // ID of physical interface mapped with the virtual interface of WLC + MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // Physical interface name mapped with the virtual interface of WLC + MediaType string `json:"mediaType,omitempty"` // Media Type of the interface + Mtu string `json:"mtu,omitempty"` // MTU Information of Interface + NativeVLANID string `json:"nativeVlanId,omitempty"` // Vlan to receive untagged frames on trunk port + OspfSupport string `json:"ospfSupport,omitempty"` // Flag for OSPF enabled / disabled + Pid string `json:"pid,omitempty"` // Platform ID of the device + PortMode string `json:"portMode,omitempty"` // Port mode as access, trunk, routed + PortName string `json:"portName,omitempty"` // Interface name + PortType string `json:"portType,omitempty"` // Port type as Ethernet Port / Ethernet SVI / Ethernet Sub Interface + SerialNo string `json:"serialNo,omitempty"` // Serial number of the device + Series string `json:"series,omitempty"` // Series of the device + Speed string `json:"speed,omitempty"` // Speed of the interface + Status string `json:"status,omitempty"` // Interface status as Down / Up + VLANID string `json:"vlanId,omitempty"` // Vlan ID of interface + VoiceVLAN string `json:"voiceVlan,omitempty"` // Vlan information of the interface +} +type ResponseDevicesGetInterfaceByIPResponseAddresses struct { + Address *ResponseDevicesGetInterfaceByIPResponseAddressesAddress `json:"address,omitempty"` // + Type string `json:"type,omitempty"` // Type of the interface. For e.g. IPv4, IPv6 (with unicast, multicast, anycast, etc.) +} +type ResponseDevicesGetInterfaceByIPResponseAddressesAddress struct { + IPAddress *ResponseDevicesGetInterfaceByIPResponseAddressesAddressIPAddress `json:"ipAddress,omitempty"` // + IPMask *ResponseDevicesGetInterfaceByIPResponseAddressesAddressIPMask `json:"ipMask,omitempty"` // + IsInverseMask *bool `json:"isInverseMask,omitempty"` // Inverse Mask of the IP address is enabled or not +} +type ResponseDevicesGetInterfaceByIPResponseAddressesAddressIPAddress struct { + Address string `json:"address,omitempty"` // IP address of the interface +} +type ResponseDevicesGetInterfaceByIPResponseAddressesAddressIPMask struct { + Address string `json:"address,omitempty"` // IP Mask of the interface } type ResponseDevicesGetIsisInterfaces struct { Response *[]ResponseDevicesGetIsisInterfacesResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetIsisInterfacesResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // - ClassName string `json:"className,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - Duplex string `json:"duplex,omitempty"` // - ID string `json:"id,omitempty"` // - IfIndex string `json:"ifIndex,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceType string `json:"interfaceType,omitempty"` // - IPv4Address string `json:"ipv4Address,omitempty"` // - IPv4Mask string `json:"ipv4Mask,omitempty"` // - IsisSupport string `json:"isisSupport,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // - MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // - MediaType string `json:"mediaType,omitempty"` // - NativeVLANID string `json:"nativeVlanId,omitempty"` // - OspfSupport string `json:"ospfSupport,omitempty"` // - Pid string `json:"pid,omitempty"` // - PortMode string `json:"portMode,omitempty"` // - PortName string `json:"portName,omitempty"` // - PortType string `json:"portType,omitempty"` // - SerialNo string `json:"serialNo,omitempty"` // - Series string `json:"series,omitempty"` // - Speed string `json:"speed,omitempty"` // - Status string `json:"status,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - VoiceVLAN string `json:"voiceVlan,omitempty"` // + Addresses *[]ResponseDevicesGetIsisInterfacesResponseAddresses `json:"addresses,omitempty"` // + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + ClassName string `json:"className,omitempty"` // Classifies the port as switch port ,loopback interface etc. + Description string `json:"description,omitempty"` // Description for the Interface + Name string `json:"name,omitempty"` // Name for the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device + Duplex string `json:"duplex,omitempty"` // Interface duplex as AutoNegotiate or FullDuplex + ID string `json:"id,omitempty"` // ID of the Interface + IfIndex string `json:"ifIndex,omitempty"` // Interface index + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Interface + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Interface + InterfaceType string `json:"interfaceType,omitempty"` // Interface type as Physical or Virtual + IPv4Address string `json:"ipv4Address,omitempty"` // IPV4 Address of the device + IPv4Mask string `json:"ipv4Mask,omitempty"` // IPV4 Mask of the device + IsisSupport string `json:"isisSupport,omitempty"` // Flag for ISIS enabled / disabled + LastOutgoingPacketTime *float64 `json:"lastOutgoingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was sent from this interface + LastIncomingPacketTime *float64 `json:"lastIncomingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was received on this interface + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the device interface info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of interface + MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // ID of physical interface mapped with the virtual interface of WLC + MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // Physical interface name mapped with the virtual interface of WLC + MediaType string `json:"mediaType,omitempty"` // Media Type of the interface + Mtu string `json:"mtu,omitempty"` // MTU Information of Interface + NativeVLANID string `json:"nativeVlanId,omitempty"` // Vlan to receive untagged frames on trunk port + OspfSupport string `json:"ospfSupport,omitempty"` // Flag for OSPF enabled / disabled + Pid string `json:"pid,omitempty"` // Platform ID of the device + PortMode string `json:"portMode,omitempty"` // Port mode as access, trunk, routed + PortName string `json:"portName,omitempty"` // Interface name + PortType string `json:"portType,omitempty"` // Port type as Ethernet Port / Ethernet SVI / Ethernet Sub Interface + SerialNo string `json:"serialNo,omitempty"` // Serial number of the device + Series string `json:"series,omitempty"` // Series of the device + Speed string `json:"speed,omitempty"` // Speed of the interface + Status string `json:"status,omitempty"` // Interface status as Down / Up + VLANID string `json:"vlanId,omitempty"` // Vlan ID of interface + VoiceVLAN string `json:"voiceVlan,omitempty"` // Vlan information of the interface +} +type ResponseDevicesGetIsisInterfacesResponseAddresses struct { + Address *ResponseDevicesGetIsisInterfacesResponseAddressesAddress `json:"address,omitempty"` // + Type string `json:"type,omitempty"` // Type of the interface. For e.g. IPv4, IPv6 (with unicast, multicast, anycast, etc.) +} +type ResponseDevicesGetIsisInterfacesResponseAddressesAddress struct { + IPAddress *ResponseDevicesGetIsisInterfacesResponseAddressesAddressIPAddress `json:"ipAddress,omitempty"` // + IPMask *ResponseDevicesGetIsisInterfacesResponseAddressesAddressIPMask `json:"ipMask,omitempty"` // + IsInverseMask *bool `json:"isInverseMask,omitempty"` // Inverse Mask of the IP address is enabled or not +} +type ResponseDevicesGetIsisInterfacesResponseAddressesAddressIPAddress struct { + Address string `json:"address,omitempty"` // IP address of the interface +} +type ResponseDevicesGetIsisInterfacesResponseAddressesAddressIPMask struct { + Address string `json:"address,omitempty"` // IP Mask of the interface } type ResponseDevicesGetInterfaceInfoByID struct { Response *[]ResponseDevicesGetInterfaceInfoByIDResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetInterfaceInfoByIDResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // - ClassName string `json:"className,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - Duplex string `json:"duplex,omitempty"` // - ID string `json:"id,omitempty"` // - IfIndex string `json:"ifIndex,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceType string `json:"interfaceType,omitempty"` // - IPv4Address string `json:"ipv4Address,omitempty"` // - IPv4Mask string `json:"ipv4Mask,omitempty"` // - IsisSupport string `json:"isisSupport,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // - MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // - MediaType string `json:"mediaType,omitempty"` // - NativeVLANID string `json:"nativeVlanId,omitempty"` // - OspfSupport string `json:"ospfSupport,omitempty"` // - Pid string `json:"pid,omitempty"` // - PortMode string `json:"portMode,omitempty"` // - PortName string `json:"portName,omitempty"` // - PortType string `json:"portType,omitempty"` // - SerialNo string `json:"serialNo,omitempty"` // - Series string `json:"series,omitempty"` // - Speed string `json:"speed,omitempty"` // - Status string `json:"status,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - VoiceVLAN string `json:"voiceVlan,omitempty"` // -} -type ResponseDevicesGetDeviceInterfaceCount2 struct { + Addresses *[]ResponseDevicesGetInterfaceInfoByIDResponseAddresses `json:"addresses,omitempty"` // + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + ClassName string `json:"className,omitempty"` // Classifies the port as switch port ,loopback interface etc. + Description string `json:"description,omitempty"` // Description for the Interface + Name string `json:"name,omitempty"` // Name for the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device + Duplex string `json:"duplex,omitempty"` // Interface duplex as AutoNegotiate or FullDuplex + ID string `json:"id,omitempty"` // ID of the Interface + IfIndex string `json:"ifIndex,omitempty"` // Interface index + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Interface + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Interface + InterfaceType string `json:"interfaceType,omitempty"` // Interface type as Physical or Virtual + IPv4Address string `json:"ipv4Address,omitempty"` // IPV4 Address of the device + IPv4Mask string `json:"ipv4Mask,omitempty"` // IPV4 Mask of the device + IsisSupport string `json:"isisSupport,omitempty"` // Flag for ISIS enabled / disabled + LastOutgoingPacketTime *float64 `json:"lastOutgoingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was sent from this interface + LastIncomingPacketTime *float64 `json:"lastIncomingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was received on this interface + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the device interface info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of interface + MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // ID of physical interface mapped with the virtual interface of WLC + MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // Physical interface name mapped with the virtual interface of WLC + MediaType string `json:"mediaType,omitempty"` // Media Type of the interface + Mtu string `json:"mtu,omitempty"` // MTU Information of Interface + NativeVLANID string `json:"nativeVlanId,omitempty"` // Vlan to receive untagged frames on trunk port + OspfSupport string `json:"ospfSupport,omitempty"` // Flag for OSPF enabled / disabled + Pid string `json:"pid,omitempty"` // Platform ID of the device + PortMode string `json:"portMode,omitempty"` // Port mode as access, trunk, routed + PortName string `json:"portName,omitempty"` // Interface name + PortType string `json:"portType,omitempty"` // Port type as Ethernet Port / Ethernet SVI / Ethernet Sub Interface + SerialNo string `json:"serialNo,omitempty"` // Serial number of the device + Series string `json:"series,omitempty"` // Series of the device + Speed string `json:"speed,omitempty"` // Speed of the interface + Status string `json:"status,omitempty"` // Interface status as Down / Up + VLANID string `json:"vlanId,omitempty"` // Vlan ID of interface + VoiceVLAN string `json:"voiceVlan,omitempty"` // Vlan information of the interface +} +type ResponseDevicesGetInterfaceInfoByIDResponseAddresses struct { + Address *ResponseDevicesGetInterfaceInfoByIDResponseAddressesAddress `json:"address,omitempty"` // + Type string `json:"type,omitempty"` // Type of the interface. For e.g. IPv4, IPv6 (with unicast, multicast, anycast, etc.) +} +type ResponseDevicesGetInterfaceInfoByIDResponseAddressesAddress struct { + IPAddress *ResponseDevicesGetInterfaceInfoByIDResponseAddressesAddressIPAddress `json:"ipAddress,omitempty"` // + IPMask *ResponseDevicesGetInterfaceInfoByIDResponseAddressesAddressIPMask `json:"ipMask,omitempty"` // + IsInverseMask *bool `json:"isInverseMask,omitempty"` // Inverse Mask of the IP address is enabled or not +} +type ResponseDevicesGetInterfaceInfoByIDResponseAddressesAddressIPAddress struct { + Address string `json:"address,omitempty"` // IP address of the interface +} +type ResponseDevicesGetInterfaceInfoByIDResponseAddressesAddressIPMask struct { + Address string `json:"address,omitempty"` // IP Mask of the interface +} +type ResponseDevicesGetDeviceInterfaceCount struct { Response *int `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } @@ -640,144 +2147,230 @@ type ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceName struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // - ClassName string `json:"className,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - Duplex string `json:"duplex,omitempty"` // - ID string `json:"id,omitempty"` // - IfIndex string `json:"ifIndex,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceType string `json:"interfaceType,omitempty"` // - IPv4Address string `json:"ipv4Address,omitempty"` // - IPv4Mask string `json:"ipv4Mask,omitempty"` // - IsisSupport string `json:"isisSupport,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // - MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // - MediaType string `json:"mediaType,omitempty"` // - NativeVLANID string `json:"nativeVlanId,omitempty"` // - OspfSupport string `json:"ospfSupport,omitempty"` // - Pid string `json:"pid,omitempty"` // - PortMode string `json:"portMode,omitempty"` // - PortName string `json:"portName,omitempty"` // - PortType string `json:"portType,omitempty"` // - SerialNo string `json:"serialNo,omitempty"` // - Series string `json:"series,omitempty"` // - Speed string `json:"speed,omitempty"` // - Status string `json:"status,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - VoiceVLAN string `json:"voiceVlan,omitempty"` // + Addresses *[]ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponseAddresses `json:"addresses,omitempty"` // + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + ClassName string `json:"className,omitempty"` // Classifies the port as switch port ,loopback interface etc. + Description string `json:"description,omitempty"` // Description for the Interface + Name string `json:"name,omitempty"` // Name for the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device + Duplex string `json:"duplex,omitempty"` // Interface duplex as AutoNegotiate or FullDuplex + ID string `json:"id,omitempty"` // ID of the Interface + IfIndex string `json:"ifIndex,omitempty"` // Interface index + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Interface + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Interface + InterfaceType string `json:"interfaceType,omitempty"` // Interface type as Physical or Virtual + IPv4Address string `json:"ipv4Address,omitempty"` // IPV4 Address of the device + IPv4Mask string `json:"ipv4Mask,omitempty"` // IPV4 Mask of the device + IsisSupport string `json:"isisSupport,omitempty"` // Flag for ISIS enabled / disabled + LastOutgoingPacketTime *float64 `json:"lastOutgoingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was sent from this interface + LastIncomingPacketTime *float64 `json:"lastIncomingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was received on this interface + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the device interface info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of interface + MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // ID of physical interface mapped with the virtual interface of WLC + MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // Physical interface name mapped with the virtual interface of WLC + MediaType string `json:"mediaType,omitempty"` // Media Type of the interface + Mtu string `json:"mtu,omitempty"` // MTU Information of Interface + NativeVLANID string `json:"nativeVlanId,omitempty"` // Vlan to receive untagged frames on trunk port + OspfSupport string `json:"ospfSupport,omitempty"` // Flag for OSPF enabled / disabled + Pid string `json:"pid,omitempty"` // Platform ID of the device + PortMode string `json:"portMode,omitempty"` // Port mode as access, trunk, routed + PortName string `json:"portName,omitempty"` // Interface name + PortType string `json:"portType,omitempty"` // Port type as Ethernet Port / Ethernet SVI / Ethernet Sub Interface + SerialNo string `json:"serialNo,omitempty"` // Serial number of the device + Series string `json:"series,omitempty"` // Series of the device + Speed string `json:"speed,omitempty"` // Speed of the interface + Status string `json:"status,omitempty"` // Interface status as Down / Up + VLANID string `json:"vlanId,omitempty"` // Vlan ID of interface + VoiceVLAN string `json:"voiceVlan,omitempty"` // Vlan information of the interface + Poweroverethernet string `json:"poweroverethernet,omitempty"` // This is internal attribute. Not to be used. Deprecated + NetworkdeviceID string `json:"networkdevice_id,omitempty"` // This is internal attribute. Not to be used. Deprecated + ManagedComputeElement string `json:"managedComputeElement,omitempty"` // This is internal attribute. Not to be used. Deprecated + ManagedNetworkElement string `json:"managedNetworkElement,omitempty"` // This is internal attribute. Not to be used. Deprecated + ManagedNetworkElementURL string `json:"managedNetworkElementUrl,omitempty"` // This is internal attribute. Not to be used. Deprecated + ManagedComputeElementURL string `json:"managedComputeElementUrl,omitempty"` // This is internal attribute. Not to be used. Deprecated +} +type ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponseAddresses struct { + Address *ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponseAddressesAddress `json:"address,omitempty"` // + Type string `json:"type,omitempty"` // Type of the interface. For e.g. IPv4, IPv6 (with unicast, multicast, anycast, etc.) +} +type ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponseAddressesAddress struct { + IPAddress *ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponseAddressesAddressIPAddress `json:"ipAddress,omitempty"` // + IPMask *ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponseAddressesAddressIPMask `json:"ipMask,omitempty"` // + IsInverseMask *bool `json:"isInverseMask,omitempty"` // Inverse Mask of the IP address is enabled or not +} +type ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponseAddressesAddressIPAddress struct { + Address string `json:"address,omitempty"` // IP address of the interface +} +type ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceNameResponseAddressesAddressIPMask struct { + Address string `json:"address,omitempty"` // IP Mask of the interface } type ResponseDevicesGetDeviceInterfacesBySpecifiedRange struct { Response *[]ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // - ClassName string `json:"className,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - Duplex string `json:"duplex,omitempty"` // - ID string `json:"id,omitempty"` // - IfIndex string `json:"ifIndex,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceType string `json:"interfaceType,omitempty"` // - IPv4Address string `json:"ipv4Address,omitempty"` // - IPv4Mask string `json:"ipv4Mask,omitempty"` // - IsisSupport string `json:"isisSupport,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // - MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // - MediaType string `json:"mediaType,omitempty"` // - NativeVLANID string `json:"nativeVlanId,omitempty"` // - OspfSupport string `json:"ospfSupport,omitempty"` // - Pid string `json:"pid,omitempty"` // - PortMode string `json:"portMode,omitempty"` // - PortName string `json:"portName,omitempty"` // - PortType string `json:"portType,omitempty"` // - SerialNo string `json:"serialNo,omitempty"` // - Series string `json:"series,omitempty"` // - Speed string `json:"speed,omitempty"` // - Status string `json:"status,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - VoiceVLAN string `json:"voiceVlan,omitempty"` // + Addresses *[]ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponseAddresses `json:"addresses,omitempty"` // + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + ClassName string `json:"className,omitempty"` // Classifies the port as switch port ,loopback interface etc. + Description string `json:"description,omitempty"` // Description for the Interface + Name string `json:"name,omitempty"` // Name for the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device + Duplex string `json:"duplex,omitempty"` // Interface duplex as AutoNegotiate or FullDuplex + ID string `json:"id,omitempty"` // ID of the Interface + IfIndex string `json:"ifIndex,omitempty"` // Interface index + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Interface + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Interface + InterfaceType string `json:"interfaceType,omitempty"` // Interface type as Physical or Virtual + IPv4Address string `json:"ipv4Address,omitempty"` // IPV4 Address of the device + IPv4Mask string `json:"ipv4Mask,omitempty"` // IPV4 Mask of the device + IsisSupport string `json:"isisSupport,omitempty"` // Flag for ISIS enabled / disabled + LastOutgoingPacketTime *float64 `json:"lastOutgoingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was sent from this interface + LastIncomingPacketTime *float64 `json:"lastIncomingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was received on this interface + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the device interface info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of interface + MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // ID of physical interface mapped with the virtual interface of WLC + MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // Physical interface name mapped with the virtual interface of WLC + MediaType string `json:"mediaType,omitempty"` // Media Type of the interface + Mtu string `json:"mtu,omitempty"` // MTU Information of Interface + NativeVLANID string `json:"nativeVlanId,omitempty"` // Vlan to receive untagged frames on trunk port + OspfSupport string `json:"ospfSupport,omitempty"` // Flag for OSPF enabled / disabled + Pid string `json:"pid,omitempty"` // Platform ID of the device + PortMode string `json:"portMode,omitempty"` // Port mode as access, trunk, routed + PortName string `json:"portName,omitempty"` // Interface name + PortType string `json:"portType,omitempty"` // Port type as Ethernet Port / Ethernet SVI / Ethernet Sub Interface + SerialNo string `json:"serialNo,omitempty"` // Serial number of the device + Series string `json:"series,omitempty"` // Series of the device + Speed string `json:"speed,omitempty"` // Speed of the interface + Status string `json:"status,omitempty"` // Interface status as Down / Up + VLANID string `json:"vlanId,omitempty"` // Vlan ID of interface + VoiceVLAN string `json:"voiceVlan,omitempty"` // Vlan information of the interface +} +type ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponseAddresses struct { + Address *ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponseAddressesAddress `json:"address,omitempty"` // + Type string `json:"type,omitempty"` // Type of the interface. For e.g. IPv4, IPv6 (with unicast, multicast, anycast, etc.) +} +type ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponseAddressesAddress struct { + IPAddress *ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponseAddressesAddressIPAddress `json:"ipAddress,omitempty"` // + IPMask *ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponseAddressesAddressIPMask `json:"ipMask,omitempty"` // + IsInverseMask *bool `json:"isInverseMask,omitempty"` // Inverse Mask of the IP address is enabled or not +} +type ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponseAddressesAddressIPAddress struct { + Address string `json:"address,omitempty"` // IP address of the interface +} +type ResponseDevicesGetDeviceInterfacesBySpecifiedRangeResponseAddressesAddressIPMask struct { + Address string `json:"address,omitempty"` // IP Mask of the interface } type ResponseDevicesGetOspfInterfaces struct { Response *[]ResponseDevicesGetOspfInterfacesResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetOspfInterfacesResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // - ClassName string `json:"className,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - Duplex string `json:"duplex,omitempty"` // - ID string `json:"id,omitempty"` // - IfIndex string `json:"ifIndex,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceType string `json:"interfaceType,omitempty"` // - IPv4Address string `json:"ipv4Address,omitempty"` // - IPv4Mask string `json:"ipv4Mask,omitempty"` // - IsisSupport string `json:"isisSupport,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // - MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // - MediaType string `json:"mediaType,omitempty"` // - NativeVLANID string `json:"nativeVlanId,omitempty"` // - OspfSupport string `json:"ospfSupport,omitempty"` // - Pid string `json:"pid,omitempty"` // - PortMode string `json:"portMode,omitempty"` // - PortName string `json:"portName,omitempty"` // - PortType string `json:"portType,omitempty"` // - SerialNo string `json:"serialNo,omitempty"` // - Series string `json:"series,omitempty"` // - Speed string `json:"speed,omitempty"` // - Status string `json:"status,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - VoiceVLAN string `json:"voiceVlan,omitempty"` // + Addresses *[]ResponseDevicesGetOspfInterfacesResponseAddresses `json:"addresses,omitempty"` // + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + ClassName string `json:"className,omitempty"` // Classifies the port as switch port ,loopback interface etc. + Description string `json:"description,omitempty"` // Description for the Interface + Name string `json:"name,omitempty"` // Name for the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device + Duplex string `json:"duplex,omitempty"` // Interface duplex as AutoNegotiate or FullDuplex + ID string `json:"id,omitempty"` // ID of the Interface + IfIndex string `json:"ifIndex,omitempty"` // Interface index + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Interface + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Interface + InterfaceType string `json:"interfaceType,omitempty"` // Interface type as Physical or Virtual + IPv4Address string `json:"ipv4Address,omitempty"` // IPV4 Address of the device + IPv4Mask string `json:"ipv4Mask,omitempty"` // IPV4 Mask of the device + IsisSupport string `json:"isisSupport,omitempty"` // Flag for ISIS enabled / disabled + LastOutgoingPacketTime *float64 `json:"lastOutgoingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was sent from this interface + LastIncomingPacketTime *float64 `json:"lastIncomingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was received on this interface + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the device interface info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of interface + MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // ID of physical interface mapped with the virtual interface of WLC + MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // Physical interface name mapped with the virtual interface of WLC + MediaType string `json:"mediaType,omitempty"` // Media Type of the interface + Mtu string `json:"mtu,omitempty"` // MTU Information of Interface + NativeVLANID string `json:"nativeVlanId,omitempty"` // Vlan to receive untagged frames on trunk port + OspfSupport string `json:"ospfSupport,omitempty"` // Flag for OSPF enabled / disabled + Pid string `json:"pid,omitempty"` // Platform ID of the device + PortMode string `json:"portMode,omitempty"` // Port mode as access, trunk, routed + PortName string `json:"portName,omitempty"` // Interface name + PortType string `json:"portType,omitempty"` // Port type as Ethernet Port / Ethernet SVI / Ethernet Sub Interface + SerialNo string `json:"serialNo,omitempty"` // Serial number of the device + Series string `json:"series,omitempty"` // Series of the device + Speed string `json:"speed,omitempty"` // Speed of the interface + Status string `json:"status,omitempty"` // Interface status as Down / Up + VLANID string `json:"vlanId,omitempty"` // Vlan ID of interface + VoiceVLAN string `json:"voiceVlan,omitempty"` // Vlan information of the interface +} +type ResponseDevicesGetOspfInterfacesResponseAddresses struct { + Address *ResponseDevicesGetOspfInterfacesResponseAddressesAddress `json:"address,omitempty"` // + Type string `json:"type,omitempty"` // Type of the interface. For e.g. IPv4, IPv6 (with unicast, multicast, anycast, etc.) +} +type ResponseDevicesGetOspfInterfacesResponseAddressesAddress struct { + IPAddress *ResponseDevicesGetOspfInterfacesResponseAddressesAddressIPAddress `json:"ipAddress,omitempty"` // + IPMask *ResponseDevicesGetOspfInterfacesResponseAddressesAddressIPMask `json:"ipMask,omitempty"` // + IsInverseMask *bool `json:"isInverseMask,omitempty"` // Inverse Mask of the IP address is enabled or not +} +type ResponseDevicesGetOspfInterfacesResponseAddressesAddressIPAddress struct { + Address string `json:"address,omitempty"` // IP address of the interface +} +type ResponseDevicesGetOspfInterfacesResponseAddressesAddressIPMask struct { + Address string `json:"address,omitempty"` // IP Mask of the interface } type ResponseDevicesGetInterfaceByID struct { Response *ResponseDevicesGetInterfaceByIDResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetInterfaceByIDResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // - ClassName string `json:"className,omitempty"` // - Description string `json:"description,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - Duplex string `json:"duplex,omitempty"` // - ID string `json:"id,omitempty"` // - IfIndex string `json:"ifIndex,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceType string `json:"interfaceType,omitempty"` // - IPv4Address string `json:"ipv4Address,omitempty"` // - IPv4Mask string `json:"ipv4Mask,omitempty"` // - IsisSupport string `json:"isisSupport,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // - MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // - MediaType string `json:"mediaType,omitempty"` // - NativeVLANID string `json:"nativeVlanId,omitempty"` // - OspfSupport string `json:"ospfSupport,omitempty"` // - Pid string `json:"pid,omitempty"` // - PortMode string `json:"portMode,omitempty"` // - PortName string `json:"portName,omitempty"` // - PortType string `json:"portType,omitempty"` // - SerialNo string `json:"serialNo,omitempty"` // - Series string `json:"series,omitempty"` // - Speed string `json:"speed,omitempty"` // - Status string `json:"status,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - VoiceVLAN string `json:"voiceVlan,omitempty"` // + Addresses *[]ResponseDevicesGetInterfaceByIDResponseAddresses `json:"addresses,omitempty"` // + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + ClassName string `json:"className,omitempty"` // Classifies the port as switch port ,loopback interface etc. + Description string `json:"description,omitempty"` // Description for the Interface + Name string `json:"name,omitempty"` // Name for the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device + Duplex string `json:"duplex,omitempty"` // Interface duplex as AutoNegotiate or FullDuplex + ID string `json:"id,omitempty"` // ID of the Interface + IfIndex string `json:"ifIndex,omitempty"` // Interface index + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Interface + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Interface + InterfaceType string `json:"interfaceType,omitempty"` // Interface type as Physical or Virtual + IPv4Address string `json:"ipv4Address,omitempty"` // IPV4 Address of the device + IPv4Mask string `json:"ipv4Mask,omitempty"` // IPV4 Mask of the device + IsisSupport string `json:"isisSupport,omitempty"` // Flag for ISIS enabled / disabled + LastOutgoingPacketTime *float64 `json:"lastOutgoingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was sent from this interface + LastIncomingPacketTime *float64 `json:"lastIncomingPacketTime,omitempty"` // Time, in milliseconds since UNIX epoch, when the last packet was received on this interface + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the device interface info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of interface + MappedPhysicalInterfaceID string `json:"mappedPhysicalInterfaceId,omitempty"` // ID of physical interface mapped with the virtual interface of WLC + MappedPhysicalInterfaceName string `json:"mappedPhysicalInterfaceName,omitempty"` // Physical interface name mapped with the virtual interface of WLC + MediaType string `json:"mediaType,omitempty"` // Media Type of the interface + Mtu string `json:"mtu,omitempty"` // MTU Information of Interface + NativeVLANID string `json:"nativeVlanId,omitempty"` // Vlan to receive untagged frames on trunk port + OspfSupport string `json:"ospfSupport,omitempty"` // Flag for OSPF enabled / disabled + Pid string `json:"pid,omitempty"` // Platform ID of the device + PortMode string `json:"portMode,omitempty"` // Port mode as access, trunk, routed + PortName string `json:"portName,omitempty"` // Interface name + PortType string `json:"portType,omitempty"` // Port type as Ethernet Port / Ethernet SVI / Ethernet Sub Interface + SerialNo string `json:"serialNo,omitempty"` // Serial number of the device + Series string `json:"series,omitempty"` // Series of the device + Speed string `json:"speed,omitempty"` // Speed of the interface + Status string `json:"status,omitempty"` // Interface status as Down / Up + VLANID string `json:"vlanId,omitempty"` // Vlan ID of interface + VoiceVLAN string `json:"voiceVlan,omitempty"` // Vlan information of the interface +} +type ResponseDevicesGetInterfaceByIDResponseAddresses struct { + Address *ResponseDevicesGetInterfaceByIDResponseAddressesAddress `json:"address,omitempty"` // + Type string `json:"type,omitempty"` // Type of the interface. For e.g. IPv4, IPv6 (with unicast, multicast, anycast, etc.) +} +type ResponseDevicesGetInterfaceByIDResponseAddressesAddress struct { + IPAddress *ResponseDevicesGetInterfaceByIDResponseAddressesAddressIPAddress `json:"ipAddress,omitempty"` // + IPMask *ResponseDevicesGetInterfaceByIDResponseAddressesAddressIPMask `json:"ipMask,omitempty"` // + IsInverseMask *bool `json:"isInverseMask,omitempty"` // Inverse Mask of the IP address is enabled or not +} +type ResponseDevicesGetInterfaceByIDResponseAddressesAddressIPAddress struct { + Address string `json:"address,omitempty"` // IP address of the interface +} +type ResponseDevicesGetInterfaceByIDResponseAddressesAddressIPMask struct { + Address string `json:"address,omitempty"` // IP Mask of the interface } type ResponseDevicesUpdateInterfaceDetails struct { Response *ResponseDevicesUpdateInterfaceDetailsResponse `json:"response,omitempty"` // @@ -803,69 +2396,22 @@ type ResponseDevicesUpdateInterfaceDetailsVersion struct { } type ResponseDevicesLegitOperationsForInterface struct { Response *ResponseDevicesLegitOperationsForInterfaceResponse `json:"response,omitempty"` // - Version *ResponseDevicesLegitOperationsForInterfaceVersion `json:"version,omitempty"` // + Version string `json:"version,omitempty"` // Version } type ResponseDevicesLegitOperationsForInterfaceResponse struct { - Type string `json:"type,omitempty"` // Type - Properties *ResponseDevicesLegitOperationsForInterfaceResponseProperties `json:"properties,omitempty"` // - Required []string `json:"required,omitempty"` // Required + InterfaceUUID string `json:"interfaceUuid,omitempty"` // Id of the Interface + Properties *[]ResponseDevicesLegitOperationsForInterfaceResponseProperties `json:"properties,omitempty"` // + Operations *[]ResponseDevicesLegitOperationsForInterfaceResponseOperations `json:"operations,omitempty"` // } type ResponseDevicesLegitOperationsForInterfaceResponseProperties struct { - InterfaceUUID *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesInterfaceUUID `json:"interfaceUuid,omitempty"` // - Properties *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesProperties `json:"properties,omitempty"` // - Operations *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperations `json:"operations,omitempty"` // -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesInterfaceUUID struct { - Type string `json:"type,omitempty"` // Type -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesProperties struct { - Type string `json:"type,omitempty"` // Type - Items *[]ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItems `json:"items,omitempty"` // + Name string `json:"name,omitempty"` // Name of the Property + Applicable string `json:"applicable,omitempty"` // Checks if property is applicable to interface + FailureReason string `json:"failureReason,omitempty"` // Failure reason of the Property } -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItems struct { - Type string `json:"type,omitempty"` // Type - Properties *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItemsProperties `json:"properties,omitempty"` // - Required []string `json:"required,omitempty"` // Required -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItemsProperties struct { - Name *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItemsPropertiesName `json:"name,omitempty"` // - Applicable *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItemsPropertiesApplicable `json:"applicable,omitempty"` // - FailureReason *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItemsPropertiesFailureReason `json:"failureReason,omitempty"` // -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItemsPropertiesName struct { - Type string `json:"type,omitempty"` // Type -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItemsPropertiesApplicable struct { - Type string `json:"type,omitempty"` // Type -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesPropertiesItemsPropertiesFailureReason struct { - Type string `json:"type,omitempty"` // Type -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperations struct { - Type string `json:"type,omitempty"` // Type - Items *[]ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItems `json:"items,omitempty"` // -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItems struct { - Type string `json:"type,omitempty"` // Type - Properties *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItemsProperties `json:"properties,omitempty"` // - Required []string `json:"required,omitempty"` // Required -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItemsProperties struct { - Name *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItemsPropertiesName `json:"name,omitempty"` // - Applicable *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItemsPropertiesApplicable `json:"applicable,omitempty"` // - FailureReason *ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItemsPropertiesFailureReason `json:"failureReason,omitempty"` // -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItemsPropertiesName struct { - Type string `json:"type,omitempty"` // Type -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItemsPropertiesApplicable struct { - Type string `json:"type,omitempty"` // Type -} -type ResponseDevicesLegitOperationsForInterfaceResponsePropertiesOperationsItemsPropertiesFailureReason struct { - Type string `json:"type,omitempty"` // Type -} -type ResponseDevicesLegitOperationsForInterfaceVersion struct { - Type string `json:"type,omitempty"` // Type +type ResponseDevicesLegitOperationsForInterfaceResponseOperations struct { + Name string `json:"name,omitempty"` // Name of the Operation + Applicable string `json:"applicable,omitempty"` // Checks if operation is applicable to interface + FailureReason string `json:"failureReason,omitempty"` // Failure reason of the Operation } type ResponseDevicesClearMacAddressTable struct { Response *ResponseDevicesClearMacAddressTableResponse `json:"response,omitempty"` // @@ -880,77 +2426,76 @@ type ResponseDevicesGetDeviceList struct { Version string `json:"version,omitempty"` // Version } type ResponseDevicesGetDeviceListResponse struct { - ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Reachability Failure Reason - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Reachability Status - Series string `json:"series,omitempty"` // Series - SNMPContact string `json:"snmpContact,omitempty"` // Snmp Contact - SNMPLocation string `json:"snmpLocation,omitempty"` // Snmp Location - TagCount string `json:"tagCount,omitempty"` // Tag Count - TunnelUDPPort *ResponseDevicesGetDeviceListResponseTunnelUDPPort `json:"tunnelUdpPort,omitempty"` // Tunnel Udp Port - UptimeSeconds *int `json:"uptimeSeconds,omitempty"` // Uptime Seconds - WaasDeviceMode *ResponseDevicesGetDeviceListResponseWaasDeviceMode `json:"waasDeviceMode,omitempty"` // Waas Device Mode - SerialNumber string `json:"serialNumber,omitempty"` // Serial Number - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time - MacAddress string `json:"macAddress,omitempty"` // Mac Address - UpTime string `json:"upTime,omitempty"` // Up Time - DeviceSupportLevel string `json:"deviceSupportLevel,omitempty"` // Device Support Level - Hostname string `json:"hostname,omitempty"` // Hostname - Type string `json:"type,omitempty"` // Type - MemorySize string `json:"memorySize,omitempty"` // Memory Size - Family string `json:"family,omitempty"` // Family - ErrorCode string `json:"errorCode,omitempty"` // Error Code - SoftwareType string `json:"softwareType,omitempty"` // Software Type - SoftwareVersion string `json:"softwareVersion,omitempty"` // Software Version - Description string `json:"description,omitempty"` // Description - RoleSource string `json:"roleSource,omitempty"` // Role Source - Location *ResponseDevicesGetDeviceListResponseLocation `json:"location,omitempty"` // Location - Role string `json:"role,omitempty"` // Role - CollectionInterval string `json:"collectionInterval,omitempty"` // Collection Interval - InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Inventory Status Detail - ApEthernetMacAddress *ResponseDevicesGetDeviceListResponseApEthernetMacAddress `json:"apEthernetMacAddress,omitempty"` // Ap Ethernet Mac Address - ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // Ap Manager Interface Ip - AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated Wlc Ip - BootDateTime string `json:"bootDateTime,omitempty"` // Boot Date Time - CollectionStatus string `json:"collectionStatus,omitempty"` // Collection Status - ErrorDescription string `json:"errorDescription,omitempty"` // Error Description - InterfaceCount string `json:"interfaceCount,omitempty"` // Interface Count - LastUpdated string `json:"lastUpdated,omitempty"` // Last Updated - LineCardCount string `json:"lineCardCount,omitempty"` // Line Card Count - LineCardID string `json:"lineCardId,omitempty"` // Line Card Id - LocationName *ResponseDevicesGetDeviceListResponseLocationName `json:"locationName,omitempty"` // Location Name - ManagedAtleastOnce *bool `json:"managedAtleastOnce,omitempty"` // Managed Atleast Once - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address - PlatformID string `json:"platformId,omitempty"` // Platform Id - ManagementState string `json:"managementState,omitempty"` // Management State - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - ID string `json:"id,omitempty"` // Id -} -type ResponseDevicesGetDeviceListResponseTunnelUDPPort interface{} -type ResponseDevicesGetDeviceListResponseWaasDeviceMode interface{} -type ResponseDevicesGetDeviceListResponseLocation interface{} -type ResponseDevicesGetDeviceListResponseApEthernetMacAddress interface{} -type ResponseDevicesGetDeviceListResponseLocationName interface{} -type ResponseDevicesAddDevice2 struct { - Response *ResponseDevicesAddDevice2Response `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // -} -type ResponseDevicesAddDevice2Response struct { + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Failure reason for unreachable devices + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Device reachability status as Reachable / Unreachable + Series string `json:"series,omitempty"` // Device series + SNMPContact string `json:"snmpContact,omitempty"` // SNMP contact on device + SNMPLocation string `json:"snmpLocation,omitempty"` // SNMP location on device + TagCount string `json:"tagCount,omitempty"` // Number of tags associated with the device + TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // Mobility protocol port is stored as tunneludpport for WLC + UptimeSeconds *float64 `json:"uptimeSeconds,omitempty"` // Uptime in Seconds + WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // WAAS device mode + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of device + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Time in epoch when the network device info last got updated + MacAddress string `json:"macAddress,omitempty"` // MAC address of device + UpTime string `json:"upTime,omitempty"` // Time that shows for how long the device has been up + DeviceSupportLevel string `json:"deviceSupportLevel,omitempty"` // Support level of the device + Hostname string `json:"hostname,omitempty"` // Device name + Type string `json:"type,omitempty"` // Type of device as switch, router, wireless lan controller, accesspoints + MemorySize string `json:"memorySize,omitempty"` // Processor memory size + Family string `json:"family,omitempty"` // Family of device as switch, router, wireless lan controller, accesspoints + ErrorCode string `json:"errorCode,omitempty"` // Inventory status error code + SoftwareType string `json:"softwareType,omitempty"` // Software type on the device + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software version on the device + Description string `json:"description,omitempty"` // System description + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto + Location string `json:"location,omitempty"` // [Deprecated] Location ID that is associated with the device + Role string `json:"role,omitempty"` // Role of device as access, distribution, border router, core + CollectionInterval string `json:"collectionInterval,omitempty"` // Re sync Interval of the device + InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Status detail of inventory sync + ApEthernetMacAddress string `json:"apEthernetMacAddress,omitempty"` // AccessPoint Ethernet MacAddress of AP device + ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // IP address of WLC on AP manager interface + AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated Wlc Ip address of the AP device + BootDateTime string `json:"bootDateTime,omitempty"` // Device boot time + CollectionStatus string `json:"collectionStatus,omitempty"` // Collection status as Synchronizing, Could not synchronize, Not manageable, Managed, Partial Collection Failure, Incomplete, Unreachable, Wrong credential, Reachable, In Progress + ErrorDescription string `json:"errorDescription,omitempty"` // Inventory status description + InterfaceCount string `json:"interfaceCount,omitempty"` // Number of interfaces on the device + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the network device info last got updated + LineCardCount string `json:"lineCardCount,omitempty"` // Number of linecards on the device + LineCardID string `json:"lineCardId,omitempty"` // IDs of linecards of the device + LocationName string `json:"locationName,omitempty"` // [Deprecated] Name of the associated location + ManagedAtleastOnce *bool `json:"managedAtleastOnce,omitempty"` // Indicates if device went into Managed state atleast once + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // IP address of the device + PlatformID string `json:"platformId,omitempty"` // Platform ID of device + ManagementState string `json:"managementState,omitempty"` // Represents the current management state of the network element: managed, unmanaged, under maintenance, and so on. + PendingSyncRequestsCount string `json:"pendingSyncRequestsCount,omitempty"` // Count of pending sync requests , if any + ReasonsForDeviceResync string `json:"reasonsForDeviceResync,omitempty"` // Reason for last/ongoing sync + ReasonsForPendingSyncRequests string `json:"reasonsForPendingSyncRequests,omitempty"` // Reasons for pending sync requests , if any + SyncRequestedByApp string `json:"syncRequestedByApp,omitempty"` // Applications which requested for the resync of network device + LastManagedResyncReasons string `json:"lastManagedResyncReasons,omitempty"` // Reasons for last successful sync + DNSResolvedManagementAddress string `json:"dnsResolvedManagementAddress,omitempty"` // Specifies the resolved ip address of dns name + LastDeviceResyncStartTime string `json:"lastDeviceResyncStartTime,omitempty"` // Start time for last/ongoing sync + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the device + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the device + ID string `json:"id,omitempty"` // Instance Uuid of the device +} +type ResponseDevicesAddDeviceKnowYourNetwork struct { + Response *ResponseDevicesAddDeviceKnowYourNetworkResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseDevicesAddDeviceKnowYourNetworkResponse struct { TaskID string `json:"taskId,omitempty"` // URL string `json:"url,omitempty"` // } -type ResponseDevicesSyncDevices2 struct { - Response *ResponseDevicesSyncDevices2Response `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // +type ResponseDevicesUpdateDeviceDetails struct { + Response *ResponseDevicesUpdateDeviceDetailsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // } -type ResponseDevicesSyncDevices2Response struct { +type ResponseDevicesUpdateDeviceDetailsResponse struct { TaskID string `json:"taskId,omitempty"` // URL string `json:"url,omitempty"` // } -type ResponseDevicesGetDeviceValuesThatMatchFullyOrPartiallyAnAttribute struct { - Response []string `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // -} +type ResponseDevicesGetDeviceValuesThatMatchFullyOrPartiallyAnAttribute interface{} type ResponseDevicesUpdateDeviceRole struct { Response *ResponseDevicesUpdateDeviceRoleResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // @@ -985,7 +2530,7 @@ type ResponseDevicesGetDeviceConfigCount struct { Response *int `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } -type ResponseDevicesGetDeviceCount2 struct { +type ResponseDevicesGetDeviceCountKnowYourNetwork struct { Response *int `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } @@ -1002,25 +2547,25 @@ type ResponseDevicesGetFunctionalCapabilityForDevices struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetFunctionalCapabilityForDevicesResponse struct { - AttributeInfo *ResponseDevicesGetFunctionalCapabilityForDevicesResponseAttributeInfo `json:"attributeInfo,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // + AttributeInfo *ResponseDevicesGetFunctionalCapabilityForDevicesResponseAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + DeviceID string `json:"deviceId,omitempty"` // Device Id of the device FunctionalCapability *[]ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapability `json:"functionalCapability,omitempty"` // - ID string `json:"id,omitempty"` // + ID string `json:"id,omitempty"` // Deprecated } type ResponseDevicesGetFunctionalCapabilityForDevicesResponseAttributeInfo interface{} type ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapability struct { - AttributeInfo *ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapabilityAttributeInfo `json:"attributeInfo,omitempty"` // + AttributeInfo *ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapabilityAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated FunctionDetails *[]ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapabilityFunctionDetails `json:"functionDetails,omitempty"` // - FunctionName string `json:"functionName,omitempty"` // - FunctionOpState string `json:"functionOpState,omitempty"` // - ID string `json:"id,omitempty"` // + FunctionName string `json:"functionName,omitempty"` // Name of the function + FunctionOpState string `json:"functionOpState,omitempty"` // Operational state of the function + ID string `json:"id,omitempty"` // Id of the function } type ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapabilityAttributeInfo interface{} type ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapabilityFunctionDetails struct { - AttributeInfo *ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapabilityFunctionDetailsAttributeInfo `json:"attributeInfo,omitempty"` // - ID string `json:"id,omitempty"` // - PropertyName string `json:"propertyName,omitempty"` // - StringValue string `json:"stringValue,omitempty"` // + AttributeInfo *ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapabilityFunctionDetailsAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + ID string `json:"id,omitempty"` // Deprecated + PropertyName string `json:"propertyName,omitempty"` // Property Name of the function + StringValue string `json:"stringValue,omitempty"` // Value for the property } type ResponseDevicesGetFunctionalCapabilityForDevicesResponseFunctionalCapabilityFunctionDetailsAttributeInfo interface{} type ResponseDevicesGetFunctionalCapabilityByID struct { @@ -1028,25 +2573,25 @@ type ResponseDevicesGetFunctionalCapabilityByID struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetFunctionalCapabilityByIDResponse struct { - AttributeInfo *ResponseDevicesGetFunctionalCapabilityByIDResponseAttributeInfo `json:"attributeInfo,omitempty"` // + AttributeInfo *ResponseDevicesGetFunctionalCapabilityByIDResponseAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated FunctionDetails *[]ResponseDevicesGetFunctionalCapabilityByIDResponseFunctionDetails `json:"functionDetails,omitempty"` // - FunctionName string `json:"functionName,omitempty"` // - FunctionOpState string `json:"functionOpState,omitempty"` // - ID string `json:"id,omitempty"` // + FunctionName string `json:"functionName,omitempty"` // Name of the function + FunctionOpState string `json:"functionOpState,omitempty"` // Operational state of the function + ID string `json:"id,omitempty"` // Id of the function } type ResponseDevicesGetFunctionalCapabilityByIDResponseAttributeInfo interface{} type ResponseDevicesGetFunctionalCapabilityByIDResponseFunctionDetails struct { - AttributeInfo *ResponseDevicesGetFunctionalCapabilityByIDResponseFunctionDetailsAttributeInfo `json:"attributeInfo,omitempty"` // - ID string `json:"id,omitempty"` // - PropertyName string `json:"propertyName,omitempty"` // - StringValue string `json:"stringValue,omitempty"` // + AttributeInfo *ResponseDevicesGetFunctionalCapabilityByIDResponseFunctionDetailsAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + ID string `json:"id,omitempty"` // Deprecated + PropertyName string `json:"propertyName,omitempty"` // Property Name of the function + StringValue string `json:"stringValue,omitempty"` // Value for the property } type ResponseDevicesGetFunctionalCapabilityByIDResponseFunctionDetailsAttributeInfo interface{} -type ResponseDevicesInventoryInsightDeviceLinkMismatchApI struct { - Response *[]ResponseDevicesInventoryInsightDeviceLinkMismatchApIResponse `json:"response,omitempty"` // +type ResponseDevicesInventoryInsightDeviceLinkMismatchAPI struct { + Response *[]ResponseDevicesInventoryInsightDeviceLinkMismatchAPIResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Api version } -type ResponseDevicesInventoryInsightDeviceLinkMismatchApIResponse struct { +type ResponseDevicesInventoryInsightDeviceLinkMismatchAPIResponse struct { EndPortAllowedVLANIDs string `json:"endPortAllowedVlanIds,omitempty"` // End port allowed vlan ids EndPortNativeVLANID string `json:"endPortNativeVlanId,omitempty"` // End port native vlan id StartPortAllowedVLANIDs string `json:"startPortAllowedVlanIds,omitempty"` // Start port allowed vlan ids @@ -1079,86 +2624,84 @@ type ResponseDevicesInventoryInsightDeviceLinkMismatchApIResponse struct { InstanceUUID string `json:"instanceUuid,omitempty"` // Unique instance id InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance tenant id } -type ResponseDevicesReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DES struct { - Response *[]ResponseDevicesReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DESResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version -} -type ResponseDevicesReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DESResponse struct { - ID string `json:"id,omitempty"` // Id - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management Ip Address - Hostname string `json:"hostname,omitempty"` // Hostname - Type string `json:"type,omitempty"` // Type - Family string `json:"family,omitempty"` // Family - LastUpdated string `json:"lastUpdated,omitempty"` // Last Updated - UpTime string `json:"upTime,omitempty"` // Up Time - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Reachability Status -} type ResponseDevicesGetNetworkDeviceByIP struct { Response *ResponseDevicesGetNetworkDeviceByIPResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetNetworkDeviceByIPResponse struct { - ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // - AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // - BootDateTime string `json:"bootDateTime,omitempty"` // - CollectionInterval string `json:"collectionInterval,omitempty"` // - CollectionStatus string `json:"collectionStatus,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorDescription string `json:"errorDescription,omitempty"` // - Family string `json:"family,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceCount string `json:"interfaceCount,omitempty"` // - InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - LineCardCount string `json:"lineCardCount,omitempty"` // - LineCardID string `json:"lineCardId,omitempty"` // - Location string `json:"location,omitempty"` // - LocationName string `json:"locationName,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // - MemorySize string `json:"memorySize,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - Series string `json:"series,omitempty"` // - SNMPContact string `json:"snmpContact,omitempty"` // - SNMPLocation string `json:"snmpLocation,omitempty"` // - SoftwareType string `json:"softwareType,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - TagCount string `json:"tagCount,omitempty"` // - TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // - Type string `json:"type,omitempty"` // - UpTime string `json:"upTime,omitempty"` // - WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // + ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // IP address of WLC on AP manager interface + AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated Wlc Ip address of the AP device + BootDateTime string `json:"bootDateTime,omitempty"` // Device boot time + CollectionInterval string `json:"collectionInterval,omitempty"` // Re sync Interval of the device + CollectionStatus string `json:"collectionStatus,omitempty"` // Collection status as Synchronizing, Could not synchronize, Not manageable, Managed, Partial Collection Failure, Incomplete, Unreachable, Wrong credential, Reachable, In Progress + ErrorCode string `json:"errorCode,omitempty"` // Inventory status error code + ErrorDescription string `json:"errorDescription,omitempty"` // Inventory status description + Family string `json:"family,omitempty"` // Family of device as switch, router, wireless lan controller, accesspoints + Hostname string `json:"hostname,omitempty"` // Device name + ID string `json:"id,omitempty"` // Instance Uuid of the device + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the device + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the device + InterfaceCount string `json:"interfaceCount,omitempty"` // Number of interfaces on the device + InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Status detail of inventory sync + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Time in epoch when the network device info last got updated + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the network device info last got updated + LineCardCount string `json:"lineCardCount,omitempty"` // Number of linecards on the device + LineCardID string `json:"lineCardId,omitempty"` // IDs of linecards of the device + Location string `json:"location,omitempty"` // [Deprecated] Location ID that is associated with the device + LocationName string `json:"locationName,omitempty"` // [Deprecated] Name of the associated location + MacAddress string `json:"macAddress,omitempty"` // MAC address of device + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // IP address of the device + MemorySize string `json:"memorySize,omitempty"` // Processor memory size + PlatformID string `json:"platformId,omitempty"` // Platform ID of device + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Failure reason for unreachable devices + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Device reachability status as Reachable / Unreachable + Role string `json:"role,omitempty"` // Role of device as access, distribution, border router, core + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of device + Series string `json:"series,omitempty"` // Device series + SNMPContact string `json:"snmpContact,omitempty"` // SNMP contact on device + SNMPLocation string `json:"snmpLocation,omitempty"` // SNMP location on device + SoftwareType string `json:"softwareType,omitempty"` // Software type on the device + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software version on the device + TagCount string `json:"tagCount,omitempty"` // Number of tags associated with the device + TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // Mobility protocol port is stored as tunneludpport for WLC + Type string `json:"type,omitempty"` // Type of device as switch, router, wireless lan controller, accesspoints + UpTime string `json:"upTime,omitempty"` // Time that shows for how long the device has been up + WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // WAAS device mode + DNSResolvedManagementAddress string `json:"dnsResolvedManagementAddress,omitempty"` // Specifies the resolved ip address of dns name + ApEthernetMacAddress string `json:"apEthernetMacAddress,omitempty"` // AccessPoint Ethernet MacAddress of AP device + Vendor string `json:"vendor,omitempty"` // Vendor details + ReasonsForPendingSyncRequests string `json:"reasonsForPendingSyncRequests,omitempty"` // Reasons for pending sync requests , if any + PendingSyncRequestsCount string `json:"pendingSyncRequestsCount,omitempty"` // Count of pending sync requests , if any + ReasonsForDeviceResync string `json:"reasonsForDeviceResync,omitempty"` // Reason for last/ongoing sync + LastDeviceResyncStartTime string `json:"lastDeviceResyncStartTime,omitempty"` // Start time for last/ongoing sync + UptimeSeconds *float64 `json:"uptimeSeconds,omitempty"` // Uptime in Seconds + ManagedAtleastOnce *bool `json:"managedAtleastOnce,omitempty"` // Indicates if device went into Managed state atleast once + DeviceSupportLevel string `json:"deviceSupportLevel,omitempty"` // Support level of the device + ManagementState string `json:"managementState,omitempty"` // Represents the current management state of the network element: managed, unmanaged, under maintenance, and so on. + Description string `json:"description,omitempty"` // System description } type ResponseDevicesGetModules struct { Response *[]ResponseDevicesGetModulesResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetModulesResponse struct { - AssemblyNumber string `json:"assemblyNumber,omitempty"` // - AssemblyRevision string `json:"assemblyRevision,omitempty"` // - AttributeInfo *ResponseDevicesGetModulesResponseAttributeInfo `json:"attributeInfo,omitempty"` // - ContainmentEntity string `json:"containmentEntity,omitempty"` // - Description string `json:"description,omitempty"` // - EntityPhysicalIndex string `json:"entityPhysicalIndex,omitempty"` // - ID string `json:"id,omitempty"` // - IsFieldReplaceable string `json:"isFieldReplaceable,omitempty"` // - IsReportingAlarmsAllowed string `json:"isReportingAlarmsAllowed,omitempty"` // - Manufacturer string `json:"manufacturer,omitempty"` // - ModuleIndex *int `json:"moduleIndex,omitempty"` // - Name string `json:"name,omitempty"` // - OperationalStateCode string `json:"operationalStateCode,omitempty"` // - PartNumber string `json:"partNumber,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - VendorEquipmentType string `json:"vendorEquipmentType,omitempty"` // + AssemblyNumber string `json:"assemblyNumber,omitempty"` // Assembly Number of the module + AssemblyRevision string `json:"assemblyRevision,omitempty"` // Assembly Revision of the module + AttributeInfo *ResponseDevicesGetModulesResponseAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + ContainmentEntity string `json:"containmentEntity,omitempty"` // Containment Entity of the module + Description string `json:"description,omitempty"` // Description of the module + EntityPhysicalIndex string `json:"entityPhysicalIndex,omitempty"` // Entity Physical Index of the module + ID string `json:"id,omitempty"` // ID of the module + IsFieldReplaceable string `json:"isFieldReplaceable,omitempty"` // To mention if field is replaceable + IsReportingAlarmsAllowed string `json:"isReportingAlarmsAllowed,omitempty"` // To mention if reporting alarms are allowed + Manufacturer string `json:"manufacturer,omitempty"` // Manufacturer of the module + ModuleIndex *int `json:"moduleIndex,omitempty"` // Index of the module + Name string `json:"name,omitempty"` // Name of the module + OperationalStateCode string `json:"operationalStateCode,omitempty"` // Operational state of the module + PartNumber string `json:"partNumber,omitempty"` // Part number of the module + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of the module + VendorEquipmentType string `json:"vendorEquipmentType,omitempty"` // Vendor euipment type of the module } type ResponseDevicesGetModulesResponseAttributeInfo interface{} type ResponseDevicesGetModuleCount struct { @@ -1170,22 +2713,22 @@ type ResponseDevicesGetModuleInfoByID struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetModuleInfoByIDResponse struct { - AssemblyNumber string `json:"assemblyNumber,omitempty"` // - AssemblyRevision string `json:"assemblyRevision,omitempty"` // - AttributeInfo *ResponseDevicesGetModuleInfoByIDResponseAttributeInfo `json:"attributeInfo,omitempty"` // - ContainmentEntity string `json:"containmentEntity,omitempty"` // - Description string `json:"description,omitempty"` // - EntityPhysicalIndex string `json:"entityPhysicalIndex,omitempty"` // - ID string `json:"id,omitempty"` // - IsFieldReplaceable string `json:"isFieldReplaceable,omitempty"` // - IsReportingAlarmsAllowed string `json:"isReportingAlarmsAllowed,omitempty"` // - Manufacturer string `json:"manufacturer,omitempty"` // - ModuleIndex *int `json:"moduleIndex,omitempty"` // - Name string `json:"name,omitempty"` // - OperationalStateCode string `json:"operationalStateCode,omitempty"` // - PartNumber string `json:"partNumber,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - VendorEquipmentType string `json:"vendorEquipmentType,omitempty"` // + AssemblyNumber string `json:"assemblyNumber,omitempty"` // Assembly number of the module + AssemblyRevision string `json:"assemblyRevision,omitempty"` // Assembly revision of the module + AttributeInfo *ResponseDevicesGetModuleInfoByIDResponseAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + ContainmentEntity string `json:"containmentEntity,omitempty"` // Containment entity of the module + Description string `json:"description,omitempty"` // Description of the module + EntityPhysicalIndex string `json:"entityPhysicalIndex,omitempty"` // Entity physical index of the module + ID string `json:"id,omitempty"` // Id of the module + IsFieldReplaceable string `json:"isFieldReplaceable,omitempty"` // To mention if field is replaceable + IsReportingAlarmsAllowed string `json:"isReportingAlarmsAllowed,omitempty"` // To mention if reporting alarms are allowed + Manufacturer string `json:"manufacturer,omitempty"` // Manufacturer of the module + ModuleIndex *int `json:"moduleIndex,omitempty"` // Index of the module + Name string `json:"name,omitempty"` // Name of the module + OperationalStateCode string `json:"operationalStateCode,omitempty"` // Operational state of the module + PartNumber string `json:"partNumber,omitempty"` // Part number of the module + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of the modules + VendorEquipmentType string `json:"vendorEquipmentType,omitempty"` // Vendor equipment type of the module } type ResponseDevicesGetModuleInfoByIDResponseAttributeInfo interface{} type ResponseDevicesGetDeviceBySerialNumber struct { @@ -1193,45 +2736,57 @@ type ResponseDevicesGetDeviceBySerialNumber struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetDeviceBySerialNumberResponse struct { - ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // - AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // - BootDateTime string `json:"bootDateTime,omitempty"` // - CollectionInterval string `json:"collectionInterval,omitempty"` // - CollectionStatus string `json:"collectionStatus,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorDescription string `json:"errorDescription,omitempty"` // - Family string `json:"family,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceCount string `json:"interfaceCount,omitempty"` // - InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - LineCardCount string `json:"lineCardCount,omitempty"` // - LineCardID string `json:"lineCardId,omitempty"` // - Location string `json:"location,omitempty"` // - LocationName string `json:"locationName,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // - MemorySize string `json:"memorySize,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - Series string `json:"series,omitempty"` // - SNMPContact string `json:"snmpContact,omitempty"` // - SNMPLocation string `json:"snmpLocation,omitempty"` // - SoftwareType string `json:"softwareType,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - TagCount string `json:"tagCount,omitempty"` // - TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // - Type string `json:"type,omitempty"` // - UpTime string `json:"upTime,omitempty"` // - WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // + ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // IP address of WLC on AP manager interface + AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated Wlc Ip address of the AP device + BootDateTime string `json:"bootDateTime,omitempty"` // Device boot time + CollectionInterval string `json:"collectionInterval,omitempty"` // Re sync Interval of the device + CollectionStatus string `json:"collectionStatus,omitempty"` // Collection status as Synchronizing, Could not synchronize, Not manageable, Managed, Partial Collection Failure, Incomplete, Unreachable, Wrong credential, Reachable, In Progress + ErrorCode string `json:"errorCode,omitempty"` // Inventory status error code + ErrorDescription string `json:"errorDescription,omitempty"` // Inventory status description + Family string `json:"family,omitempty"` // Family of device as switch, router, wireless lan controller, accesspoints + Hostname string `json:"hostname,omitempty"` // Device name + ID string `json:"id,omitempty"` // Instance Uuid of the device + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the device + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the device + InterfaceCount string `json:"interfaceCount,omitempty"` // Number of interfaces on the device + InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Status detail of inventory sync + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Time in epoch when the network device info last got updated + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the network device info last got updated + LineCardCount string `json:"lineCardCount,omitempty"` // Number of linecards on the device + LineCardID string `json:"lineCardId,omitempty"` // IDs of linecards of the device + Location string `json:"location,omitempty"` // [Deprecated] Location ID that is associated with the device + LocationName string `json:"locationName,omitempty"` // [Deprecated] Name of the associated location + MacAddress string `json:"macAddress,omitempty"` // MAC address of device + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // IP address of the device + MemorySize string `json:"memorySize,omitempty"` // Processor memory size + PlatformID string `json:"platformId,omitempty"` // Platform ID of device + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Failure reason for unreachable devices + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Device reachability status as Reachable / Unreachable + Role string `json:"role,omitempty"` // Role of device as access, distribution, border router, core + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of device + Series string `json:"series,omitempty"` // Device series + SNMPContact string `json:"snmpContact,omitempty"` // SNMP contact on device + SNMPLocation string `json:"snmpLocation,omitempty"` // SNMP location on device + SoftwareType string `json:"softwareType,omitempty"` // Software type on the device + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software version on the device + TagCount string `json:"tagCount,omitempty"` // Number of tags associated with the device + TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // Mobility protocol port is stored as tunneludpport for WLC + Type string `json:"type,omitempty"` // Type of device as switch, router, wireless lan controller, accesspoints + UpTime string `json:"upTime,omitempty"` // Time that shows for how long the device has been up + WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // WAAS device mode + DNSResolvedManagementAddress string `json:"dnsResolvedManagementAddress,omitempty"` // Specifies the resolved ip address of dns name + ApEthernetMacAddress string `json:"apEthernetMacAddress,omitempty"` // AccessPoint Ethernet MacAddress of AP device + Vendor string `json:"vendor,omitempty"` // Vendor details + ReasonsForPendingSyncRequests string `json:"reasonsForPendingSyncRequests,omitempty"` // Reasons for pending sync requests , if any + PendingSyncRequestsCount string `json:"pendingSyncRequestsCount,omitempty"` // Count of pending sync requests , if any + ReasonsForDeviceResync string `json:"reasonsForDeviceResync,omitempty"` // Reason for last/ongoing sync + LastDeviceResyncStartTime string `json:"lastDeviceResyncStartTime,omitempty"` // Start time for last/ongoing sync + UptimeSeconds *float64 `json:"uptimeSeconds,omitempty"` // Uptime in Seconds + ManagedAtleastOnce *bool `json:"managedAtleastOnce,omitempty"` // Indicates if device went into Managed state atleast once + DeviceSupportLevel string `json:"deviceSupportLevel,omitempty"` // Support level of the device + ManagementState string `json:"managementState,omitempty"` // Represents the current management state of the network element: managed, unmanaged, under maintenance, and so on. + Description string `json:"description,omitempty"` // System description } type ResponseDevicesSyncDevices struct { Response *ResponseDevicesSyncDevicesResponse `json:"response,omitempty"` // @@ -1246,20 +2801,20 @@ type ResponseDevicesGetDevicesRegisteredForWsaNotification struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetDevicesRegisteredForWsaNotificationResponse struct { - MacAddress string `json:"macAddress,omitempty"` // - ModelNumber string `json:"modelNumber,omitempty"` // - Name string `json:"name,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - TenantID string `json:"tenantId,omitempty"` // + MacAddress string `json:"macAddress,omitempty"` // MAC address of device + ModelNumber string `json:"modelNumber,omitempty"` // Model number of the device + Name string `json:"name,omitempty"` // Name of the device + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number of the device + TenantID string `json:"tenantId,omitempty"` // Tenant Id of the device } type ResponseDevicesGetAllUserDefinedFields struct { Response *[]ResponseDevicesGetAllUserDefinedFieldsResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version } type ResponseDevicesGetAllUserDefinedFieldsResponse struct { - ID string `json:"id,omitempty"` // Id - Name string `json:"name,omitempty"` // Name - Description string `json:"description,omitempty"` // Description + ID string `json:"id,omitempty"` // DeviceId of the Device + Name string `json:"name,omitempty"` // UDF name + Description string `json:"description,omitempty"` // Description for UDF } type ResponseDevicesCreateUserDefinedField struct { Response *ResponseDevicesCreateUserDefinedFieldResponse `json:"response,omitempty"` // @@ -1383,11 +2938,11 @@ type ResponseDevicesAddUserDefinedFieldToDeviceResponse struct { TaskID string `json:"taskId,omitempty"` // Task Id URL string `json:"url,omitempty"` // Url } -type ResponseDevicesReturnPowerSupplyFanDetailsForTheGivenDevice struct { - Response *[]ResponseDevicesReturnPowerSupplyFanDetailsForTheGivenDeviceResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version +type ResponseDevicesGetTheDetailsOfPhysicalComponentsOfTheGivenDevice struct { + Response *[]ResponseDevicesGetTheDetailsOfPhysicalComponentsOfTheGivenDeviceResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version } -type ResponseDevicesReturnPowerSupplyFanDetailsForTheGivenDeviceResponse struct { +type ResponseDevicesGetTheDetailsOfPhysicalComponentsOfTheGivenDeviceResponse struct { OperationalStateCode string `json:"operationalStateCode,omitempty"` // Operational State Code ProductID string `json:"productId,omitempty"` // Product Id SerialNumber string `json:"serialNumber,omitempty"` // Serial Number @@ -1395,101 +2950,122 @@ type ResponseDevicesReturnPowerSupplyFanDetailsForTheGivenDeviceResponse struct Description string `json:"description,omitempty"` // Description InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid Name string `json:"name,omitempty"` // Name + Manufacturer string `json:"manufacturer,omitempty"` // Manufacturer } type ResponseDevicesReturnsPoeInterfaceDetailsForTheDevice struct { Version string `json:"version,omitempty"` // Version Response *[]ResponseDevicesReturnsPoeInterfaceDetailsForTheDeviceResponse `json:"response,omitempty"` // } type ResponseDevicesReturnsPoeInterfaceDetailsForTheDeviceResponse struct { - AdminStatus string `json:"adminStatus,omitempty"` // Admin Status - OperStatus string `json:"operStatus,omitempty"` // Oper Status - InterfaceName string `json:"interfaceName,omitempty"` // Interface Name - MaxPortPower string `json:"maxPortPower,omitempty"` // Max Port Power - AllocatedPower string `json:"allocatedPower,omitempty"` // Allocated Power - PortPowerDrawn string `json:"portPowerDrawn,omitempty"` // Port Power Drawn + AdminStatus string `json:"adminStatus,omitempty"` // Administration Status. Possible values: AUTO, STATIC, NEVER + OperStatus string `json:"operStatus,omitempty"` // Operational Status. Possible values: ON, OFF, FAULTY, POWER_DENY + InterfaceName string `json:"interfaceName,omitempty"` // Name of the interface + MaxPortPower string `json:"maxPortPower,omitempty"` // Maximum power (in Watts) that port can hold + AllocatedPower string `json:"allocatedPower,omitempty"` // Power (in Watts) allocated for a given interface + PortPowerDrawn string `json:"portPowerDrawn,omitempty"` // Power (in Watts) that the port has drawn so far } type ResponseDevicesGetConnectedDeviceDetail struct { Response *ResponseDevicesGetConnectedDeviceDetailResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version } type ResponseDevicesGetConnectedDeviceDetailResponse struct { - NeighborDevice string `json:"neighborDevice,omitempty"` // Neighbor Device - NeighborPort string `json:"neighborPort,omitempty"` // Neighbor Port - Capabilities []string `json:"capabilities,omitempty"` // Capabilities + NeighborDevice string `json:"neighborDevice,omitempty"` // Info about the devices connected to the interface + NeighborPort string `json:"neighborPort,omitempty"` // Info about the connected interface + Capabilities []string `json:"capabilities,omitempty"` // Info about capabilities of the connected device } type ResponseDevicesGetLinecardDetails struct { Response *[]ResponseDevicesGetLinecardDetailsResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version } type ResponseDevicesGetLinecardDetailsResponse struct { - Serialno string `json:"serialno,omitempty"` // Serialno - Partno string `json:"partno,omitempty"` // Partno - Switchno string `json:"switchno,omitempty"` // Switchno - Slotno string `json:"slotno,omitempty"` // Slotno + Serialno string `json:"serialno,omitempty"` // Serial number of the line card + Partno string `json:"partno,omitempty"` // Part number of the line card + Switchno string `json:"switchno,omitempty"` // Switch number of the line card + Slotno string `json:"slotno,omitempty"` // Slot number of line card } type ResponseDevicesPoeDetails struct { Response *ResponseDevicesPoeDetailsResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version } type ResponseDevicesPoeDetailsResponse struct { - PowerAllocated string `json:"powerAllocated,omitempty"` // Power Allocated - PowerConsumed string `json:"powerConsumed,omitempty"` // Power Consumed - PowerRemaining string `json:"powerRemaining,omitempty"` // Power Remaining + PowerAllocated string `json:"powerAllocated,omitempty"` // Total power available on the switch on all interfaces combined in Watts + PowerConsumed string `json:"powerConsumed,omitempty"` // Total power being currently drawn by all interfaces combined in Watts + PowerRemaining string `json:"powerRemaining,omitempty"` // Total power remaining in Watts (powerConsumed - powerAllocated) } type ResponseDevicesGetSupervisorCardDetail struct { Response *[]ResponseDevicesGetSupervisorCardDetailResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version } type ResponseDevicesGetSupervisorCardDetailResponse struct { - Serialno string `json:"serialno,omitempty"` // Serialno - Partno string `json:"partno,omitempty"` // Partno - Switchno string `json:"switchno,omitempty"` // Switchno - Slotno string `json:"slotno,omitempty"` // Slotno + Serialno string `json:"serialno,omitempty"` // Serial number of the supervisor card + Partno string `json:"partno,omitempty"` // Part number of the supervisor card + Switchno string `json:"switchno,omitempty"` // Switch number of the supervisor card + Slotno string `json:"slotno,omitempty"` // Slot number of supervisor card +} +type ResponseDevicesUpdateDeviceManagementAddress struct { + Response *ResponseDevicesUpdateDeviceManagementAddressResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesUpdateDeviceManagementAddressResponse struct { + TaskID string `json:"taskId,omitempty"` // Task Id + URL string `json:"url,omitempty"` // Url } type ResponseDevicesGetDeviceByID struct { Response *ResponseDevicesGetDeviceByIDResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetDeviceByIDResponse struct { - ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // - AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // - BootDateTime string `json:"bootDateTime,omitempty"` // - CollectionInterval string `json:"collectionInterval,omitempty"` // - CollectionStatus string `json:"collectionStatus,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorDescription string `json:"errorDescription,omitempty"` // - Family string `json:"family,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceCount string `json:"interfaceCount,omitempty"` // - InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - LineCardCount string `json:"lineCardCount,omitempty"` // - LineCardID string `json:"lineCardId,omitempty"` // - Location string `json:"location,omitempty"` // - LocationName string `json:"locationName,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // - MemorySize string `json:"memorySize,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - Series string `json:"series,omitempty"` // - SNMPContact string `json:"snmpContact,omitempty"` // - SNMPLocation string `json:"snmpLocation,omitempty"` // - SoftwareType string `json:"softwareType,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - TagCount string `json:"tagCount,omitempty"` // - TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // - Type string `json:"type,omitempty"` // - UpTime string `json:"upTime,omitempty"` // - WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // + ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // IP address of WLC on AP manager interface + AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated Wlc Ip address of the AP device + BootDateTime string `json:"bootDateTime,omitempty"` // Device boot time + CollectionInterval string `json:"collectionInterval,omitempty"` // Re sync Interval of the device + CollectionStatus string `json:"collectionStatus,omitempty"` // Collection status as Synchronizing, Could not synchronize, Not manageable, Managed, Partial Collection Failure, Incomplete, Unreachable, Wrong credential, Reachable, In Progress + ErrorCode string `json:"errorCode,omitempty"` // Inventory status error code + ErrorDescription string `json:"errorDescription,omitempty"` // Inventory status description + Family string `json:"family,omitempty"` // Family of device as switch, router, wireless lan controller, accesspoints + Hostname string `json:"hostname,omitempty"` // Device name + ID string `json:"id,omitempty"` // Instance Uuid of the device + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the device + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the device + InterfaceCount string `json:"interfaceCount,omitempty"` // Number of interfaces on the device + InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Status detail of inventory sync + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Time in epoch when the network device info last got updated + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the network device info last got updated + LineCardCount string `json:"lineCardCount,omitempty"` // Number of linecards on the device + LineCardID string `json:"lineCardId,omitempty"` // IDs of linecards of the device + Location string `json:"location,omitempty"` // [Deprecated] Location ID that is associated with the device + LocationName string `json:"locationName,omitempty"` // [Deprecated] Name of the associated location + MacAddress string `json:"macAddress,omitempty"` // MAC address of device + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // IP address of the device + MemorySize string `json:"memorySize,omitempty"` // Processor memory size + PlatformID string `json:"platformId,omitempty"` // Platform ID of device + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Failure reason for unreachable devices + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Device reachability status as Reachable / Unreachable + Role string `json:"role,omitempty"` // Role of device as access, distribution, border router, core + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of device + Series string `json:"series,omitempty"` // Device series + SNMPContact string `json:"snmpContact,omitempty"` // SNMP contact on device + SNMPLocation string `json:"snmpLocation,omitempty"` // SNMP location on device + SoftwareType string `json:"softwareType,omitempty"` // Software type on the device + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software version on the device + TagCount string `json:"tagCount,omitempty"` // Number of tags associated with the device + TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // Mobility protocol port is stored as tunneludpport for WLC + Type string `json:"type,omitempty"` // Type of device as switch, router, wireless lan controller, accesspoints + UpTime string `json:"upTime,omitempty"` // Time that shows for how long the device has been up + WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // WAAS device mode + DNSResolvedManagementAddress string `json:"dnsResolvedManagementAddress,omitempty"` // Specifies the resolved ip address of dns name + ApEthernetMacAddress string `json:"apEthernetMacAddress,omitempty"` // AccessPoint Ethernet MacAddress of AP device + Vendor string `json:"vendor,omitempty"` // Vendor details + ReasonsForPendingSyncRequests string `json:"reasonsForPendingSyncRequests,omitempty"` // Reasons for pending sync requests , if any + PendingSyncRequestsCount string `json:"pendingSyncRequestsCount,omitempty"` // Count of pending sync requests , if any + ReasonsForDeviceResync string `json:"reasonsForDeviceResync,omitempty"` // Reason for last/ongoing sync + LastDeviceResyncStartTime string `json:"lastDeviceResyncStartTime,omitempty"` // Start time for last/ongoing sync + UptimeSeconds *float64 `json:"uptimeSeconds,omitempty"` // Uptime in Seconds + ManagedAtleastOnce *bool `json:"managedAtleastOnce,omitempty"` // Indicates if device went into Managed state atleast once + DeviceSupportLevel string `json:"deviceSupportLevel,omitempty"` // Support level of the device + ManagementState string `json:"managementState,omitempty"` // Represents the current management state of the network element: managed, unmanaged, under maintenance, and so on. + Description string `json:"description,omitempty"` // System description } type ResponseDevicesDeleteDeviceByID struct { Response *ResponseDevicesDeleteDeviceByIDResponse `json:"response,omitempty"` // @@ -1504,9 +3080,9 @@ type ResponseDevicesGetDeviceSummary struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetDeviceSummaryResponse struct { - ID string `json:"id,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // + ID string `json:"id,omitempty"` // Unique identifier of the network device + Role string `json:"role,omitempty"` // Role of device as access, distribution, border router, core + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto } type ResponseDevicesGetPollingIntervalByID struct { Response *int `json:"response,omitempty"` // @@ -1521,173 +3097,773 @@ type ResponseDevicesGetDeviceInterfaceVLANs struct { Version string `json:"version,omitempty"` // } type ResponseDevicesGetDeviceInterfaceVLANsResponse struct { - InterfaceName string `json:"interfaceName,omitempty"` // - IPAddress string `json:"ipAddress,omitempty"` // - Mask *int `json:"mask,omitempty"` // - NetworkAddress string `json:"networkAddress,omitempty"` // - NumberOfIPs *int `json:"numberOfIPs,omitempty"` // - Prefix string `json:"prefix,omitempty"` // - VLANNumber *int `json:"vlanNumber,omitempty"` // - VLANType string `json:"vlanType,omitempty"` // + InterfaceName string `json:"interfaceName,omitempty"` // Interface name + IPAddress string `json:"ipAddress,omitempty"` // IP address + Mask *int `json:"mask,omitempty"` // Mask IP + NetworkAddress string `json:"networkAddress,omitempty"` // Network addresses + NumberOfIPs *int `json:"numberOfIPs,omitempty"` // Number of Ip addresses + Prefix string `json:"prefix,omitempty"` // Prefix associated with the IP address + VLANNumber *int `json:"vlanNumber,omitempty"` // Vlan Number + VLANType string `json:"vlanType,omitempty"` // [Deprecated] Description of the interface VLAN } type ResponseDevicesGetWirelessLanControllerDetailsByID struct { - Response *ResponseDevicesGetWirelessLanControllerDetailsByIDResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // -} -type ResponseDevicesGetWirelessLanControllerDetailsByIDResponse struct { - AdminEnabledPorts *[]int `json:"adminEnabledPorts,omitempty"` // - ApGroupName string `json:"apGroupName,omitempty"` // - DeviceID string `json:"deviceId,omitempty"` // - EthMacAddress string `json:"ethMacAddress,omitempty"` // - FlexGroupName string `json:"flexGroupName,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - LagModeEnabled *bool `json:"lagModeEnabled,omitempty"` // - NetconfEnabled *bool `json:"netconfEnabled,omitempty"` // - WirelessLicenseInfo string `json:"wirelessLicenseInfo,omitempty"` // - WirelessPackageInstalled *bool `json:"wirelessPackageInstalled,omitempty"` // + AdminEnabledPorts *[]int `json:"adminEnabledPorts,omitempty"` // Admin Enabled Ports of the Device + ApGroupName string `json:"apGroupName,omitempty"` // Name of the AP Group that Access point assigned + DeviceID string `json:"deviceId,omitempty"` // Device Id + EthMacAddress string `json:"ethMacAddress,omitempty"` // Ethernet MacAddress of the Device + FlexGroupName string `json:"flexGroupName,omitempty"` // Name of the Flex Group that Access point assigned + ID string `json:"id,omitempty"` // Id of the Device + InstanceTenantID string `json:"instanceTenantId,omitempty"` // TenantId of the Device + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance UUID of the Device + LagModeEnabled *bool `json:"lagModeEnabled,omitempty"` // LagMode status of the Device + NetconfEnabled *bool `json:"netconfEnabled,omitempty"` // Netconf Status of the Device + WirelessLicenseInfo string `json:"wirelessLicenseInfo,omitempty"` // License type of Wireless Device + WirelessPackageInstalled *bool `json:"wirelessPackageInstalled,omitempty"` // Status of the Wireless Package on the Device } type ResponseDevicesGetDeviceConfigByID struct { - Response interface{} `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // + Response string `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // } type ResponseDevicesGetNetworkDeviceByPaginationRange struct { Response *[]ResponseDevicesGetNetworkDeviceByPaginationRangeResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDevicesGetNetworkDeviceByPaginationRangeResponse struct { - ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // - AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // - BootDateTime string `json:"bootDateTime,omitempty"` // - CollectionInterval string `json:"collectionInterval,omitempty"` // - CollectionStatus string `json:"collectionStatus,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorDescription string `json:"errorDescription,omitempty"` // - Family string `json:"family,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - InterfaceCount string `json:"interfaceCount,omitempty"` // - InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - LineCardCount string `json:"lineCardCount,omitempty"` // - LineCardID string `json:"lineCardId,omitempty"` // - Location string `json:"location,omitempty"` // - LocationName string `json:"locationName,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // - MemorySize string `json:"memorySize,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - Series string `json:"series,omitempty"` // - SNMPContact string `json:"snmpContact,omitempty"` // - SNMPLocation string `json:"snmpLocation,omitempty"` // - SoftwareType string `json:"softwareType,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - TagCount string `json:"tagCount,omitempty"` // - TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // - Type string `json:"type,omitempty"` // - UpTime string `json:"upTime,omitempty"` // - WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // + ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // IP address of WLC on AP manager interface + AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated Wlc Ip address of the AP device + BootDateTime string `json:"bootDateTime,omitempty"` // Device boot time + CollectionInterval string `json:"collectionInterval,omitempty"` // Re sync Interval of the device + CollectionStatus string `json:"collectionStatus,omitempty"` // Collection status as Synchronizing, Could not synchronize, Not manageable, Managed, Partial Collection Failure, Incomplete, Unreachable, Wrong credential, Reachable, In Progress + ErrorCode string `json:"errorCode,omitempty"` // Inventory status error code + ErrorDescription string `json:"errorDescription,omitempty"` // Inventory status description + Family string `json:"family,omitempty"` // Family of device as switch, router, wireless lan controller, accesspoints + Hostname string `json:"hostname,omitempty"` // Device name + ID string `json:"id,omitempty"` // Instance Uuid of the device + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the device + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the device + InterfaceCount string `json:"interfaceCount,omitempty"` // Number of interfaces on the device + InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Status detail of inventory sync + LastUpdateTime *float64 `json:"lastUpdateTime,omitempty"` // Time in epoch when the network device info last got updated + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the network device info last got updated + LineCardCount string `json:"lineCardCount,omitempty"` // Number of linecards on the device + LineCardID string `json:"lineCardId,omitempty"` // IDs of linecards of the device + Location string `json:"location,omitempty"` // [Deprecated] Location ID that is associated with the device + LocationName string `json:"locationName,omitempty"` // [Deprecated] Name of the associated location + MacAddress string `json:"macAddress,omitempty"` // MAC address of device + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // IP address of the device + MemorySize string `json:"memorySize,omitempty"` // Processor memory size + PlatformID string `json:"platformId,omitempty"` // Platform ID of device + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Failure reason for unreachable devices + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Device reachability status as Reachable / Unreachable + Role string `json:"role,omitempty"` // Role of device as access, distribution, border router, core + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of device + Series string `json:"series,omitempty"` // Device series + SNMPContact string `json:"snmpContact,omitempty"` // SNMP contact on device + SNMPLocation string `json:"snmpLocation,omitempty"` // SNMP location on device + SoftwareType string `json:"softwareType,omitempty"` // Software type on the device + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software version on the device + TagCount string `json:"tagCount,omitempty"` // Number of tags associated with the device + TunnelUDPPort string `json:"tunnelUdpPort,omitempty"` // Mobility protocol port is stored as tunneludpport for WLC + Type string `json:"type,omitempty"` // Type of device as switch, router, wireless lan controller, accesspoints + UpTime string `json:"upTime,omitempty"` // Time that shows for how long the device has been up + WaasDeviceMode string `json:"waasDeviceMode,omitempty"` // WAAS device mode + DNSResolvedManagementAddress string `json:"dnsResolvedManagementAddress,omitempty"` // Specifies the resolved ip address of dns name + ApEthernetMacAddress string `json:"apEthernetMacAddress,omitempty"` // AccessPoint Ethernet MacAddress of AP device + Vendor string `json:"vendor,omitempty"` // Vendor details + ReasonsForPendingSyncRequests string `json:"reasonsForPendingSyncRequests,omitempty"` // Reasons for pending sync requests , if any + PendingSyncRequestsCount string `json:"pendingSyncRequestsCount,omitempty"` // Count of pending sync requests , if any + ReasonsForDeviceResync string `json:"reasonsForDeviceResync,omitempty"` // Reason for last/ongoing sync + LastDeviceResyncStartTime string `json:"lastDeviceResyncStartTime,omitempty"` // Start time for last/ongoing sync + UptimeSeconds *float64 `json:"uptimeSeconds,omitempty"` // Uptime in Seconds + ManagedAtleastOnce *bool `json:"managedAtleastOnce,omitempty"` // Indicates if device went into Managed state atleast once + DeviceSupportLevel string `json:"deviceSupportLevel,omitempty"` // Support level of the device + ManagementState string `json:"managementState,omitempty"` // Represents the current management state of the network element: managed, unmanaged, under maintenance, and so on. + Description string `json:"description,omitempty"` // System description +} +type ResponseDevicesUpdateGlobalResyncInterval struct { + Response *ResponseDevicesUpdateGlobalResyncIntervalResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the response +} +type ResponseDevicesUpdateGlobalResyncIntervalResponse struct { + TaskID string `json:"taskId,omitempty"` // Unique identifier for the task + URL string `json:"url,omitempty"` // URL for the task +} +type ResponseDevicesOverrideResyncInterval struct { + Response *ResponseDevicesOverrideResyncIntervalResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the response +} +type ResponseDevicesOverrideResyncIntervalResponse struct { + TaskID string `json:"taskId,omitempty"` // Unique identifier for the task + URL string `json:"url,omitempty"` // URL for the task +} +type ResponseDevicesUpdateResyncIntervalForTheNetworkDevice struct { + Response *ResponseDevicesUpdateResyncIntervalForTheNetworkDeviceResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the response +} +type ResponseDevicesUpdateResyncIntervalForTheNetworkDeviceResponse struct { + TaskID string `json:"taskId,omitempty"` // Unique identifier for the task + URL string `json:"url,omitempty"` // URL for the task +} +type ResponseDevicesGetResyncIntervalForTheNetworkDevice struct { + Response *ResponseDevicesGetResyncIntervalForTheNetworkDeviceResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetResyncIntervalForTheNetworkDeviceResponse struct { + Interval *int `json:"interval,omitempty"` // Resync interval of the device +} +type ResponseDevicesRogueAdditionalDetails struct { + Response *[]ResponseDevicesRogueAdditionalDetailsResponse `json:"response,omitempty"` // + TotalCount *int `json:"totalCount,omitempty"` // Total Count + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesRogueAdditionalDetailsResponse struct { + MacAddress string `json:"macAddress,omitempty"` // MAC Address of the Rogue BSSID + MldMacAddress string `json:"mldMacAddress,omitempty"` // MLD MAC Address of the Rogue BSSID, this is applicable only for Wi-Fi 7 Rogues + UpdatedTime *int `json:"updatedTime,omitempty"` // Last time when the Rogue is seen in the network + CreatedTime *int `json:"createdTime,omitempty"` // First time when the Rogue is seen in the network + ThreatType string `json:"threatType,omitempty"` // Type of the Rogue Threat + ThreatLevel string `json:"threatLevel,omitempty"` // Level of the Rogue Threat + ApName string `json:"apName,omitempty"` // Detecting AP Name + DetectingApMac string `json:"detectingAPMac,omitempty"` // MAC Address of the Detecting AP + SSID string `json:"ssid,omitempty"` // Rogue SSID + Containment string `json:"containment,omitempty"` // Containment Status of the Rogue + RadioType string `json:"radioType,omitempty"` // Radio Type on which Rogue is detected + ControllerIP string `json:"controllerIp,omitempty"` // IP Address of the Controller detecting this Rogue + ControllerName string `json:"controllerName,omitempty"` // Name of the Controller detecting this Rogue + ChannelNumber string `json:"channelNumber,omitempty"` // Channel Number on which the Rogue is detected + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Site Hierarchy of the Rogue + Encryption string `json:"encryption,omitempty"` // Security status of the Rogue SSID + SwitchIP string `json:"switchIp,omitempty"` // IP Address of the Switch on which the Rogue is connected. This will be filled only in case of Rogue on Wire Threat Type + SwitchName string `json:"switchName,omitempty"` // Name of the Switch on which the Rogue is connected. This will be filled only in case of Rogue on Wire Threat Type + PortDescription string `json:"portDescription,omitempty"` // Port information of the Switch on which the Rogue is connected. This will be filled only in case of Rogue on Wire Threat Type +} +type ResponseDevicesRogueAdditionalDetailCount struct { + Response *int `json:"response,omitempty"` // Response + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesStartWirelessRogueApContainment struct { + Response *ResponseDevicesStartWirelessRogueApContainmentResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesStartWirelessRogueApContainmentResponse struct { + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Type *int `json:"type,omitempty"` // Type + InitiatedOnWlcIP string `json:"initiatedOnWlcIp,omitempty"` // Initiated On Wlc Ip + TaskID string `json:"taskId,omitempty"` // Task Id + TaskType string `json:"taskType,omitempty"` // Task Type + InitiatedOnBssid []string `json:"initiatedOnBssid,omitempty"` // Initiated On Bssid +} +type ResponseDevicesWirelessRogueApContainmentStatus struct { + Response *[]ResponseDevicesWirelessRogueApContainmentStatusResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesWirelessRogueApContainmentStatusResponse struct { + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Type *int `json:"type,omitempty"` // Type + Classification string `json:"classification,omitempty"` // Classification + ContainmentStatus string `json:"containmentStatus,omitempty"` // Containment Status + ContainedByWlcIP []string `json:"containedByWlcIp,omitempty"` // Contained By Wlc Ip + LastSeen *int `json:"lastSeen,omitempty"` // Last Seen + StrongestDetectingWlcIP string `json:"strongestDetectingWlcIp,omitempty"` // Strongest Detecting Wlc Ip + LastTaskDetail *ResponseDevicesWirelessRogueApContainmentStatusResponseLastTaskDetail `json:"lastTaskDetail,omitempty"` // + BssidContainmentStatus *[]ResponseDevicesWirelessRogueApContainmentStatusResponseBssidContainmentStatus `json:"bssidContainmentStatus,omitempty"` // +} +type ResponseDevicesWirelessRogueApContainmentStatusResponseLastTaskDetail struct { + TaskID string `json:"taskId,omitempty"` // Task Id + TaskType string `json:"taskType,omitempty"` // Task Type + TaskState string `json:"taskState,omitempty"` // Task State + TaskStartTime *int `json:"taskStartTime,omitempty"` // Task Start Time + InitiatedOnWlcIP string `json:"initiatedOnWlcIp,omitempty"` // Initiated On Wlc Ip + InitiatedOnBssid []string `json:"initiatedOnBssid,omitempty"` // Initiated On Bssid +} +type ResponseDevicesWirelessRogueApContainmentStatusResponseBssidContainmentStatus struct { + Bssid string `json:"bssid,omitempty"` // Bssid + SSID string `json:"ssid,omitempty"` // Ssid + RadioType string `json:"radioType,omitempty"` // Radio Type + ContainmentStatus string `json:"containmentStatus,omitempty"` // Containment Status + ContainedByWlcIP string `json:"containedByWlcIp,omitempty"` // Contained By Wlc Ip + IsAdhoc *bool `json:"isAdhoc,omitempty"` // Is Adhoc +} +type ResponseDevicesStopWirelessRogueApContainment struct { + Response *ResponseDevicesStopWirelessRogueApContainmentResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesStopWirelessRogueApContainmentResponse struct { + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Type *int `json:"type,omitempty"` // Type + InitiatedOnWlcIP string `json:"initiatedOnWlcIp,omitempty"` // Initiated On Wlc Ip + TaskID string `json:"taskId,omitempty"` // Task Id + TaskType string `json:"taskType,omitempty"` // Task Type + InitiatedOnBssid []string `json:"initiatedOnBssid,omitempty"` // Initiated On Bssid +} +type ResponseDevicesThreatDetails struct { + Response *[]ResponseDevicesThreatDetailsResponse `json:"response,omitempty"` // + TotalCount *int `json:"totalCount,omitempty"` // Total Count + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesThreatDetailsResponse struct { + MacAddress string `json:"macAddress,omitempty"` // Mac Address + UpdatedTime *int `json:"updatedTime,omitempty"` // Updated Time + Vendor string `json:"vendor,omitempty"` // Vendor + ThreatType string `json:"threatType,omitempty"` // Threat Type + ThreatLevel string `json:"threatLevel,omitempty"` // Threat Level + ApName string `json:"apName,omitempty"` // Ap Name + DetectingApMac string `json:"detectingAPMac,omitempty"` // Detecting A P Mac + SiteID string `json:"siteId,omitempty"` // Site Id + Rssi string `json:"rssi,omitempty"` // Rssi + SSID string `json:"ssid,omitempty"` // Ssid + Containment string `json:"containment,omitempty"` // Containment + State string `json:"state,omitempty"` // State + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Site Name Hierarchy +} +type ResponseDevicesThreatDetailCount struct { + Response *int `json:"response,omitempty"` // Response + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetThreatLevels struct { + Response *[]ResponseDevicesGetThreatLevelsResponse `json:"response,omitempty"` // +} +type ResponseDevicesGetThreatLevelsResponse struct { + Name string `json:"name,omitempty"` // Name + Value *int `json:"value,omitempty"` // Value +} +type ResponseDevicesAddAllowedMacAddress struct { + Response string `json:"response,omitempty"` // Response + Error *ResponseDevicesAddAllowedMacAddressError `json:"error,omitempty"` // Error +} +type ResponseDevicesAddAllowedMacAddressError interface{} +type ResponseDevicesGetAllowedMacAddress []ResponseItemDevicesGetAllowedMacAddress // Array of ResponseDevicesGetAllowedMacAddress +type ResponseItemDevicesGetAllowedMacAddress struct { + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Category *int `json:"category,omitempty"` // Category + LastModified *int `json:"lastModified,omitempty"` // Last Modified +} +type ResponseDevicesGetAllowedMacAddressCount struct { + Response *int `json:"response,omitempty"` // Response + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesRemoveAllowedMacAddress struct { + Response string `json:"response,omitempty"` // Response + Error *ResponseDevicesRemoveAllowedMacAddressError `json:"error,omitempty"` // Error +} +type ResponseDevicesRemoveAllowedMacAddressError interface{} +type ResponseDevicesThreatSummary struct { + Response *[]ResponseDevicesThreatSummaryResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesThreatSummaryResponse struct { + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + ThreatData *[]ResponseDevicesThreatSummaryResponseThreatData `json:"threatData,omitempty"` // +} +type ResponseDevicesThreatSummaryResponseThreatData struct { + ThreatType string `json:"threatType,omitempty"` // Threat Type + ThreatLevel string `json:"threatLevel,omitempty"` // Threat Level + ThreatCount *int `json:"threatCount,omitempty"` // Threat Count +} +type ResponseDevicesGetThreatTypes struct { + Response *[]ResponseDevicesGetThreatTypesResponse `json:"response,omitempty"` // +} +type ResponseDevicesGetThreatTypesResponse struct { + Value *int `json:"value,omitempty"` // Value + Name string `json:"name,omitempty"` // Name + Label string `json:"label,omitempty"` // Label + IsCustom *bool `json:"isCustom,omitempty"` // Is Custom + IsDeleted *bool `json:"isDeleted,omitempty"` // Is Deleted +} +type ResponseDevicesGetDeviceInterfaceStatsInfoV2 struct { + Version string `json:"version,omitempty"` // Version + TotalCount *float64 `json:"totalCount,omitempty"` // The total count + Response *[]ResponseDevicesGetDeviceInterfaceStatsInfoV2Response `json:"response,omitempty"` // + Page *ResponseDevicesGetDeviceInterfaceStatsInfoV2Page `json:"page,omitempty"` // +} +type ResponseDevicesGetDeviceInterfaceStatsInfoV2Response struct { + ID string `json:"id,omitempty"` // Interface Instance Id + Values *ResponseDevicesGetDeviceInterfaceStatsInfoV2ResponseValues `json:"values,omitempty"` // +} +type ResponseDevicesGetDeviceInterfaceStatsInfoV2ResponseValues struct { + AdminStatus string `json:"adminStatus,omitempty"` // The desired state of the interface + DeviceID string `json:"deviceId,omitempty"` // Device Id + DuplexConfig string `json:"duplexConfig,omitempty"` // Interface duplex config status + DuplexOper string `json:"duplexOper,omitempty"` // Interface duplex operational status + InterfaceID string `json:"interfaceId,omitempty"` // Interface ifIndex + InterfaceType string `json:"interfaceType,omitempty"` // Physical or Virtual type + InstanceID string `json:"instanceId,omitempty"` // Interface InstanceId + IPv4Address string `json:"ipv4Address,omitempty"` // Interface IPV4 Address + IPv6AddressList []string `json:"ipv6AddressList,omitempty"` // List of interface IPV6 Address + IsL3Interface string `json:"isL3Interface,omitempty"` // Interface is L3 or not + IsWan string `json:"isWan,omitempty"` // nterface is WAN link or not + MacAddr string `json:"macAddr,omitempty"` // Interface MAC Address + MediaType string `json:"mediaType,omitempty"` // Interface media type + Name string `json:"name,omitempty"` // Name of the interface + OperStatus string `json:"operStatus,omitempty"` // Interface operational status + PeerStackMember string `json:"peerStackMember,omitempty"` // Interface peer stack member Id + PeerStackPort string `json:"peerStackPort,omitempty"` // Interface peer stack member port + PortChannelID string `json:"portChannelId,omitempty"` // Interface Port-Channel Id + PortMode string `json:"portMode,omitempty"` // Interface Port Mode + PortType string `json:"portType,omitempty"` // Interface ifType + Description string `json:"description,omitempty"` // Interface description + RxDiscards string `json:"rxDiscards,omitempty"` // Rx Discards in % + RxError string `json:"rxError,omitempty"` // Rx Errors in % + RxRate string `json:"rxRate,omitempty"` // Rx rate in bps + RxUtilization string `json:"rxUtilization,omitempty"` // Rx Utilization in % + Speed string `json:"speed,omitempty"` // Speed of the Interface in kbps + StackPortType string `json:"stackPortType,omitempty"` // Interface stack port type. SVL or DAD + Timestamp string `json:"timestamp,omitempty"` // Interface stats collected timestamp + TxDiscards string `json:"txDiscards,omitempty"` // Tx Discards in % + TxError string `json:"txError,omitempty"` // Tx Errors in % + TxRate string `json:"txRate,omitempty"` // Tx Rate in bps + TxUtilization string `json:"txUtilization,omitempty"` // Tx Utilization in % + VLANID string `json:"vlanId,omitempty"` // Interface VLAN Id +} +type ResponseDevicesGetDeviceInterfaceStatsInfoV2Page struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *float64 `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count +} +type ResponseDevicesGetTheCountOfHealthScoreDefinitionsBasedOnProvidedFilters struct { + Response *ResponseDevicesGetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseDevicesGetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Views []string `json:"views,omitempty"` // Views + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage `json:"page,omitempty"` // +} +type RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + SortBy *[]RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPageSortBy `json:"sortBy,omitempty"` // +} +type RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestDevicesQueryAssuranceEventsWithFilters struct { + DeviceFamily []string `json:"deviceFamily,omitempty"` // Device Family + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Attributes []string `json:"attributes,omitempty"` // Attributes + Views []string `json:"views,omitempty"` // Views + Filters *[]RequestDevicesQueryAssuranceEventsWithFiltersFilters `json:"filters,omitempty"` // + Page *RequestDevicesQueryAssuranceEventsWithFiltersPage `json:"page,omitempty"` // +} +type RequestDevicesQueryAssuranceEventsWithFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestDevicesQueryAssuranceEventsWithFiltersPage struct { + Offset *int `json:"offset,omitempty"` // Offset + Limit *int `json:"limit,omitempty"` // Limit + SortBy *[]RequestDevicesQueryAssuranceEventsWithFiltersPageSortBy `json:"sortBy,omitempty"` // +} +type RequestDevicesQueryAssuranceEventsWithFiltersPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestDevicesCountTheNumberOfEventsWithFilters struct { + DeviceFamily []string `json:"deviceFamily,omitempty"` // Device Family + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Filters *[]RequestDevicesCountTheNumberOfEventsWithFiltersFilters `json:"filters,omitempty"` // +} +type RequestDevicesCountTheNumberOfEventsWithFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Views []string `json:"views,omitempty"` // Views + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage `json:"page,omitempty"` // +} +type RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + LogicalOperator string `json:"logicalOperator,omitempty"` // Logical Operator + Value *RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFiltersValue `json:"value,omitempty"` // Value + Filters *[]RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFiltersFilters `json:"filters,omitempty"` // +} +type RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFiltersValue interface{} +type RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + LogicalOperator string `json:"logicalOperator,omitempty"` // Logical Operator + Value *RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFiltersFiltersValue `json:"value,omitempty"` // Value + Filters []string `json:"filters,omitempty"` // Filters +} +type RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFiltersFiltersValue interface{} +type RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + SortBy *[]RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPageSortBy `json:"sortBy,omitempty"` // +} +type RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevices struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Views []string `json:"views,omitempty"` // Views + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesPage `json:"page,omitempty"` // +} +type RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + LogicalOperator string `json:"logicalOperator,omitempty"` // Logical Operator + Value *RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesFiltersValue `json:"value,omitempty"` // Value + Filters []string `json:"filters,omitempty"` // Filters +} +type RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesFiltersValue interface{} +type RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + SortBy *[]RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesPageSortBy `json:"sortBy,omitempty"` // +} +type RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevicesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Views []string `json:"views,omitempty"` // Views + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage `json:"page,omitempty"` // +} +type RequestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctionsPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy string `json:"sortBy,omitempty"` // Sort By +} +type RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + GroupBy []string `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesPage `json:"page,omitempty"` // +} +type RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + SortBy *[]RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesPageSortBy `json:"sortBy,omitempty"` // +} +type RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevicesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestDevicesGetsTheTrendAnalyticsData struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + TrendInterval string `json:"trendInterval,omitempty"` // Trend Interval + GroupBy *[]RequestDevicesGetsTheTrendAnalyticsDataGroupBy `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + Filters *[]RequestDevicesGetsTheTrendAnalyticsDataFilters `json:"filters,omitempty"` // + AggregateAttributes *[]RequestDevicesGetsTheTrendAnalyticsDataAggregateAttributes `json:"aggregateAttributes,omitempty"` // Aggregate Attributes + Page *RequestDevicesGetsTheTrendAnalyticsDataPage `json:"page,omitempty"` // +} +type RequestDevicesGetsTheTrendAnalyticsDataGroupBy interface{} +type RequestDevicesGetsTheTrendAnalyticsDataFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestDevicesGetsTheTrendAnalyticsDataAggregateAttributes interface{} +type RequestDevicesGetsTheTrendAnalyticsDataPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + TimestampOrder string `json:"timestampOrder,omitempty"` // Timestamp Order +} +type RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + TrendIntervalInMinutes *int `json:"trendIntervalInMinutes,omitempty"` // Trend Interval In Minutes + GroupBy []string `json:"groupBy,omitempty"` // Group By + Filters *[]RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeFilters `json:"filters,omitempty"` // + Attributes []string `json:"attributes,omitempty"` // Attributes + AggregateAttributes *[]RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangePage `json:"page,omitempty"` // +} +type RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + LogicalOperator string `json:"logicalOperator,omitempty"` // Logical Operator + Value *RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeFiltersValue `json:"value,omitempty"` // Value + Filters []string `json:"filters,omitempty"` // Filters +} +type RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeFiltersValue interface{} +type RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangeAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRangePage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + TimestampOrder string `json:"timestampOrder,omitempty"` // Timestamp Order +} +type RequestDevicesUpdatePlannedAccessPointForFloor struct { + Attributes *RequestDevicesUpdatePlannedAccessPointForFloorAttributes `json:"attributes,omitempty"` // + IsSensor *bool `json:"isSensor,omitempty"` // Indicates that PAP is a sensor + Location *RequestDevicesUpdatePlannedAccessPointForFloorLocation `json:"location,omitempty"` // + Position *RequestDevicesUpdatePlannedAccessPointForFloorPosition `json:"position,omitempty"` // + RadioCount *int `json:"radioCount,omitempty"` // Number of radios of the planned access point + Radios *[]RequestDevicesUpdatePlannedAccessPointForFloorRadios `json:"radios,omitempty"` // +} +type RequestDevicesUpdatePlannedAccessPointForFloorAttributes struct { + CreateDate *float64 `json:"createDate,omitempty"` // Created date of the planned access point + Domain string `json:"domain,omitempty"` // Service domain to which the planned access point belongs + HeirarchyName string `json:"heirarchyName,omitempty"` // Hierarchy name of the planned access point + ID *float64 `json:"id,omitempty"` // Unique id of the planned access point + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance uuid of the planned access point + MacAddress string `json:"macAddress,omitempty"` // MAC address of the planned access point + Name string `json:"name,omitempty"` // Display name of the planned access point + Source string `json:"source,omitempty"` // Source of the data used to create the planned access point + TypeString string `json:"typeString,omitempty"` // Type string representation of the planned access point +} +type RequestDevicesUpdatePlannedAccessPointForFloorLocation struct { + Altitude *float64 `json:"altitude,omitempty"` // Altitude of the planned access point's location + Lattitude *float64 `json:"lattitude,omitempty"` // Latitude of the planned access point's location + Longtitude *float64 `json:"longtitude,omitempty"` // Longitude of the planned access point's location +} +type RequestDevicesUpdatePlannedAccessPointForFloorPosition struct { + X *float64 `json:"x,omitempty"` // x-coordinate of the planned access point on the map, 0,0 point being the top-left corner + Y *float64 `json:"y,omitempty"` // y-coordinate of the planned access point on the map, 0,0 point being the top-left corner + Z *float64 `json:"z,omitempty"` // z-coordinate, or height, of the planned access point on the map +} +type RequestDevicesUpdatePlannedAccessPointForFloorRadios struct { + Antenna *RequestDevicesUpdatePlannedAccessPointForFloorRadiosAntenna `json:"antenna,omitempty"` // + Attributes *RequestDevicesUpdatePlannedAccessPointForFloorRadiosAttributes `json:"attributes,omitempty"` // + IsSensor *bool `json:"isSensor,omitempty"` // Determines if it is sensor or not +} +type RequestDevicesUpdatePlannedAccessPointForFloorRadiosAntenna struct { + AzimuthAngle *float64 `json:"azimuthAngle,omitempty"` // Azimuth angle of the antenna + ElevationAngle *float64 `json:"elevationAngle,omitempty"` // Elevation angle of the antenna + Gain *float64 `json:"gain,omitempty"` // Gain of the antenna + Mode string `json:"mode,omitempty"` // Mode of the antenna associated with this radio + Name string `json:"name,omitempty"` // Name of the antenna + Type string `json:"type,omitempty"` // Type of the antenna associated with this radio +} +type RequestDevicesUpdatePlannedAccessPointForFloorRadiosAttributes struct { + Channel *float64 `json:"channel,omitempty"` // Channel in which this radio operates + ChannelString string `json:"channelString,omitempty"` // Channel string representation + ID *int `json:"id,omitempty"` // Id of the radio + IfMode string `json:"ifMode,omitempty"` // IF mode of the radio + IfTypeString string `json:"ifTypeString,omitempty"` // String representation of native band + IfTypeSubband string `json:"ifTypeSubband,omitempty"` // Sub band of the radio + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the radio + SlotID *float64 `json:"slotId,omitempty"` // Slot number in which the radio resides in the parent access point + TxPowerLevel *float64 `json:"txPowerLevel,omitempty"` // Tx Power at which this radio operates (in dBm) +} +type RequestDevicesCreatePlannedAccessPointForFloor struct { + Attributes *RequestDevicesCreatePlannedAccessPointForFloorAttributes `json:"attributes,omitempty"` // + IsSensor *bool `json:"isSensor,omitempty"` // Indicates that PAP is a sensor + Location *RequestDevicesCreatePlannedAccessPointForFloorLocation `json:"location,omitempty"` // + Position *RequestDevicesCreatePlannedAccessPointForFloorPosition `json:"position,omitempty"` // + RadioCount *int `json:"radioCount,omitempty"` // Number of radios of the planned access point + Radios *[]RequestDevicesCreatePlannedAccessPointForFloorRadios `json:"radios,omitempty"` // +} +type RequestDevicesCreatePlannedAccessPointForFloorAttributes struct { + CreateDate *float64 `json:"createDate,omitempty"` // Created date of the planned access point + Domain string `json:"domain,omitempty"` // Service domain to which the planned access point belongs + HeirarchyName string `json:"heirarchyName,omitempty"` // Hierarchy name of the planned access point + ID *float64 `json:"id,omitempty"` // Unique id of the planned access point + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance uuid of the planned access point + MacAddress string `json:"macAddress,omitempty"` // MAC address of the planned access point + Name string `json:"name,omitempty"` // Display name of the planned access point + Source string `json:"source,omitempty"` // Source of the data used to create the planned access point + TypeString string `json:"typeString,omitempty"` // Type string representation of the planned access point +} +type RequestDevicesCreatePlannedAccessPointForFloorLocation struct { + Altitude *float64 `json:"altitude,omitempty"` // Altitude of the planned access point's location + Lattitude *float64 `json:"lattitude,omitempty"` // Latitude of the planned access point's location + Longtitude *float64 `json:"longtitude,omitempty"` // Longitude of the planned access point's location +} +type RequestDevicesCreatePlannedAccessPointForFloorPosition struct { + X *float64 `json:"x,omitempty"` // x-coordinate of the planned access point on the map, 0,0 point being the top-left corner + Y *float64 `json:"y,omitempty"` // y-coordinate of the planned access point on the map, 0,0 point being the top-left corner + Z *float64 `json:"z,omitempty"` // z-coordinate, or height, of the planned access point on the map +} +type RequestDevicesCreatePlannedAccessPointForFloorRadios struct { + Antenna *RequestDevicesCreatePlannedAccessPointForFloorRadiosAntenna `json:"antenna,omitempty"` // + Attributes *RequestDevicesCreatePlannedAccessPointForFloorRadiosAttributes `json:"attributes,omitempty"` // + IsSensor *bool `json:"isSensor,omitempty"` // Determines if it is sensor or not +} +type RequestDevicesCreatePlannedAccessPointForFloorRadiosAntenna struct { + AzimuthAngle *float64 `json:"azimuthAngle,omitempty"` // Azimuth angle of the antenna + ElevationAngle *float64 `json:"elevationAngle,omitempty"` // Elevation angle of the antenna + Gain *float64 `json:"gain,omitempty"` // Gain of the antenna + Mode string `json:"mode,omitempty"` // Mode of the antenna associated with this radio + Name string `json:"name,omitempty"` // Name of the antenna + Type string `json:"type,omitempty"` // Type of the antenna associated with this radio +} +type RequestDevicesCreatePlannedAccessPointForFloorRadiosAttributes struct { + Channel *float64 `json:"channel,omitempty"` // Channel in which this radio operates + ChannelString string `json:"channelString,omitempty"` // Channel string representation + ID *int `json:"id,omitempty"` // Id of the radio + IfMode string `json:"ifMode,omitempty"` // IF mode of the radio + IfTypeString string `json:"ifTypeString,omitempty"` // String representation of native band + IfTypeSubband string `json:"ifTypeSubband,omitempty"` // Sub band of the radio + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the radio + SlotID *float64 `json:"slotId,omitempty"` // Slot number in which the radio resides in the parent access point + TxPowerLevel *float64 `json:"txPowerLevel,omitempty"` // Tx Power at which this radio operates (in dBm) +} +type RequestDevicesUpdateHealthScoreDefinitions []RequestItemDevicesUpdateHealthScoreDefinitions // Array of RequestDevicesUpdateHealthScoreDefinitions +type RequestItemDevicesUpdateHealthScoreDefinitions struct { + ID string `json:"id,omitempty"` // Id + IncludeForOverallHealth *bool `json:"includeForOverallHealth,omitempty"` // Include For Overall Health + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value + SynchronizeToIssueThreshold *bool `json:"synchronizeToIssueThreshold,omitempty"` // Synchronize To Issue Threshold +} +type RequestDevicesUpdateHealthScoreDefinitionForTheGivenID struct { + IncludeForOverallHealth *bool `json:"includeForOverallHealth,omitempty"` // Include For Overall Health + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Thresehold Value + SynchronizeToIssueThreshold *bool `json:"synchronizeToIssueThreshold,omitempty"` // Synchronize To Issue Threshold } type RequestDevicesUpdateInterfaceDetails struct { - Description string `json:"description,omitempty"` // Description - AdminStatus string `json:"adminStatus,omitempty"` // Admin Status - VLANID *int `json:"vlanId,omitempty"` // Vlan Id - VoiceVLANID *int `json:"voiceVlanId,omitempty"` // Voice Vlan Id + Description string `json:"description,omitempty"` // Description for the Interface + AdminStatus string `json:"adminStatus,omitempty"` // Admin status as ('UP'/'DOWN') + VLANID *int `json:"vlanId,omitempty"` // VLAN Id to be Updated + VoiceVLANID *int `json:"voiceVlanId,omitempty"` // Voice Vlan Id to be Updated } type RequestDevicesClearMacAddressTable struct { - Operation string `json:"operation,omitempty"` // Operation - Payload *RequestDevicesClearMacAddressTablePayload `json:"payload,omitempty"` // Payload + Operation string `json:"operation,omitempty"` // Operation needs to be specified as 'ClearMacAddress'. + Payload *RequestDevicesClearMacAddressTablePayload `json:"payload,omitempty"` // Payload is not applicable } type RequestDevicesClearMacAddressTablePayload interface{} -type RequestDevicesAddDevice2 struct { - CliTransport string `json:"cliTransport,omitempty"` // - ComputeDevice *bool `json:"computeDevice,omitempty"` // - EnablePassword string `json:"enablePassword,omitempty"` // - ExtendedDiscoveryInfo string `json:"extendedDiscoveryInfo,omitempty"` // - HTTPPassword string `json:"httpPassword,omitempty"` // - HTTPPort string `json:"httpPort,omitempty"` // - HTTPSecure *bool `json:"httpSecure,omitempty"` // - HTTPUserName string `json:"httpUserName,omitempty"` // - IPAddress []string `json:"ipAddress,omitempty"` // - MerakiOrgID []string `json:"merakiOrgId,omitempty"` // - NetconfPort string `json:"netconfPort,omitempty"` // - Password string `json:"password,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // - SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // - SNMPMode string `json:"snmpMode,omitempty"` // - SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // - SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // - SNMPROCommunity string `json:"snmpROCommunity,omitempty"` // - SNMPRWCommunity string `json:"snmpRWCommunity,omitempty"` // - SNMPRetry *int `json:"snmpRetry,omitempty"` // - SNMPTimeout *int `json:"snmpTimeout,omitempty"` // - SNMPUserName string `json:"snmpUserName,omitempty"` // - SNMPVersion string `json:"snmpVersion,omitempty"` // - Type string `json:"type,omitempty"` // - UpdateMgmtIPaddressList *[]RequestDevicesAddDevice2UpdateMgmtIPaddressList `json:"updateMgmtIPaddressList,omitempty"` // - UserName string `json:"userName,omitempty"` // +type RequestDevicesAddDeviceKnowYourNetwork struct { + CliTransport string `json:"cliTransport,omitempty"` // CLI transport. Supported values: telnet, ssh. Required if type is NETWORK_DEVICE. + ComputeDevice *bool `json:"computeDevice,omitempty"` // Compute Device or not. Options are true / false. + EnablePassword string `json:"enablePassword,omitempty"` // CLI enable password of the device. Required if device is configured to use enable password. + ExtendedDiscoveryInfo string `json:"extendedDiscoveryInfo,omitempty"` // This field holds that info as whether to add device with canned data or not. Supported values: DISCOVER_WITH_CANNED_DATA. + HTTPPassword string `json:"httpPassword,omitempty"` // HTTP password of the device / API key for Meraki Dashboard. Required if type is MERAKI_DASHBOARD or COMPUTE_DEVICE. + HTTPPort string `json:"httpPort,omitempty"` // HTTP port of the device. Required if type is COMPUTE_DEVICE. + HTTPSecure *bool `json:"httpSecure,omitempty"` // Flag to select HTTP / HTTPS protocol. Options are true / false. true for HTTPS and false for HTTP. Default is true. + HTTPUserName string `json:"httpUserName,omitempty"` // HTTP Username of the device. Required if type is COMPUTE_DEVICE. + IPAddress []string `json:"ipAddress,omitempty"` // IP Address of the device. Required if type is NETWORK_DEVICE, COMPUTE_DEVICE or THIRD_PARTY_DEVICE. + MerakiOrgID []string `json:"merakiOrgId,omitempty"` // Selected Meraki organization for which the devices needs to be imported. Required if type is MERAKI_DASHBOARD. + NetconfPort string `json:"netconfPort,omitempty"` // Netconf Port of the device. cliTransport must be 'ssh' if netconf is provided. + Password string `json:"password,omitempty"` // CLI Password of the device. Required if type is NETWORK_DEVICE. + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number of the Device. Required if extendedDiscoveryInfo is 'DISCOVER_WITH_CANNED_DATA'. + SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // SNMPv3 auth passphrase of the device. Required if snmpMode is authNoPriv or authPriv. + SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // SNMPv3 auth protocol. Supported values: sha, md5. Required if snmpMode is authNoPriv or authPriv. + SNMPMode string `json:"snmpMode,omitempty"` // SNMPv3 mode. Supported values: noAuthnoPriv, authNoPriv, authPriv. Required if snmpVersion is v3. + SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // SNMPv3 priv passphrase. Required if snmpMode is authPriv. + SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // SNMPv3 priv protocol. Supported values: AES128. Required if snmpMode is authPriv. + SNMPROCommunity string `json:"snmpROCommunity,omitempty"` // SNMP Read Community of the device. If snmpVersion is v2, at least one of snmpROCommunity and snmpRWCommunity is required. + SNMPRWCommunity string `json:"snmpRWCommunity,omitempty"` // SNMP Write Community of the device. If snmpVersion is v2, at least one of snmpROCommunity and snmpRWCommunity is required. + SNMPRetry *int `json:"snmpRetry,omitempty"` // SNMP retry count. Max value supported is 3. Default is Global SNMP retry (if exists) or 3. + SNMPTimeout *int `json:"snmpTimeout,omitempty"` // SNMP timeout in seconds. Max value supported is 300. Default is Global SNMP timeout (if exists) or 5. + SNMPUserName string `json:"snmpUserName,omitempty"` // SNMPV3 user name of the device. Required if snmpVersion is v3. + SNMPVersion string `json:"snmpVersion,omitempty"` // SNMP version. Values supported: v2, v3. Required if type is NETWORK_DEVICE, COMPUTE_DEVICE or THIRD_PARTY_DEVICE. + Type string `json:"type,omitempty"` // Type of device being added. Default is NETWORK_DEVICE. + UserName string `json:"userName,omitempty"` // CLI user name of the device. Required if type is NETWORK_DEVICE. + UpdateMgmtIPaddressList *[]RequestDevicesAddDevice2UpdateMgmtIPaddressList `json:"updateMgmtIPaddressList,omitempty"` } type RequestDevicesAddDevice2UpdateMgmtIPaddressList struct { ExistMgmtIPAddress string `json:"existMgmtIpAddress,omitempty"` // NewMgmtIPAddress string `json:"newMgmtIpAddress,omitempty"` // } -type RequestDevicesSyncDevices2 struct { - CliTransport string `json:"cliTransport,omitempty"` // - ComputeDevice *bool `json:"computeDevice,omitempty"` // - EnablePassword string `json:"enablePassword,omitempty"` // - ExtendedDiscoveryInfo string `json:"extendedDiscoveryInfo,omitempty"` // - HTTPPassword string `json:"httpPassword,omitempty"` // - HTTPPort string `json:"httpPort,omitempty"` // - HTTPSecure *bool `json:"httpSecure,omitempty"` // - HTTPUserName string `json:"httpUserName,omitempty"` // - IPAddress []string `json:"ipAddress,omitempty"` // - MerakiOrgID []string `json:"merakiOrgId,omitempty"` // - NetconfPort string `json:"netconfPort,omitempty"` // - Password string `json:"password,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // - SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // - SNMPMode string `json:"snmpMode,omitempty"` // - SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // - SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // - SNMPROCommunity string `json:"snmpROCommunity,omitempty"` // - SNMPRWCommunity string `json:"snmpRWCommunity,omitempty"` // - SNMPRetry *int `json:"snmpRetry,omitempty"` // - SNMPTimeout *int `json:"snmpTimeout,omitempty"` // - SNMPUserName string `json:"snmpUserName,omitempty"` // - SNMPVersion string `json:"snmpVersion,omitempty"` // - Type string `json:"type,omitempty"` // - UpdateMgmtIPaddressList *[]RequestDevicesSyncDevices2UpdateMgmtIPaddressList `json:"updateMgmtIPaddressList,omitempty"` // - UserName string `json:"userName,omitempty"` // -} -type RequestDevicesSyncDevices2UpdateMgmtIPaddressList struct { - ExistMgmtIPAddress string `json:"existMgmtIpAddress,omitempty"` // - NewMgmtIPAddress string `json:"newMgmtIpAddress,omitempty"` // +type RequestDevicesUpdateDeviceDetails struct { + CliTransport string `json:"cliTransport,omitempty"` // CLI transport. Supported values: telnet, ssh. Use NO!$DATA!$ if no change is required. Required if type is NETWORK_DEVICE. + ComputeDevice *bool `json:"computeDevice,omitempty"` // Compute Device or not. Options are true / false. + EnablePassword string `json:"enablePassword,omitempty"` // CLI enable password of the device. Required if device is configured to use enable password. Use NO!$DATA!$ if no change is required. + ExtendedDiscoveryInfo string `json:"extendedDiscoveryInfo,omitempty"` // This field holds that info as whether to add device with canned data or not. Supported values: DISCOVER_WITH_CANNED_DATA. + HTTPPassword string `json:"httpPassword,omitempty"` // HTTP password of the device / API key for Meraki Dashboard. Required if type is MERAKI_DASHBOARD or COMPUTE_DEVICE. Use NO!$DATA!$ if no change is required. + HTTPPort string `json:"httpPort,omitempty"` // HTTP port of the device. Required if type is COMPUTE_DEVICE. + HTTPSecure *bool `json:"httpSecure,omitempty"` // Flag to select HTTP / HTTPS protocol. Options are true / false. true for HTTPS and false for HTTP. + HTTPUserName string `json:"httpUserName,omitempty"` // HTTP Username of the device. Required if type is COMPUTE_DEVICE. Use NO!$DATA!$ if no change is required. + IPAddress []string `json:"ipAddress,omitempty"` // IP Address of the device. Required. Use 'api.meraki.com' for Meraki Dashboard. + MerakiOrgID []string `json:"merakiOrgId,omitempty"` // Selected Meraki organization for which the devices needs to be imported. Required if type is MERAKI_DASHBOARD. + NetconfPort string `json:"netconfPort,omitempty"` // Netconf Port of the device. cliTransport must be 'ssh' if netconf is provided. + Password string `json:"password,omitempty"` // CLI Password of the device. Required if type is NETWORK_DEVICE. Use NO!$DATA!$ if no change is required. + SerialNumber string `json:"serialNumber,omitempty"` // Serial Number of the Device. Required if extendedDiscoveryInfo is 'DISCOVER_WITH_CANNED_DATA'. + SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // SNMPv3 auth passphrase of the device. Required if snmpMode is authNoPriv or authPriv. Use NO!$DATA!$ if no change is required. + SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // SNMPv3 auth protocol. Supported values: sha, md5. Required if snmpMode is authNoPriv or authPriv. Use NODATACHANGE if no change is required. + SNMPMode string `json:"snmpMode,omitempty"` // SNMPv3 mode. Supported values: noAuthnoPriv, authNoPriv, authPriv. Required if snmpVersion is v3. Use NODATACHANGE if no change is required. + SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // SNMPv3 priv passphrase. Required if snmpMode is authPriv. Use NO!$DATA!$ if no change is required. + SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // SNMPv3 priv protocol. Supported values: AES128. Required if snmpMode is authPriv. Use NODATACHANGE if no change is required. + SNMPROCommunity string `json:"snmpROCommunity,omitempty"` // SNMP Read Community of the device. If snmpVersion is v2, at least one of snmpROCommunity and snmpRWCommunity is required. Use NO!$DATA!$ if no change is required. + SNMPRWCommunity string `json:"snmpRWCommunity,omitempty"` // SNMP Write Community of the device. If snmpVersion is v2, at least one of snmpROCommunity and snmpRWCommunity is required. Use NO!$DATA!$ if no change is required. + SNMPRetry *int `json:"snmpRetry,omitempty"` // SNMP retry count. Max value supported is 3. Default is Global SNMP retry (if exists) or 3. + SNMPTimeout *int `json:"snmpTimeout,omitempty"` // SNMP timeout in seconds. Max value supported is 300. Default is Global SNMP timeout (if exists) or 5. + SNMPUserName string `json:"snmpUserName,omitempty"` // SNMPV3 user name of the device. Required if snmpVersion is v3. Use NO!$DATA!$ if no change is required. + SNMPVersion string `json:"snmpVersion,omitempty"` // SNMP version. Values supported: v2, v3. Required if type is NETWORK_DEVICE, COMPUTE_DEVICE or THIRD_PARTY_DEVICE. Use NODATACHANGE if no change is required. + Type string `json:"type,omitempty"` // Type of device being edited. Default is NETWORK_DEVICE. + UpdateMgmtIPaddressList *[]RequestDevicesUpdateDeviceDetailsUpdateMgmtIPaddressList `json:"updateMgmtIPaddressList,omitempty"` // + UserName string `json:"userName,omitempty"` // CLI user name of the device. Required if type is NETWORK_DEVICE. Use NO!$DATA!$ if no change is required. +} +type RequestDevicesUpdateDeviceDetailsUpdateMgmtIPaddressList struct { + ExistMgmtIPAddress string `json:"existMgmtIpAddress,omitempty"` // existMgmtIpAddress IP Address of the device. + NewMgmtIPAddress string `json:"newMgmtIpAddress,omitempty"` // New IP Address to be Updated. } type RequestDevicesUpdateDeviceRole struct { - ID string `json:"id,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // + ID string `json:"id,omitempty"` // DeviceId of the Device + Role string `json:"role,omitempty"` // Role of device as ACCESS, CORE, DISTRIBUTION, BORDER ROUTER + RoleSource string `json:"roleSource,omitempty"` // Role source as MANUAL / AUTO } type RequestDevicesExportDeviceList struct { - DeviceUUIDs []string `json:"deviceUuids,omitempty"` // - ID string `json:"id,omitempty"` // - OperationEnum string `json:"operationEnum,omitempty"` // - Parameters []string `json:"parameters,omitempty"` // - Password string `json:"password,omitempty"` // -} -type RequestDevicesSyncDevices []RequestItemDevicesSyncDevices // Array of RequestDevicesSyncDevices -type RequestItemDevicesSyncDevices interface{} + DeviceUUIDs []string `json:"deviceUuids,omitempty"` // List of device uuids + OperationEnum string `json:"operationEnum,omitempty"` // 0 to export Device Credential Details Or 1 to export Device Details + Parameters []string `json:"parameters,omitempty"` // List of device parameters that needs to be exported to file + Password string `json:"password,omitempty"` // Password is required when the operationEnum value is 0 +} +type RequestDevicesSyncDevices []string // Array of RequestDevicesSyncDevices type RequestDevicesCreateUserDefinedField struct { Name string `json:"name,omitempty"` // Name of UDF Description string `json:"description,omitempty"` // Description of UDF @@ -1698,30 +3874,131 @@ type RequestDevicesUpdateUserDefinedField struct { } type RequestDevicesAddUserDefinedFieldToDevice []RequestItemDevicesAddUserDefinedFieldToDevice // Array of RequestDevicesAddUserDefinedFieldToDevice type RequestItemDevicesAddUserDefinedFieldToDevice struct { - Name string `json:"name,omitempty"` // Name - Value string `json:"value,omitempty"` // Value -} - -//GetPlannedAccessPointsForBuilding Get Planned Access Points for Building - b699-9b85-4e3b-acdd -/* Provides a list of Planned Access Points for the Building it is requested for + Name string `json:"name,omitempty"` // Name of the User Defined Field + Value string `json:"value,omitempty"` // Value of the User Defined Field that will be assigned to the device +} +type RequestDevicesUpdateDeviceManagementAddress struct { + NewIP string `json:"newIP,omitempty"` // New IP Address of the device to be Updated +} +type RequestDevicesUpdateGlobalResyncInterval struct { + Interval *int `json:"interval,omitempty"` // Resync Interval should be between 25 to 1440 minutes +} +type RequestDevicesUpdateResyncIntervalForTheNetworkDevice struct { + Interval *int `json:"interval,omitempty"` // Resync interval in minutes. To disable periodic resync, set interval as `0`. To use global settings, set interval as `null`. +} +type RequestDevicesRogueAdditionalDetails struct { + Offset *float64 `json:"offset,omitempty"` // The offset of the first item in the collection to return. Default value is 1 + Limit *float64 `json:"limit,omitempty"` // The maximum number of entries to return. Default value is 1000 + StartTime *float64 `json:"startTime,omitempty"` // This is the epoch start time in milliseconds from which data need to be fetched. Default value is 24 hours earlier to endTime + EndTime *float64 `json:"endTime,omitempty"` // This is the epoch end time in milliseconds upto which data need to be fetched. Default value is current time + SiteID []string `json:"siteId,omitempty"` // Filter Rogues by location. Site IDs information can be fetched from "Get Site" API + ThreatLevel []string `json:"threatLevel,omitempty"` // Filter Rogues by Threat Level. Threat Level information can be fetched from "Get Threat Levels" API + ThreatType []string `json:"threatType,omitempty"` // Filter Rogues by Threat Type. Threat Type information can be fetched from "Get Threat Types" API +} +type RequestDevicesRogueAdditionalDetailCount struct { + StartTime *float64 `json:"startTime,omitempty"` // This is the epoch start time in milliseconds from which data need to be fetched. Default value is 24 hours earlier to endTime + EndTime *float64 `json:"endTime,omitempty"` // This is the epoch end time in milliseconds upto which data need to be fetched. Default value is current time + SiteID []string `json:"siteId,omitempty"` // Filter Rogues by location. Site IDs information can be fetched from "Get Site" API + ThreatLevel []string `json:"threatLevel,omitempty"` // This information can be fetched from "Get Threat Levels" API + ThreatType []string `json:"threatType,omitempty"` // This information can be fetched from "Get Threat Types" API +} +type RequestDevicesStartWirelessRogueApContainment struct { + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Type *int `json:"type,omitempty"` // Type +} +type RequestDevicesStopWirelessRogueApContainment struct { + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Type *int `json:"type,omitempty"` // Type + WlcIP string `json:"wlcIp,omitempty"` // Wlc Ip +} +type RequestDevicesThreatDetails struct { + Offset *int `json:"offset,omitempty"` // Offset + Limit *int `json:"limit,omitempty"` // Limit + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + SiteID []string `json:"siteId,omitempty"` // Site Id + ThreatLevel []string `json:"threatLevel,omitempty"` // Threat Level + ThreatType []string `json:"threatType,omitempty"` // Threat Type + IsNewThreat *bool `json:"isNewThreat,omitempty"` // Is New Threat +} +type RequestDevicesThreatDetailCount struct { + Offset *int `json:"offset,omitempty"` // Offset + Limit *int `json:"limit,omitempty"` // Limit + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + SiteID []string `json:"siteId,omitempty"` // Site Id + ThreatLevel []string `json:"threatLevel,omitempty"` // Threat Level + ThreatType []string `json:"threatType,omitempty"` // Threat Type + IsNewThreat *bool `json:"isNewThreat,omitempty"` // Is New Threat +} +type RequestDevicesAddAllowedMacAddress []RequestItemDevicesAddAllowedMacAddress // Array of RequestDevicesAddAllowedMacAddress +type RequestItemDevicesAddAllowedMacAddress struct { + MacAddress string `json:"macAddress,omitempty"` // Mac Address + Category *int `json:"category,omitempty"` // Category +} +type RequestDevicesThreatSummary struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + SiteID []string `json:"siteId,omitempty"` // Site Id + ThreatLevel []string `json:"threatLevel,omitempty"` // Threat Level + ThreatType []string `json:"threatType,omitempty"` // Threat Type +} +type RequestDevicesGetDeviceInterfaceStatsInfoV2 struct { + StartTime *int `json:"startTime,omitempty"` // UTC epoch timestamp in milliseconds + EndTime *int `json:"endTime,omitempty"` // UTC epoch timestamp in milliseconds + Query *RequestDevicesGetDeviceInterfaceStatsInfoV2Query `json:"query,omitempty"` // +} +type RequestDevicesGetDeviceInterfaceStatsInfoV2Query struct { + Fields *[]RequestDevicesGetDeviceInterfaceStatsInfoV2QueryFields `json:"fields,omitempty"` // Required field names, default ALL + Filters *[]RequestDevicesGetDeviceInterfaceStatsInfoV2QueryFilters `json:"filters,omitempty"` // + Page *RequestDevicesGetDeviceInterfaceStatsInfoV2QueryPage `json:"page,omitempty"` // +} +type RequestDevicesGetDeviceInterfaceStatsInfoV2QueryFields interface{} +type RequestDevicesGetDeviceInterfaceStatsInfoV2QueryFilters struct { + Key string `json:"key,omitempty"` // Name of the field that the filter should be applied to + Operator string `json:"operator,omitempty"` // Supported operators are eq,in,like + Value string `json:"value,omitempty"` // Value of the field +} +type RequestDevicesGetDeviceInterfaceStatsInfoV2QueryPage struct { + Limit *int `json:"limit,omitempty"` // Number of records, Max is 1000 + Offset *float64 `json:"offset,omitempty"` // Record offset value, default 0 + OrderBy *[]RequestDevicesGetDeviceInterfaceStatsInfoV2QueryPageOrderBy `json:"orderBy,omitempty"` // +} +type RequestDevicesGetDeviceInterfaceStatsInfoV2QueryPageOrderBy struct { + Name string `json:"name,omitempty"` // Name of the field used to sort + Order string `json:"order,omitempty"` // Possible values asc, des +} + +//QueryAssuranceEvents Query assurance events - 15a5-3b2c-4908-8ba3 +/* Returns the list of events discovered by Catalyst Center, determined by the complex filters. Please refer to the 'API Support Documentation' section to understand which fields are supported. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceEvents-1.0.0-resolved.yaml + + +@param QueryAssuranceEventsHeaderParams Custom header parameters +@param QueryAssuranceEventsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!query-assurance-events-v1 +*/ +func (s *DevicesService) QueryAssuranceEvents(QueryAssuranceEventsHeaderParams *QueryAssuranceEventsHeaderParams, QueryAssuranceEventsQueryParams *QueryAssuranceEventsQueryParams) (*ResponseDevicesQueryAssuranceEvents, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceEvents" + queryString, _ := query.Values(QueryAssuranceEventsQueryParams) -@param buildingID buildingId path parameter. Building Id + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") -@param GetPlannedAccessPointsForBuildingQueryParams Filtering parameter + if QueryAssuranceEventsHeaderParams != nil { -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-planned-access-points-for-building -*/ -func (s *DevicesService) GetPlannedAccessPointsForBuilding(buildingID string, GetPlannedAccessPointsForBuildingQueryParams *GetPlannedAccessPointsForBuildingQueryParams) (*ResponseDevicesGetPlannedAccessPointsForBuilding, *resty.Response, error) { - path := "/dna/intent/api/v1/buildings/{buildingId}/planned-access-points" - path = strings.Replace(path, "{buildingId}", fmt.Sprintf("%v", buildingID), -1) + if QueryAssuranceEventsHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", QueryAssuranceEventsHeaderParams.XCaLLERID) + } - queryString, _ := query.Values(GetPlannedAccessPointsForBuildingQueryParams) + } - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetPlannedAccessPointsForBuilding{}). + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesQueryAssuranceEvents{}). SetError(&Error). Get(path) @@ -1732,33 +4009,46 @@ func (s *DevicesService) GetPlannedAccessPointsForBuilding(buildingID string, Ge if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetPlannedAccessPointsForBuilding(buildingID, GetPlannedAccessPointsForBuildingQueryParams) + return s.QueryAssuranceEvents(QueryAssuranceEventsHeaderParams, QueryAssuranceEventsQueryParams) } - return nil, response, fmt.Errorf("error with operation GetPlannedAccessPointsForBuilding") + return nil, response, fmt.Errorf("error with operation QueryAssuranceEvents") } - result := response.Result().(*ResponseDevicesGetPlannedAccessPointsForBuilding) + result := response.Result().(*ResponseDevicesQueryAssuranceEvents) return result, response, err } -//GetDeviceDetail Get Device Detail - 89b2-fb14-4f5b-b09b -/* Returns detailed Network Device information retrieved by Mac Address, Device Name or UUID for any given point of time. +//CountTheNumberOfEvents Count the number of events - 349f-a9d8-4a6a-b951 +/* API to fetch the count of assurance events that match the filter criteria. Please refer to the 'API Support Documentation' section to understand which fields are supported. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceEvents-1.0.0-resolved.yaml -@param GetDeviceDetailQueryParams Filtering parameter +@param CountTheNumberOfEventsHeaderParams Custom header parameters +@param CountTheNumberOfEventsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-detail +Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-the-number-of-events-v1 */ -func (s *DevicesService) GetDeviceDetail(GetDeviceDetailQueryParams *GetDeviceDetailQueryParams) (*ResponseDevicesGetDeviceDetail, *resty.Response, error) { - path := "/dna/intent/api/v1/device-detail" +func (s *DevicesService) CountTheNumberOfEvents(CountTheNumberOfEventsHeaderParams *CountTheNumberOfEventsHeaderParams, CountTheNumberOfEventsQueryParams *CountTheNumberOfEventsQueryParams) (*ResponseDevicesCountTheNumberOfEvents, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceEvents/count" - queryString, _ := query.Values(GetDeviceDetailQueryParams) + queryString, _ := query.Values(CountTheNumberOfEventsQueryParams) - response, err := s.client.R(). + var response *resty.Response + var err error + clientRequest := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDeviceDetail{}). + SetHeader("Accept", "application/json") + + if CountTheNumberOfEventsHeaderParams != nil { + + if CountTheNumberOfEventsHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", CountTheNumberOfEventsHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesCountTheNumberOfEvents{}). SetError(&Error). Get(path) @@ -1769,26 +4059,32 @@ func (s *DevicesService) GetDeviceDetail(GetDeviceDetailQueryParams *GetDeviceDe if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceDetail(GetDeviceDetailQueryParams) + return s.CountTheNumberOfEvents(CountTheNumberOfEventsHeaderParams, CountTheNumberOfEventsQueryParams) } - return nil, response, fmt.Errorf("error with operation GetDeviceDetail") + return nil, response, fmt.Errorf("error with operation CountTheNumberOfEvents") } - result := response.Result().(*ResponseDevicesGetDeviceDetail) + result := response.Result().(*ResponseDevicesCountTheNumberOfEvents) return result, response, err } -//GetDeviceEnrichmentDetails Get Device Enrichment Details - e0b5-599b-4f29-97b7 -/* Enriches a given network device context (device id or device Mac Address or device management IP address) with details about the device and neighbor topology +//GetDetailsOfASingleAssuranceEvent Get details of a single assurance event - 039e-2909-449a-8f51 +/* API to fetch the details of an assurance event using event `id`. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceEvents-1.0.0-resolved.yaml -@param GetDeviceEnrichmentDetailsHeaderParams Custom header parameters +@param id id path parameter. Unique identifier for the event + +@param GetDetailsOfASingleAssuranceEventHeaderParams Custom header parameters +@param GetDetailsOfASingleAssuranceEventQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-enrichment-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-details-of-a-single-assurance-event-v1 */ -func (s *DevicesService) GetDeviceEnrichmentDetails(GetDeviceEnrichmentDetailsHeaderParams *GetDeviceEnrichmentDetailsHeaderParams) (*ResponseDevicesGetDeviceEnrichmentDetails, *resty.Response, error) { - path := "/dna/intent/api/v1/device-enrichment-details" +func (s *DevicesService) GetDetailsOfASingleAssuranceEvent(id string, GetDetailsOfASingleAssuranceEventHeaderParams *GetDetailsOfASingleAssuranceEventHeaderParams, GetDetailsOfASingleAssuranceEventQueryParams *GetDetailsOfASingleAssuranceEventQueryParams) (*ResponseDevicesGetDetailsOfASingleAssuranceEvent, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceEvents/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(GetDetailsOfASingleAssuranceEventQueryParams) var response *resty.Response var err error @@ -1796,20 +4092,16 @@ func (s *DevicesService) GetDeviceEnrichmentDetails(GetDeviceEnrichmentDetailsHe SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json") - if GetDeviceEnrichmentDetailsHeaderParams != nil { - - if GetDeviceEnrichmentDetailsHeaderParams.EntityType != "" { - clientRequest = clientRequest.SetHeader("entity_type", GetDeviceEnrichmentDetailsHeaderParams.EntityType) - } + if GetDetailsOfASingleAssuranceEventHeaderParams != nil { - if GetDeviceEnrichmentDetailsHeaderParams.EntityValue != "" { - clientRequest = clientRequest.SetHeader("entity_value", GetDeviceEnrichmentDetailsHeaderParams.EntityValue) + if GetDetailsOfASingleAssuranceEventHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetDetailsOfASingleAssuranceEventHeaderParams.XCaLLERID) } } response, err = clientRequest. - SetResult(&ResponseDevicesGetDeviceEnrichmentDetails{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDetailsOfASingleAssuranceEvent{}). SetError(&Error). Get(path) @@ -1820,33 +4112,46 @@ func (s *DevicesService) GetDeviceEnrichmentDetails(GetDeviceEnrichmentDetailsHe if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceEnrichmentDetails(GetDeviceEnrichmentDetailsHeaderParams) + return s.GetDetailsOfASingleAssuranceEvent(id, GetDetailsOfASingleAssuranceEventHeaderParams, GetDetailsOfASingleAssuranceEventQueryParams) } - return nil, response, fmt.Errorf("error with operation GetDeviceEnrichmentDetails") + return nil, response, fmt.Errorf("error with operation GetDetailsOfASingleAssuranceEvent") } - result := response.Result().(*ResponseDevicesGetDeviceEnrichmentDetails) + result := response.Result().(*ResponseDevicesGetDetailsOfASingleAssuranceEvent) return result, response, err } -//Devices Devices - a2b4-79a0-4529-8dca -/* Intent API for accessing DNA Assurance Device object for generating reports, creating dashboards or creating additional value added services. +//GetListOfChildEventsForTheGivenWirelessClientEvent Get list of child events for the given wireless client event - d78f-7acc-4a88-b616 +/* Wireless client event could have child events and this API can be used to fetch the same using parent event `id` as the input. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceEvents-1.0.0-resolved.yaml -@param DevicesQueryParams Filtering parameter +@param id id path parameter. Unique identifier for the event -Documentation Link: https://developer.cisco.com/docs/dna-center/#!devices -*/ -func (s *DevicesService) Devices(DevicesQueryParams *DevicesQueryParams) (*ResponseDevicesDevices, *resty.Response, error) { - path := "/dna/intent/api/v1/device-health" +@param GetListOfChildEventsForTheGivenWirelessClientEventHeaderParams Custom header parameters - queryString, _ := query.Values(DevicesQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-child-events-for-the-given-wireless-client-event-v1 +*/ +func (s *DevicesService) GetListOfChildEventsForTheGivenWirelessClientEvent(id string, GetListOfChildEventsForTheGivenWirelessClientEventHeaderParams *GetListOfChildEventsForTheGivenWirelessClientEventHeaderParams) (*ResponseDevicesGetListOfChildEventsForTheGivenWirelessClientEvent, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceEvents/{id}/childEvents" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - response, err := s.client.R(). + var response *resty.Response + var err error + clientRequest := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesDevices{}). + SetHeader("Accept", "application/json") + + if GetListOfChildEventsForTheGivenWirelessClientEventHeaderParams != nil { + + if GetListOfChildEventsForTheGivenWirelessClientEventHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetListOfChildEventsForTheGivenWirelessClientEventHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetResult(&ResponseDevicesGetListOfChildEventsForTheGivenWirelessClientEvent{}). SetError(&Error). Get(path) @@ -1857,36 +4162,36 @@ func (s *DevicesService) Devices(DevicesQueryParams *DevicesQueryParams) (*Respo if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.Devices(DevicesQueryParams) + return s.GetListOfChildEventsForTheGivenWirelessClientEvent(id, GetListOfChildEventsForTheGivenWirelessClientEventHeaderParams) } - return nil, response, fmt.Errorf("error with operation Devices") + return nil, response, fmt.Errorf("error with operation GetListOfChildEventsForTheGivenWirelessClientEvent") } - result := response.Result().(*ResponseDevicesDevices) + result := response.Result().(*ResponseDevicesGetListOfChildEventsForTheGivenWirelessClientEvent) return result, response, err } -//GetPlannedAccessPointsForFloor Get Planned Access Points for Floor - 6780-6977-4589-9a54 -/* Provides a list of Planned Access Points for the Floor it is requested for +//GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevices Gets interfaces along with statistics data from all network devices. - 9898-9b5a-445b-884f +/* Retrieves the list of the interfaces from all network devices based on the provided query parameters. The latest interfaces data in the specified start and end time range will be returned. When there is no start and end time specified returns the latest available data. +The elements are grouped and sorted by deviceUuid first, and are then sorted by the given sort field, or by the default value: name. + The supported sorting options are: name, adminStatus, description, duplexConfig, duplexOper,interfaceIfIndex,interfaceType, macAddress,mediaType, operStatus,portChannelId, portMode, portType,speed, vlanId. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-interfaces-1.0.2-resolved.yaml -@param floorID floorId path parameter. Floor Id -@param GetPlannedAccessPointsForFloorQueryParams Filtering parameter +@param GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-planned-access-points-for-floor +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-interfaces-along-with-statistics-data-from-all-network-devices-v1 */ -func (s *DevicesService) GetPlannedAccessPointsForFloor(floorID string, GetPlannedAccessPointsForFloorQueryParams *GetPlannedAccessPointsForFloorQueryParams) (*ResponseDevicesGetPlannedAccessPointsForFloor, *resty.Response, error) { - path := "/dna/intent/api/v1/floors/{floorId}/planned-access-points" - path = strings.Replace(path, "{floorId}", fmt.Sprintf("%v", floorID), -1) +func (s *DevicesService) GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevices(GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesQueryParams *GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesQueryParams) (*ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevices, *resty.Response, error) { + path := "/dna/data/api/v1/interfaces" - queryString, _ := query.Values(GetPlannedAccessPointsForFloorQueryParams) + queryString, _ := query.Values(GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetPlannedAccessPointsForFloor{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevices{}). SetError(&Error). Get(path) @@ -1897,33 +4202,33 @@ func (s *DevicesService) GetPlannedAccessPointsForFloor(floorID string, GetPlann if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetPlannedAccessPointsForFloor(floorID, GetPlannedAccessPointsForFloorQueryParams) + return s.GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevices(GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevicesQueryParams) } - return nil, response, fmt.Errorf("error with operation GetPlannedAccessPointsForFloor") + return nil, response, fmt.Errorf("error with operation GetsInterfacesAlongWithStatisticsDataFromAllNetworkDevices") } - result := response.Result().(*ResponseDevicesGetPlannedAccessPointsForFloor) + result := response.Result().(*ResponseDevicesGetsInterfacesAlongWithStatisticsDataFromAllNetworkDevices) return result, response, err } -//GetAllInterfaces Get all interfaces - f594-7a4c-439a-8bf0 -/* Returns all available interfaces. This endpoint can return a maximum of 500 interfaces +//GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCount Gets the total Network device interface counts in the specified time range. When there is no start and end time specified returns the latest interfaces total count. - 40ab-799f-465a-82f4 +/* Gets the total Network device interface counts. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-interfaces-1.0.2-resolved.yaml -@param GetAllInterfacesQueryParams Filtering parameter +@param GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-interfaces +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-total-network-device-interface-counts-in-the-specified-time-range-when-there-is-no-start-and-end-time-specified-returns-the-latest-interfaces-total-count-v1 */ -func (s *DevicesService) GetAllInterfaces(GetAllInterfacesQueryParams *GetAllInterfacesQueryParams) (*ResponseDevicesGetAllInterfaces, *resty.Response, error) { - path := "/dna/intent/api/v1/interface" +func (s *DevicesService) GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCount(GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCountQueryParams *GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCountQueryParams) (*ResponseDevicesGetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCount, *resty.Response, error) { + path := "/dna/data/api/v1/interfaces/count" - queryString, _ := query.Values(GetAllInterfacesQueryParams) + queryString, _ := query.Values(GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCountQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetAllInterfaces{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCount{}). SetError(&Error). Get(path) @@ -1934,30 +4239,36 @@ func (s *DevicesService) GetAllInterfaces(GetAllInterfacesQueryParams *GetAllInt if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetAllInterfaces(GetAllInterfacesQueryParams) + return s.GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCount(GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCountQueryParams) } - return nil, response, fmt.Errorf("error with operation GetAllInterfaces") + return nil, response, fmt.Errorf("error with operation GetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCount") } - result := response.Result().(*ResponseDevicesGetAllInterfaces) + result := response.Result().(*ResponseDevicesGetsTheTotalNetworkDeviceInterfaceCountsInTheSpecifiedTimeRangeWhenThereIsNoStartAndEndTimeSpecifiedReturnsTheLatestInterfacesTotalCount) return result, response, err } -//GetDeviceInterfaceCount Get Device Interface Count - 3d92-3b18-4dc9-a4ca -/* Returns the count of interfaces for all devices +//GetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsData Get the interface data for the given interface id (instance Uuid) along with the statistics data - c08d-d95c-4c7b-8283 +/* Returns the interface data for the given interface instance Uuid along with the statistics data. The latest interface data in the specified start and end time range will be returned. When there is no start and end time specified returns the latest available data for the given interface Id. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-interfaces-1.0.2-resolved.yaml +@param id id path parameter. The interface Uuid -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interface-count +@param GetTheInterfaceDataForTheGivenInterfaceIdinstanceUuidAlongWithTheStatisticsDataQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-interface-data-for-the-given-interface-idinstance-uuid-along-with-the-statistics-data-v1 */ -func (s *DevicesService) GetDeviceInterfaceCount() (*ResponseDevicesGetDeviceInterfaceCount, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/count" +func (s *DevicesService) GetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsData(id string, GetTheInterfaceDataForTheGivenInterfaceIdinstanceUuidAlongWithTheStatisticsDataQueryParams *GetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsDataQueryParams) (*ResponseDevicesGetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsData, *resty.Response, error) { + path := "/dna/data/api/v1/interfaces/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(GetTheInterfaceDataForTheGivenInterfaceIdinstanceUuidAlongWithTheStatisticsDataQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceInterfaceCount{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsData{}). SetError(&Error). Get(path) @@ -1968,33 +4279,33 @@ func (s *DevicesService) GetDeviceInterfaceCount() (*ResponseDevicesGetDeviceInt if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceInterfaceCount() + return s.GetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsData(id, GetTheInterfaceDataForTheGivenInterfaceIdinstanceUuidAlongWithTheStatisticsDataQueryParams) } - return nil, response, fmt.Errorf("error with operation GetDeviceInterfaceCount") + return nil, response, fmt.Errorf("error with operation GetTheInterfaceDataForTheGivenInterfaceIdinstanceUuidAlongWithTheStatisticsData") } - result := response.Result().(*ResponseDevicesGetDeviceInterfaceCount) + result := response.Result().(*ResponseDevicesGetTheInterfaceDataForTheGivenInterfaceIDinstanceUUIDAlongWithTheStatisticsData) return result, response, err } -//GetInterfaceByIP Get Interface by IP - cd84-69e6-47ca-ab0e -/* Returns list of interfaces for specified device management IP address - +//GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParameters Gets the Network Device details based on the provided query parameters. - c8b4-f894-4c3a-932f +/* Gets the Network Device details based on the provided query parameters. When there is no start and end time specified returns the latest device details. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceNetworkDevices-1.0.2-resolved.yaml -@param ipAddress ipAddress path parameter. IP address of the interface +@param GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-by-ip +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-network-device-details-based-on-the-provided-query-parameters-v1 */ -func (s *DevicesService) GetInterfaceByIP(ipAddress string) (*ResponseDevicesGetInterfaceByIP, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/ip-address/{ipAddress}" - path = strings.Replace(path, "{ipAddress}", fmt.Sprintf("%v", ipAddress), -1) +func (s *DevicesService) GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParameters(GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersQueryParams *GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersQueryParams) (*ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParameters, *resty.Response, error) { + path := "/dna/data/api/v1/networkDevices" + + queryString, _ := query.Values(GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetInterfaceByIP{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParameters{}). SetError(&Error). Get(path) @@ -2005,30 +4316,33 @@ func (s *DevicesService) GetInterfaceByIP(ipAddress string) (*ResponseDevicesGet if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetInterfaceByIP(ipAddress) + return s.GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParameters(GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParametersQueryParams) } - return nil, response, fmt.Errorf("error with operation GetInterfaceByIp") + return nil, response, fmt.Errorf("error with operation GetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParameters") } - result := response.Result().(*ResponseDevicesGetInterfaceByIP) + result := response.Result().(*ResponseDevicesGetsTheNetworkDeviceDetailsBasedOnTheProvidedQueryParameters) return result, response, err } -//GetIsisInterfaces Get ISIS interfaces - 84ad-8b0e-42ca-b48a -/* Returns the interfaces that has ISIS enabled +//GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParameters Gets the total Network device counts based on the provided query parameters. - f0a6-e96b-44fb-a549 +/* Gets the total Network device counts. When there is no start and end time specified returns the latest interfaces total count. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceNetworkDevices-1.0.2-resolved.yaml +@param GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParametersQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-isis-interfaces +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-total-network-device-counts-based-on-the-provided-query-parameters-v1 */ -func (s *DevicesService) GetIsisInterfaces() (*ResponseDevicesGetIsisInterfaces, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/isis" +func (s *DevicesService) GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParameters(GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParametersQueryParams *GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParametersQueryParams) (*ResponseDevicesGetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParameters, *resty.Response, error) { + path := "/dna/data/api/v1/networkDevices/count" + + queryString, _ := query.Values(GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParametersQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetIsisInterfaces{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParameters{}). SetError(&Error). Get(path) @@ -2039,33 +4353,36 @@ func (s *DevicesService) GetIsisInterfaces() (*ResponseDevicesGetIsisInterfaces, if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetIsisInterfaces() + return s.GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParameters(GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParametersQueryParams) } - return nil, response, fmt.Errorf("error with operation GetIsisInterfaces") + return nil, response, fmt.Errorf("error with operation GetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParameters") } - result := response.Result().(*ResponseDevicesGetIsisInterfaces) + result := response.Result().(*ResponseDevicesGetsTheTotalNetworkDeviceCountsBasedOnTheProvidedQueryParameters) return result, response, err } -//GetInterfaceInfoByID Get Interface info by Id - ba9d-c85b-4b8a-9a17 -/* Returns list of interfaces by specified device +//GetTheDeviceDataForTheGivenDeviceIDUUID Get the device data for the given device id (Uuid) - 5a93-1957-475b-95b3 +/* Returns the device data for the given device Uuid in the specified start and end time range. When there is no start and end time specified returns the latest available data for the given Id. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceNetworkDevices-1.0.2-resolved.yaml -@param deviceID deviceId path parameter. Device ID +@param id id path parameter. The device Uuid +@param GetTheDeviceDataForTheGivenDeviceIdUuidQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-info-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-device-data-for-the-given-device-id-uuid-v1 */ -func (s *DevicesService) GetInterfaceInfoByID(deviceID string) (*ResponseDevicesGetInterfaceInfoByID, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/network-device/{deviceId}" - path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) +func (s *DevicesService) GetTheDeviceDataForTheGivenDeviceIDUUID(id string, GetTheDeviceDataForTheGivenDeviceIdUuidQueryParams *GetTheDeviceDataForTheGivenDeviceIDUUIDQueryParams) (*ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUID, *resty.Response, error) { + path := "/dna/data/api/v1/networkDevices/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(GetTheDeviceDataForTheGivenDeviceIdUuidQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetInterfaceInfoByID{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUID{}). SetError(&Error). Get(path) @@ -2076,33 +4393,36 @@ func (s *DevicesService) GetInterfaceInfoByID(deviceID string) (*ResponseDevices if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetInterfaceInfoByID(deviceID) + return s.GetTheDeviceDataForTheGivenDeviceIDUUID(id, GetTheDeviceDataForTheGivenDeviceIdUuidQueryParams) } - return nil, response, fmt.Errorf("error with operation GetInterfaceInfoById") + return nil, response, fmt.Errorf("error with operation GetTheDeviceDataForTheGivenDeviceIdUuid") } - result := response.Result().(*ResponseDevicesGetInterfaceInfoByID) + result := response.Result().(*ResponseDevicesGetTheDeviceDataForTheGivenDeviceIDUUID) return result, response, err } -//GetDeviceInterfaceCount2 Get Device Interface count - 5b86-3922-4cd8-8ea7 -/* Returns the interface count for the given device +//GetPlannedAccessPointsForBuilding Get Planned Access Points for Building - b699-9b85-4e3b-acdd +/* Provides a list of Planned Access Points for the Building it is requested for -@param deviceID deviceId path parameter. Device ID +@param buildingID buildingId path parameter. The instance UUID of the building hierarchy element +@param GetPlannedAccessPointsForBuildingQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interface-count2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-planned-access-points-for-building-v1 */ -func (s *DevicesService) GetDeviceInterfaceCount2(deviceID string) (*ResponseDevicesGetDeviceInterfaceCount2, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/network-device/{deviceId}/count" - path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) +func (s *DevicesService) GetPlannedAccessPointsForBuilding(buildingID string, GetPlannedAccessPointsForBuildingQueryParams *GetPlannedAccessPointsForBuildingQueryParams) (*ResponseDevicesGetPlannedAccessPointsForBuilding, *resty.Response, error) { + path := "/dna/intent/api/v1/buildings/{buildingId}/planned-access-points" + path = strings.Replace(path, "{buildingId}", fmt.Sprintf("%v", buildingID), -1) + + queryString, _ := query.Values(GetPlannedAccessPointsForBuildingQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceInterfaceCount2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetPlannedAccessPointsForBuilding{}). SetError(&Error). Get(path) @@ -2113,36 +4433,33 @@ func (s *DevicesService) GetDeviceInterfaceCount2(deviceID string) (*ResponseDev if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceInterfaceCount2(deviceID) + return s.GetPlannedAccessPointsForBuilding(buildingID, GetPlannedAccessPointsForBuildingQueryParams) } - return nil, response, fmt.Errorf("error with operation GetDeviceInterfaceCount2") + return nil, response, fmt.Errorf("error with operation GetPlannedAccessPointsForBuilding") } - result := response.Result().(*ResponseDevicesGetDeviceInterfaceCount2) + result := response.Result().(*ResponseDevicesGetPlannedAccessPointsForBuilding) return result, response, err } -//GetInterfaceDetailsByDeviceIDAndInterfaceName Get Interface details by device Id and interface name - 4eb5-6a61-4cc9-a2d2 -/* Returns interface by specified device Id and interface name - +//GetDeviceDetail Get Device Detail - ca98-fac4-4b08-895c +/* Returns detailed Network Device information retrieved by Mac Address, Device Name or UUID for any given point of time. -@param deviceID deviceId path parameter. Device ID -@param GetInterfaceDetailsByDeviceIdAndInterfaceNameQueryParams Filtering parameter +@param GetDeviceDetailQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-details-by-device-id-and-interface-name +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-detail-v1 */ -func (s *DevicesService) GetInterfaceDetailsByDeviceIDAndInterfaceName(deviceID string, GetInterfaceDetailsByDeviceIdAndInterfaceNameQueryParams *GetInterfaceDetailsByDeviceIDAndInterfaceNameQueryParams) (*ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceName, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/network-device/{deviceId}/interface-name" - path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) +func (s *DevicesService) GetDeviceDetail(GetDeviceDetailQueryParams *GetDeviceDetailQueryParams) (*ResponseDevicesGetDeviceDetail, *resty.Response, error) { + path := "/dna/intent/api/v1/device-detail" - queryString, _ := query.Values(GetInterfaceDetailsByDeviceIdAndInterfaceNameQueryParams) + queryString, _ := query.Values(GetDeviceDetailQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceName{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDeviceDetail{}). SetError(&Error). Get(path) @@ -2153,39 +4470,51 @@ func (s *DevicesService) GetInterfaceDetailsByDeviceIDAndInterfaceName(deviceID if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetInterfaceDetailsByDeviceIDAndInterfaceName(deviceID, GetInterfaceDetailsByDeviceIdAndInterfaceNameQueryParams) + return s.GetDeviceDetail(GetDeviceDetailQueryParams) } - return nil, response, fmt.Errorf("error with operation GetInterfaceDetailsByDeviceIdAndInterfaceName") + return nil, response, fmt.Errorf("error with operation GetDeviceDetail") } - result := response.Result().(*ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceName) + result := response.Result().(*ResponseDevicesGetDeviceDetail) return result, response, err } -//GetDeviceInterfacesBySpecifiedRange Get Device Interfaces by specified range - 349c-8884-43b8-9a58 -/* Returns the list of interfaces for the device for the specified range +//GetDeviceEnrichmentDetails Get Device Enrichment Details - e0b5-599b-4f29-97b7 +/* Enriches a given network device context (device id or device Mac Address or device management IP address) with details about the device and neighbor topology -@param deviceID deviceId path parameter. Device ID +@param GetDeviceEnrichmentDetailsHeaderParams Custom header parameters -@param startIndex startIndex path parameter. Start index +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-enrichment-details-v1 +*/ +func (s *DevicesService) GetDeviceEnrichmentDetails(GetDeviceEnrichmentDetailsHeaderParams *GetDeviceEnrichmentDetailsHeaderParams) (*ResponseDevicesGetDeviceEnrichmentDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/device-enrichment-details" -@param recordsToReturn recordsToReturn path parameter. Number of records to return + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + if GetDeviceEnrichmentDetailsHeaderParams != nil { -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interfaces-by-specified-range -*/ -func (s *DevicesService) GetDeviceInterfacesBySpecifiedRange(deviceID string, startIndex int, recordsToReturn int) (*ResponseDevicesGetDeviceInterfacesBySpecifiedRange, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/network-device/{deviceId}/{startIndex}/{recordsToReturn}" - path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) - path = strings.Replace(path, "{startIndex}", fmt.Sprintf("%v", startIndex), -1) - path = strings.Replace(path, "{recordsToReturn}", fmt.Sprintf("%v", recordsToReturn), -1) + if GetDeviceEnrichmentDetailsHeaderParams.EntityType != "" { + clientRequest = clientRequest.SetHeader("entity_type", GetDeviceEnrichmentDetailsHeaderParams.EntityType) + } - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceInterfacesBySpecifiedRange{}). + if GetDeviceEnrichmentDetailsHeaderParams.EntityValue != "" { + clientRequest = clientRequest.SetHeader("entity_value", GetDeviceEnrichmentDetailsHeaderParams.EntityValue) + } + + if GetDeviceEnrichmentDetailsHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", GetDeviceEnrichmentDetailsHeaderParams.Persistbapioutput) + } + + } + + response, err = clientRequest. + SetResult(&ResponseDevicesGetDeviceEnrichmentDetails{}). SetError(&Error). Get(path) @@ -2196,30 +4525,33 @@ func (s *DevicesService) GetDeviceInterfacesBySpecifiedRange(deviceID string, st if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceInterfacesBySpecifiedRange(deviceID, startIndex, recordsToReturn) + return s.GetDeviceEnrichmentDetails(GetDeviceEnrichmentDetailsHeaderParams) } - return nil, response, fmt.Errorf("error with operation GetDeviceInterfacesBySpecifiedRange") + return nil, response, fmt.Errorf("error with operation GetDeviceEnrichmentDetails") } - result := response.Result().(*ResponseDevicesGetDeviceInterfacesBySpecifiedRange) + result := response.Result().(*ResponseDevicesGetDeviceEnrichmentDetails) return result, response, err } -//GetOspfInterfaces Get OSPF interfaces - 70ad-3976-49e9-b4d3 -/* Returns the interfaces that has OSPF enabled +//Devices Devices - 3ab2-bb64-4cca-81ee +/* Intent API for accessing DNA Assurance Device object for generating reports, creating dashboards or creating additional value added services. +@param DevicesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ospf-interfaces +Documentation Link: https://developer.cisco.com/docs/dna-center/#!devices-v1 */ -func (s *DevicesService) GetOspfInterfaces() (*ResponseDevicesGetOspfInterfaces, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/ospf" +func (s *DevicesService) Devices(DevicesQueryParams *DevicesQueryParams) (*ResponseDevicesDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/device-health" + + queryString, _ := query.Values(DevicesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetOspfInterfaces{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesDevices{}). SetError(&Error). Get(path) @@ -2230,33 +4562,36 @@ func (s *DevicesService) GetOspfInterfaces() (*ResponseDevicesGetOspfInterfaces, if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetOspfInterfaces() + return s.Devices(DevicesQueryParams) } - return nil, response, fmt.Errorf("error with operation GetOspfInterfaces") + return nil, response, fmt.Errorf("error with operation Devices") } - result := response.Result().(*ResponseDevicesGetOspfInterfaces) + result := response.Result().(*ResponseDevicesDevices) return result, response, err } -//GetInterfaceByID Get Interface by Id - b888-792d-43ba-ba46 -/* Returns the interface for the given interface ID +//GetPlannedAccessPointsForFloor Get Planned Access Points for Floor - 6780-6977-4589-9a54 +/* Provides a list of Planned Access Points for the Floor it is requested for -@param id id path parameter. Interface ID +@param floorID floorId path parameter. The instance UUID of the floor hierarchy element +@param GetPlannedAccessPointsForFloorQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-planned-access-points-for-floor-v1 */ -func (s *DevicesService) GetInterfaceByID(id string) (*ResponseDevicesGetInterfaceByID, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/{id}" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) +func (s *DevicesService) GetPlannedAccessPointsForFloor(floorID string, GetPlannedAccessPointsForFloorQueryParams *GetPlannedAccessPointsForFloorQueryParams) (*ResponseDevicesGetPlannedAccessPointsForFloor, *resty.Response, error) { + path := "/dna/intent/api/v1/floors/{floorId}/planned-access-points" + path = strings.Replace(path, "{floorId}", fmt.Sprintf("%v", floorID), -1) + + queryString, _ := query.Values(GetPlannedAccessPointsForFloorQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetInterfaceByID{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetPlannedAccessPointsForFloor{}). SetError(&Error). Get(path) @@ -2267,33 +4602,48 @@ func (s *DevicesService) GetInterfaceByID(id string) (*ResponseDevicesGetInterfa if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetInterfaceByID(id) + return s.GetPlannedAccessPointsForFloor(floorID, GetPlannedAccessPointsForFloorQueryParams) } - return nil, response, fmt.Errorf("error with operation GetInterfaceById") + return nil, response, fmt.Errorf("error with operation GetPlannedAccessPointsForFloor") } - result := response.Result().(*ResponseDevicesGetInterfaceByID) + result := response.Result().(*ResponseDevicesGetPlannedAccessPointsForFloor) return result, response, err } -//LegitOperationsForInterface Legit operations for interface - 87a3-3a52-46ea-a40e -/* Get list of all properties & operations valid for an interface. - +//GetAllHealthScoreDefinitionsForGivenFilters Get all health score definitions for given filters. - 9bb6-ea87-4ffb-b492 +/* Get all health score defintions. +Supported filters are id, name and overall health include status. A health score definition can be different across device type. So, deviceType in the query param is important and default is all device types. +By default all supported attributes are listed in response. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml -@param interfaceUUID interfaceUuid path parameter. Interface ID +@param GetAllHealthScoreDefinitionsForGivenFiltersHeaderParams Custom header parameters +@param GetAllHealthScoreDefinitionsForGivenFiltersQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!legit-operations-for-interface +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-health-score-definitions-for-given-filters-v1 */ -func (s *DevicesService) LegitOperationsForInterface(interfaceUUID string) (*ResponseDevicesLegitOperationsForInterface, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/{interfaceUuid}/legit-operation" - path = strings.Replace(path, "{interfaceUuid}", fmt.Sprintf("%v", interfaceUUID), -1) +func (s *DevicesService) GetAllHealthScoreDefinitionsForGivenFilters(GetAllHealthScoreDefinitionsForGivenFiltersHeaderParams *GetAllHealthScoreDefinitionsForGivenFiltersHeaderParams, GetAllHealthScoreDefinitionsForGivenFiltersQueryParams *GetAllHealthScoreDefinitionsForGivenFiltersQueryParams) (*ResponseDevicesGetAllHealthScoreDefinitionsForGivenFilters, *resty.Response, error) { + path := "/dna/intent/api/v1/healthScoreDefinitions" - response, err := s.client.R(). + queryString, _ := query.Values(GetAllHealthScoreDefinitionsForGivenFiltersQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesLegitOperationsForInterface{}). + SetHeader("Accept", "application/json") + + if GetAllHealthScoreDefinitionsForGivenFiltersHeaderParams != nil { + + if GetAllHealthScoreDefinitionsForGivenFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetAllHealthScoreDefinitionsForGivenFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetAllHealthScoreDefinitionsForGivenFilters{}). SetError(&Error). Get(path) @@ -2304,34 +4654,46 @@ func (s *DevicesService) LegitOperationsForInterface(interfaceUUID string) (*Res if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.LegitOperationsForInterface(interfaceUUID) + return s.GetAllHealthScoreDefinitionsForGivenFilters(GetAllHealthScoreDefinitionsForGivenFiltersHeaderParams, GetAllHealthScoreDefinitionsForGivenFiltersQueryParams) } - return nil, response, fmt.Errorf("error with operation LegitOperationsForInterface") + return nil, response, fmt.Errorf("error with operation GetAllHealthScoreDefinitionsForGivenFilters") } - result := response.Result().(*ResponseDevicesLegitOperationsForInterface) + result := response.Result().(*ResponseDevicesGetAllHealthScoreDefinitionsForGivenFilters) return result, response, err } -//GetDeviceList Get Device list - 20b1-9b52-464b-8972 -/* Returns list of network devices based on filter criteria such as management IP address, mac address, hostname, etc. You can use the .* in any value to conduct a wildcard search. For example, to find all hostnames beginning with myhost in the IP address range 192.25.18.n, issue the following request: GET /dna/intent/api/v1/network-device?hostname=myhost.*&managementIpAddress=192.25.18..* -If id parameter is provided with comma separated ids, it will return the list of network-devices for the given ids and ignores the other request parameters. You can also specify offset & limit to get the required list. +//GetHealthScoreDefinitionForTheGivenID Get health score definition for the given id. - 99b5-d81a-4408-94c3 +/* Get health score defintion for the given id. Definition includes all properties from HealthScoreDefinition schema by default. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml -@param GetDeviceListQueryParams Filtering parameter +@param id id path parameter. Health score definition id. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-list -*/ -func (s *DevicesService) GetDeviceList(GetDeviceListQueryParams *GetDeviceListQueryParams) (*ResponseDevicesGetDeviceList, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device" +@param GetHealthScoreDefinitionForTheGivenIdHeaderParams Custom header parameters - queryString, _ := query.Values(GetDeviceListQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-health-score-definition-for-the-given-id-v1 +*/ +func (s *DevicesService) GetHealthScoreDefinitionForTheGivenID(id string, GetHealthScoreDefinitionForTheGivenIdHeaderParams *GetHealthScoreDefinitionForTheGivenIDHeaderParams) (*ResponseDevicesGetHealthScoreDefinitionForTheGivenID, *resty.Response, error) { + path := "/dna/intent/api/v1/healthScoreDefinitions/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - response, err := s.client.R(). + var response *resty.Response + var err error + clientRequest := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDeviceList{}). + SetHeader("Accept", "application/json") + + if GetHealthScoreDefinitionForTheGivenIdHeaderParams != nil { + + if GetHealthScoreDefinitionForTheGivenIdHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetHealthScoreDefinitionForTheGivenIdHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetResult(&ResponseDevicesGetHealthScoreDefinitionForTheGivenID{}). SetError(&Error). Get(path) @@ -2342,33 +4704,33 @@ func (s *DevicesService) GetDeviceList(GetDeviceListQueryParams *GetDeviceListQu if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceList(GetDeviceListQueryParams) + return s.GetHealthScoreDefinitionForTheGivenID(id, GetHealthScoreDefinitionForTheGivenIdHeaderParams) } - return nil, response, fmt.Errorf("error with operation GetDeviceList") + return nil, response, fmt.Errorf("error with operation GetHealthScoreDefinitionForTheGivenId") } - result := response.Result().(*ResponseDevicesGetDeviceList) + result := response.Result().(*ResponseDevicesGetHealthScoreDefinitionForTheGivenID) return result, response, err } -//GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute Get Device Values that match fully or partially an Attribute - ffa7-48cc-44e9-a437 -/* Returns the list of values of the first given required parameter. You can use the .* in any value to conduct a wildcard search. For example, to get all the devices with the management IP address starting with 10.10. , issue the following request: GET /dna/inten/api/v1/network-device/autocomplete?managementIpAddress=10.10..* It will return the device management IP addresses that match fully or partially the provided attribute. {[10.10.1.1, 10.10.20.2, ā€¦]}. +//GetAllInterfaces Get all interfaces - f594-7a4c-439a-8bf0 +/* Returns all available interfaces. This endpoint can return a maximum of 500 interfaces -@param GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams Filtering parameter +@param GetAllInterfacesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-values-that-match-fully-or-partially-an-attribute +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-interfaces-v1 */ -func (s *DevicesService) GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute(GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams *GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams) (*ResponseDevicesGetDeviceValuesThatMatchFullyOrPartiallyAnAttribute, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/autocomplete" +func (s *DevicesService) GetAllInterfaces(GetAllInterfacesQueryParams *GetAllInterfacesQueryParams) (*ResponseDevicesGetAllInterfaces, *resty.Response, error) { + path := "/dna/intent/api/v1/interface" - queryString, _ := query.Values(GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams) + queryString, _ := query.Values(GetAllInterfacesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDeviceValuesThatMatchFullyOrPartiallyAnAttribute{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetAllInterfaces{}). SetError(&Error). Get(path) @@ -2379,30 +4741,30 @@ func (s *DevicesService) GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute(Get if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute(GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams) + return s.GetAllInterfaces(GetAllInterfacesQueryParams) } - return nil, response, fmt.Errorf("error with operation GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute") + return nil, response, fmt.Errorf("error with operation GetAllInterfaces") } - result := response.Result().(*ResponseDevicesGetDeviceValuesThatMatchFullyOrPartiallyAnAttribute) + result := response.Result().(*ResponseDevicesGetAllInterfaces) return result, response, err } -//GetPollingIntervalForAllDevices Get Polling Interval for all devices - 38bd-0b88-4b89-a785 -/* Returns polling interval of all devices +//GetDeviceInterfaceCountForMultipleDevices Get Device Interface Count for Multiple Devices - 3d92-3b18-4dc9-a4ca +/* Returns the count of interfaces for all devices -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-polling-interval-for-all-devices +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interface-count-for-multiple-devices-v1 */ -func (s *DevicesService) GetPollingIntervalForAllDevices() (*ResponseDevicesGetPollingIntervalForAllDevices, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/collection-schedule/global" +func (s *DevicesService) GetDeviceInterfaceCountForMultipleDevices() (*ResponseDevicesGetDeviceInterfaceCountForMultipleDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/count" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetPollingIntervalForAllDevices{}). + SetResult(&ResponseDevicesGetDeviceInterfaceCountForMultipleDevices{}). SetError(&Error). Get(path) @@ -2413,30 +4775,33 @@ func (s *DevicesService) GetPollingIntervalForAllDevices() (*ResponseDevicesGetP if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetPollingIntervalForAllDevices() + return s.GetDeviceInterfaceCountForMultipleDevices() } - return nil, response, fmt.Errorf("error with operation GetPollingIntervalForAllDevices") + return nil, response, fmt.Errorf("error with operation GetDeviceInterfaceCountForMultipleDevices") } - result := response.Result().(*ResponseDevicesGetPollingIntervalForAllDevices) + result := response.Result().(*ResponseDevicesGetDeviceInterfaceCountForMultipleDevices) return result, response, err } -//GetDeviceConfigForAllDevices Get Device Config for all devices - b7bc-aa08-4e2b-90d0 -/* Returns the config for all devices +//GetInterfaceByIP Get Interface by IP - cd84-69e6-47ca-ab0e +/* Returns list of interfaces for specified device management IP address + +@param ipAddress ipAddress path parameter. IP address of the interface -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-config-for-all-devices +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-by-ip-v1 */ -func (s *DevicesService) GetDeviceConfigForAllDevices() (*ResponseDevicesGetDeviceConfigForAllDevices, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/config" +func (s *DevicesService) GetInterfaceByIP(ipAddress string) (*ResponseDevicesGetInterfaceByIP, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/ip-address/{ipAddress}" + path = strings.Replace(path, "{ipAddress}", fmt.Sprintf("%v", ipAddress), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceConfigForAllDevices{}). + SetResult(&ResponseDevicesGetInterfaceByIP{}). SetError(&Error). Get(path) @@ -2447,30 +4812,30 @@ func (s *DevicesService) GetDeviceConfigForAllDevices() (*ResponseDevicesGetDevi if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceConfigForAllDevices() + return s.GetInterfaceByIP(ipAddress) } - return nil, response, fmt.Errorf("error with operation GetDeviceConfigForAllDevices") + return nil, response, fmt.Errorf("error with operation GetInterfaceByIp") } - result := response.Result().(*ResponseDevicesGetDeviceConfigForAllDevices) + result := response.Result().(*ResponseDevicesGetInterfaceByIP) return result, response, err } -//GetDeviceConfigCount Get Device Config Count - 888f-585c-49b8-8441 -/* Returns the count of device configs +//GetIsisInterfaces Get ISIS interfaces - 84ad-8b0e-42ca-b48a +/* Returns the interfaces that has ISIS enabled -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-config-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-isis-interfaces-v1 */ -func (s *DevicesService) GetDeviceConfigCount() (*ResponseDevicesGetDeviceConfigCount, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/config/count" +func (s *DevicesService) GetIsisInterfaces() (*ResponseDevicesGetIsisInterfaces, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/isis" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceConfigCount{}). + SetResult(&ResponseDevicesGetIsisInterfaces{}). SetError(&Error). Get(path) @@ -2481,30 +4846,33 @@ func (s *DevicesService) GetDeviceConfigCount() (*ResponseDevicesGetDeviceConfig if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceConfigCount() + return s.GetIsisInterfaces() } - return nil, response, fmt.Errorf("error with operation GetDeviceConfigCount") + return nil, response, fmt.Errorf("error with operation GetIsisInterfaces") } - result := response.Result().(*ResponseDevicesGetDeviceConfigCount) + result := response.Result().(*ResponseDevicesGetIsisInterfaces) return result, response, err } -//GetDeviceCount2 Get Device Count - 5db2-1b8e-43fa-b7d8 -/* Returns the count of network devices based on the filter criteria by management IP address, mac address, hostname and location name +//GetInterfaceInfoByID Get Interface info by Id - ba9d-c85b-4b8a-9a17 +/* Returns list of interfaces by specified device + +@param deviceID deviceId path parameter. Device ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-count2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-info-by-id-v1 */ -func (s *DevicesService) GetDeviceCount2() (*ResponseDevicesGetDeviceCount2, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/count" +func (s *DevicesService) GetInterfaceInfoByID(deviceID string) (*ResponseDevicesGetInterfaceInfoByID, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/network-device/{deviceId}" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceCount2{}). + SetResult(&ResponseDevicesGetInterfaceInfoByID{}). SetError(&Error). Get(path) @@ -2515,33 +4883,33 @@ func (s *DevicesService) GetDeviceCount2() (*ResponseDevicesGetDeviceCount2, *re if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceCount2() + return s.GetInterfaceInfoByID(deviceID) } - return nil, response, fmt.Errorf("error with operation GetDeviceCount2") + return nil, response, fmt.Errorf("error with operation GetInterfaceInfoById") } - result := response.Result().(*ResponseDevicesGetDeviceCount2) + result := response.Result().(*ResponseDevicesGetInterfaceInfoByID) return result, response, err } -//GetFunctionalCapabilityForDevices Get Functional Capability for devices - c3b3-c9ef-4e6b-8a09 -/* Returns the functional-capability for given devices +//GetDeviceInterfaceCount Get Device Interface count - 5b86-3922-4cd8-8ea7 +/* Returns the interface count for the given device -@param GetFunctionalCapabilityForDevicesQueryParams Filtering parameter +@param deviceID deviceId path parameter. Device ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-functional-capability-for-devices -*/ -func (s *DevicesService) GetFunctionalCapabilityForDevices(GetFunctionalCapabilityForDevicesQueryParams *GetFunctionalCapabilityForDevicesQueryParams) (*ResponseDevicesGetFunctionalCapabilityForDevices, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/functional-capability" - queryString, _ := query.Values(GetFunctionalCapabilityForDevicesQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interface-count-v1 +*/ +func (s *DevicesService) GetDeviceInterfaceCount(deviceID string) (*ResponseDevicesGetDeviceInterfaceCount, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/network-device/{deviceId}/count" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetFunctionalCapabilityForDevices{}). + SetResult(&ResponseDevicesGetDeviceInterfaceCount{}). SetError(&Error). Get(path) @@ -2552,33 +4920,36 @@ func (s *DevicesService) GetFunctionalCapabilityForDevices(GetFunctionalCapabili if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetFunctionalCapabilityForDevices(GetFunctionalCapabilityForDevicesQueryParams) + return s.GetDeviceInterfaceCount(deviceID) } - return nil, response, fmt.Errorf("error with operation GetFunctionalCapabilityForDevices") + return nil, response, fmt.Errorf("error with operation GetDeviceInterfaceCount") } - result := response.Result().(*ResponseDevicesGetFunctionalCapabilityForDevices) + result := response.Result().(*ResponseDevicesGetDeviceInterfaceCount) return result, response, err } -//GetFunctionalCapabilityByID Get Functional Capability by Id - 81bb-4804-405a-8d2f -/* Returns functional capability with given Id +//GetInterfaceDetailsByDeviceIDAndInterfaceName Get Interface details by device Id and interface name - 4eb5-6a61-4cc9-a2d2 +/* Returns interface by specified device Id and interface name -@param id id path parameter. Functional Capability UUID +@param deviceID deviceId path parameter. Device ID +@param GetInterfaceDetailsByDeviceIdAndInterfaceNameQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-functional-capability-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-details-by-device-id-and-interface-name-v1 */ -func (s *DevicesService) GetFunctionalCapabilityByID(id string) (*ResponseDevicesGetFunctionalCapabilityByID, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/functional-capability/{id}" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) +func (s *DevicesService) GetInterfaceDetailsByDeviceIDAndInterfaceName(deviceID string, GetInterfaceDetailsByDeviceIdAndInterfaceNameQueryParams *GetInterfaceDetailsByDeviceIDAndInterfaceNameQueryParams) (*ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceName, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/network-device/{deviceId}/interface-name" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) + + queryString, _ := query.Values(GetInterfaceDetailsByDeviceIdAndInterfaceNameQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetFunctionalCapabilityByID{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceName{}). SetError(&Error). Get(path) @@ -2589,35 +4960,39 @@ func (s *DevicesService) GetFunctionalCapabilityByID(id string) (*ResponseDevice if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetFunctionalCapabilityByID(id) + return s.GetInterfaceDetailsByDeviceIDAndInterfaceName(deviceID, GetInterfaceDetailsByDeviceIdAndInterfaceNameQueryParams) } - return nil, response, fmt.Errorf("error with operation GetFunctionalCapabilityById") + return nil, response, fmt.Errorf("error with operation GetInterfaceDetailsByDeviceIdAndInterfaceName") } - result := response.Result().(*ResponseDevicesGetFunctionalCapabilityByID) + result := response.Result().(*ResponseDevicesGetInterfaceDetailsByDeviceIDAndInterfaceName) return result, response, err } -//InventoryInsightDeviceLinkMismatchApI Inventory Insight Device Link Mismatch API - 5792-59d8-4208-8190 -/* Find all devices with link mismatch (speed / vlan) +//GetDeviceInterfacesBySpecifiedRange Get Device Interfaces by specified range - 349c-8884-43b8-9a58 +/* Returns the list of interfaces for the device for the specified range -@param siteID siteId path parameter. -@param InventoryInsightDeviceLinkMismatchApIQueryParams Filtering parameter +@param deviceID deviceId path parameter. Device ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!inventory-insight-device-link-mismatch-api -*/ -func (s *DevicesService) InventoryInsightDeviceLinkMismatchApI(siteID string, InventoryInsightDeviceLinkMismatchApIQueryParams *InventoryInsightDeviceLinkMismatchApIQueryParams) (*ResponseDevicesInventoryInsightDeviceLinkMismatchApI, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/insight/{siteId}/device-link" - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) +@param startIndex startIndex path parameter. Start index + +@param recordsToReturn recordsToReturn path parameter. Number of records to return - queryString, _ := query.Values(InventoryInsightDeviceLinkMismatchApIQueryParams) + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interfaces-by-specified-range-v1 +*/ +func (s *DevicesService) GetDeviceInterfacesBySpecifiedRange(deviceID string, startIndex int, recordsToReturn int) (*ResponseDevicesGetDeviceInterfacesBySpecifiedRange, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/network-device/{deviceId}/{startIndex}/{recordsToReturn}" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) + path = strings.Replace(path, "{startIndex}", fmt.Sprintf("%v", startIndex), -1) + path = strings.Replace(path, "{recordsToReturn}", fmt.Sprintf("%v", recordsToReturn), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesInventoryInsightDeviceLinkMismatchApI{}). + SetResult(&ResponseDevicesGetDeviceInterfacesBySpecifiedRange{}). SetError(&Error). Get(path) @@ -2628,35 +5003,67 @@ func (s *DevicesService) InventoryInsightDeviceLinkMismatchApI(siteID string, In if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.InventoryInsightDeviceLinkMismatchApI(siteID, InventoryInsightDeviceLinkMismatchApIQueryParams) + return s.GetDeviceInterfacesBySpecifiedRange(deviceID, startIndex, recordsToReturn) } - return nil, response, fmt.Errorf("error with operation InventoryInsightDeviceLinkMismatchApi") + return nil, response, fmt.Errorf("error with operation GetDeviceInterfacesBySpecifiedRange") } - result := response.Result().(*ResponseDevicesInventoryInsightDeviceLinkMismatchApI) + result := response.Result().(*ResponseDevicesGetDeviceInterfacesBySpecifiedRange) return result, response, err } -//ReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DES Returns devices added to Cisco DNA center with snmp v3 DES. - afba-7a69-4d38-8de1 -/* Returns devices added to Cisco DNA center with snmp v3 DES, where siteId is mandatory & accepts offset, limit, sortby, order which are optional. +//GetOspfInterfaces Get OSPF interfaces - 70ad-3976-49e9-b4d3 +/* Returns the interfaces that has OSPF enabled -@param siteID siteId path parameter. -@param ReturnsDevicesAddedToCiscoDNACenterWithSnmpV3DESQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-devices-added-to-cisco-dna-center-with-snmp-v3-des +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ospf-interfaces-v1 */ -func (s *DevicesService) ReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DES(siteID string, ReturnsDevicesAddedToCiscoDNACenterWithSnmpV3DESQueryParams *ReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DESQueryParams) (*ResponseDevicesReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DES, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/insight/{siteId}/insecure-connection" - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) +func (s *DevicesService) GetOspfInterfaces() (*ResponseDevicesGetOspfInterfaces, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/ospf" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetOspfInterfaces{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetOspfInterfaces() + } + return nil, response, fmt.Errorf("error with operation GetOspfInterfaces") + } + + result := response.Result().(*ResponseDevicesGetOspfInterfaces) + return result, response, err + +} + +//GetInterfaceByID Get Interface by Id - b888-792d-43ba-ba46 +/* Returns the interface for the given interface ID + + +@param id id path parameter. Interface ID - queryString, _ := query.Values(ReturnsDevicesAddedToCiscoDNACenterWithSnmpV3DESQueryParams) + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-by-id-v1 +*/ +func (s *DevicesService) GetInterfaceByID(id string) (*ResponseDevicesGetInterfaceByID, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DES{}). + SetResult(&ResponseDevicesGetInterfaceByID{}). SetError(&Error). Get(path) @@ -2667,33 +5074,33 @@ func (s *DevicesService) ReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DES(siteID if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.ReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DES(siteID, ReturnsDevicesAddedToCiscoDNACenterWithSnmpV3DESQueryParams) + return s.GetInterfaceByID(id) } - return nil, response, fmt.Errorf("error with operation ReturnsDevicesAddedToCiscoDnaCenterWithSnmpV3Des") + return nil, response, fmt.Errorf("error with operation GetInterfaceById") } - result := response.Result().(*ResponseDevicesReturnsDevicesAddedToCiscoDnaCenterWithSNMPV3DES) + result := response.Result().(*ResponseDevicesGetInterfaceByID) return result, response, err } -//GetNetworkDeviceByIP Get Network Device by IP - d0a4-b881-45aa-bb51 -/* Returns the network device by specified IP address +//LegitOperationsForInterface Legit operations for interface - 87a3-3a52-46ea-a40e +/* Get list of all properties & operations valid for an interface. -@param ipAddress ipAddress path parameter. Device IP address +@param interfaceUUID interfaceUuid path parameter. Interface ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-device-by-ip +Documentation Link: https://developer.cisco.com/docs/dna-center/#!legit-operations-for-interface-v1 */ -func (s *DevicesService) GetNetworkDeviceByIP(ipAddress string) (*ResponseDevicesGetNetworkDeviceByIP, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/ip-address/{ipAddress}" - path = strings.Replace(path, "{ipAddress}", fmt.Sprintf("%v", ipAddress), -1) +func (s *DevicesService) LegitOperationsForInterface(interfaceUUID string) (*ResponseDevicesLegitOperationsForInterface, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/{interfaceUuid}/legit-operation" + path = strings.Replace(path, "{interfaceUuid}", fmt.Sprintf("%v", interfaceUUID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetNetworkDeviceByIP{}). + SetResult(&ResponseDevicesLegitOperationsForInterface{}). SetError(&Error). Get(path) @@ -2704,33 +5111,34 @@ func (s *DevicesService) GetNetworkDeviceByIP(ipAddress string) (*ResponseDevice if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetNetworkDeviceByIP(ipAddress) + return s.LegitOperationsForInterface(interfaceUUID) } - return nil, response, fmt.Errorf("error with operation GetNetworkDeviceByIp") + return nil, response, fmt.Errorf("error with operation LegitOperationsForInterface") } - result := response.Result().(*ResponseDevicesGetNetworkDeviceByIP) + result := response.Result().(*ResponseDevicesLegitOperationsForInterface) return result, response, err } -//GetModules Get Modules - eb82-49e3-4f69-b0f1 -/* Returns modules by specified device id +//GetDeviceList Get Device list - 20b1-9b52-464b-8972 +/* Returns list of network devices based on filter criteria such as management IP address, mac address, hostname, etc. You can use the .* in any value to conduct a wildcard search. For example, to find all hostnames beginning with myhost in the IP address range 192.25.18.n, issue the following request: GET /dna/intent/api/v1/network-device?hostname=myhost.*&managementIpAddress=192.25.18..* +If id parameter is provided with comma separated ids, it will return the list of network-devices for the given ids and ignores the other request parameters. You can also specify offset & limit to get the required list. -@param GetModulesQueryParams Filtering parameter +@param GetDeviceListQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-modules +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-list-v1 */ -func (s *DevicesService) GetModules(GetModulesQueryParams *GetModulesQueryParams) (*ResponseDevicesGetModules, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/module" +func (s *DevicesService) GetDeviceList(GetDeviceListQueryParams *GetDeviceListQueryParams) (*ResponseDevicesGetDeviceList, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device" - queryString, _ := query.Values(GetModulesQueryParams) + queryString, _ := query.Values(GetDeviceListQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetModules{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDeviceList{}). SetError(&Error). Get(path) @@ -2741,33 +5149,66 @@ func (s *DevicesService) GetModules(GetModulesQueryParams *GetModulesQueryParams if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetModules(GetModulesQueryParams) + return s.GetDeviceList(GetDeviceListQueryParams) } - return nil, response, fmt.Errorf("error with operation GetModules") + return nil, response, fmt.Errorf("error with operation GetDeviceList") } - result := response.Result().(*ResponseDevicesGetModules) + result := response.Result().(*ResponseDevicesGetDeviceList) return result, response, err } -//GetModuleCount Get Module count - 8db9-3974-4649-a782 -/* Returns Module Count +//GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute Get Device Values that match fully or partially an Attribute - ffa7-48cc-44e9-a437 +/* Returns the list of values of the first given required parameter. You can use the .* in any value to conduct a wildcard search. For example, to get all the devices with the management IP address starting with 10.10. , issue the following request: GET /dna/inten/api/v1/network-device/autocomplete?managementIpAddress=10.10..* It will return the device management IP addresses that match fully or partially the provided attribute. {[10.10.1.1, 10.10.20.2, ā€¦]}. -@param GetModuleCountQueryParams Filtering parameter +@param GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-module-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-values-that-match-fully-or-partially-an-attribute-v1 */ -func (s *DevicesService) GetModuleCount(GetModuleCountQueryParams *GetModuleCountQueryParams) (*ResponseDevicesGetModuleCount, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/module/count" +func (s *DevicesService) GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute(GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams *GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams) (*resty.Response, error) { + path := "/dna/intent/api/v1/network-device/autocomplete" - queryString, _ := query.Values(GetModuleCountQueryParams) + queryString, _ := query.Values(GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetModuleCount{}). + SetQueryString(queryString.Encode()). + SetError(&Error). + Get(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute(GetDeviceValuesThatMatchFullyOrPartiallyAnAttributeQueryParams) + } + return response, fmt.Errorf("error with operation GetDeviceValuesThatMatchFullyOrPartiallyAnAttribute") + } + + return response, err + +} + +//GetPollingIntervalForAllDevices Get Polling Interval for all devices - 38bd-0b88-4b89-a785 +/* Returns polling interval of all devices + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-polling-interval-for-all-devices-v1 +*/ +func (s *DevicesService) GetPollingIntervalForAllDevices() (*ResponseDevicesGetPollingIntervalForAllDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/collection-schedule/global" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetPollingIntervalForAllDevices{}). SetError(&Error). Get(path) @@ -2778,33 +5219,30 @@ func (s *DevicesService) GetModuleCount(GetModuleCountQueryParams *GetModuleCoun if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetModuleCount(GetModuleCountQueryParams) + return s.GetPollingIntervalForAllDevices() } - return nil, response, fmt.Errorf("error with operation GetModuleCount") + return nil, response, fmt.Errorf("error with operation GetPollingIntervalForAllDevices") } - result := response.Result().(*ResponseDevicesGetModuleCount) + result := response.Result().(*ResponseDevicesGetPollingIntervalForAllDevices) return result, response, err } -//GetModuleInfoByID Get Module Info by Id - 0db7-da74-4c0b-83d8 -/* Returns Module info by 'module id' - +//GetDeviceConfigForAllDevices Get Device Config for all devices - b7bc-aa08-4e2b-90d0 +/* Returns the config for all devices. This API has been deprecated and will not be available in a Cisco Catalyst Center release after Nov 1st 2024 23:59:59 GMT. -@param id id path parameter. Module id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-module-info-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-config-for-all-devices-v1 */ -func (s *DevicesService) GetModuleInfoByID(id string) (*ResponseDevicesGetModuleInfoByID, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/module/{id}" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) +func (s *DevicesService) GetDeviceConfigForAllDevices() (*ResponseDevicesGetDeviceConfigForAllDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/config" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetModuleInfoByID{}). + SetResult(&ResponseDevicesGetDeviceConfigForAllDevices{}). SetError(&Error). Get(path) @@ -2815,35 +5253,1519 @@ func (s *DevicesService) GetModuleInfoByID(id string) (*ResponseDevicesGetModule if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetModuleInfoByID(id) + return s.GetDeviceConfigForAllDevices() + } + return nil, response, fmt.Errorf("error with operation GetDeviceConfigForAllDevices") + } + + result := response.Result().(*ResponseDevicesGetDeviceConfigForAllDevices) + return result, response, err + +} + +//GetDeviceConfigCount Get Device Config Count - 888f-585c-49b8-8441 +/* Returns the count of device configs + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-config-count-v1 +*/ +func (s *DevicesService) GetDeviceConfigCount() (*ResponseDevicesGetDeviceConfigCount, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/config/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetDeviceConfigCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceConfigCount() + } + return nil, response, fmt.Errorf("error with operation GetDeviceConfigCount") + } + + result := response.Result().(*ResponseDevicesGetDeviceConfigCount) + return result, response, err + +} + +//GetDeviceCountKnowYourNetwork Get Device Count - 5db2-1b8e-43fa-b7d8 +/* Returns the count of network devices based on the filter criteria by management IP address, mac address, hostname and location name + + +@param GetDeviceCountKnowYourNetworkQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-count-know-your-network-v1 +*/ +func (s *DevicesService) GetDeviceCountKnowYourNetwork(GetDeviceCountKnowYourNetworkQueryParams *GetDeviceCountKnowYourNetworkQueryParams) (*ResponseDevicesGetDeviceCountKnowYourNetwork, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/count" + + queryString, _ := query.Values(GetDeviceCountKnowYourNetworkQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDeviceCountKnowYourNetwork{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceCountKnowYourNetwork(GetDeviceCountKnowYourNetworkQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetDeviceCountKnowYourNetwork") + } + + result := response.Result().(*ResponseDevicesGetDeviceCountKnowYourNetwork) + return result, response, err + +} + +//GetFunctionalCapabilityForDevices Get Functional Capability for devices - c3b3-c9ef-4e6b-8a09 +/* Returns the functional-capability for given devices + + +@param GetFunctionalCapabilityForDevicesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-functional-capability-for-devices-v1 +*/ +func (s *DevicesService) GetFunctionalCapabilityForDevices(GetFunctionalCapabilityForDevicesQueryParams *GetFunctionalCapabilityForDevicesQueryParams) (*ResponseDevicesGetFunctionalCapabilityForDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/functional-capability" + + queryString, _ := query.Values(GetFunctionalCapabilityForDevicesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetFunctionalCapabilityForDevices{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetFunctionalCapabilityForDevices(GetFunctionalCapabilityForDevicesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetFunctionalCapabilityForDevices") + } + + result := response.Result().(*ResponseDevicesGetFunctionalCapabilityForDevices) + return result, response, err + +} + +//GetFunctionalCapabilityByID Get Functional Capability by Id - 81bb-4804-405a-8d2f +/* Returns functional capability with given Id + + +@param id id path parameter. Functional Capability UUID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-functional-capability-by-id-v1 +*/ +func (s *DevicesService) GetFunctionalCapabilityByID(id string) (*ResponseDevicesGetFunctionalCapabilityByID, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/functional-capability/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetFunctionalCapabilityByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetFunctionalCapabilityByID(id) + } + return nil, response, fmt.Errorf("error with operation GetFunctionalCapabilityById") + } + + result := response.Result().(*ResponseDevicesGetFunctionalCapabilityByID) + return result, response, err + +} + +//InventoryInsightDeviceLinkMismatchAPI Inventory Insight Device Link Mismatch API - 5792-59d8-4208-8190 +/* Find all devices with link mismatch (speed / vlan) + + +@param siteID siteId path parameter. +@param InventoryInsightDeviceLinkMismatchAPIQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!inventory-insight-device-link-mismatch-api-v1 +*/ +func (s *DevicesService) InventoryInsightDeviceLinkMismatchAPI(siteID string, InventoryInsightDeviceLinkMismatchAPIQueryParams *InventoryInsightDeviceLinkMismatchAPIQueryParams) (*ResponseDevicesInventoryInsightDeviceLinkMismatchAPI, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/insight/{siteId}/device-link" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + queryString, _ := query.Values(InventoryInsightDeviceLinkMismatchAPIQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesInventoryInsightDeviceLinkMismatchAPI{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.InventoryInsightDeviceLinkMismatchAPI(siteID, InventoryInsightDeviceLinkMismatchAPIQueryParams) + } + return nil, response, fmt.Errorf("error with operation InventoryInsightDeviceLinkMismatchApi") + } + + result := response.Result().(*ResponseDevicesInventoryInsightDeviceLinkMismatchAPI) + return result, response, err + +} + +//GetNetworkDeviceByIP Get Network Device by IP - d0a4-b881-45aa-bb51 +/* Returns the network device by specified IP address + + +@param ipAddress ipAddress path parameter. Device IP address + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-device-by-ip-v1 +*/ +func (s *DevicesService) GetNetworkDeviceByIP(ipAddress string) (*ResponseDevicesGetNetworkDeviceByIP, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/ip-address/{ipAddress}" + path = strings.Replace(path, "{ipAddress}", fmt.Sprintf("%v", ipAddress), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetNetworkDeviceByIP{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetNetworkDeviceByIP(ipAddress) + } + return nil, response, fmt.Errorf("error with operation GetNetworkDeviceByIp") + } + + result := response.Result().(*ResponseDevicesGetNetworkDeviceByIP) + return result, response, err + +} + +//GetModules Get Modules - eb82-49e3-4f69-b0f1 +/* Returns modules by specified device id + + +@param GetModulesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-modules-v1 +*/ +func (s *DevicesService) GetModules(GetModulesQueryParams *GetModulesQueryParams) (*ResponseDevicesGetModules, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/module" + + queryString, _ := query.Values(GetModulesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetModules{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetModules(GetModulesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetModules") + } + + result := response.Result().(*ResponseDevicesGetModules) + return result, response, err + +} + +//GetModuleCount Get Module count - 8db9-3974-4649-a782 +/* Returns Module Count + + +@param GetModuleCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-module-count-v1 +*/ +func (s *DevicesService) GetModuleCount(GetModuleCountQueryParams *GetModuleCountQueryParams) (*ResponseDevicesGetModuleCount, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/module/count" + + queryString, _ := query.Values(GetModuleCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetModuleCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetModuleCount(GetModuleCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetModuleCount") + } + + result := response.Result().(*ResponseDevicesGetModuleCount) + return result, response, err + +} + +//GetModuleInfoByID Get Module Info by Id - 0db7-da74-4c0b-83d8 +/* Returns Module info by 'module id' + + +@param id id path parameter. Module id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-module-info-by-id-v1 +*/ +func (s *DevicesService) GetModuleInfoByID(id string) (*ResponseDevicesGetModuleInfoByID, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/module/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetModuleInfoByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetModuleInfoByID(id) + } + return nil, response, fmt.Errorf("error with operation GetModuleInfoById") + } + + result := response.Result().(*ResponseDevicesGetModuleInfoByID) + return result, response, err + +} + +//GetDeviceBySerialNumber Get Device by Serial number - d888-ab6d-4d59-a8c1 +/* Returns the network device with given serial number + + +@param serialNumber serialNumber path parameter. Device serial number + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-by-serial-number-v1 +*/ +func (s *DevicesService) GetDeviceBySerialNumber(serialNumber string) (*ResponseDevicesGetDeviceBySerialNumber, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/serial-number/{serialNumber}" + path = strings.Replace(path, "{serialNumber}", fmt.Sprintf("%v", serialNumber), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetDeviceBySerialNumber{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceBySerialNumber(serialNumber) + } + return nil, response, fmt.Errorf("error with operation GetDeviceBySerialNumber") + } + + result := response.Result().(*ResponseDevicesGetDeviceBySerialNumber) + return result, response, err + +} + +//GetDevicesRegisteredForWsaNotification Get Devices registered for WSA Notification - c980-9b67-44f8-a502 +/* It fetches devices which are registered to receive WSA notifications. The device serial number and/or MAC address are required to be provided as query parameters. + + +@param GetDevicesRegisteredForWSANotificationQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-devices-registered-for-wsa-notification-v1 +*/ +func (s *DevicesService) GetDevicesRegisteredForWsaNotification(GetDevicesRegisteredForWSANotificationQueryParams *GetDevicesRegisteredForWsaNotificationQueryParams) (*ResponseDevicesGetDevicesRegisteredForWsaNotification, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/tenantinfo/macaddress" + + queryString, _ := query.Values(GetDevicesRegisteredForWSANotificationQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDevicesRegisteredForWsaNotification{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDevicesRegisteredForWsaNotification(GetDevicesRegisteredForWSANotificationQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetDevicesRegisteredForWsaNotification") + } + + result := response.Result().(*ResponseDevicesGetDevicesRegisteredForWsaNotification) + return result, response, err + +} + +//GetAllUserDefinedFields Get All User-Defined-Fields - 058d-2a92-4899-b7bb +/* Gets existing global User Defined Fields. If no input is given, it fetches ALL the Global UDFs. Filter/search is supported by UDF Id(s) or UDF name(s) or both. + + +@param GetAllUserDefinedFieldsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-user-defined-fields-v1 +*/ +func (s *DevicesService) GetAllUserDefinedFields(GetAllUserDefinedFieldsQueryParams *GetAllUserDefinedFieldsQueryParams) (*ResponseDevicesGetAllUserDefinedFields, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/user-defined-field" + + queryString, _ := query.Values(GetAllUserDefinedFieldsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetAllUserDefinedFields{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAllUserDefinedFields(GetAllUserDefinedFieldsQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetAllUserDefinedFields") + } + + result := response.Result().(*ResponseDevicesGetAllUserDefinedFields) + return result, response, err + +} + +//GetChassisDetailsForDevice Get Chassis Details for Device - 0486-9b26-49ab-b579 +/* Returns chassis details for given device ID + + +@param deviceID deviceId path parameter. Device ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-chassis-details-for-device-v1 +*/ +func (s *DevicesService) GetChassisDetailsForDevice(deviceID string) (*ResponseDevicesGetChassisDetailsForDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceId}/chassis" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetChassisDetailsForDevice{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetChassisDetailsForDevice(deviceID) + } + return nil, response, fmt.Errorf("error with operation GetChassisDetailsForDevice") + } + + result := response.Result().(*ResponseDevicesGetChassisDetailsForDevice) + return result, response, err + +} + +//GetStackDetailsForDevice Get Stack Details for Device - 78a7-7ab0-4d5a-8a10 +/* Retrieves complete stack details for given device ID + + +@param deviceID deviceId path parameter. Device ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-stack-details-for-device-v1 +*/ +func (s *DevicesService) GetStackDetailsForDevice(deviceID string) (*ResponseDevicesGetStackDetailsForDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceId}/stack" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetStackDetailsForDevice{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetStackDetailsForDevice(deviceID) + } + return nil, response, fmt.Errorf("error with operation GetStackDetailsForDevice") + } + + result := response.Result().(*ResponseDevicesGetStackDetailsForDevice) + return result, response, err + +} + +//GetTheDetailsOfPhysicalComponentsOfTheGivenDevice Get the Details of Physical Components of the Given Device. - 20b1-9b52-464b-897a +/* Return all types of equipment details like PowerSupply, Fan, Chassis, Backplane, Module, PROCESSOR, Other and SFP for the Given device. + + +@param deviceUUID deviceUuid path parameter. +@param GetTheDetailsOfPhysicalComponentsOfTheGivenDeviceQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-details-of-physical-components-of-the-given-device-v1 +*/ +func (s *DevicesService) GetTheDetailsOfPhysicalComponentsOfTheGivenDevice(deviceUUID string, GetTheDetailsOfPhysicalComponentsOfTheGivenDeviceQueryParams *GetTheDetailsOfPhysicalComponentsOfTheGivenDeviceQueryParams) (*ResponseDevicesGetTheDetailsOfPhysicalComponentsOfTheGivenDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceUuid}/equipment" + path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) + + queryString, _ := query.Values(GetTheDetailsOfPhysicalComponentsOfTheGivenDeviceQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetTheDetailsOfPhysicalComponentsOfTheGivenDevice{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTheDetailsOfPhysicalComponentsOfTheGivenDevice(deviceUUID, GetTheDetailsOfPhysicalComponentsOfTheGivenDeviceQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetTheDetailsOfPhysicalComponentsOfTheGivenDevice") + } + + result := response.Result().(*ResponseDevicesGetTheDetailsOfPhysicalComponentsOfTheGivenDevice) + return result, response, err + +} + +//ReturnsPoeInterfaceDetailsForTheDevice Returns POE interface details for the device. - 20b5-48af-42da-a337 +/* Returns POE interface details for the device, where deviceuuid is mandatory & accepts comma seperated interface names which is optional and returns information for that particular interfaces where(operStatus = operationalStatus) + + +@param deviceUUID deviceUuid path parameter. uuid of the device + +@param ReturnsPOEInterfaceDetailsForTheDeviceQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-poe-interface-details-for-the-device-v1 +*/ +func (s *DevicesService) ReturnsPoeInterfaceDetailsForTheDevice(deviceUUID string, ReturnsPOEInterfaceDetailsForTheDeviceQueryParams *ReturnsPoeInterfaceDetailsForTheDeviceQueryParams) (*ResponseDevicesReturnsPoeInterfaceDetailsForTheDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceUuid}/interface/poe-detail" + path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) + + queryString, _ := query.Values(ReturnsPOEInterfaceDetailsForTheDeviceQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesReturnsPoeInterfaceDetailsForTheDevice{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReturnsPoeInterfaceDetailsForTheDevice(deviceUUID, ReturnsPOEInterfaceDetailsForTheDeviceQueryParams) + } + return nil, response, fmt.Errorf("error with operation ReturnsPoeInterfaceDetailsForTheDevice") + } + + result := response.Result().(*ResponseDevicesReturnsPoeInterfaceDetailsForTheDevice) + return result, response, err + +} + +//GetConnectedDeviceDetail Get connected device detail - a8aa-ca21-4c09-8388 +/* Get connected device detail for given deviceUuid and interfaceUuid + + +@param deviceUUID deviceUuid path parameter. instanceuuid of Device + +@param interfaceUUID interfaceUuid path parameter. instanceuuid of interface + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-connected-device-detail-v1 +*/ +func (s *DevicesService) GetConnectedDeviceDetail(deviceUUID string, interfaceUUID string) (*ResponseDevicesGetConnectedDeviceDetail, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceUuid}/interface/{interfaceUuid}/neighbor" + path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) + path = strings.Replace(path, "{interfaceUuid}", fmt.Sprintf("%v", interfaceUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetConnectedDeviceDetail{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetConnectedDeviceDetail(deviceUUID, interfaceUUID) + } + return nil, response, fmt.Errorf("error with operation GetConnectedDeviceDetail") + } + + result := response.Result().(*ResponseDevicesGetConnectedDeviceDetail) + return result, response, err + +} + +//GetLinecardDetails Get Linecard details - 46a1-4b02-48fb-8fbf +/* Get line card detail for a given deviceuuid. Response will contain serial no, part no, switch no and slot no. + + +@param deviceUUID deviceUuid path parameter. instanceuuid of device + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-linecard-details-v1 +*/ +func (s *DevicesService) GetLinecardDetails(deviceUUID string) (*ResponseDevicesGetLinecardDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceUuid}/line-card" + path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetLinecardDetails{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetLinecardDetails(deviceUUID) + } + return nil, response, fmt.Errorf("error with operation GetLinecardDetails") + } + + result := response.Result().(*ResponseDevicesGetLinecardDetails) + return result, response, err + +} + +//PoeDetails POE details - 8ba6-7932-4ed9-abae +/* Returns POE details for device. + + +@param deviceUUID deviceUuid path parameter. UUID of the device + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!poe-details-v1 +*/ +func (s *DevicesService) PoeDetails(deviceUUID string) (*ResponseDevicesPoeDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceUuid}/poe" + path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesPoeDetails{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.PoeDetails(deviceUUID) + } + return nil, response, fmt.Errorf("error with operation PoeDetails") + } + + result := response.Result().(*ResponseDevicesPoeDetails) + return result, response, err + +} + +//GetSupervisorCardDetail Get Supervisor card detail - 88aa-1b52-4a38-bf97 +/* Get supervisor card detail for a given deviceuuid. Response will contain serial no, part no, switch no and slot no. + + +@param deviceUUID deviceUuid path parameter. instanceuuid of device + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-supervisor-card-detail-v1 +*/ +func (s *DevicesService) GetSupervisorCardDetail(deviceUUID string) (*ResponseDevicesGetSupervisorCardDetail, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceUuid}/supervisor-card" + path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetSupervisorCardDetail{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSupervisorCardDetail(deviceUUID) + } + return nil, response, fmt.Errorf("error with operation GetSupervisorCardDetail") + } + + result := response.Result().(*ResponseDevicesGetSupervisorCardDetail) + return result, response, err + +} + +//GetDeviceByID Get Device by ID - 8fa8-eb40-4a4a-8d96 +/* Returns the network device details for the given device ID + + +@param id id path parameter. Device ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-by-id-v1 +*/ +func (s *DevicesService) GetDeviceByID(id string) (*ResponseDevicesGetDeviceByID, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetDeviceByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceByID(id) + } + return nil, response, fmt.Errorf("error with operation GetDeviceById") + } + + result := response.Result().(*ResponseDevicesGetDeviceByID) + return result, response, err + +} + +//GetDeviceSummary Get Device Summary - 819f-9aa5-4fea-b7bf +/* Returns brief summary of device info such as hostname, management IP address for the given device Id + + +@param id id path parameter. Device ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-summary-v1 +*/ +func (s *DevicesService) GetDeviceSummary(id string) (*ResponseDevicesGetDeviceSummary, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{id}/brief" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetDeviceSummary{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceSummary(id) + } + return nil, response, fmt.Errorf("error with operation GetDeviceSummary") + } + + result := response.Result().(*ResponseDevicesGetDeviceSummary) + return result, response, err + +} + +//GetPollingIntervalByID Get Polling Interval by Id - 8291-8a1b-4d28-9c5c +/* Returns polling interval by device id + + +@param id id path parameter. Device ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-polling-interval-by-id-v1 +*/ +func (s *DevicesService) GetPollingIntervalByID(id string) (*ResponseDevicesGetPollingIntervalByID, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{id}/collection-schedule" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetPollingIntervalByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetPollingIntervalByID(id) + } + return nil, response, fmt.Errorf("error with operation GetPollingIntervalById") + } + + result := response.Result().(*ResponseDevicesGetPollingIntervalByID) + return result, response, err + +} + +//GetOrganizationListForMeraki Get Organization list for Meraki - 84b3-7ae5-4c59-ab28 +/* Returns list of organizations for meraki dashboard + + +@param id id path parameter. Device Id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-organization-list-for-meraki-v1 +*/ +func (s *DevicesService) GetOrganizationListForMeraki(id string) (*ResponseDevicesGetOrganizationListForMeraki, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{id}/meraki-organization" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetOrganizationListForMeraki{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetOrganizationListForMeraki(id) + } + return nil, response, fmt.Errorf("error with operation GetOrganizationListForMeraki") + } + + result := response.Result().(*ResponseDevicesGetOrganizationListForMeraki) + return result, response, err + +} + +//GetDeviceInterfaceVLANs Get Device Interface VLANs - 288d-f949-4f2a-9746 +/* Returns Device Interface VLANs. If parameter value is null or empty, it won't return any value in response. + + +@param id id path parameter. +@param GetDeviceInterfaceVLANsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interface-vlans-v1 +*/ +func (s *DevicesService) GetDeviceInterfaceVLANs(id string, GetDeviceInterfaceVLANsQueryParams *GetDeviceInterfaceVLANsQueryParams) (*ResponseDevicesGetDeviceInterfaceVLANs, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{id}/vlan" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(GetDeviceInterfaceVLANsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDeviceInterfaceVLANs{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceInterfaceVLANs(id, GetDeviceInterfaceVLANsQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetDeviceInterfaceVlans") + } + + result := response.Result().(*ResponseDevicesGetDeviceInterfaceVLANs) + return result, response, err + +} + +//GetWirelessLanControllerDetailsByID Get wireless lan controller details by Id - f682-6a8e-41bb-a242 +/* Returns the wireless lan controller info with given device ID + + +@param id id path parameter. Device ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-wireless-lan-controller-details-by-id-v1 +*/ +func (s *DevicesService) GetWirelessLanControllerDetailsByID(id string) (*ResponseDevicesGetWirelessLanControllerDetailsByID, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{id}/wireless-info" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetWirelessLanControllerDetailsByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetWirelessLanControllerDetailsByID(id) + } + return nil, response, fmt.Errorf("error with operation GetWirelessLanControllerDetailsById") + } + + result := response.Result().(*ResponseDevicesGetWirelessLanControllerDetailsByID) + return result, response, err + +} + +//GetDeviceConfigByID Get Device Config by Id - 84b3-3a9e-480a-bcaf +/* Returns the device config by specified device ID + + +@param networkDeviceID networkDeviceId path parameter. + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-config-by-id-v1 +*/ +func (s *DevicesService) GetDeviceConfigByID(networkDeviceID string) (*ResponseDevicesGetDeviceConfigByID, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{networkDeviceId}/config" + path = strings.Replace(path, "{networkDeviceId}", fmt.Sprintf("%v", networkDeviceID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetDeviceConfigByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceConfigByID(networkDeviceID) + } + return nil, response, fmt.Errorf("error with operation GetDeviceConfigById") + } + + result := response.Result().(*ResponseDevicesGetDeviceConfigByID) + return result, response, err + +} + +//GetNetworkDeviceByPaginationRange Get Network Device by pagination range - f495-48c5-4be8-a3e2 +/* Returns the list of network devices for the given pagination range. The maximum number of records that can be retrieved is 500 + + +@param startIndex startIndex path parameter. Start index [>=1] + +@param recordsToReturn recordsToReturn path parameter. Number of records to return [1<= recordsToReturn <= 500] + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-device-by-pagination-range-v1 +*/ +func (s *DevicesService) GetNetworkDeviceByPaginationRange(startIndex int, recordsToReturn int) (*ResponseDevicesGetNetworkDeviceByPaginationRange, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{startIndex}/{recordsToReturn}" + path = strings.Replace(path, "{startIndex}", fmt.Sprintf("%v", startIndex), -1) + path = strings.Replace(path, "{recordsToReturn}", fmt.Sprintf("%v", recordsToReturn), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetNetworkDeviceByPaginationRange{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetNetworkDeviceByPaginationRange(startIndex, recordsToReturn) + } + return nil, response, fmt.Errorf("error with operation GetNetworkDeviceByPaginationRange") + } + + result := response.Result().(*ResponseDevicesGetNetworkDeviceByPaginationRange) + return result, response, err + +} + +//GetResyncIntervalForTheNetworkDevice Get resync interval for the network device - 4783-7a87-4aea-91e6 +/* Fetch the reysnc interval for the given network device id. + + +@param id id path parameter. The id of the network device. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-resync-interval-for-the-network-device-v1 +*/ +func (s *DevicesService) GetResyncIntervalForTheNetworkDevice(id string) (*ResponseDevicesGetResyncIntervalForTheNetworkDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/{id}/resyncIntervalSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetResyncIntervalForTheNetworkDevice{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetResyncIntervalForTheNetworkDevice(id) + } + return nil, response, fmt.Errorf("error with operation GetResyncIntervalForTheNetworkDevice") + } + + result := response.Result().(*ResponseDevicesGetResyncIntervalForTheNetworkDevice) + return result, response, err + +} + +//WirelessRogueApContainmentStatus Wireless Rogue AP Containment Status - a1ab-f9ae-4c38-9286 +/* Intent API to check the wireless rogue access point containment status. The response includes all the details like containment status, contained by WLC, containment status of each BSSID etc. This API also includes the information of strongest detecting WLC for this rogue access point. + + +@param macAddress macAddress path parameter. MAC Address of the Wireless Rogue AP + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!wireless-rogue-ap-containment-status-v1 +*/ +func (s *DevicesService) WirelessRogueApContainmentStatus(macAddress string) (*ResponseDevicesWirelessRogueApContainmentStatus, *resty.Response, error) { + path := "/dna/intent/api/v1/security/rogue/wireless-containment/status/{macAddress}" + path = strings.Replace(path, "{macAddress}", fmt.Sprintf("%v", macAddress), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesWirelessRogueApContainmentStatus{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.WirelessRogueApContainmentStatus(macAddress) + } + return nil, response, fmt.Errorf("error with operation WirelessRogueApContainmentStatus") + } + + result := response.Result().(*ResponseDevicesWirelessRogueApContainmentStatus) + return result, response, err + +} + +//GetThreatLevels Get Threat Levels - 64ba-bad4-4aa9-b493 +/* Intent API to fetch all threat levels defined. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-threat-levels-v1 +*/ +func (s *DevicesService) GetThreatLevels() (*ResponseDevicesGetThreatLevels, *resty.Response, error) { + path := "/dna/intent/api/v1/security/threats/level" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetThreatLevels{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetThreatLevels() + } + return nil, response, fmt.Errorf("error with operation GetThreatLevels") + } + + result := response.Result().(*ResponseDevicesGetThreatLevels) + return result, response, err + +} + +//GetAllowedMacAddress Get Allowed Mac Address - 18ae-3ab0-447a-872f +/* Intent API to fetch all the allowed mac addresses in the system. + + +@param GetAllowedMacAddressQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-allowed-mac-address-v1 +*/ +func (s *DevicesService) GetAllowedMacAddress(GetAllowedMacAddressQueryParams *GetAllowedMacAddressQueryParams) (*ResponseDevicesGetAllowedMacAddress, *resty.Response, error) { + path := "/dna/intent/api/v1/security/threats/rogue/allowed-list" + + queryString, _ := query.Values(GetAllowedMacAddressQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetAllowedMacAddress{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAllowedMacAddress(GetAllowedMacAddressQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetAllowedMacAddress") + } + + result := response.Result().(*ResponseDevicesGetAllowedMacAddress) + return result, response, err + +} + +//GetAllowedMacAddressCount Get Allowed Mac Address Count - d4a1-e8c8-410a-b009 +/* Intent API to fetch the count of allowed mac addresses in the system. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-allowed-mac-address-count-v1 +*/ +func (s *DevicesService) GetAllowedMacAddressCount() (*ResponseDevicesGetAllowedMacAddressCount, *resty.Response, error) { + path := "/dna/intent/api/v1/security/threats/rogue/allowed-list/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetAllowedMacAddressCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAllowedMacAddressCount() + } + return nil, response, fmt.Errorf("error with operation GetAllowedMacAddressCount") + } + + result := response.Result().(*ResponseDevicesGetAllowedMacAddressCount) + return result, response, err + +} + +//GetThreatTypes Get Threat Types - 519a-9b70-45c8-8b82 +/* Intent API to fetch all threat types defined. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-threat-types-v1 +*/ +func (s *DevicesService) GetThreatTypes() (*ResponseDevicesGetThreatTypes, *resty.Response, error) { + path := "/dna/intent/api/v1/security/threats/type" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesGetThreatTypes{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetThreatTypes() + } + return nil, response, fmt.Errorf("error with operation GetThreatTypes") + } + + result := response.Result().(*ResponseDevicesGetThreatTypes) + return result, response, err + +} + +//GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFilters Get the count of health score definitions based on provided filters. - 49aa-bb2c-46ca-b58a +/* Get the count of health score definitions based on provided filters. Supported filters are id, name and overall health include status. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml + + +@param GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersHeaderParams Custom header parameters +@param GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-count-of-health-score-definitions-based-on-provided-filters-v1 +*/ +func (s *DevicesService) GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFilters(GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersHeaderParams *GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersHeaderParams, GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersQueryParams *GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersQueryParams) (*ResponseDevicesGetTheCountOfHealthScoreDefinitionsBasedOnProvidedFilters, *resty.Response, error) { + path := "/intent/api/v1/healthScoreDefinitions/count" + + queryString, _ := query.Values(GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersHeaderParams != nil { + + if GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetTheCountOfHealthScoreDefinitionsBasedOnProvidedFilters{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFilters(GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersHeaderParams, GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFiltersQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetTheCountOfHealthScoreDefinitionsBasedOnProvidedFilters") + } + + result := response.Result().(*ResponseDevicesGetTheCountOfHealthScoreDefinitionsBasedOnProvidedFilters) + return result, response, err + +} + +//GetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions Gets the total number Network Devices based on the provided complex filters and aggregation functions. - 278f-1a5c-40ab-b65a +/* Gets the total number Network Devices based on the provided complex filters and aggregation functions. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceNetworkDevices-1.0.2-resolved.yaml + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-total-number-network-devices-based-on-the-provided-complex-filters-and-aggregation-functions-v1 +*/ +func (s *DevicesService) GetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions(requestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions *RequestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) (*ResponseDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions, *resty.Response, error) { + path := "/data/api/v1/networkDevices/query/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions). + SetResult(&ResponseDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.GetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions(requestDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) + } + + return nil, response, fmt.Errorf("error with operation GetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions") + } + + result := response.Result().(*ResponseDevicesGetsTheTotalNumberNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) + return result, response, err + +} + +//QueryAssuranceEventsWithFilters Query assurance events with filters - c5b7-0a69-4409-9b5b +/* Returns the list of events discovered by Catalyst Center, determined by the complex filters. Please refer to the 'API Support Documentation' section to understand which fields are supported. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceEvents-1.0.0-resolved.yaml + + +@param QueryAssuranceEventsWithFiltersHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!query-assurance-events-with-filters-v1 +*/ +func (s *DevicesService) QueryAssuranceEventsWithFilters(requestDevicesQueryAssuranceEventsWithFilters *RequestDevicesQueryAssuranceEventsWithFilters, QueryAssuranceEventsWithFiltersHeaderParams *QueryAssuranceEventsWithFiltersHeaderParams) (*ResponseDevicesQueryAssuranceEventsWithFilters, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceEvents/query" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if QueryAssuranceEventsWithFiltersHeaderParams != nil { + + if QueryAssuranceEventsWithFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", QueryAssuranceEventsWithFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestDevicesQueryAssuranceEventsWithFilters). + SetResult(&ResponseDevicesQueryAssuranceEventsWithFilters{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.QueryAssuranceEventsWithFilters(requestDevicesQueryAssuranceEventsWithFilters, QueryAssuranceEventsWithFiltersHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation QueryAssuranceEventsWithFilters") + } + + result := response.Result().(*ResponseDevicesQueryAssuranceEventsWithFilters) + return result, response, err + +} + +//CountTheNumberOfEventsWithFilters Count the number of events with filters - d685-3aeb-4878-a8fd +/* API to fetch the count of assurance events for the given complex query. Please refer to the 'API Support Documentation' section to understand which fields are supported. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceEvents-1.0.0-resolved.yaml + + +@param CountTheNumberOfEventsWithFiltersHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-the-number-of-events-with-filters-v1 +*/ +func (s *DevicesService) CountTheNumberOfEventsWithFilters(requestDevicesCountTheNumberOfEventsWithFilters *RequestDevicesCountTheNumberOfEventsWithFilters, CountTheNumberOfEventsWithFiltersHeaderParams *CountTheNumberOfEventsWithFiltersHeaderParams) (*ResponseDevicesCountTheNumberOfEventsWithFilters, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceEvents/query/count" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if CountTheNumberOfEventsWithFiltersHeaderParams != nil { + + if CountTheNumberOfEventsWithFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", CountTheNumberOfEventsWithFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestDevicesCountTheNumberOfEventsWithFilters). + SetResult(&ResponseDevicesCountTheNumberOfEventsWithFilters{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CountTheNumberOfEventsWithFilters(requestDevicesCountTheNumberOfEventsWithFilters, CountTheNumberOfEventsWithFiltersHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation CountTheNumberOfEventsWithFilters") + } + + result := response.Result().(*ResponseDevicesCountTheNumberOfEventsWithFilters) + return result, response, err + +} + +//GetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions Gets the list of interfaces across the Network Devices based on the provided complex filters and aggregation functions - 45b8-ba96-4daa-843c +/* Gets the list of interfaces across the Network Devices based on the provided complex filters and aggregation functions +The elements are grouped and sorted by deviceUuid first, and are then sorted by the given sort field, or by the default value: name. +The supported sorting options are: name, adminStatus, description, duplexConfig, duplexOper, interfaceIfIndex,interfaceType, macAddress,mediaType, operStatus, portChannelId, portMode, portType,speed, vlanId. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-interfaces-1.0.2-resolved.yaml + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-list-of-interfaces-across-the-network-devices-based-on-the-provided-complex-filters-and-aggregation-functions-v1 +*/ +func (s *DevicesService) GetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions(requestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions *RequestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) (*ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions, *resty.Response, error) { + path := "/dna/data/api/v1/interfaces/query" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions). + SetResult(&ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.GetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions(requestDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) } - return nil, response, fmt.Errorf("error with operation GetModuleInfoById") + + return nil, response, fmt.Errorf("error with operation GetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions") } - result := response.Result().(*ResponseDevicesGetModuleInfoByID) + result := response.Result().(*ResponseDevicesGetsTheListOfInterfacesAcrossTheNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) return result, response, err } -//GetDeviceBySerialNumber Get Device by Serial number - d888-ab6d-4d59-a8c1 -/* Returns the network device if the given serial number matches with any of the serial numbers collected. - +//TheTotalInterfacesCountAcrossTheNetworkDevices The Total interfaces count across the Network devices. - a0bb-1bed-4529-98b1 +/* Gets the total number of interfaces across the Network devices based on the provided complex filters and aggregation functions. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-interfaces-1.0.2-resolved.yaml -@param serialNumber serialNumber path parameter. Device serial number -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-by-serial-number +Documentation Link: https://developer.cisco.com/docs/dna-center/#!the-total-interfaces-count-across-the-network-devices-v1 */ -func (s *DevicesService) GetDeviceBySerialNumber(serialNumber string) (*ResponseDevicesGetDeviceBySerialNumber, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/serial-number/{serialNumber}" - path = strings.Replace(path, "{serialNumber}", fmt.Sprintf("%v", serialNumber), -1) +func (s *DevicesService) TheTotalInterfacesCountAcrossTheNetworkDevices(requestDevicesTheTotalInterfacesCountAcrossTheNetworkDevices *RequestDevicesTheTotalInterfacesCountAcrossTheNetworkDevices) (*ResponseDevicesTheTotalInterfacesCountAcrossTheNetworkDevices, *resty.Response, error) { + path := "/dna/data/api/v1/interfaces/query/count" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceBySerialNumber{}). + SetBody(requestDevicesTheTotalInterfacesCountAcrossTheNetworkDevices). + SetResult(&ResponseDevicesTheTotalInterfacesCountAcrossTheNetworkDevices{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -2851,36 +6773,36 @@ func (s *DevicesService) GetDeviceBySerialNumber(serialNumber string) (*Response } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceBySerialNumber(serialNumber) + return s.TheTotalInterfacesCountAcrossTheNetworkDevices(requestDevicesTheTotalInterfacesCountAcrossTheNetworkDevices) } - return nil, response, fmt.Errorf("error with operation GetDeviceBySerialNumber") + + return nil, response, fmt.Errorf("error with operation TheTotalInterfacesCountAcrossTheNetworkDevices") } - result := response.Result().(*ResponseDevicesGetDeviceBySerialNumber) + result := response.Result().(*ResponseDevicesTheTotalInterfacesCountAcrossTheNetworkDevices) return result, response, err } -//GetDevicesRegisteredForWsaNotification Get Devices registered for WSA Notification - c980-9b67-44f8-a502 -/* It fetches devices which are registered to receive WSA notifications. The device serial number and/or MAC address are required to be provided as query parameters. +//GetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions Gets the list of Network Devices based on the provided complex filters and aggregation functions. - e794-1a90-428b-b583 +/* Gets the list of Network Devices based on the provided complex filters and aggregation functions. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceNetworkDevices-1.0.2-resolved.yaml -@param GetDevicesRegisteredForWSANotificationQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-devices-registered-for-wsa-notification +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-list-of-network-devices-based-on-the-provided-complex-filters-and-aggregation-functions-v1 */ -func (s *DevicesService) GetDevicesRegisteredForWsaNotification(GetDevicesRegisteredForWSANotificationQueryParams *GetDevicesRegisteredForWsaNotificationQueryParams) (*ResponseDevicesGetDevicesRegisteredForWsaNotification, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/tenantinfo/macaddress" - - queryString, _ := query.Values(GetDevicesRegisteredForWSANotificationQueryParams) +func (s *DevicesService) GetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions(requestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions *RequestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) (*ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions, *resty.Response, error) { + path := "/dna/data/api/v1/networkDevices/query" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDevicesRegisteredForWsaNotification{}). + SetBody(requestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions). + SetResult(&ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -2888,36 +6810,36 @@ func (s *DevicesService) GetDevicesRegisteredForWsaNotification(GetDevicesRegist } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetDevicesRegisteredForWsaNotification(GetDevicesRegisteredForWSANotificationQueryParams) + return s.GetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions(requestDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) } - return nil, response, fmt.Errorf("error with operation GetDevicesRegisteredForWsaNotification") + + return nil, response, fmt.Errorf("error with operation GetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions") } - result := response.Result().(*ResponseDevicesGetDevicesRegisteredForWsaNotification) + result := response.Result().(*ResponseDevicesGetsTheListOfNetworkDevicesBasedOnTheProvidedComplexFiltersAndAggregationFunctions) return result, response, err } -//GetAllUserDefinedFields Get All User-Defined-Fields - 058d-2a92-4899-b7bb -/* Gets existing global User Defined Fields. If no input is given, it fetches ALL the Global UDFs. Filter/search is supported either by UDF Id(s) or by UDF name(s), but not both. +//GetsTheSummaryAnalyticsDataRelatedToNetworkDevices Gets the summary analytics data related to network devices. - 15be-c9ed-4cba-8f91 +/* Gets the summary analytics data related to network devices based on the provided input data. This endpoint helps to obtain the consolidated insights into the performance and status of the monitored network devices. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceNetworkDevices-1.0.2-resolved.yaml -@param GetAllUserDefinedFieldsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-user-defined-fields +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-summary-analytics-data-related-to-network-devices-v1 */ -func (s *DevicesService) GetAllUserDefinedFields(GetAllUserDefinedFieldsQueryParams *GetAllUserDefinedFieldsQueryParams) (*ResponseDevicesGetAllUserDefinedFields, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/user-defined-field" - - queryString, _ := query.Values(GetAllUserDefinedFieldsQueryParams) +func (s *DevicesService) GetsTheSummaryAnalyticsDataRelatedToNetworkDevices(requestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices *RequestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices) (*ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices, *resty.Response, error) { + path := "/dna/data/api/v1/networkDevices/summaryAnalytics" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetAllUserDefinedFields{}). + SetBody(requestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices). + SetResult(&ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -2925,36 +6847,36 @@ func (s *DevicesService) GetAllUserDefinedFields(GetAllUserDefinedFieldsQueryPar } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetAllUserDefinedFields(GetAllUserDefinedFieldsQueryParams) + return s.GetsTheSummaryAnalyticsDataRelatedToNetworkDevices(requestDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices) } - return nil, response, fmt.Errorf("error with operation GetAllUserDefinedFields") + + return nil, response, fmt.Errorf("error with operation GetsTheSummaryAnalyticsDataRelatedToNetworkDevices") } - result := response.Result().(*ResponseDevicesGetAllUserDefinedFields) + result := response.Result().(*ResponseDevicesGetsTheSummaryAnalyticsDataRelatedToNetworkDevices) return result, response, err } -//GetChassisDetailsForDevice Get Chassis Details for Device - 0486-9b26-49ab-b579 -/* Returns chassis details for given device ID - +//GetsTheTrendAnalyticsData Gets the Trend analytics data. - 0c93-595e-451b-910e +/* Gets the Trend analytics Network device data for the given time range. The data will be grouped based on the given trend time Interval. The required property for this API is `trendInterval`. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceNetworkDevices-1.0.2-resolved.yaml -@param deviceID deviceId path parameter. Device ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-chassis-details-for-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-the-trend-analytics-data-v1 */ -func (s *DevicesService) GetChassisDetailsForDevice(deviceID string) (*ResponseDevicesGetChassisDetailsForDevice, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{deviceId}/chassis" - path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) +func (s *DevicesService) GetsTheTrendAnalyticsData(requestDevicesGetsTheTrendAnalyticsData *RequestDevicesGetsTheTrendAnalyticsData) (*ResponseDevicesGetsTheTrendAnalyticsData, *resty.Response, error) { + path := "/dna/data/api/v1/networkDevices/trendAnalytics" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetChassisDetailsForDevice{}). + SetBody(requestDevicesGetsTheTrendAnalyticsData). + SetResult(&ResponseDevicesGetsTheTrendAnalyticsData{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -2962,36 +6884,39 @@ func (s *DevicesService) GetChassisDetailsForDevice(deviceID string) (*ResponseD } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetChassisDetailsForDevice(deviceID) + return s.GetsTheTrendAnalyticsData(requestDevicesGetsTheTrendAnalyticsData) } - return nil, response, fmt.Errorf("error with operation GetChassisDetailsForDevice") + + return nil, response, fmt.Errorf("error with operation GetsTheTrendAnalyticsData") } - result := response.Result().(*ResponseDevicesGetChassisDetailsForDevice) + result := response.Result().(*ResponseDevicesGetsTheTrendAnalyticsData) return result, response, err } -//GetStackDetailsForDevice Get Stack Details for Device - 78a7-7ab0-4d5a-8a10 -/* Retrieves complete stack details for given device ID +//TheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange The Trend analytics data for the network Device in the specified time range - 00ba-7a81-431b-93e7 +/* The Trend analytics data for the network Device in the specified time range. The data is grouped based on the trend time Interval, other input parameters like attribute and aggregate attributes. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceNetworkDevices-1.0.2-resolved.yaml -@param deviceID deviceId path parameter. Device ID +@param id id path parameter. The device Uuid -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-stack-details-for-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!the-trend-analytics-data-for-the-network-device-in-the-specified-time-range-v1 */ -func (s *DevicesService) GetStackDetailsForDevice(deviceID string) (*ResponseDevicesGetStackDetailsForDevice, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{deviceId}/stack" - path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) +func (s *DevicesService) TheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange(id string, requestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange *RequestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange) (*ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange, *resty.Response, error) { + path := "/dna/data/api/v1/networkDevices/{id}/trendAnalytics" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetStackDetailsForDevice{}). + SetBody(requestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange). + SetResult(&ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -2999,38 +6924,39 @@ func (s *DevicesService) GetStackDetailsForDevice(deviceID string) (*ResponseDev } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetStackDetailsForDevice(deviceID) + return s.TheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange(id, requestDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange) } - return nil, response, fmt.Errorf("error with operation GetStackDetailsForDevice") + + return nil, response, fmt.Errorf("error with operation TheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange") } - result := response.Result().(*ResponseDevicesGetStackDetailsForDevice) + result := response.Result().(*ResponseDevicesTheTrendAnalyticsDataForTheNetworkDeviceInTheSpecifiedTimeRange) return result, response, err } -//ReturnPowerSupplyFanDetailsForTheGivenDevice Return PowerSupply/ Fan details for the Given device - 20b1-9b52-464b-897a -/* Return PowerSupply/ Fan details for the Given device +//CreatePlannedAccessPointForFloor Create Planned Access Point for Floor - 7eaa-8b15-454a-8c1d +/* Allows creation of a new planned access point on an existing floor map including its planned radio and antenna details. Use the Get variant of this API to fetch any existing planned access points for the floor. The payload to create a planned access point is in the same format, albeit a single object instead of a list, of that API. -@param deviceUUID deviceUuid path parameter. -@param ReturnPowerSupplyFanDetailsForTheGivenDeviceQueryParams Filtering parameter +@param floorID floorId path parameter. The instance UUID of the floor hierarchy element -Documentation Link: https://developer.cisco.com/docs/dna-center/#!return-power-supply-fan-details-for-the-given-device -*/ -func (s *DevicesService) ReturnPowerSupplyFanDetailsForTheGivenDevice(deviceUUID string, ReturnPowerSupplyFanDetailsForTheGivenDeviceQueryParams *ReturnPowerSupplyFanDetailsForTheGivenDeviceQueryParams) (*ResponseDevicesReturnPowerSupplyFanDetailsForTheGivenDevice, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{deviceUuid}/equipment" - path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) - queryString, _ := query.Values(ReturnPowerSupplyFanDetailsForTheGivenDeviceQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-planned-access-point-for-floor-v1 +*/ +func (s *DevicesService) CreatePlannedAccessPointForFloor(floorID string, requestDevicesCreatePlannedAccessPointForFloor *RequestDevicesCreatePlannedAccessPointForFloor) (*ResponseDevicesCreatePlannedAccessPointForFloor, *resty.Response, error) { + path := "/dna/intent/api/v1/floors/{floorId}/planned-access-points" + path = strings.Replace(path, "{floorId}", fmt.Sprintf("%v", floorID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesReturnPowerSupplyFanDetailsForTheGivenDevice{}). + SetBody(requestDevicesCreatePlannedAccessPointForFloor). + SetResult(&ResponseDevicesCreatePlannedAccessPointForFloor{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3038,39 +6964,50 @@ func (s *DevicesService) ReturnPowerSupplyFanDetailsForTheGivenDevice(deviceUUID } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.ReturnPowerSupplyFanDetailsForTheGivenDevice(deviceUUID, ReturnPowerSupplyFanDetailsForTheGivenDeviceQueryParams) + return s.CreatePlannedAccessPointForFloor(floorID, requestDevicesCreatePlannedAccessPointForFloor) } - return nil, response, fmt.Errorf("error with operation ReturnPowerSupplyFanDetailsForTheGivenDevice") + + return nil, response, fmt.Errorf("error with operation CreatePlannedAccessPointForFloor") } - result := response.Result().(*ResponseDevicesReturnPowerSupplyFanDetailsForTheGivenDevice) + result := response.Result().(*ResponseDevicesCreatePlannedAccessPointForFloor) return result, response, err } -//ReturnsPoeInterfaceDetailsForTheDevice Returns POE interface details for the device. - 20b5-48af-42da-a337 -/* Returns POE interface details for the device, where deviceuuid is mandatory & accepts comma seperated interface names which is optional and returns information for that particular interfaces where(operStatus = operationalStatus) +//UpdateHealthScoreDefinitions Update health score definitions. - 1aab-193d-40bb-9d2f +/* Update health thresholds, include status of overall health status for each metric. +And also to synchronize with global profile issue thresholds of the definition for given metric. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml -@param deviceUUID deviceUuid path parameter. uuid of the device - -@param ReturnsPOEInterfaceDetailsForTheDeviceQueryParams Filtering parameter +@param UpdateHealthScoreDefinitionsHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-poe-interface-details-for-the-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!update-health-score-definitions-v1 */ -func (s *DevicesService) ReturnsPoeInterfaceDetailsForTheDevice(deviceUUID string, ReturnsPOEInterfaceDetailsForTheDeviceQueryParams *ReturnsPoeInterfaceDetailsForTheDeviceQueryParams) (*ResponseDevicesReturnsPoeInterfaceDetailsForTheDevice, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{deviceUuid}/interface/poe-detail" - path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) +func (s *DevicesService) UpdateHealthScoreDefinitions(requestDevicesUpdateHealthScoreDefinitions *RequestDevicesUpdateHealthScoreDefinitions, UpdateHealthScoreDefinitionsHeaderParams *UpdateHealthScoreDefinitionsHeaderParams) (*ResponseDevicesUpdateHealthScoreDefinitions, *resty.Response, error) { + path := "/dna/intent/api/v1/healthScoreDefinitions/bulkUpdate" - queryString, _ := query.Values(ReturnsPOEInterfaceDetailsForTheDeviceQueryParams) - - response, err := s.client.R(). + var response *resty.Response + var err error + clientRequest := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesReturnsPoeInterfaceDetailsForTheDevice{}). + SetHeader("Accept", "application/json") + + if UpdateHealthScoreDefinitionsHeaderParams != nil { + + if UpdateHealthScoreDefinitionsHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", UpdateHealthScoreDefinitionsHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestDevicesUpdateHealthScoreDefinitions). + SetResult(&ResponseDevicesUpdateHealthScoreDefinitions{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3078,39 +7015,42 @@ func (s *DevicesService) ReturnsPoeInterfaceDetailsForTheDevice(deviceUUID strin } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.ReturnsPoeInterfaceDetailsForTheDevice(deviceUUID, ReturnsPOEInterfaceDetailsForTheDeviceQueryParams) + return s.UpdateHealthScoreDefinitions(requestDevicesUpdateHealthScoreDefinitions, UpdateHealthScoreDefinitionsHeaderParams) } - return nil, response, fmt.Errorf("error with operation ReturnsPoeInterfaceDetailsForTheDevice") + + return nil, response, fmt.Errorf("error with operation UpdateHealthScoreDefinitions") } - result := response.Result().(*ResponseDevicesReturnsPoeInterfaceDetailsForTheDevice) + result := response.Result().(*ResponseDevicesUpdateHealthScoreDefinitions) return result, response, err } -//GetConnectedDeviceDetail Get connected device detail - a8aa-ca21-4c09-8388 -/* Get connected device detail for given deviceUuid and interfaceUuid - +//ClearMacAddressTable Clear Mac-Address table - 24be-a97f-43f9-bc65 +/* Clear mac-address on an individual port. In request body, operation needs to be specified as 'ClearMacAddress'. In the future more possible operations will be added to this API -@param deviceUUID deviceUuid path parameter. instanceuuid of Device -@param interfaceUUID interfaceUuid path parameter. instanceuuid of interface +@param interfaceUUID interfaceUuid path parameter. Interface Id +@param ClearMacAddressTableQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-connected-device-detail +Documentation Link: https://developer.cisco.com/docs/dna-center/#!clear-mac-address-table-v1 */ -func (s *DevicesService) GetConnectedDeviceDetail(deviceUUID string, interfaceUUID string) (*ResponseDevicesGetConnectedDeviceDetail, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{deviceUuid}/interface/{interfaceUuid}/neighbor" - path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) +func (s *DevicesService) ClearMacAddressTable(interfaceUUID string, requestDevicesClearMacAddressTable *RequestDevicesClearMacAddressTable, ClearMacAddressTableQueryParams *ClearMacAddressTableQueryParams) (*ResponseDevicesClearMacAddressTable, *resty.Response, error) { + path := "/dna/intent/api/v1/interface/{interfaceUuid}/operation" path = strings.Replace(path, "{interfaceUuid}", fmt.Sprintf("%v", interfaceUUID), -1) + queryString, _ := query.Values(ClearMacAddressTableQueryParams) + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetConnectedDeviceDetail{}). + SetQueryString(queryString.Encode()).SetBody(requestDevicesClearMacAddressTable). + SetResult(&ResponseDevicesClearMacAddressTable{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3118,36 +7058,36 @@ func (s *DevicesService) GetConnectedDeviceDetail(deviceUUID string, interfaceUU } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetConnectedDeviceDetail(deviceUUID, interfaceUUID) + return s.ClearMacAddressTable(interfaceUUID, requestDevicesClearMacAddressTable, ClearMacAddressTableQueryParams) } - return nil, response, fmt.Errorf("error with operation GetConnectedDeviceDetail") + + return nil, response, fmt.Errorf("error with operation ClearMacAddressTable") } - result := response.Result().(*ResponseDevicesGetConnectedDeviceDetail) + result := response.Result().(*ResponseDevicesClearMacAddressTable) return result, response, err } -//GetLinecardDetails Get Linecard details - 46a1-4b02-48fb-8fbf -/* Get line card detail for a given deviceuuid. Response will contain serial no, part no, switch no and slot no. - +//AddDeviceKnowYourNetwork Add Device - 4bb2-2af0-46fa-8f08 +/* Adds the device with given credential -@param deviceUUID deviceUuid path parameter. instanceuuid of device -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-linecard-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-device-know-your-network-v1 */ -func (s *DevicesService) GetLinecardDetails(deviceUUID string) (*ResponseDevicesGetLinecardDetails, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{deviceUuid}/line-card" - path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) +func (s *DevicesService) AddDeviceKnowYourNetwork(requestDevicesAddDeviceKnowYourNetwork *RequestDevicesAddDeviceKnowYourNetwork) (*ResponseDevicesAddDeviceKnowYourNetwork, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetLinecardDetails{}). + SetBody(requestDevicesAddDeviceKnowYourNetwork). + SetResult(&ResponseDevicesAddDeviceKnowYourNetwork{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3155,36 +7095,36 @@ func (s *DevicesService) GetLinecardDetails(deviceUUID string) (*ResponseDevices } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetLinecardDetails(deviceUUID) + return s.AddDeviceKnowYourNetwork(requestDevicesAddDeviceKnowYourNetwork) } - return nil, response, fmt.Errorf("error with operation GetLinecardDetails") + + return nil, response, fmt.Errorf("error with operation AddDeviceKnowYourNetwork") } - result := response.Result().(*ResponseDevicesGetLinecardDetails) + result := response.Result().(*ResponseDevicesAddDeviceKnowYourNetwork) return result, response, err } -//PoeDetails POE details - 8ba6-7932-4ed9-abae -/* Returns POE details for device. - +//ExportDeviceList Export Device list - cd98-780f-4888-a66d +/* Exports the selected network device to a file -@param deviceUUID deviceUuid path parameter. uuid of the device -Documentation Link: https://developer.cisco.com/docs/dna-center/#!poe-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!export-device-list-v1 */ -func (s *DevicesService) PoeDetails(deviceUUID string) (*ResponseDevicesPoeDetails, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{deviceUuid}/poe" - path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) +func (s *DevicesService) ExportDeviceList(requestDevicesExportDeviceList *RequestDevicesExportDeviceList) (*ResponseDevicesExportDeviceList, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/file" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesPoeDetails{}). + SetBody(requestDevicesExportDeviceList). + SetResult(&ResponseDevicesExportDeviceList{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3192,36 +7132,36 @@ func (s *DevicesService) PoeDetails(deviceUUID string) (*ResponseDevicesPoeDetai } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.PoeDetails(deviceUUID) + return s.ExportDeviceList(requestDevicesExportDeviceList) } - return nil, response, fmt.Errorf("error with operation PoeDetails") + + return nil, response, fmt.Errorf("error with operation ExportDeviceList") } - result := response.Result().(*ResponseDevicesPoeDetails) + result := response.Result().(*ResponseDevicesExportDeviceList) return result, response, err } -//GetSupervisorCardDetail Get Supervisor card detail - 88aa-1b52-4a38-bf97 -/* Get supervisor card detail for a given deviceuuid. Response will contain serial no, part no, switch no and slot no. - +//CreateUserDefinedField Create User-Defined-Field - 0a9c-18e7-4caa-8b07 +/* Creates a new global User Defined Field, which can be assigned to devices -@param deviceUUID deviceUuid path parameter. instanceuuid of device -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-supervisor-card-detail +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-user-defined-field-v1 */ -func (s *DevicesService) GetSupervisorCardDetail(deviceUUID string) (*ResponseDevicesGetSupervisorCardDetail, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{deviceUuid}/supervisor-card" - path = strings.Replace(path, "{deviceUuid}", fmt.Sprintf("%v", deviceUUID), -1) +func (s *DevicesService) CreateUserDefinedField(requestDevicesCreateUserDefinedField *RequestDevicesCreateUserDefinedField) (*ResponseDevicesCreateUserDefinedField, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/user-defined-field" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetSupervisorCardDetail{}). + SetBody(requestDevicesCreateUserDefinedField). + SetResult(&ResponseDevicesCreateUserDefinedField{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3229,36 +7169,35 @@ func (s *DevicesService) GetSupervisorCardDetail(deviceUUID string) (*ResponseDe } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetSupervisorCardDetail(deviceUUID) + return s.CreateUserDefinedField(requestDevicesCreateUserDefinedField) } - return nil, response, fmt.Errorf("error with operation GetSupervisorCardDetail") + + return nil, response, fmt.Errorf("error with operation CreateUserDefinedField") } - result := response.Result().(*ResponseDevicesGetSupervisorCardDetail) + result := response.Result().(*ResponseDevicesCreateUserDefinedField) return result, response, err } -//GetDeviceByID Get Device by ID - 8fa8-eb40-4a4a-8d96 -/* Returns the network device details for the given device ID - +//OverrideResyncInterval Override resync interval - 42ac-59bd-41db-a4fe +/* Overrides the global resync interval on all network devices. This essentially removes device specific intervals if set. -@param id id path parameter. Device ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!override-resync-interval-v1 */ -func (s *DevicesService) GetDeviceByID(id string) (*ResponseDevicesGetDeviceByID, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{id}" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) +func (s *DevicesService) OverrideResyncInterval() (*ResponseDevicesOverrideResyncInterval, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/resyncIntervalSettings/override" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceByID{}). + SetResult(&ResponseDevicesOverrideResyncInterval{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3266,36 +7205,36 @@ func (s *DevicesService) GetDeviceByID(id string) (*ResponseDevicesGetDeviceByID } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceByID(id) + return s.OverrideResyncInterval() } - return nil, response, fmt.Errorf("error with operation GetDeviceById") + + return nil, response, fmt.Errorf("error with operation OverrideResyncInterval") } - result := response.Result().(*ResponseDevicesGetDeviceByID) + result := response.Result().(*ResponseDevicesOverrideResyncInterval) return result, response, err } -//GetDeviceSummary Get Device Summary - 819f-9aa5-4fea-b7bf -/* Returns brief summary of device info such as hostname, management IP address for the given device Id +//RogueAdditionalDetails Rogue Additional Details - 659c-e9bd-403a-8de6 +/* This API provides additional information of the rogue threats with details at BSSID level. The additional information includes Switch Port details in case of Rogue on Wire, first time when the rogue is seen in the network etc. -@param id id path parameter. Device ID - -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!rogue-additional-details-v1 */ -func (s *DevicesService) GetDeviceSummary(id string) (*ResponseDevicesGetDeviceSummary, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{id}/brief" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) +func (s *DevicesService) RogueAdditionalDetails(requestDevicesRogueAdditionalDetails *RequestDevicesRogueAdditionalDetails) (*ResponseDevicesRogueAdditionalDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/security/rogue/additional/details" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceSummary{}). + SetBody(requestDevicesRogueAdditionalDetails). + SetResult(&ResponseDevicesRogueAdditionalDetails{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3303,36 +7242,36 @@ func (s *DevicesService) GetDeviceSummary(id string) (*ResponseDevicesGetDeviceS } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceSummary(id) + return s.RogueAdditionalDetails(requestDevicesRogueAdditionalDetails) } - return nil, response, fmt.Errorf("error with operation GetDeviceSummary") + + return nil, response, fmt.Errorf("error with operation RogueAdditionalDetails") } - result := response.Result().(*ResponseDevicesGetDeviceSummary) + result := response.Result().(*ResponseDevicesRogueAdditionalDetails) return result, response, err } -//GetPollingIntervalByID Get Polling Interval by Id - 8291-8a1b-4d28-9c5c -/* Returns polling interval by device id - +//RogueAdditionalDetailCount Rogue Additional Detail Count - 4ca7-59be-4b99-9041 +/* This API returns the count for the Rogue Additional Details. -@param id id path parameter. Device ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-polling-interval-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!rogue-additional-detail-count-v1 */ -func (s *DevicesService) GetPollingIntervalByID(id string) (*ResponseDevicesGetPollingIntervalByID, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{id}/collection-schedule" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) +func (s *DevicesService) RogueAdditionalDetailCount(requestDevicesRogueAdditionalDetailCount *RequestDevicesRogueAdditionalDetailCount) (*ResponseDevicesRogueAdditionalDetailCount, *resty.Response, error) { + path := "/dna/intent/api/v1/security/rogue/additional/details/count" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetPollingIntervalByID{}). + SetBody(requestDevicesRogueAdditionalDetailCount). + SetResult(&ResponseDevicesRogueAdditionalDetailCount{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3340,35 +7279,36 @@ func (s *DevicesService) GetPollingIntervalByID(id string) (*ResponseDevicesGetP } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetPollingIntervalByID(id) + return s.RogueAdditionalDetailCount(requestDevicesRogueAdditionalDetailCount) } - return nil, response, fmt.Errorf("error with operation GetPollingIntervalById") + + return nil, response, fmt.Errorf("error with operation RogueAdditionalDetailCount") } - result := response.Result().(*ResponseDevicesGetPollingIntervalByID) + result := response.Result().(*ResponseDevicesRogueAdditionalDetailCount) return result, response, err } -//GetOrganizationListForMeraki Get Organization list for Meraki - 84b3-7ae5-4c59-ab28 -/* Returns list of organizations for meraki dashboard +//StartWirelessRogueApContainment Start Wireless Rogue AP Containment - 6998-5b93-4218-aea5 +/* Intent API to start the wireless rogue access point containment. This API will initiate the containment operation on the strongest detecting WLC for the given Rogue AP. This is a resource intensive operation which has legal implications since the rogue access point on whom it is triggered, might be a valid neighbor access point. -@param id id path parameter. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-organization-list-for-meraki +Documentation Link: https://developer.cisco.com/docs/dna-center/#!start-wireless-rogue-ap-containment-v1 */ -func (s *DevicesService) GetOrganizationListForMeraki(id string) (*ResponseDevicesGetOrganizationListForMeraki, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{id}/meraki-organization" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) +func (s *DevicesService) StartWirelessRogueApContainment(requestDevicesStartWirelessRogueAPContainment *RequestDevicesStartWirelessRogueApContainment) (*ResponseDevicesStartWirelessRogueApContainment, *resty.Response, error) { + path := "/dna/intent/api/v1/security/rogue/wireless-containment/start" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetOrganizationListForMeraki{}). + SetBody(requestDevicesStartWirelessRogueAPContainment). + SetResult(&ResponseDevicesStartWirelessRogueApContainment{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3376,38 +7316,36 @@ func (s *DevicesService) GetOrganizationListForMeraki(id string) (*ResponseDevic } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetOrganizationListForMeraki(id) + return s.StartWirelessRogueApContainment(requestDevicesStartWirelessRogueAPContainment) } - return nil, response, fmt.Errorf("error with operation GetOrganizationListForMeraki") + + return nil, response, fmt.Errorf("error with operation StartWirelessRogueApContainment") } - result := response.Result().(*ResponseDevicesGetOrganizationListForMeraki) + result := response.Result().(*ResponseDevicesStartWirelessRogueApContainment) return result, response, err } -//GetDeviceInterfaceVLANs Get Device Interface VLANs - 288d-f949-4f2a-9746 -/* Returns Device Interface VLANs +//StopWirelessRogueApContainment Stop Wireless Rogue AP Containment - b692-6b1c-4d0a-b3fb +/* Intent API to stop the wireless rogue access point containment. This API will stop the containment through single WLC. The response includes the details like WLC and BSSID on which the stop containment has been initiated. -@param id id path parameter. -@param GetDeviceInterfaceVLANsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interface-vlans +Documentation Link: https://developer.cisco.com/docs/dna-center/#!stop-wireless-rogue-ap-containment-v1 */ -func (s *DevicesService) GetDeviceInterfaceVLANs(id string, GetDeviceInterfaceVLANsQueryParams *GetDeviceInterfaceVLANsQueryParams) (*ResponseDevicesGetDeviceInterfaceVLANs, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{id}/vlan" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - - queryString, _ := query.Values(GetDeviceInterfaceVLANsQueryParams) +func (s *DevicesService) StopWirelessRogueApContainment(requestDevicesStopWirelessRogueAPContainment *RequestDevicesStopWirelessRogueApContainment) (*ResponseDevicesStopWirelessRogueApContainment, *resty.Response, error) { + path := "/dna/intent/api/v1/security/rogue/wireless-containment/stop" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseDevicesGetDeviceInterfaceVLANs{}). + SetBody(requestDevicesStopWirelessRogueAPContainment). + SetResult(&ResponseDevicesStopWirelessRogueApContainment{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3415,36 +7353,36 @@ func (s *DevicesService) GetDeviceInterfaceVLANs(id string, GetDeviceInterfaceVL } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceInterfaceVLANs(id, GetDeviceInterfaceVLANsQueryParams) + return s.StopWirelessRogueApContainment(requestDevicesStopWirelessRogueAPContainment) } - return nil, response, fmt.Errorf("error with operation GetDeviceInterfaceVlans") + + return nil, response, fmt.Errorf("error with operation StopWirelessRogueApContainment") } - result := response.Result().(*ResponseDevicesGetDeviceInterfaceVLANs) + result := response.Result().(*ResponseDevicesStopWirelessRogueApContainment) return result, response, err } -//GetWirelessLanControllerDetailsByID Get wireless lan controller details by Id - f682-6a8e-41bb-a242 -/* Returns the wireless lan controller info with given device ID +//ThreatDetails Threat Details - f6bf-c880-435a-ae2a +/* The details for the Rogue and aWIPS threats -@param id id path parameter. Device ID - -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-wireless-lan-controller-details-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!threat-details-v1 */ -func (s *DevicesService) GetWirelessLanControllerDetailsByID(id string) (*ResponseDevicesGetWirelessLanControllerDetailsByID, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{id}/wireless-info" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) +func (s *DevicesService) ThreatDetails(requestDevicesThreatDetails *RequestDevicesThreatDetails) (*ResponseDevicesThreatDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/security/threats/details" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetWirelessLanControllerDetailsByID{}). + SetBody(requestDevicesThreatDetails). + SetResult(&ResponseDevicesThreatDetails{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3452,35 +7390,36 @@ func (s *DevicesService) GetWirelessLanControllerDetailsByID(id string) (*Respon } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetWirelessLanControllerDetailsByID(id) + return s.ThreatDetails(requestDevicesThreatDetails) } - return nil, response, fmt.Errorf("error with operation GetWirelessLanControllerDetailsById") + + return nil, response, fmt.Errorf("error with operation ThreatDetails") } - result := response.Result().(*ResponseDevicesGetWirelessLanControllerDetailsByID) + result := response.Result().(*ResponseDevicesThreatDetails) return result, response, err } -//GetDeviceConfigByID Get Device Config by Id - 84b3-3a9e-480a-bcaf -/* Returns the device config by specified device ID +//ThreatDetailCount Threat Detail Count - eb8c-2a83-45aa-871f +/* The details count for the Rogue and aWIPS threats -@param networkDeviceID networkDeviceId path parameter. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-config-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!threat-detail-count-v1 */ -func (s *DevicesService) GetDeviceConfigByID(networkDeviceID string) (*ResponseDevicesGetDeviceConfigByID, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{networkDeviceId}/config" - path = strings.Replace(path, "{networkDeviceId}", fmt.Sprintf("%v", networkDeviceID), -1) +func (s *DevicesService) ThreatDetailCount(requestDevicesThreatDetailCount *RequestDevicesThreatDetailCount) (*ResponseDevicesThreatDetailCount, *resty.Response, error) { + path := "/dna/intent/api/v1/security/threats/details/count" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetDeviceConfigByID{}). + SetBody(requestDevicesThreatDetailCount). + SetResult(&ResponseDevicesThreatDetailCount{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3488,39 +7427,36 @@ func (s *DevicesService) GetDeviceConfigByID(networkDeviceID string) (*ResponseD } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceConfigByID(networkDeviceID) + return s.ThreatDetailCount(requestDevicesThreatDetailCount) } - return nil, response, fmt.Errorf("error with operation GetDeviceConfigById") + + return nil, response, fmt.Errorf("error with operation ThreatDetailCount") } - result := response.Result().(*ResponseDevicesGetDeviceConfigByID) + result := response.Result().(*ResponseDevicesThreatDetailCount) return result, response, err } -//GetNetworkDeviceByPaginationRange Get Network Device by pagination range - f495-48c5-4be8-a3e2 -/* Returns the list of network devices for the given pagination range. The maximum number of records that can be retrieved is 500 - +//AddAllowedMacAddress Add Allowed Mac Address - b6a0-887d-4fe9-9d5f +/* Intent API to add the threat mac address to allowed list. -@param startIndex startIndex path parameter. Start index [>=1] - -@param recordsToReturn recordsToReturn path parameter. Number of records to return [1<= recordsToReturn <= 500] -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-device-by-pagination-range +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-allowed-mac-address-v1 */ -func (s *DevicesService) GetNetworkDeviceByPaginationRange(startIndex int, recordsToReturn int) (*ResponseDevicesGetNetworkDeviceByPaginationRange, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/{startIndex}/{recordsToReturn}" - path = strings.Replace(path, "{startIndex}", fmt.Sprintf("%v", startIndex), -1) - path = strings.Replace(path, "{recordsToReturn}", fmt.Sprintf("%v", recordsToReturn), -1) +func (s *DevicesService) AddAllowedMacAddress(requestDevicesAddAllowedMacAddress *RequestDevicesAddAllowedMacAddress) (*ResponseDevicesAddAllowedMacAddress, *resty.Response, error) { + path := "/dna/intent/api/v1/security/threats/rogue/allowed-list" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseDevicesGetNetworkDeviceByPaginationRange{}). + SetBody(requestDevicesAddAllowedMacAddress). + SetResult(&ResponseDevicesAddAllowedMacAddress{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -3528,38 +7464,34 @@ func (s *DevicesService) GetNetworkDeviceByPaginationRange(startIndex int, recor } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetNetworkDeviceByPaginationRange(startIndex, recordsToReturn) + return s.AddAllowedMacAddress(requestDevicesAddAllowedMacAddress) } - return nil, response, fmt.Errorf("error with operation GetNetworkDeviceByPaginationRange") + + return nil, response, fmt.Errorf("error with operation AddAllowedMacAddress") } - result := response.Result().(*ResponseDevicesGetNetworkDeviceByPaginationRange) + result := response.Result().(*ResponseDevicesAddAllowedMacAddress) return result, response, err } -//ClearMacAddressTable Clear Mac-Address table - 24be-a97f-43f9-bc65 -/* Clear mac-address on an individual port. In request body, operation needs to be specified as 'ClearMacAddress'. In the future more possible operations will be added to this API - +//ThreatSummary Threat Summary - 3b98-98f0-4cfb-b74b +/* The Threat Summary for the Rogues and aWIPS -@param interfaceUUID interfaceUuid path parameter. Interface Id -@param ClearMacAddressTableQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!clear-mac-address-table +Documentation Link: https://developer.cisco.com/docs/dna-center/#!threat-summary-v1 */ -func (s *DevicesService) ClearMacAddressTable(interfaceUUID string, requestDevicesClearMacAddressTable *RequestDevicesClearMacAddressTable, ClearMacAddressTableQueryParams *ClearMacAddressTableQueryParams) (*ResponseDevicesClearMacAddressTable, *resty.Response, error) { - path := "/dna/intent/api/v1/interface/{interfaceUuid}/operation" - path = strings.Replace(path, "{interfaceUuid}", fmt.Sprintf("%v", interfaceUUID), -1) - - queryString, _ := query.Values(ClearMacAddressTableQueryParams) +func (s *DevicesService) ThreatSummary(requestDevicesThreatSummary *RequestDevicesThreatSummary) (*ResponseDevicesThreatSummary, *resty.Response, error) { + path := "/dna/intent/api/v1/security/threats/summary" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetBody(requestDevicesClearMacAddressTable). - SetResult(&ResponseDevicesClearMacAddressTable{}). + SetBody(requestDevicesThreatSummary). + SetResult(&ResponseDevicesThreatSummary{}). SetError(&Error). Post(path) @@ -3571,32 +7503,35 @@ func (s *DevicesService) ClearMacAddressTable(interfaceUUID string, requestDevic if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.ClearMacAddressTable(interfaceUUID, requestDevicesClearMacAddressTable, ClearMacAddressTableQueryParams) + return s.ThreatSummary(requestDevicesThreatSummary) } - return nil, response, fmt.Errorf("error with operation ClearMacAddressTable") + return nil, response, fmt.Errorf("error with operation ThreatSummary") } - result := response.Result().(*ResponseDevicesClearMacAddressTable) + result := response.Result().(*ResponseDevicesThreatSummary) return result, response, err } -//AddDevice2 Add Device - 4bb2-2af0-46fa-8f08 -/* Adds the device with given credential +//GetDeviceInterfaceStatsInfoV2 Get Device Interface Stats Info - 76bb-5957-49ab-8a3b +/* This API returns the Interface Stats for the given Device Id. Please refer to the Feature tab for the Request Body usage and the API filtering support. + +@param deviceID deviceId path parameter. Network Device Id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-device2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-interface-stats-info-v2 */ -func (s *DevicesService) AddDevice2(requestDevicesAddDevice2 *RequestDevicesAddDevice2) (*ResponseDevicesAddDevice2, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device" +func (s *DevicesService) GetDeviceInterfaceStatsInfoV2(deviceID string, requestDevicesGetDeviceInterfaceStatsInfoV2 *RequestDevicesGetDeviceInterfaceStatsInfoV2) (*ResponseDevicesGetDeviceInterfaceStatsInfoV2, *resty.Response, error) { + path := "/dna/intent/api/v2/networkDevices/{deviceId}/interfaces/query" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestDevicesAddDevice2). - SetResult(&ResponseDevicesAddDevice2{}). + SetBody(requestDevicesGetDeviceInterfaceStatsInfoV2). + SetResult(&ResponseDevicesGetDeviceInterfaceStatsInfoV2{}). SetError(&Error). Post(path) @@ -3608,34 +7543,35 @@ func (s *DevicesService) AddDevice2(requestDevicesAddDevice2 *RequestDevicesAddD if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.AddDevice2(requestDevicesAddDevice2) + return s.GetDeviceInterfaceStatsInfoV2(deviceID, requestDevicesGetDeviceInterfaceStatsInfoV2) } - return nil, response, fmt.Errorf("error with operation AddDevice2") + return nil, response, fmt.Errorf("error with operation GetDeviceInterfaceStatsInfoV2") } - result := response.Result().(*ResponseDevicesAddDevice2) + result := response.Result().(*ResponseDevicesGetDeviceInterfaceStatsInfoV2) return result, response, err } -//ExportDeviceList Export Device list - cd98-780f-4888-a66d -/* Exports the selected network device to a file +//UpdatePlannedAccessPointForFloor Update Planned Access Point for Floor - 399f-596d-4f69-a080 +/* Allows updating a planned access point on an existing floor map including its planned radio and antenna details. Use the Get variant of this API to fetch the existing planned access points for the floor. The payload to update a planned access point is in the same format, albeit a single object instead of a list, of that API. +@param floorID floorId path parameter. The instance UUID of the floor hierarchy element -Documentation Link: https://developer.cisco.com/docs/dna-center/#!export-device-list */ -func (s *DevicesService) ExportDeviceList(requestDevicesExportDeviceList *RequestDevicesExportDeviceList) (*ResponseDevicesExportDeviceList, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/file" +func (s *DevicesService) UpdatePlannedAccessPointForFloor(floorID string, requestDevicesUpdatePlannedAccessPointForFloor *RequestDevicesUpdatePlannedAccessPointForFloor) (*ResponseDevicesUpdatePlannedAccessPointForFloor, *resty.Response, error) { + path := "/dna/intent/api/v1/floors/{floorId}/planned-access-points" + path = strings.Replace(path, "{floorId}", fmt.Sprintf("%v", floorID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestDevicesExportDeviceList). - SetResult(&ResponseDevicesExportDeviceList{}). + SetBody(requestDevicesUpdatePlannedAccessPointForFloor). + SetResult(&ResponseDevicesUpdatePlannedAccessPointForFloor{}). SetError(&Error). - Post(path) + Put(path) if err != nil { return nil, nil, err @@ -3643,36 +7579,36 @@ func (s *DevicesService) ExportDeviceList(requestDevicesExportDeviceList *Reques } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.ExportDeviceList(requestDevicesExportDeviceList) + return s.UpdatePlannedAccessPointForFloor(floorID, requestDevicesUpdatePlannedAccessPointForFloor) } - - return nil, response, fmt.Errorf("error with operation ExportDeviceList") + return nil, response, fmt.Errorf("error with operation UpdatePlannedAccessPointForFloor") } - result := response.Result().(*ResponseDevicesExportDeviceList) + result := response.Result().(*ResponseDevicesUpdatePlannedAccessPointForFloor) return result, response, err } -//CreateUserDefinedField Create User-Defined-Field - 0a9c-18e7-4caa-8b07 -/* Creates a new global User Defined Field, which can be assigned to devices +//UpdateHealthScoreDefinitionForTheGivenID Update health score definition for the given id. - f295-190f-4f08-bbe0 +/* Update health threshold, include status of overall health status. +And also to synchronize with global profile issue thresholds of the definition for given id. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml +@param id id path parameter. Health score definition id. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-user-defined-field */ -func (s *DevicesService) CreateUserDefinedField(requestDevicesCreateUserDefinedField *RequestDevicesCreateUserDefinedField) (*ResponseDevicesCreateUserDefinedField, *resty.Response, error) { - path := "/dna/intent/api/v1/network-device/user-defined-field" +func (s *DevicesService) UpdateHealthScoreDefinitionForTheGivenID(id string, requestDevicesUpdateHealthScoreDefinitionForTheGivenId *RequestDevicesUpdateHealthScoreDefinitionForTheGivenID) (*ResponseDevicesUpdateHealthScoreDefinitionForTheGivenID, *resty.Response, error) { + path := "/dna/intent/api/v1/healthScoreDefinitions/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestDevicesCreateUserDefinedField). - SetResult(&ResponseDevicesCreateUserDefinedField{}). + SetBody(requestDevicesUpdateHealthScoreDefinitionForTheGivenId). + SetResult(&ResponseDevicesUpdateHealthScoreDefinitionForTheGivenID{}). SetError(&Error). - Post(path) + Put(path) if err != nil { return nil, nil, err @@ -3680,15 +7616,13 @@ func (s *DevicesService) CreateUserDefinedField(requestDevicesCreateUserDefinedF } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateUserDefinedField(requestDevicesCreateUserDefinedField) + return s.UpdateHealthScoreDefinitionForTheGivenID(id, requestDevicesUpdateHealthScoreDefinitionForTheGivenId) } - - return nil, response, fmt.Errorf("error with operation CreateUserDefinedField") + return nil, response, fmt.Errorf("error with operation UpdateHealthScoreDefinitionForTheGivenId") } - result := response.Result().(*ResponseDevicesCreateUserDefinedField) + result := response.Result().(*ResponseDevicesUpdateHealthScoreDefinitionForTheGivenID) return result, response, err } @@ -3732,19 +7666,19 @@ func (s *DevicesService) UpdateInterfaceDetails(interfaceUUID string, requestDev } -//SyncDevices2 Sync Devices - aeb9-eb67-460b-92df -/* Sync the devices provided as input +//UpdateDeviceDetails Update Device Details - aeb9-eb67-460b-92df +/* Update the credentials, management IP address of a given device (or a set of devices) in Catalyst Center and trigger an inventory sync. */ -func (s *DevicesService) SyncDevices2(requestDevicesSyncDevices2 *RequestDevicesSyncDevices2) (*ResponseDevicesSyncDevices2, *resty.Response, error) { +func (s *DevicesService) UpdateDeviceDetails(requestDevicesUpdateDeviceDetails *RequestDevicesUpdateDeviceDetails) (*ResponseDevicesUpdateDeviceDetails, *resty.Response, error) { path := "/dna/intent/api/v1/network-device" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestDevicesSyncDevices2). - SetResult(&ResponseDevicesSyncDevices2{}). + SetBody(requestDevicesUpdateDeviceDetails). + SetResult(&ResponseDevicesUpdateDeviceDetails{}). SetError(&Error). Put(path) @@ -3755,12 +7689,12 @@ func (s *DevicesService) SyncDevices2(requestDevicesSyncDevices2 *RequestDevices if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.SyncDevices2(requestDevicesSyncDevices2) + return s.UpdateDeviceDetails(requestDevicesUpdateDeviceDetails) } - return nil, response, fmt.Errorf("error with operation SyncDevices2") + return nil, response, fmt.Errorf("error with operation UpdateDeviceDetails") } - result := response.Result().(*ResponseDevicesSyncDevices2) + result := response.Result().(*ResponseDevicesUpdateDeviceDetails) return result, response, err } @@ -3906,6 +7840,155 @@ func (s *DevicesService) AddUserDefinedFieldToDevice(deviceID string, requestDev } +//UpdateDeviceManagementAddress Update Device Management Address - af93-b807-4feb-a985 +/* This is a simple PUT API to edit the management IP Address of the device. + + +@param deviceid deviceid path parameter. The UUID of the device whose management IP address is to be updated. + +*/ +func (s *DevicesService) UpdateDeviceManagementAddress(deviceid string, requestDevicesUpdateDeviceManagementAddress *RequestDevicesUpdateDeviceManagementAddress) (*ResponseDevicesUpdateDeviceManagementAddress, *resty.Response, error) { + path := "/dna/intent/api/v1/network-device/{deviceid}/management-address" + path = strings.Replace(path, "{deviceid}", fmt.Sprintf("%v", deviceid), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestDevicesUpdateDeviceManagementAddress). + SetResult(&ResponseDevicesUpdateDeviceManagementAddress{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateDeviceManagementAddress(deviceid, requestDevicesUpdateDeviceManagementAddress) + } + return nil, response, fmt.Errorf("error with operation UpdateDeviceManagementAddress") + } + + result := response.Result().(*ResponseDevicesUpdateDeviceManagementAddress) + return result, response, err + +} + +//UpdateGlobalResyncInterval Update global resync interval - 25b5-39b4-4609-9e2a +/* Updates the resync interval (in minutes) globally for devices which do not have custom resync interval. To override this setting for all network devices refer to [/networkDevices/resyncIntervalSettings/override] + + + */ +func (s *DevicesService) UpdateGlobalResyncInterval(requestDevicesUpdateGlobalResyncInterval *RequestDevicesUpdateGlobalResyncInterval) (*ResponseDevicesUpdateGlobalResyncInterval, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/resyncIntervalSettings" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestDevicesUpdateGlobalResyncInterval). + SetResult(&ResponseDevicesUpdateGlobalResyncInterval{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateGlobalResyncInterval(requestDevicesUpdateGlobalResyncInterval) + } + return nil, response, fmt.Errorf("error with operation UpdateGlobalResyncInterval") + } + + result := response.Result().(*ResponseDevicesUpdateGlobalResyncInterval) + return result, response, err + +} + +//UpdateResyncIntervalForTheNetworkDevice Update resync interval for the network device - 92a0-db6c-428a-92d9 +/* Update the resync interval (in minutes) for the given network device id. +To disable periodic resync, set interval as `0`. +To use global settings, set interval as `null`. + + +@param id id path parameter. The id of the network device. + +*/ +func (s *DevicesService) UpdateResyncIntervalForTheNetworkDevice(id string, requestDevicesUpdateResyncIntervalForTheNetworkDevice *RequestDevicesUpdateResyncIntervalForTheNetworkDevice) (*ResponseDevicesUpdateResyncIntervalForTheNetworkDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/{id}/resyncIntervalSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestDevicesUpdateResyncIntervalForTheNetworkDevice). + SetResult(&ResponseDevicesUpdateResyncIntervalForTheNetworkDevice{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateResyncIntervalForTheNetworkDevice(id, requestDevicesUpdateResyncIntervalForTheNetworkDevice) + } + return nil, response, fmt.Errorf("error with operation UpdateResyncIntervalForTheNetworkDevice") + } + + result := response.Result().(*ResponseDevicesUpdateResyncIntervalForTheNetworkDevice) + return result, response, err + +} + +//DeletePlannedAccessPointForFloor Delete Planned Access Point for Floor - 6dad-1aac-4b3a-9e67 +/* Allow to delete a planned access point from an existing floor map including its planned radio and antenna details. Use the Get variant of this API to fetch the existing planned access points for the floor. The instanceUUID listed in each of the planned access point attributes acts as the path param input to this API to delete that specific instance. + + +@param floorID floorId path parameter. The instance UUID of the floor hierarchy element + +@param plannedAccessPointUUID plannedAccessPointUuid path parameter. The instance UUID of the planned access point to delete + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-planned-access-point-for-floor-v1 +*/ +func (s *DevicesService) DeletePlannedAccessPointForFloor(floorID string, plannedAccessPointUUID string) (*ResponseDevicesDeletePlannedAccessPointForFloor, *resty.Response, error) { + //floorID string,plannedAccessPointUUID string + path := "/dna/intent/api/v1/floors/{floorId}/planned-access-points/{plannedAccessPointUuid}" + path = strings.Replace(path, "{floorId}", fmt.Sprintf("%v", floorID), -1) + path = strings.Replace(path, "{plannedAccessPointUuid}", fmt.Sprintf("%v", plannedAccessPointUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesDeletePlannedAccessPointForFloor{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletePlannedAccessPointForFloor( + floorID, plannedAccessPointUUID) + } + return nil, response, fmt.Errorf("error with operation DeletePlannedAccessPointForFloor") + } + + result := response.Result().(*ResponseDevicesDeletePlannedAccessPointForFloor) + return result, response, err + +} + //DeleteUserDefinedField Delete User-Defined-Field - 78a3-c8b1-4799-892e /* Deletes an existing Global User-Defined-Field using it's id. @@ -3913,7 +7996,7 @@ func (s *DevicesService) AddUserDefinedFieldToDevice(deviceID string, requestDev @param id id path parameter. UDF id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-user-defined-field +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-user-defined-field-v1 */ func (s *DevicesService) DeleteUserDefinedField(id string) (*ResponseDevicesDeleteUserDefinedField, *resty.Response, error) { //id string @@ -3934,7 +8017,8 @@ func (s *DevicesService) DeleteUserDefinedField(id string) (*ResponseDevicesDele if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteUserDefinedField(id) + return s.DeleteUserDefinedField( + id) } return nil, response, fmt.Errorf("error with operation DeleteUserDefinedField") } @@ -3952,7 +8036,7 @@ func (s *DevicesService) DeleteUserDefinedField(id string) (*ResponseDevicesDele @param RemoveUserDefinedFieldFromDeviceQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-user-defined-field-from-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-user-defined-field-from-device-v1 */ func (s *DevicesService) RemoveUserDefinedFieldFromDevice(deviceID string, RemoveUserDefinedFieldFromDeviceQueryParams *RemoveUserDefinedFieldFromDeviceQueryParams) (*ResponseDevicesRemoveUserDefinedFieldFromDevice, *resty.Response, error) { //deviceID string,RemoveUserDefinedFieldFromDeviceQueryParams *RemoveUserDefinedFieldFromDeviceQueryParams @@ -3975,7 +8059,8 @@ func (s *DevicesService) RemoveUserDefinedFieldFromDevice(deviceID string, Remov if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.RemoveUserDefinedFieldFromDevice(deviceID, RemoveUserDefinedFieldFromDeviceQueryParams) + return s.RemoveUserDefinedFieldFromDevice( + deviceID, RemoveUserDefinedFieldFromDeviceQueryParams) } return nil, response, fmt.Errorf("error with operation RemoveUserDefinedFieldFromDevice") } @@ -3986,14 +8071,14 @@ func (s *DevicesService) RemoveUserDefinedFieldFromDevice(deviceID string, Remov } //DeleteDeviceByID Delete Device by Id - 1c89-4b58-48ea-b214 -/* Deletes the network device for the given Id +/* This API allows any network device that is not currently provisioned to be removed from the inventory. Important: Devices currently provisioned cannot be deleted. To delete a provisioned device, the device must be first deprovisioned. @param id id path parameter. Device ID @param DeleteDeviceByIdQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-device-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-device-by-id-v1 */ func (s *DevicesService) DeleteDeviceByID(id string, DeleteDeviceByIdQueryParams *DeleteDeviceByIDQueryParams) (*ResponseDevicesDeleteDeviceByID, *resty.Response, error) { //id string,DeleteDeviceByIdQueryParams *DeleteDeviceByIDQueryParams @@ -4016,7 +8101,8 @@ func (s *DevicesService) DeleteDeviceByID(id string, DeleteDeviceByIdQueryParams if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteDeviceByID(id, DeleteDeviceByIdQueryParams) + return s.DeleteDeviceByID( + id, DeleteDeviceByIdQueryParams) } return nil, response, fmt.Errorf("error with operation DeleteDeviceById") } @@ -4025,3 +8111,42 @@ func (s *DevicesService) DeleteDeviceByID(id string, DeleteDeviceByIdQueryParams return result, response, err } + +//RemoveAllowedMacAddress Remove Allowed Mac Address - c8ac-a91b-4c5a-9b5c +/* Intent API to remove the threat mac address from allowed list. + + +@param macAddress macAddress path parameter. Threat mac address which needs to be removed from the allowed list. Multiple mac addresses will be removed if provided as comma separated values (example: 00:2A:10:51:22:43,00:2A:10:51:22:44). Note: In one request, maximum 100 mac addresses can be removed. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-allowed-mac-address-v1 +*/ +func (s *DevicesService) RemoveAllowedMacAddress(macAddress string) (*ResponseDevicesRemoveAllowedMacAddress, *resty.Response, error) { + //macAddress string + path := "/dna/intent/api/v1/security/threats/rogue/allowed-list/{macAddress}" + path = strings.Replace(path, "{macAddress}", fmt.Sprintf("%v", macAddress), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseDevicesRemoveAllowedMacAddress{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RemoveAllowedMacAddress( + macAddress) + } + return nil, response, fmt.Errorf("error with operation RemoveAllowedMacAddress") + } + + result := response.Result().(*ResponseDevicesRemoveAllowedMacAddress) + return result, response, err + +} diff --git a/sdk/disaster_recovery.go b/sdk/disaster_recovery.go index 85c2cd2..cbb6109 100644 --- a/sdk/disaster_recovery.go +++ b/sdk/disaster_recovery.go @@ -2,6 +2,7 @@ package dnac import ( "fmt" + "net/http" "github.com/go-resty/resty/v2" ) @@ -123,7 +124,9 @@ type ResponseDisasterRecoveryDisasterRecoveryStatusIPsecTunnel struct { /* Returns the status of Disaster Recovery operation performed on the system. - */ + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!disaster-recovery-operational-status-v1 +*/ func (s *DisasterRecoveryService) DisasterRecoveryOperationalStatus() (*ResponseDisasterRecoveryDisasterRecoveryOperationalStatus, *resty.Response, error) { path := "/dna/intent/api/v1/disasterrecovery/system/operationstatus" @@ -140,6 +143,9 @@ func (s *DisasterRecoveryService) DisasterRecoveryOperationalStatus() (*Response } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DisasterRecoveryOperationalStatus() + } return nil, response, fmt.Errorf("error with operation DisasterRecoveryOperationalStatus") } @@ -152,7 +158,9 @@ func (s *DisasterRecoveryService) DisasterRecoveryOperationalStatus() (*Response /* Detailed and Summarized status of DR components (Active, Standby and Witness system's health). - */ + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!disaster-recovery-status-v1 +*/ func (s *DisasterRecoveryService) DisasterRecoveryStatus() (*ResponseDisasterRecoveryDisasterRecoveryStatus, *resty.Response, error) { path := "/dna/intent/api/v1/disasterrecovery/system/status" @@ -169,6 +177,9 @@ func (s *DisasterRecoveryService) DisasterRecoveryStatus() (*ResponseDisasterRec } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DisasterRecoveryStatus() + } return nil, response, fmt.Errorf("error with operation DisasterRecoveryStatus") } diff --git a/sdk/discovery.go b/sdk/discovery.go index 5844c60..26097fb 100644 --- a/sdk/discovery.go +++ b/sdk/discovery.go @@ -18,9 +18,9 @@ type GetDiscoveryJobsByIPQueryParams struct { Name string `url:"name,omitempty"` //name } type GetListOfDiscoveriesByDiscoveryIDQueryParams struct { - Offset int `url:"offset,omitempty"` //offset - Limit int `url:"limit,omitempty"` //limit - IPAddress string `url:"ipAddress,omitempty"` //ipAddress + Offset int `url:"offset,omitempty"` //Starting index for the records + Limit int `url:"limit,omitempty"` //Number of records to fetch from the starting index + IPAddress string `url:"ipAddress,omitempty"` //Filter records based on IP address } type GetDiscoveredNetworkDevicesByDiscoveryIDQueryParams struct { TaskID string `url:"taskId,omitempty"` //taskId @@ -33,19 +33,19 @@ type GetDiscoveredDevicesByRangeQueryParams struct { } type GetNetworkDevicesFromDiscoveryQueryParams struct { TaskID string `url:"taskId,omitempty"` //taskId - SortBy string `url:"sortBy,omitempty"` //sortBy - SortOrder string `url:"sortOrder,omitempty"` //sortOrder - IPAddress []string `url:"ipAddress,omitempty"` //ipAddress - PingStatus []string `url:"pingStatus,omitempty"` //pingStatus - SNMPStatus []string `url:"snmpStatus,omitempty"` //snmpStatus - CliStatus []string `url:"cliStatus,omitempty"` //cliStatus - NetconfStatus []string `url:"netconfStatus,omitempty"` //netconfStatus - HTTPStatus []string `url:"httpStatus,omitempty"` //httpStatus + SortBy string `url:"sortBy,omitempty"` //Sort by field. Available values are pingStatus, cliStatus,snmpStatus, httpStatus and netconfStatus + SortOrder string `url:"sortOrder,omitempty"` //Order of sorting based on sortBy. Available values are 'asc' and 'des' + IPAddress []string `url:"ipAddress,omitempty"` //IP Address of the device + PingStatus []string `url:"pingStatus,omitempty"` //Ping status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + SNMPStatus []string `url:"snmpStatus,omitempty"` //SNMP status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + Clistatus []string `url:"cliStatus,omitempty"` //CLI status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + NetconfStatus []string `url:"netconfStatus,omitempty"` //NETCONF status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + HTTPStatus []string `url:"httpStatus,omitempty"` //HTTP staus for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' } type GetGlobalCredentialsQueryParams struct { CredentialSubType string `url:"credentialSubType,omitempty"` //Credential type as CLI / SNMPV2_READ_COMMUNITY / SNMPV2_WRITE_COMMUNITY / SNMPV3 / HTTP_WRITE / HTTP_READ / NETCONF - SortBy string `url:"sortBy,omitempty"` //sortBy - Order string `url:"order,omitempty"` //order + SortBy string `url:"sortBy,omitempty"` //Field to sort the results by. Sorts by 'instanceId' if no value is provided + Order string `url:"order,omitempty"` //Order of sorting. 'asc' or 'des' } type ResponseDiscoveryDeleteAllDiscovery struct { @@ -73,7 +73,7 @@ type ResponseDiscoveryStartDiscoveryResponse struct { URL string `json:"url,omitempty"` // } type ResponseDiscoveryGetCountOfAllDiscoveryJobs struct { - Response *int `json:"response,omitempty"` // + Response *int `json:"response,omitempty"` // The count of all available discovery jobs Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetDiscoveryJobsByIP struct { @@ -82,7 +82,7 @@ type ResponseDiscoveryGetDiscoveryJobsByIP struct { } type ResponseDiscoveryGetDiscoveryJobsByIPResponse struct { AttributeInfo *ResponseDiscoveryGetDiscoveryJobsByIPResponseAttributeInfo `json:"attributeInfo,omitempty"` // - CliStatus string `json:"cliStatus,omitempty"` // + Clistatus string `json:"cliStatus,omitempty"` // DiscoveryStatus string `json:"discoveryStatus,omitempty"` // EndTime string `json:"endTime,omitempty"` // HTTPStatus string `json:"httpStatus,omitempty"` // @@ -112,89 +112,89 @@ type ResponseDiscoveryGetDiscoveryByID struct { Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetDiscoveryByIDResponse struct { - AttributeInfo *ResponseDiscoveryGetDiscoveryByIDResponseAttributeInfo `json:"attributeInfo,omitempty"` // - CdpLevel *int `json:"cdpLevel,omitempty"` // - DeviceIDs string `json:"deviceIds,omitempty"` // - DiscoveryCondition string `json:"discoveryCondition,omitempty"` // - DiscoveryStatus string `json:"discoveryStatus,omitempty"` // - DiscoveryType string `json:"discoveryType,omitempty"` // - EnablePasswordList string `json:"enablePasswordList,omitempty"` // - GlobalCredentialIDList []string `json:"globalCredentialIdList,omitempty"` // + AttributeInfo *ResponseDiscoveryGetDiscoveryByIDResponseAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + CdpLevel *int `json:"cdpLevel,omitempty"` // CDP level to which neighbor devices to be discovered + DeviceIDs string `json:"deviceIds,omitempty"` // Ids of the devices discovered in a discovery + DiscoveryCondition string `json:"discoveryCondition,omitempty"` // To indicate the discovery status. Available options: Complete or In Progress + DiscoveryStatus string `json:"discoveryStatus,omitempty"` // Status of the discovery. Available options are: Active, Inactive, Edit + DiscoveryType string `json:"discoveryType,omitempty"` // Type of the discovery. Available types are: 'Single', 'Range', 'CDP', 'LLDP', 'CIDR' + EnablePasswordList string `json:"enablePasswordList,omitempty"` // Enable Password of the devices to be discovered + GlobalCredentialIDList []string `json:"globalCredentialIdList,omitempty"` // List of global credential ids to be used HTTPReadCredential *ResponseDiscoveryGetDiscoveryByIDResponseHTTPReadCredential `json:"httpReadCredential,omitempty"` // HTTPWriteCredential *ResponseDiscoveryGetDiscoveryByIDResponseHTTPWriteCredential `json:"httpWriteCredential,omitempty"` // - ID string `json:"id,omitempty"` // - IPAddressList string `json:"ipAddressList,omitempty"` // - IPFilterList string `json:"ipFilterList,omitempty"` // - IsAutoCdp *bool `json:"isAutoCdp,omitempty"` // - LldpLevel *int `json:"lldpLevel,omitempty"` // - Name string `json:"name,omitempty"` // - NetconfPort string `json:"netconfPort,omitempty"` // - NumDevices *int `json:"numDevices,omitempty"` // - ParentDiscoveryID string `json:"parentDiscoveryId,omitempty"` // - PasswordList string `json:"passwordList,omitempty"` // - PreferredMgmtIPMethod string `json:"preferredMgmtIPMethod,omitempty"` // - ProtocolOrder string `json:"protocolOrder,omitempty"` // - RetryCount *int `json:"retryCount,omitempty"` // - SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // - SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // - SNMPMode string `json:"snmpMode,omitempty"` // - SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // - SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // - SNMPRoCommunity string `json:"snmpRoCommunity,omitempty"` // - SNMPRoCommunityDesc string `json:"snmpRoCommunityDesc,omitempty"` // - SNMPRwCommunity string `json:"snmpRwCommunity,omitempty"` // - SNMPRwCommunityDesc string `json:"snmpRwCommunityDesc,omitempty"` // - SNMPUserName string `json:"snmpUserName,omitempty"` // - TimeOut *int `json:"timeOut,omitempty"` // - UpdateMgmtIP *bool `json:"updateMgmtIp,omitempty"` // - UserNameList string `json:"userNameList,omitempty"` // + ID string `json:"id,omitempty"` // Unique Discovery Id + IPAddressList string `json:"ipAddressList,omitempty"` // List of IP address of the devices to be discovered + IPFilterList string `json:"ipFilterList,omitempty"` // IP addresses of the devices to be filtered + IsAutoCdp *bool `json:"isAutoCdp,omitempty"` // Flag to mention if CDP discovery or not + LldpLevel *int `json:"lldpLevel,omitempty"` // LLDP level to which neighbor devices to be discovered + Name string `json:"name,omitempty"` // Name for the discovery + NetconfPort string `json:"netconfPort,omitempty"` // Netconf port on the device. Netconf will need valid sshv2 credentials for it to work + NumDevices *int `json:"numDevices,omitempty"` // Number of devices discovered in the discovery + ParentDiscoveryID string `json:"parentDiscoveryId,omitempty"` // Parent Discovery Id from which the discovery was initiated + PasswordList string `json:"passwordList,omitempty"` // Password of the devices to be discovered + PreferredMgmtIPMethod string `json:"preferredMgmtIPMethod,omitempty"` // Preferred management IP method. Available options are '' and 'UseLoopBack' + ProtocolOrder string `json:"protocolOrder,omitempty"` // Order of protocol (ssh/telnet) in which device connection will be tried. Ex: 'telnet': only telnet; 'ssh,telnet': ssh with higher order than telnet + RetryCount *int `json:"retryCount,omitempty"` // Number of times to try establishing connection to device + SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // Auth passphrase for SNMP + SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // SNMP auth protocol. SHA' or 'MD5' + SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMP. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV' + SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // Passphrase for SNMP privacy + SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // SNMP privacy protocol. 'AES128' + SNMPRoCommunity string `json:"snmpRoCommunity,omitempty"` // SNMP RO community of the devices to be discovered + SNMPRoCommunityDesc string `json:"snmpRoCommunityDesc,omitempty"` // Description for SNMP RO community + SNMPRwCommunity string `json:"snmpRwCommunity,omitempty"` // SNMP RW community of the devices to be discovered + SNMPRwCommunityDesc string `json:"snmpRwCommunityDesc,omitempty"` // Description for SNMP RW community + SNMPUserName string `json:"snmpUserName,omitempty"` // SNMP username of the device + TimeOut *int `json:"timeOut,omitempty"` // Time to wait for device response. + UpdateMgmtIP *bool `json:"updateMgmtIp,omitempty"` // Updates Maganement IP if multiple IPs are available for a device. If set to true, when a device is rediscovered with a different IP, the management IP is updated. Default value is false + UserNameList string `json:"userNameList,omitempty"` // Username of the devices to be discovered } type ResponseDiscoveryGetDiscoveryByIDResponseAttributeInfo interface{} type ResponseDiscoveryGetDiscoveryByIDResponseHTTPReadCredential struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential + Description string `json:"description,omitempty"` // Description of the credential + ID string `json:"id,omitempty"` // Credential Id + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Credential Tenant Id + InstanceUUID string `json:"instanceUuid,omitempty"` // Credential Id + Password string `json:"password,omitempty"` // HTTP(S) password + Port *int `json:"port,omitempty"` // HTTP(S) port + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS + Username string `json:"username,omitempty"` // HTTP(S) username } type ResponseDiscoveryGetDiscoveryByIDResponseHTTPWriteCredential struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential + Description string `json:"description,omitempty"` // Description of the credential + ID string `json:"id,omitempty"` // Credential Id + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Credential Tenant Id + InstanceUUID string `json:"instanceUuid,omitempty"` // Credential Id + Password string `json:"password,omitempty"` // HTTP(S) password + Port *int `json:"port,omitempty"` // HTTP(S) port + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS + Username string `json:"username,omitempty"` // HTTP(S) username } type ResponseDiscoveryGetListOfDiscoveriesByDiscoveryID struct { Response *[]ResponseDiscoveryGetListOfDiscoveriesByDiscoveryIDResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetListOfDiscoveriesByDiscoveryIDResponse struct { - AttributeInfo *ResponseDiscoveryGetListOfDiscoveriesByDiscoveryIDResponseAttributeInfo `json:"attributeInfo,omitempty"` // - CliStatus string `json:"cliStatus,omitempty"` // - DiscoveryStatus string `json:"discoveryStatus,omitempty"` // - EndTime string `json:"endTime,omitempty"` // - HTTPStatus string `json:"httpStatus,omitempty"` // - ID string `json:"id,omitempty"` // - InventoryCollectionStatus string `json:"inventoryCollectionStatus,omitempty"` // - InventoryReachabilityStatus string `json:"inventoryReachabilityStatus,omitempty"` // - IPAddress string `json:"ipAddress,omitempty"` // - JobStatus string `json:"jobStatus,omitempty"` // - Name string `json:"name,omitempty"` // - NetconfStatus string `json:"netconfStatus,omitempty"` // - PingStatus string `json:"pingStatus,omitempty"` // - SNMPStatus string `json:"snmpStatus,omitempty"` // - StartTime string `json:"startTime,omitempty"` // - TaskID string `json:"taskId,omitempty"` // + AttributeInfo *ResponseDiscoveryGetListOfDiscoveriesByDiscoveryIDResponseAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + Clistatus string `json:"cliStatus,omitempty"` // CLI status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + DiscoveryStatus string `json:"discoveryStatus,omitempty"` // Status of the discovery. Available options are: MANAGED_DEVICES, UNMANAGED_DEVICES, DISCARDED_DEVICES + EndTime string `json:"endTime,omitempty"` // End time for the discovery job + HTTPStatus string `json:"httpStatus,omitempty"` // HTTP status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + ID string `json:"id,omitempty"` // Discovery Id + InventoryCollectionStatus string `json:"inventoryCollectionStatus,omitempty"` // Last known inventory collection status of the device. Available values are 'MANAGED', 'ABORTED', 'FAILED', 'PARTIAL COLLECTION FAILURE' and 'NOT-AVAILABLE' + InventoryReachabilityStatus string `json:"inventoryReachabilityStatus,omitempty"` // Last known reachability status of the device. Available values are : 'Reachable', 'Unreachable', 'PingReachable' and 'NOT-AVAILABLE' + IPAddress string `json:"ipAddress,omitempty"` // IP Address of the device + JobStatus string `json:"jobStatus,omitempty"` // Status of the job + Name string `json:"name,omitempty"` // Discovery name + NetconfStatus string `json:"netconfStatus,omitempty"` // NETCONF status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + PingStatus string `json:"pingStatus,omitempty"` // Ping status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED + SNMPStatus string `json:"snmpStatus,omitempty"` // SNMP status for the IP during the job run. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + StartTime string `json:"startTime,omitempty"` // Discovery job start time + TaskID string `json:"taskId,omitempty"` // Discovery job task id } type ResponseDiscoveryGetListOfDiscoveriesByDiscoveryIDResponseAttributeInfo interface{} type ResponseDiscoveryGetDiscoveredNetworkDevicesByDiscoveryID struct { @@ -202,55 +202,55 @@ type ResponseDiscoveryGetDiscoveredNetworkDevicesByDiscoveryID struct { Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetDiscoveredNetworkDevicesByDiscoveryIDResponse struct { - AnchorWlcForAp string `json:"anchorWlcForAp,omitempty"` // - AuthModelID string `json:"authModelId,omitempty"` // - AvgUpdateFrequency *int `json:"avgUpdateFrequency,omitempty"` // - BootDateTime string `json:"bootDateTime,omitempty"` // - CliStatus string `json:"cliStatus,omitempty"` // - DuplicateDeviceID string `json:"duplicateDeviceId,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorDescription string `json:"errorDescription,omitempty"` // - Family string `json:"family,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - HTTPStatus string `json:"httpStatus,omitempty"` // + AnchorWlcForAp string `json:"anchorWlcForAp,omitempty"` // Connected WLC device for AP + AuthModelID string `json:"authModelId,omitempty"` // Authentication model Id on device + AvgUpdateFrequency *int `json:"avgUpdateFrequency,omitempty"` // Frequency in which interface info gets updated + BootDateTime string `json:"bootDateTime,omitempty"` // Device boot time + Clistatus string `json:"cliStatus,omitempty"` // CLI status at the time of discovery + DuplicateDeviceID string `json:"duplicateDeviceId,omitempty"` // Identifier of the duplicate ip of the same device discovered + ErrorCode string `json:"errorCode,omitempty"` // Error code when inventory collection fails + ErrorDescription string `json:"errorDescription,omitempty"` // Error description when inventory collection fails + Family string `json:"family,omitempty"` // Family of device as switch, router, wireless lan controller, accesspoints + Hostname string `json:"hostname,omitempty"` // Device name + HTTPStatus string `json:"httpStatus,omitempty"` // HTTP(S) status at the time of discovery ID string `json:"id,omitempty"` // - ImageName string `json:"imageName,omitempty"` // - IngressQueueConfig string `json:"ingressQueueConfig,omitempty"` // - InterfaceCount string `json:"interfaceCount,omitempty"` // - InventoryCollectionStatus string `json:"inventoryCollectionStatus,omitempty"` // - InventoryReachabilityStatus string `json:"inventoryReachabilityStatus,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - LineCardCount string `json:"lineCardCount,omitempty"` // - LineCardID string `json:"lineCardId,omitempty"` // - Location string `json:"location,omitempty"` // - LocationName string `json:"locationName,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // - MemorySize string `json:"memorySize,omitempty"` // - NetconfStatus string `json:"netconfStatus,omitempty"` // - NumUpdates *int `json:"numUpdates,omitempty"` // - PingStatus string `json:"pingStatus,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - PortRange string `json:"portRange,omitempty"` // - QosStatus string `json:"qosStatus,omitempty"` // - ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SNMPContact string `json:"snmpContact,omitempty"` // - SNMPLocation string `json:"snmpLocation,omitempty"` // - SNMPStatus string `json:"snmpStatus,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - Tag string `json:"tag,omitempty"` // - TagCount *int `json:"tagCount,omitempty"` // - Type string `json:"type,omitempty"` // - UpTime string `json:"upTime,omitempty"` // - Vendor string `json:"vendor,omitempty"` // - WlcApDeviceStatus string `json:"wlcApDeviceStatus,omitempty"` // + ImageName string `json:"imageName,omitempty"` // Image details on the device + IngressQueueConfig string `json:"ingressQueueConfig,omitempty"` // Ingress queue config on device + InterfaceCount string `json:"interfaceCount,omitempty"` // Number of interfaces on the device + InventoryCollectionStatus string `json:"inventoryCollectionStatus,omitempty"` // Last known collection status of the device. Available values are : 'Deleting Device', 'Partial Collection Failure', 'Yet to Sync', 'Could Not Synchronize', 'Not Manageable', 'Managed', 'Incomplete', 'Unreachable', 'In Progress', 'Maintenance', 'Sync Disabled', 'Quarantined', 'Unassociated', 'Unknown' + InventoryReachabilityStatus string `json:"inventoryReachabilityStatus,omitempty"` // Last known reachability status of the device. Available values are : 'Reachable', 'Unreachable', 'PingReachable' and 'NOT-AVAILABLEā€™ + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the network device info last got updated + LineCardCount string `json:"lineCardCount,omitempty"` // Number of linecards on the device + LineCardID string `json:"lineCardId,omitempty"` // IDs of linecards of the device + Location string `json:"location,omitempty"` // Location ID that is associated with the device + LocationName string `json:"locationName,omitempty"` // Name of the associated location + MacAddress string `json:"macAddress,omitempty"` // MAC address of device + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // IP address of the device + MemorySize string `json:"memorySize,omitempty"` // Processor memory size + NetconfStatus string `json:"netconfStatus,omitempty"` // NETCONF status at the time of discovery. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + NumUpdates *int `json:"numUpdates,omitempty"` // Number of time network-device info got updated + PingStatus string `json:"pingStatus,omitempty"` // Ping status at the time of discovery. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + PlatformID string `json:"platformId,omitempty"` // Platform ID of device + PortRange string `json:"portRange,omitempty"` // Range of ports on device + QosStatus string `json:"qosStatus,omitempty"` // Qos status on device + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Failure reason for unreachable devices + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Reachability status of a device as Success/Failure/Discarded + Role string `json:"role,omitempty"` // Role of device as access, distribution, border router, core + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of device + SNMPContact string `json:"snmpContact,omitempty"` // SNMP contact on device + SNMPLocation string `json:"snmpLocation,omitempty"` // SNMP location on device + SNMPStatus string `json:"snmpStatus,omitempty"` // SNMP status at the time of discovery + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software version on the device + Tag string `json:"tag,omitempty"` // Tag ID that is associated with the device + TagCount *int `json:"tagCount,omitempty"` // Number of tags associated with the device + Type string `json:"type,omitempty"` // Type of device as switch, router, wireless lan controller, accesspoints + UpTime string `json:"upTime,omitempty"` // Time that shows for how long the device has been up + Vendor string `json:"vendor,omitempty"` // Vendor information of the device + WlcApDeviceStatus string `json:"wlcApDeviceStatus,omitempty"` // Collection status of AP devices } type ResponseDiscoveryGetDevicesDiscoveredByID struct { - Response *int `json:"response,omitempty"` // + Response *int `json:"response,omitempty"` // The count of network devices discovered in the given discovery Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetDiscoveredDevicesByRange struct { @@ -258,55 +258,55 @@ type ResponseDiscoveryGetDiscoveredDevicesByRange struct { Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetDiscoveredDevicesByRangeResponse struct { - AnchorWlcForAp string `json:"anchorWlcForAp,omitempty"` // - AuthModelID string `json:"authModelId,omitempty"` // - AvgUpdateFrequency *int `json:"avgUpdateFrequency,omitempty"` // - BootDateTime string `json:"bootDateTime,omitempty"` // - CliStatus string `json:"cliStatus,omitempty"` // - DuplicateDeviceID string `json:"duplicateDeviceId,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorDescription string `json:"errorDescription,omitempty"` // - Family string `json:"family,omitempty"` // - Hostname string `json:"hostname,omitempty"` // - HTTPStatus string `json:"httpStatus,omitempty"` // - ID string `json:"id,omitempty"` // - ImageName string `json:"imageName,omitempty"` // - IngressQueueConfig string `json:"ingressQueueConfig,omitempty"` // - InterfaceCount string `json:"interfaceCount,omitempty"` // - InventoryCollectionStatus string `json:"inventoryCollectionStatus,omitempty"` // - InventoryReachabilityStatus string `json:"inventoryReachabilityStatus,omitempty"` // - LastUpdated string `json:"lastUpdated,omitempty"` // - LineCardCount string `json:"lineCardCount,omitempty"` // - LineCardID string `json:"lineCardId,omitempty"` // - Location string `json:"location,omitempty"` // - LocationName string `json:"locationName,omitempty"` // - MacAddress string `json:"macAddress,omitempty"` // - ManagementIPAddress string `json:"managementIpAddress,omitempty"` // - MemorySize string `json:"memorySize,omitempty"` // - NetconfStatus string `json:"netconfStatus,omitempty"` // - NumUpdates *int `json:"numUpdates,omitempty"` // - PingStatus string `json:"pingStatus,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - PortRange string `json:"portRange,omitempty"` // - QosStatus string `json:"qosStatus,omitempty"` // - ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // - ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SerialNumber string `json:"serialNumber,omitempty"` // - SNMPContact string `json:"snmpContact,omitempty"` // - SNMPLocation string `json:"snmpLocation,omitempty"` // - SNMPStatus string `json:"snmpStatus,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - Tag string `json:"tag,omitempty"` // - TagCount *int `json:"tagCount,omitempty"` // - Type string `json:"type,omitempty"` // - UpTime string `json:"upTime,omitempty"` // - Vendor string `json:"vendor,omitempty"` // - WlcApDeviceStatus string `json:"wlcApDeviceStatus,omitempty"` // + AnchorWlcForAp string `json:"anchorWlcForAp,omitempty"` // Connected WLC device for AP + AuthModelID string `json:"authModelId,omitempty"` // Authentication model Id on device + AvgUpdateFrequency *int `json:"avgUpdateFrequency,omitempty"` // Frequency in which interface info gets updated + BootDateTime string `json:"bootDateTime,omitempty"` // Device boot time + Clistatus string `json:"cliStatus,omitempty"` // CLI status at the time of discovery + DuplicateDeviceID string `json:"duplicateDeviceId,omitempty"` // Identifier of the duplicate ip of the same device discovered + ErrorCode string `json:"errorCode,omitempty"` // Error code when inventory collection fails + ErrorDescription string `json:"errorDescription,omitempty"` // Error description when inventory collection fails + Family string `json:"family,omitempty"` // Family of device as switch, router, wireless lan controller, accesspoints + Hostname string `json:"hostname,omitempty"` // Device name + HTTPStatus string `json:"httpStatus,omitempty"` // HTTP(S) status at the time of discovery + ID string `json:"id,omitempty"` // Unique identifier of network device + ImageName string `json:"imageName,omitempty"` // Image details on the device + IngressQueueConfig string `json:"ingressQueueConfig,omitempty"` // Ingress queue config on device + InterfaceCount string `json:"interfaceCount,omitempty"` // Number of interfaces on the device + InventoryCollectionStatus string `json:"inventoryCollectionStatus,omitempty"` // Last known collection status of the device. Available values are : 'Deleting Device', 'Partial Collection Failure', 'Yet to Sync', 'Could Not Synchronize', 'Not Manageable', 'Managed', 'Incomplete', 'Unreachable', 'In Progress', 'Maintenance', 'Sync Disabled', 'Quarantined', 'Unassociated', 'Unknown' + InventoryReachabilityStatus string `json:"inventoryReachabilityStatus,omitempty"` // Last known reachability status of the device. Available values are : 'Reachable', 'Unreachable', 'PingReachable' and 'NOT-AVAILABLEā€™ + LastUpdated string `json:"lastUpdated,omitempty"` // Time when the network device info last got updated + LineCardCount string `json:"lineCardCount,omitempty"` // Number of linecards on the device + LineCardID string `json:"lineCardId,omitempty"` // IDs of linecards of the device + Location string `json:"location,omitempty"` // Location ID that is associated with the device + LocationName string `json:"locationName,omitempty"` // Name of the associated location + MacAddress string `json:"macAddress,omitempty"` // MAC address of device + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // IP address of the device + MemorySize string `json:"memorySize,omitempty"` // Processor memory size + NetconfStatus string `json:"netconfStatus,omitempty"` // NETCONF status at the time of discovery. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + NumUpdates *int `json:"numUpdates,omitempty"` // Number of time network-device info got updated + PingStatus string `json:"pingStatus,omitempty"` // Ping status at the time of discovery. Available values are 'SUCCESS', 'FAILURE', 'NOT-PROVIDED' and 'NOT-VALIDATED' + PlatformID string `json:"platformId,omitempty"` // Platform ID of device + PortRange string `json:"portRange,omitempty"` // Range of ports on device + QosStatus string `json:"qosStatus,omitempty"` // Qos status on device + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Failure reason for unreachable devices + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Reachability status of a device as Success/Failure/Discarded + Role string `json:"role,omitempty"` // Role of device as access, distribution, border router, core + RoleSource string `json:"roleSource,omitempty"` // Role source as manual / auto + SerialNumber string `json:"serialNumber,omitempty"` // Serial number of device + SNMPContact string `json:"snmpContact,omitempty"` // SNMP contact on device + SNMPLocation string `json:"snmpLocation,omitempty"` // SNMP location on device + SNMPStatus string `json:"snmpStatus,omitempty"` // SNMP status at the time of discovery + SoftwareVersion string `json:"softwareVersion,omitempty"` // Software version on the device + Tag string `json:"tag,omitempty"` // Tag ID that is associated with the device + TagCount *int `json:"tagCount,omitempty"` // Number of tags associated with the device + Type string `json:"type,omitempty"` // Type of device as switch, router, wireless lan controller, accesspoints + UpTime string `json:"upTime,omitempty"` // Time that shows for how long the device has been up + Vendor string `json:"vendor,omitempty"` // Vendor information of the device + WlcApDeviceStatus string `json:"wlcApDeviceStatus,omitempty"` // Collection status of AP devices } type ResponseDiscoveryGetNetworkDevicesFromDiscovery struct { - Response *int `json:"response,omitempty"` // + Response *int `json:"response,omitempty"` // The number of network devices from the discovery job based on the given filters Version string `json:"version,omitempty"` // } type ResponseDiscoveryDeleteDiscoveryBySpecifiedRange struct { @@ -322,86 +322,92 @@ type ResponseDiscoveryGetDiscoveriesByRange struct { Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetDiscoveriesByRangeResponse struct { - AttributeInfo *ResponseDiscoveryGetDiscoveriesByRangeResponseAttributeInfo `json:"attributeInfo,omitempty"` // - CdpLevel *int `json:"cdpLevel,omitempty"` // - DeviceIDs string `json:"deviceIds,omitempty"` // - DiscoveryCondition string `json:"discoveryCondition,omitempty"` // - DiscoveryStatus string `json:"discoveryStatus,omitempty"` // - DiscoveryType string `json:"discoveryType,omitempty"` // - EnablePasswordList string `json:"enablePasswordList,omitempty"` // - GlobalCredentialIDList []string `json:"globalCredentialIdList,omitempty"` // + AttributeInfo *ResponseDiscoveryGetDiscoveriesByRangeResponseAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + CdpLevel *int `json:"cdpLevel,omitempty"` // CDP level to which neighbor devices to be discovered + DeviceIDs string `json:"deviceIds,omitempty"` // Ids of the devices discovered in a discovery + DiscoveryCondition string `json:"discoveryCondition,omitempty"` // To indicate the discovery status. Available options: Complete or In Progress + DiscoveryStatus string `json:"discoveryStatus,omitempty"` // Status of the discovery. Available options are: Active, Inactive, Edit + DiscoveryType string `json:"discoveryType,omitempty"` // Type of the discovery. 'Single', 'Range', 'CDP', 'LLDP', 'CIDR' + EnablePasswordList string `json:"enablePasswordList,omitempty"` // Enable Password of the devices to be discovered + GlobalCredentialIDList []string `json:"globalCredentialIdList,omitempty"` // List of global credential ids to be used HTTPReadCredential *ResponseDiscoveryGetDiscoveriesByRangeResponseHTTPReadCredential `json:"httpReadCredential,omitempty"` // HTTPWriteCredential *ResponseDiscoveryGetDiscoveriesByRangeResponseHTTPWriteCredential `json:"httpWriteCredential,omitempty"` // - ID string `json:"id,omitempty"` // - IPAddressList string `json:"ipAddressList,omitempty"` // - IPFilterList string `json:"ipFilterList,omitempty"` // - IsAutoCdp *bool `json:"isAutoCdp,omitempty"` // - LldpLevel *int `json:"lldpLevel,omitempty"` // - Name string `json:"name,omitempty"` // - NetconfPort string `json:"netconfPort,omitempty"` // - NumDevices *int `json:"numDevices,omitempty"` // - ParentDiscoveryID string `json:"parentDiscoveryId,omitempty"` // - PasswordList string `json:"passwordList,omitempty"` // - PreferredMgmtIPMethod string `json:"preferredMgmtIPMethod,omitempty"` // - ProtocolOrder string `json:"protocolOrder,omitempty"` // - RetryCount *int `json:"retryCount,omitempty"` // - SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // - SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // - SNMPMode string `json:"snmpMode,omitempty"` // - SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // - SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // - SNMPRoCommunity string `json:"snmpRoCommunity,omitempty"` // - SNMPRoCommunityDesc string `json:"snmpRoCommunityDesc,omitempty"` // - SNMPRwCommunity string `json:"snmpRwCommunity,omitempty"` // - SNMPRwCommunityDesc string `json:"snmpRwCommunityDesc,omitempty"` // - SNMPUserName string `json:"snmpUserName,omitempty"` // - TimeOut *int `json:"timeOut,omitempty"` // - UpdateMgmtIP *bool `json:"updateMgmtIp,omitempty"` // - UserNameList string `json:"userNameList,omitempty"` // + ID string `json:"id,omitempty"` // Unique Discovery Id + IPAddressList string `json:"ipAddressList,omitempty"` // List of IP address of the devices to be discovered + IPFilterList string `json:"ipFilterList,omitempty"` // IP addresses of the devices to be filtered + IsAutoCdp *bool `json:"isAutoCdp,omitempty"` // Flag to mention if CDP discovery or not + LldpLevel *int `json:"lldpLevel,omitempty"` // LLDP level to which neighbor devices to be discovered + Name string `json:"name,omitempty"` // Name for the discovery + NetconfPort string `json:"netconfPort,omitempty"` // Netconf port on the device. Netconf will need valid sshv2 credentials for it to work + NumDevices *int `json:"numDevices,omitempty"` // Number of devices discovered in the discovery + ParentDiscoveryID string `json:"parentDiscoveryId,omitempty"` // Parent Discovery Id from which the discovery was initiated + PasswordList string `json:"passwordList,omitempty"` // Password of the devices to be discovered + PreferredMgmtIPMethod string `json:"preferredMgmtIPMethod,omitempty"` // Preferred management IP method. Available options are '' and 'UseLoopBack' + ProtocolOrder string `json:"protocolOrder,omitempty"` // Order of protocol (ssh/telnet) in which device connection will be tried. Ex: 'telnet': only telnet; 'ssh,telnet': ssh with higher order than telnet + RetryCount *int `json:"retryCount,omitempty"` // Number of times to try establishing connection to device + SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // Auth passphrase for SNMP + SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // SNMP auth protocol. SHA' or 'MD5' + SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMP. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV' + SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // Passphrase for SNMP privacy + SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // SNMP privacy protocol. 'AES128' + SNMPRoCommunity string `json:"snmpRoCommunity,omitempty"` // SNMP RO community of the devices to be discovered + SNMPRoCommunityDesc string `json:"snmpRoCommunityDesc,omitempty"` // Description for SNMP RO community + SNMPRwCommunity string `json:"snmpRwCommunity,omitempty"` // SNMP RW community of the devices to be discovered + SNMPRwCommunityDesc string `json:"snmpRwCommunityDesc,omitempty"` // Description for SNMP RW community + SNMPUserName string `json:"snmpUserName,omitempty"` // SNMP username of the device + TimeOut *int `json:"timeOut,omitempty"` // Time to wait for device response. + UpdateMgmtIP *bool `json:"updateMgmtIp,omitempty"` // Updates Management IP if multiple IPs are available for a device. If set to true, when a device is rediscovered with a different IP, the management IP is updated. Default value is false + UserNameList string `json:"userNameList,omitempty"` // Username of the devices to be discovered } type ResponseDiscoveryGetDiscoveriesByRangeResponseAttributeInfo interface{} type ResponseDiscoveryGetDiscoveriesByRangeResponseHTTPReadCredential struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential + Description string `json:"description,omitempty"` // Description of the credential + ID string `json:"id,omitempty"` // Credential Id + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Credential Tenant Id + InstanceUUID string `json:"instanceUuid,omitempty"` // Credential Id + Password string `json:"password,omitempty"` // HTTP(S) password + Port *int `json:"port,omitempty"` // HTTP(S) port + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS + Username string `json:"username,omitempty"` // HTTP(S) username } type ResponseDiscoveryGetDiscoveriesByRangeResponseHTTPWriteCredential struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential + Description string `json:"description,omitempty"` // Description of the credential + ID string `json:"id,omitempty"` // Credential Id + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Credential Tenant Id + InstanceUUID string `json:"instanceUuid,omitempty"` // Credential Id + Password string `json:"password,omitempty"` // HTTP(S) password + Port *int `json:"port,omitempty"` // HTTP(S) port + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS + Username string `json:"username,omitempty"` // HTTP(S) username } type ResponseDiscoveryGetGlobalCredentials struct { Response *[]ResponseDiscoveryGetGlobalCredentialsResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetGlobalCredentialsResponse struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // - NetconfPort string `json:"netconfPort,omitempty"` // - ReadCommunity string `json:"readCommunity,omitempty"` // - WriteCommunity string `json:"writeCommunity,omitempty"` // + Username string `json:"username,omitempty"` // CLI Username + EnablePassword string `json:"enablePassword,omitempty"` // CLI Enable Password + Password string `json:"password,omitempty"` // CLI Password + NetconfPort string `json:"netconfPort,omitempty"` // Netconf Port + ReadCommunity string `json:"readCommunity,omitempty"` // SNMP Read Community + WriteCommunity string `json:"writeCommunity,omitempty"` // SNMP Write Community + AuthPassword string `json:"authPassword,omitempty"` // SNMPV3 Auth Password + AuthType string `json:"authType,omitempty"` // SNMPV3 Auth Type + PrivacyPassword string `json:"privacyPassword,omitempty"` // SNMPV3 Privacy Password + PrivacyType string `json:"privacyType,omitempty"` // SNMPV3 Privacy Type + SNMPMode string `json:"snmpMode,omitempty"` // SNMP Mode + Secure string `json:"secure,omitempty"` // Flag for HTTP(S) + Port *int `json:"port,omitempty"` // HTTP(S) port + Comments string `json:"comments,omitempty"` // Comments to identify the Global Credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the Global credential + Description string `json:"description,omitempty"` // Description for Global Credential + ID string `json:"id,omitempty"` // Id of the Global Credential + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of the Global Credential + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the Global Credential } type ResponseDiscoveryUpdateCliCredentials struct { Response *ResponseDiscoveryUpdateCliCredentialsResponse `json:"response,omitempty"` // @@ -532,7 +538,7 @@ type ResponseDiscoveryUpdateGlobalCredentialsResponse struct { URL string `json:"url,omitempty"` // } type ResponseDiscoveryGetCredentialSubTypeByCredentialID struct { - Response string `json:"response,omitempty"` // + Response string `json:"response,omitempty"` // Credential type as 'CLICredential', 'HTTPReadCredential', 'HTTPWriteCredential', 'NetconfCredential', 'SNMPv2ReadCommunity', 'SNMPv2WriteCommunity', 'SNMPv3Credential' Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetSNMPProperties struct { @@ -540,11 +546,11 @@ type ResponseDiscoveryGetSNMPProperties struct { Version string `json:"version,omitempty"` // } type ResponseDiscoveryGetSNMPPropertiesResponse struct { - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - IntValue *int `json:"intValue,omitempty"` // - SystemPropertyName string `json:"systemPropertyName,omitempty"` // + ID string `json:"id,omitempty"` // Id of the SNMP Property + InstanceTenantID string `json:"instanceTenantId,omitempty"` // [Deprecated] InstanceTenantId of the SNMP Property + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of the SNMP Property. It is the same as the id. It will be deprecated in future version. + IntValue *int `json:"intValue,omitempty"` // Integer Value of the SNMP 'Retry' or 'Timeout' property + SystemPropertyName string `json:"systemPropertyName,omitempty"` // Name of the SNMP Property as 'Retry' or 'Timeout' } type ResponseDiscoveryCreateUpdateSNMPProperties struct { Response *ResponseDiscoveryCreateUpdateSNMPPropertiesResponse `json:"response,omitempty"` // @@ -583,71 +589,71 @@ type ResponseDiscoveryGetAllGlobalCredentialsV2Response struct { SNMPV3 *[]ResponseDiscoveryGetAllGlobalCredentialsV2ResponseSNMPV3 `json:"snmpV3,omitempty"` // } type ResponseDiscoveryGetAllGlobalCredentialsV2ResponseCliCredential struct { - Password string `json:"password,omitempty"` // Password - Username string `json:"username,omitempty"` // Username - EnablePassword string `json:"enablePassword,omitempty"` // Enable Password - Description string `json:"description,omitempty"` // Description - Comments string `json:"comments,omitempty"` // Comments - CredentialType string `json:"credentialType,omitempty"` // Credential Type - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - ID string `json:"id,omitempty"` // Id + Password string `json:"password,omitempty"` // CLI Password + Username string `json:"username,omitempty"` // CLI Username + EnablePassword string `json:"enablePassword,omitempty"` // CLI Enable Password + Description string `json:"description,omitempty"` // Description of the CLI credential + Comments string `json:"comments,omitempty"` // Comments to identify the CLI credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the CLI credential + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of CLI Credential + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of CLI Credential + ID string `json:"id,omitempty"` // Id of the CLI Credential } type ResponseDiscoveryGetAllGlobalCredentialsV2ResponseSNMPV2CRead struct { - ReadCommunity string `json:"readCommunity,omitempty"` // Read Community - Description string `json:"description,omitempty"` // Description - Comments string `json:"comments,omitempty"` // Comments - CredentialType string `json:"credentialType,omitempty"` // Credential Type - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - ID string `json:"id,omitempty"` // Id + ReadCommunity string `json:"readCommunity,omitempty"` // Snmp RO community + Description string `json:"description,omitempty"` // Description for Snmp RO community + Comments string `json:"comments,omitempty"` // Comments to identify the SNMP Read credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the SNMP Read credential + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of SNMP Read Credential + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of SNMP Read Credential + ID string `json:"id,omitempty"` // Id of the SNMP Read Credential } type ResponseDiscoveryGetAllGlobalCredentialsV2ResponseSNMPV2CWrite struct { - WriteCommunity string `json:"writeCommunity,omitempty"` // Write Community - Description string `json:"description,omitempty"` // Description - Comments string `json:"comments,omitempty"` // Comments - CredentialType string `json:"credentialType,omitempty"` // Credential Type - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - ID string `json:"id,omitempty"` // Id + WriteCommunity string `json:"writeCommunity,omitempty"` // Snmp RW community + Description string `json:"description,omitempty"` // Description for Snmp RW community + Comments string `json:"comments,omitempty"` // Comments to identify the SNMP Write credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the SNMP Write credential + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of SNMP Write Credential + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of SNMP Write Credential + ID string `json:"id,omitempty"` // Id of SNMP Write Credential } type ResponseDiscoveryGetAllGlobalCredentialsV2ResponseHTTPSRead struct { - Password string `json:"password,omitempty"` // Password - Port *int `json:"port,omitempty"` // Port - Username string `json:"username,omitempty"` // Username - Secure *bool `json:"secure,omitempty"` // Secure - Description string `json:"description,omitempty"` // Description - Comments string `json:"comments,omitempty"` // Comments - CredentialType string `json:"credentialType,omitempty"` // Credential Type - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - ID string `json:"id,omitempty"` // Id + Password string `json:"password,omitempty"` // HTTP(S) Read Password + Port *int `json:"port,omitempty"` // HTTP(S) Port + Username string `json:"username,omitempty"` // HTTP(S) Read Username + Secure *bool `json:"secure,omitempty"` // Flag for HTTP(S) Read + Description string `json:"description,omitempty"` // Description for HTTP(S) Read Credential + Comments string `json:"comments,omitempty"` // Comments to identify the HTTP(S) Read credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the HTTP(S) Read credential + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of HTTP(S) Read Credential + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of HTTP(S) Read Credential + ID string `json:"id,omitempty"` // Id of the HTTP(S) Read Credential } type ResponseDiscoveryGetAllGlobalCredentialsV2ResponseHTTPSWrite struct { - Password string `json:"password,omitempty"` // Password - Port *int `json:"port,omitempty"` // Port - Username string `json:"username,omitempty"` // Username - Secure *bool `json:"secure,omitempty"` // Secure - Description string `json:"description,omitempty"` // Description - Comments string `json:"comments,omitempty"` // Comments - CredentialType string `json:"credentialType,omitempty"` // Credential Type - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - ID string `json:"id,omitempty"` // Id + Password string `json:"password,omitempty"` // HTTP(S) Write Password + Port *int `json:"port,omitempty"` // HTTP(S) Port + Username string `json:"username,omitempty"` // HTTP(S) Write Username + Secure *bool `json:"secure,omitempty"` // Flag for HTTP(S) Write + Description string `json:"description,omitempty"` // Description for HTTP(S) Write Credetntials + Comments string `json:"comments,omitempty"` // Comments to identify the HTTP(S) Write credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the HTTP(S) Write credential + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of HTTP(S) Write Credential + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid of HTTP(S) Write Credential + ID string `json:"id,omitempty"` // Id of the HTTP(S) Write Credential } type ResponseDiscoveryGetAllGlobalCredentialsV2ResponseSNMPV3 struct { - Username string `json:"username,omitempty"` // Username - AuthPassword string `json:"authPassword,omitempty"` // Auth Password - AuthType string `json:"authType,omitempty"` // Auth Type - PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password - PrivacyType string `json:"privacyType,omitempty"` // Privacy Type - SNMPMode string `json:"snmpMode,omitempty"` // Snmp Mode - Description string `json:"description,omitempty"` // Description - Comments string `json:"comments,omitempty"` // Comments - CredentialType string `json:"credentialType,omitempty"` // Credential Type - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - ID string `json:"id,omitempty"` // Id + Username string `json:"username,omitempty"` // SNMP V3 Username + AuthPassword string `json:"authPassword,omitempty"` // Auth Password for SNMP V3 + AuthType string `json:"authType,omitempty"` // SNMP auth protocol. SHA' or 'MD5' + PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password for SNMP privacy + PrivacyType string `json:"privacyType,omitempty"` // SNMP privacy protocol. 'AES128','AES192','AES256' + SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMP. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV' + Description string `json:"description,omitempty"` // Description for Snmp V3 Credential + Comments string `json:"comments,omitempty"` // Comments to identify the SNMP V3 credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the SNMP V3 credential + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id of SNMP V3 Credential + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Tenant Id of SNMP V3 Credential + ID string `json:"id,omitempty"` // Id of the SNMP V3 Credential } type ResponseDiscoveryDeleteGlobalCredentialV2 struct { Response *ResponseDiscoveryDeleteGlobalCredentialV2Response `json:"response,omitempty"` // @@ -658,71 +664,71 @@ type ResponseDiscoveryDeleteGlobalCredentialV2Response struct { URL string `json:"url,omitempty"` // Url } type RequestDiscoveryUpdatesAnExistingDiscoveryBySpecifiedID struct { - AttributeInfo *RequestDiscoveryUpdatesAnExistingDiscoveryBySpecifiedIDAttributeInfo `json:"attributeInfo,omitempty"` // - CdpLevel *int `json:"cdpLevel,omitempty"` // - DeviceIDs string `json:"deviceIds,omitempty"` // - DiscoveryCondition string `json:"discoveryCondition,omitempty"` // - DiscoveryStatus string `json:"discoveryStatus,omitempty"` // - DiscoveryType string `json:"discoveryType,omitempty"` // - EnablePasswordList string `json:"enablePasswordList,omitempty"` // - GlobalCredentialIDList []string `json:"globalCredentialIdList,omitempty"` // + AttributeInfo *RequestDiscoveryUpdatesAnExistingDiscoveryBySpecifiedIDAttributeInfo `json:"attributeInfo,omitempty"` // Deprecated + CdpLevel *int `json:"cdpLevel,omitempty"` // CDP level to which neighbor devices to be discovered + DeviceIDs string `json:"deviceIds,omitempty"` // Ids of the devices discovered in a discovery + DiscoveryCondition string `json:"discoveryCondition,omitempty"` // To indicate the discovery status. Available options: Complete or In Progress + DiscoveryStatus string `json:"discoveryStatus,omitempty"` // Status of the discovery. Available options are: Active, Inactive, Edit + DiscoveryType string `json:"discoveryType,omitempty"` // Type of the discovery. 'Single', 'Range', 'Multi Range', 'CDP', 'LLDP', 'CIDR' + EnablePasswordList string `json:"enablePasswordList,omitempty"` // Enable Password of the devices to be discovered + GlobalCredentialIDList []string `json:"globalCredentialIdList,omitempty"` // List of global credential ids to be used HTTPReadCredential *RequestDiscoveryUpdatesAnExistingDiscoveryBySpecifiedIDHTTPReadCredential `json:"httpReadCredential,omitempty"` // HTTPWriteCredential *RequestDiscoveryUpdatesAnExistingDiscoveryBySpecifiedIDHTTPWriteCredential `json:"httpWriteCredential,omitempty"` // - ID string `json:"id,omitempty"` // - IPAddressList string `json:"ipAddressList,omitempty"` // - IPFilterList string `json:"ipFilterList,omitempty"` // - IsAutoCdp *bool `json:"isAutoCdp,omitempty"` // - LldpLevel *int `json:"lldpLevel,omitempty"` // - Name string `json:"name,omitempty"` // - NetconfPort string `json:"netconfPort,omitempty"` // - NumDevices *int `json:"numDevices,omitempty"` // - ParentDiscoveryID string `json:"parentDiscoveryId,omitempty"` // - PasswordList string `json:"passwordList,omitempty"` // - PreferredMgmtIPMethod string `json:"preferredMgmtIPMethod,omitempty"` // - ProtocolOrder string `json:"protocolOrder,omitempty"` // - RetryCount *int `json:"retryCount,omitempty"` // - SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // - SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // - SNMPMode string `json:"snmpMode,omitempty"` // - SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // - SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // - SNMPRoCommunity string `json:"snmpRoCommunity,omitempty"` // - SNMPRoCommunityDesc string `json:"snmpRoCommunityDesc,omitempty"` // - SNMPRwCommunity string `json:"snmpRwCommunity,omitempty"` // - SNMPRwCommunityDesc string `json:"snmpRwCommunityDesc,omitempty"` // - SNMPUserName string `json:"snmpUserName,omitempty"` // - TimeOut *int `json:"timeOut,omitempty"` // - UpdateMgmtIP *bool `json:"updateMgmtIp,omitempty"` // - UserNameList string `json:"userNameList,omitempty"` // + ID string `json:"id,omitempty"` // Unique Discovery Id + IPAddressList string `json:"ipAddressList,omitempty"` // List of IP address of the devices to be discovered + IPFilterList string `json:"ipFilterList,omitempty"` // IP addresses of the devices to be filtered + IsAutoCdp *bool `json:"isAutoCdp,omitempty"` // Flag to mention if CDP discovery or not + LldpLevel *int `json:"lldpLevel,omitempty"` // LLDP level to which neighbor devices to be discovered + Name string `json:"name,omitempty"` // Name for the discovery + NetconfPort string `json:"netconfPort,omitempty"` // Netconf port on the device. Netconf will need valid sshv2 credentials for it to work + NumDevices *int `json:"numDevices,omitempty"` // Number of devices discovered in the discovery + ParentDiscoveryID string `json:"parentDiscoveryId,omitempty"` // Parent Discovery Id from which the discovery was initiated + PasswordList string `json:"passwordList,omitempty"` // Password of the devices to be discovered + PreferredMgmtIPMethod string `json:"preferredMgmtIPMethod,omitempty"` // Preferred management IP method. Available options are '' and 'UseLoopBack' + ProtocolOrder string `json:"protocolOrder,omitempty"` // Order of protocol (ssh/telnet) in which device connection will be tried. Ex: 'telnet': only telnet; 'ssh,telnet': ssh with higher order than telnet + RetryCount *int `json:"retryCount,omitempty"` // Number of times to try establishing connection to device + SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // Auth passphrase for SNMP + SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // SNMP auth protocol. SHA' or 'MD5' + SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMP. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV' + SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // Passphrase for SNMP privacy + SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // SNMP privacy protocol. 'AES128' + SNMPRoCommunity string `json:"snmpRoCommunity,omitempty"` // SNMP RO community of the devices to be discovered + SNMPRoCommunityDesc string `json:"snmpRoCommunityDesc,omitempty"` // Description for SNMP RO community + SNMPRwCommunity string `json:"snmpRwCommunity,omitempty"` // SNMP RW community of the devices to be discovered + SNMPRwCommunityDesc string `json:"snmpRwCommunityDesc,omitempty"` // Description for SNMP RW community + SNMPUserName string `json:"snmpUserName,omitempty"` // SNMP username of the device + TimeOut *int `json:"timeOut,omitempty"` // Time to wait for device response. + UpdateMgmtIP *bool `json:"updateMgmtIp,omitempty"` // Updates Management IP if multiple IPs are available for a device. If set to true, when a device is rediscovered with a different IP, the management IP is updated. Default value is false + UserNameList string `json:"userNameList,omitempty"` // Username of the devices to be discovered } type RequestDiscoveryUpdatesAnExistingDiscoveryBySpecifiedIDAttributeInfo interface{} type RequestDiscoveryUpdatesAnExistingDiscoveryBySpecifiedIDHTTPReadCredential struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential + Description string `json:"description,omitempty"` // Description of the credential + ID string `json:"id,omitempty"` // Credential Id + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Credential Tenant Id + InstanceUUID string `json:"instanceUuid,omitempty"` // Credential Id + Password string `json:"password,omitempty"` // HTTP(S) password + Port *int `json:"port,omitempty"` // HTTP(S) port + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS + Username string `json:"username,omitempty"` // HTTP(S) username } type RequestDiscoveryUpdatesAnExistingDiscoveryBySpecifiedIDHTTPWriteCredential struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential + Description string `json:"description,omitempty"` // Description of the credential + ID string `json:"id,omitempty"` // Credential Id + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Credential Tenant Id + InstanceUUID string `json:"instanceUuid,omitempty"` // Credential Id + Password string `json:"password,omitempty"` // HTTP(S) password + Port *int `json:"port,omitempty"` // HTTP(S) port + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS + Username string `json:"username,omitempty"` // HTTP(S) username } type RequestDiscoveryStartDiscovery struct { - CdpLevel *int `json:"cdpLevel,omitempty"` // CDP level to which neighbor devices to be discovered - DiscoveryType string `json:"discoveryType,omitempty"` // Type of Discovery. 'SINGLE', 'RANGE', 'MULTI RANGE', 'CDP', 'LLDP', 'CIDR' + CdpLevel *int `json:"cdpLevel,omitempty"` // CDP level to which neighbor devices are to be discovered + DiscoveryType string `json:"discoveryType,omitempty"` // Type of the discovery. 'Single', 'Range', 'Multi Range', 'CDP', 'LLDP', 'CIDR' EnablePasswordList []string `json:"enablePasswordList,omitempty"` // Enable Password of the devices to be discovered GlobalCredentialIDList []string `json:"globalCredentialIdList,omitempty"` // Global Credential Ids to be used for discovery HTTPReadCredential *RequestDiscoveryStartDiscoveryHTTPReadCredential `json:"httpReadCredential,omitempty"` // @@ -736,15 +742,15 @@ type RequestDiscoveryStartDiscovery struct { PreferredMgmtIPMethod string `json:"preferredMgmtIPMethod,omitempty"` // Preferred Management IP Method.'' or 'UseLoopBack'. Default is '' ProtocolOrder string `json:"protocolOrder,omitempty"` // Order of protocol (ssh/telnet) in which device connection will be tried. Ex: 'telnet': only telnet; 'ssh,telnet': ssh with higher order than telnet Retry *int `json:"retry,omitempty"` // Number of times to try establishing connection to device - SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // Auth Pass phrase for SNMP + SNMPAuthPassphrase string `json:"snmpAuthPassphrase,omitempty"` // Auth passphrase for SNMP SNMPAuthProtocol string `json:"snmpAuthProtocol,omitempty"` // SNMP auth protocol. SHA' or 'MD5' SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMP. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV' SNMPPrivPassphrase string `json:"snmpPrivPassphrase,omitempty"` // Pass phrase for SNMP privacy - SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // SNMP privacy protocol. 'DES' or 'AES128' - SNMPROCommunity string `json:"snmpROCommunity,omitempty"` // Snmp RO community of the devices to be discovered - SNMPROCommunityDesc string `json:"snmpROCommunityDesc,omitempty"` // Description for Snmp RO community - SNMPRWCommunity string `json:"snmpRWCommunity,omitempty"` // Snmp RW community of the devices to be discovered - SNMPRWCommunityDesc string `json:"snmpRWCommunityDesc,omitempty"` // Description for Snmp RW community + SNMPPrivProtocol string `json:"snmpPrivProtocol,omitempty"` // SNMP privacy protocol. 'AES128' + SNMPROCommunity string `json:"snmpROCommunity,omitempty"` // SNMP RO community of the devices to be discovered + SNMPROCommunityDesc string `json:"snmpROCommunityDesc,omitempty"` // Description for SNMP RO community + SNMPRWCommunity string `json:"snmpRWCommunity,omitempty"` // SNMP RW community of the devices to be discovered + SNMPRWCommunityDesc string `json:"snmpRWCommunityDesc,omitempty"` // Description for SNMP RW community SNMPUserName string `json:"snmpUserName,omitempty"` // SNMP username of the device SNMPVersion string `json:"snmpVersion,omitempty"` // Version of SNMP. v2 or v3 Timeout *int `json:"timeout,omitempty"` // Time to wait for device response in seconds @@ -763,102 +769,102 @@ type RequestDiscoveryStartDiscoveryHTTPWriteCredential struct { Username string `json:"username,omitempty"` // HTTP(S) username } type RequestDiscoveryUpdateCliCredentials struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - EnablePassword string `json:"enablePassword,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the CLI credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the CLI credential + Description string `json:"description,omitempty"` // Description for CLI Credentials + EnablePassword string `json:"enablePassword,omitempty"` // CLI Enable Password + ID string `json:"id,omitempty"` // Id of the CLI Credential in UUID format + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated + Password string `json:"password,omitempty"` // CLI Password + Username string `json:"username,omitempty"` // CLI Username } type RequestDiscoveryCreateCliCredentials []RequestItemDiscoveryCreateCliCredentials // Array of RequestDiscoveryCreateCLICredentials type RequestItemDiscoveryCreateCliCredentials struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - EnablePassword string `json:"enablePassword,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the CLI credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the CLI credential + Description string `json:"description,omitempty"` // Description for CLI Credentials + EnablePassword string `json:"enablePassword,omitempty"` // CLI Enable Password + ID string `json:"id,omitempty"` // Deprecated + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated + Password string `json:"password,omitempty"` // CLI Password + Username string `json:"username,omitempty"` // CLI Username } type RequestDiscoveryCreateHTTPReadCredentials []RequestItemDiscoveryCreateHTTPReadCredentials // Array of RequestDiscoveryCreateHTTPReadCredentials type RequestItemDiscoveryCreateHTTPReadCredentials struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the HTTP(S) Read credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the HTTP(S) Read credential + Description string `json:"description,omitempty"` // Description for HTTP(S) Read Credential + ID string `json:"id,omitempty"` // Deprecated + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated + Password string `json:"password,omitempty"` // HTTP(S) Read Password + Port *int `json:"port,omitempty"` // HTTP(S) Port. Valid port should be in the range of 1 to 65535. + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS Read + Username string `json:"username,omitempty"` // HTTP(S) Read Username } type RequestDiscoveryUpdateHTTPReadCredential struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the HTTP(S) Read credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the HTTP(S) Read credential + Description string `json:"description,omitempty"` // Description for HTTP(S) Read Credential + ID string `json:"id,omitempty"` // Id of the HTTP(S) Read Credential in UUID format + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated + Password string `json:"password,omitempty"` // HTTP(S) Read Password + Port *int `json:"port,omitempty"` // HTTP(S) Port. Valid port should be in the range of 1 to 65535. + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS Read + Username string `json:"username,omitempty"` // HTTP(S) Read Username } type RequestDiscoveryUpdateHTTPWriteCredentials struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the HTTP(S) Write credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the HTTP(S) Write credential + Description string `json:"description,omitempty"` // Description for HTTP(S) Write Credential + ID string `json:"id,omitempty"` // Id of the HTTP(S) Write Credential in UUID format + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated + Password string `json:"password,omitempty"` // HTTP(S) Write Password + Port *int `json:"port,omitempty"` // HTTP(S) Port. Valid port should be in the range of 1 to 65535. + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS Write + Username string `json:"username,omitempty"` // HTTP(S) Write Username } type RequestDiscoveryCreateHTTPWriteCredentials []RequestItemDiscoveryCreateHTTPWriteCredentials // Array of RequestDiscoveryCreateHTTPWriteCredentials type RequestItemDiscoveryCreateHTTPWriteCredentials struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - Password string `json:"password,omitempty"` // - Port *int `json:"port,omitempty"` // - Secure *bool `json:"secure,omitempty"` // - Username string `json:"username,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the HTTP(S) Write credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the HTTP(S) Write credential + Description string `json:"description,omitempty"` // Description for HTTP(S) Write Credential + ID string `json:"id,omitempty"` // Deprecated + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated + Password string `json:"password,omitempty"` // HTTP(S) Write Password + Port *int `json:"port,omitempty"` // HTTP(S) Port. Valid port should be in the range of 1 to 65535. + Secure *bool `json:"secure,omitempty"` // Flag for HTTPS Write + Username string `json:"username,omitempty"` // HTTP(S) Write Username } type RequestDiscoveryUpdateNetconfCredentials struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - NetconfPort string `json:"netconfPort,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the netconf credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the netconf credential + Description string `json:"description,omitempty"` // Description for Netconf Credentials + ID string `json:"id,omitempty"` // Id of the Netconf Credential in UUID format + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated + NetconfPort string `json:"netconfPort,omitempty"` // Netconf port on the device. Valid port should be in the range of 1 to 65535. } type RequestDiscoveryCreateNetconfCredentials []RequestItemDiscoveryCreateNetconfCredentials // Array of RequestDiscoveryCreateNetconfCredentials type RequestItemDiscoveryCreateNetconfCredentials struct { - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - NetconfPort string `json:"netconfPort,omitempty"` // + Comments string `json:"comments,omitempty"` // Comments to identify the netconf credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential + Description string `json:"description,omitempty"` // Description for Netconf Credentials + ID string `json:"id,omitempty"` // Deprecated + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated + InstanceUUID string `json:"instanceUuid,omitempty"` // deprecated + NetconfPort string `json:"netconfPort,omitempty"` // Netconf port on the device. Valid port should be in the range of 1 to 65535. } type RequestDiscoveryUpdateSNMPReadCommunity struct { Comments string `json:"comments,omitempty"` // Comments to identify the credential CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential Description string `json:"description,omitempty"` // Name/Description of the credential - InstanceUUID string `json:"instanceUuid,omitempty"` // + InstanceUUID string `json:"instanceUuid,omitempty"` // Credential UUID ReadCommunity string `json:"readCommunity,omitempty"` // SNMP read community. NO!$DATA!$ for no value change } type RequestDiscoveryCreateSNMPReadCommunity []RequestItemDiscoveryCreateSNMPReadCommunity // Array of RequestDiscoveryCreateSNMPReadCommunity @@ -879,40 +885,40 @@ type RequestDiscoveryUpdateSNMPWriteCommunity struct { Comments string `json:"comments,omitempty"` // Comments to identify the credential CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the credential Description string `json:"description,omitempty"` // Name/Description of the credential - InstanceUUID string `json:"instanceUuid,omitempty"` // + InstanceUUID string `json:"instanceUuid,omitempty"` // Credential UUID WriteCommunity string `json:"writeCommunity,omitempty"` // SNMP write community. NO!$DATA!$ for no value change } type RequestDiscoveryUpdateSNMPv3Credentials struct { - AuthPassword string `json:"authPassword,omitempty"` // - AuthType string `json:"authType,omitempty"` // - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - PrivacyPassword string `json:"privacyPassword,omitempty"` // - PrivacyType string `json:"privacyType,omitempty"` // - SNMPMode string `json:"snmpMode,omitempty"` // - Username string `json:"username,omitempty"` // + AuthPassword string `json:"authPassword,omitempty"` // Auth password for SNMPv3. Required if snmpMode is 'AUTHPRIV' or 'AUTHNOPRIV'. Use 'NO!$DATA!$' if no change required. + AuthType string `json:"authType,omitempty"` // SNMPv3 auth protocol. 'SHA' or 'MD5'. Required if snmpMode is 'AUTHPRIV' or 'AUTHNOPRIV'. + Comments string `json:"comments,omitempty"` // Comments to identify the SNMPv3 credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the SNMPv3 credential + Description string `json:"description,omitempty"` // Description for SNMPv3 Credential + ID string `json:"id,omitempty"` // Id of the SNMPv3 Credential + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated. This attribute will be removed in a future release, should not be used, and any value supplied will be ignored. + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated. This attribute will be removed in a future release, should not be used, and any value supplied will be ignored. + PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy password for SNMPv3 privacy. Required if snmpMode is 'AUTHPRIV'. Use 'NO!$DATA!$' if no change required. + PrivacyType string `json:"privacyType,omitempty"` // SNMPv3 privacy protocol. Required is snmpMode is 'AUTHPRIV'. + SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMPv3. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV' + Username string `json:"username,omitempty"` // SNMPv3 username } type RequestDiscoveryCreateSNMPv3Credentials []RequestItemDiscoveryCreateSNMPv3Credentials // Array of RequestDiscoveryCreateSNMPv3Credentials type RequestItemDiscoveryCreateSNMPv3Credentials struct { - AuthPassword string `json:"authPassword,omitempty"` // - AuthType string `json:"authType,omitempty"` // - Comments string `json:"comments,omitempty"` // - CredentialType string `json:"credentialType,omitempty"` // - Description string `json:"description,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - InstanceUUID string `json:"instanceUuid,omitempty"` // - PrivacyPassword string `json:"privacyPassword,omitempty"` // - PrivacyType string `json:"privacyType,omitempty"` // - SNMPMode string `json:"snmpMode,omitempty"` // - Username string `json:"username,omitempty"` // + AuthPassword string `json:"authPassword,omitempty"` // Auth password for SNMPv3. Required if snmpMode is 'AUTHPRIV' or 'AUTHNOPRIV'. + AuthType string `json:"authType,omitempty"` // SNMPv3 auth protocol. 'SHA' or 'MD5'. Required if snmpMode is 'AUTHPRIV' or 'AUTHNOPRIV'. + Comments string `json:"comments,omitempty"` // Comments to identify the SNMPv3 credential + CredentialType string `json:"credentialType,omitempty"` // Credential type to identify the application that uses the SNMPv3 credential + Description string `json:"description,omitempty"` // Description for the SNMPv3 credential + ID string `json:"id,omitempty"` // Deprecated. This attribute will be removed in a future release, should not be used, and any value supplied will be ignored. + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Deprecated. This attribute will be removed in a future release, should not be used, and any value supplied will be ignored. + InstanceUUID string `json:"instanceUuid,omitempty"` // Deprecated. This attribute will be removed in a future release, should not be used, and any value supplied will be ignored. + PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy password for SNMPv3 privacy. Required if snmpMode is 'AUTHPRIV'. + PrivacyType string `json:"privacyType,omitempty"` // SNMPv3 privacy protocol. Required is snmpMode is 'AUTHPRIV'. + SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMPv3. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV'. + Username string `json:"username,omitempty"` // SNMPv3 username } type RequestDiscoveryUpdateGlobalCredentials struct { - SiteUUIDs []string `json:"siteUuids,omitempty"` // + SiteUUIDs []string `json:"siteUuids,omitempty"` // List of siteUuids where credential is to be updated } type RequestDiscoveryCreateUpdateSNMPProperties []RequestItemDiscoveryCreateUpdateSNMPProperties // Array of RequestDiscoveryCreateUpdateSNMPProperties type RequestItemDiscoveryCreateUpdateSNMPProperties struct { @@ -931,45 +937,45 @@ type RequestDiscoveryUpdateGlobalCredentialsV2 struct { HTTPSWrite *RequestDiscoveryUpdateGlobalCredentialsV2HTTPSWrite `json:"httpsWrite,omitempty"` // } type RequestDiscoveryUpdateGlobalCredentialsV2CliCredential struct { - Description string `json:"description,omitempty"` // Description - Username string `json:"username,omitempty"` // Username - Password string `json:"password,omitempty"` // Password - EnablePassword string `json:"enablePassword,omitempty"` // Enable Password - ID string `json:"id,omitempty"` // Id + Description string `json:"description,omitempty"` // Description for CLI credential + Username string `json:"username,omitempty"` // CLI Username + Password string `json:"password,omitempty"` // CLI Password + EnablePassword string `json:"enablePassword,omitempty"` // CLI Enable Password + ID string `json:"id,omitempty"` // Id of the CLI Credential in UUID format } type RequestDiscoveryUpdateGlobalCredentialsV2SNMPV2CRead struct { - Description string `json:"description,omitempty"` // Description - ReadCommunity string `json:"readCommunity,omitempty"` // Read Community - ID string `json:"id,omitempty"` // Id + Description string `json:"description,omitempty"` // Description for Snmp RO community + ReadCommunity string `json:"readCommunity,omitempty"` // Snmp RO community + ID string `json:"id,omitempty"` // Id of the SNMP Read Credential in UUID format } type RequestDiscoveryUpdateGlobalCredentialsV2SNMPV2CWrite struct { - Description string `json:"description,omitempty"` // Description - WriteCommunity string `json:"writeCommunity,omitempty"` // Write Community - ID string `json:"id,omitempty"` // Id + Description string `json:"description,omitempty"` // Description for Snmp RW community + WriteCommunity string `json:"writeCommunity,omitempty"` // Snmp RW community + ID string `json:"id,omitempty"` // Id of the SNMP Write Credential in UUID format } type RequestDiscoveryUpdateGlobalCredentialsV2SNMPV3 struct { - AuthPassword string `json:"authPassword,omitempty"` // Auth Password - AuthType string `json:"authType,omitempty"` // Auth Type - SNMPMode string `json:"snmpMode,omitempty"` // Snmp Mode - PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password - PrivacyType string `json:"privacyType,omitempty"` // Privacy Type - Username string `json:"username,omitempty"` // Username - Description string `json:"description,omitempty"` // Description - ID string `json:"id,omitempty"` // Id + AuthPassword string `json:"authPassword,omitempty"` // Auth Password for SNMP V3 + AuthType string `json:"authType,omitempty"` // SNMP auth protocol. SHA' or 'MD5' + SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMP. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV' + PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password for SNMP privacy + PrivacyType string `json:"privacyType,omitempty"` // SNMP privacy protocol. 'AES128','AES192','AES256' + Username string `json:"username,omitempty"` // SNMP V3 Username + Description string `json:"description,omitempty"` // Description for Snmp V3 Credential + ID string `json:"id,omitempty"` // Id of the SNMP V3 Credential in UUID format } type RequestDiscoveryUpdateGlobalCredentialsV2HTTPSRead struct { - Name string `json:"name,omitempty"` // Name - Username string `json:"username,omitempty"` // Username - Password string `json:"password,omitempty"` // Password - Port *int `json:"port,omitempty"` // Port - ID string `json:"id,omitempty"` // Id + Description string `json:"description,omitempty"` // Description for HTTP(S) Read Credentials + Username string `json:"username,omitempty"` // HTTP(S) Read Username + Password string `json:"password,omitempty"` // HTTP(S) Read Password + Port *int `json:"port,omitempty"` // HTTP(S) Port + ID string `json:"id,omitempty"` // Id of the HTTP(S) Read Credential in UUID format } type RequestDiscoveryUpdateGlobalCredentialsV2HTTPSWrite struct { - Name string `json:"name,omitempty"` // Name - Username string `json:"username,omitempty"` // Username - Password string `json:"password,omitempty"` // Password - Port *int `json:"port,omitempty"` // Port - ID string `json:"id,omitempty"` // Id + Description string `json:"description,omitempty"` // Description for HTTP(S) Write Credentials + Username string `json:"username,omitempty"` // HTTP(S) Write Username + Password string `json:"password,omitempty"` // HTTP(S) Write Password + Port *int `json:"port,omitempty"` // HTTP(S) Port + ID string `json:"id,omitempty"` // Id of the HTTP(S) Read Credential in UUID format } type RequestDiscoveryCreateGlobalCredentialsV2 struct { CliCredential *[]RequestDiscoveryCreateGlobalCredentialsV2CliCredential `json:"cliCredential,omitempty"` // @@ -980,39 +986,39 @@ type RequestDiscoveryCreateGlobalCredentialsV2 struct { HTTPSWrite *[]RequestDiscoveryCreateGlobalCredentialsV2HTTPSWrite `json:"httpsWrite,omitempty"` // } type RequestDiscoveryCreateGlobalCredentialsV2CliCredential struct { - Description string `json:"description,omitempty"` // Description - Username string `json:"username,omitempty"` // Username - Password string `json:"password,omitempty"` // Password - EnablePassword string `json:"enablePassword,omitempty"` // Enable Password + Description string `json:"description,omitempty"` // Description for CLI credential + Username string `json:"username,omitempty"` // CLI Username + Password string `json:"password,omitempty"` // CLI Password + EnablePassword string `json:"enablePassword,omitempty"` // CLI Enable Password } type RequestDiscoveryCreateGlobalCredentialsV2SNMPV2CRead struct { - Description string `json:"description,omitempty"` // Description - ReadCommunity string `json:"readCommunity,omitempty"` // Read Community + Description string `json:"description,omitempty"` // Description for Snmp RO community + ReadCommunity string `json:"readCommunity,omitempty"` // Snmp RO community } type RequestDiscoveryCreateGlobalCredentialsV2SNMPV2CWrite struct { - Description string `json:"description,omitempty"` // Description - WriteCommunity string `json:"writeCommunity,omitempty"` // Write Community + Description string `json:"description,omitempty"` // Description for Snmp RW community + WriteCommunity string `json:"writeCommunity,omitempty"` // Snmp RW community } type RequestDiscoveryCreateGlobalCredentialsV2SNMPV3 struct { - Description string `json:"description,omitempty"` // Description - Username string `json:"username,omitempty"` // Username - PrivacyType string `json:"privacyType,omitempty"` // Privacy Type - PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password - AuthType string `json:"authType,omitempty"` // Auth Type - AuthPassword string `json:"authPassword,omitempty"` // Auth Password - SNMPMode string `json:"snmpMode,omitempty"` // Snmp Mode + Description string `json:"description,omitempty"` // Description for Snmp V3 Credential + Username string `json:"username,omitempty"` // SNMP V3 Username + PrivacyType string `json:"privacyType,omitempty"` // SNMP privacy protocol. 'AES128','AES192','AES256' + PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password for SNMP privacy + AuthType string `json:"authType,omitempty"` // SNMP auth protocol. SHA' or 'MD5' + AuthPassword string `json:"authPassword,omitempty"` // Auth Password for SNMP + SNMPMode string `json:"snmpMode,omitempty"` // Mode of SNMP. 'AUTHPRIV' or 'AUTHNOPRIV' or 'NOAUTHNOPRIV' } type RequestDiscoveryCreateGlobalCredentialsV2HTTPSRead struct { - Name string `json:"name,omitempty"` // Name - Username string `json:"username,omitempty"` // Username - Password string `json:"password,omitempty"` // Password - Port *int `json:"port,omitempty"` // Port + Description string `json:"description,omitempty"` // Description for HTTP(S) Read Credentials + Username string `json:"username,omitempty"` // HTTP(S) Read Username + Password string `json:"password,omitempty"` // HTTP(S) Read Password + Port *int `json:"port,omitempty"` // HTTP(S) Port } type RequestDiscoveryCreateGlobalCredentialsV2HTTPSWrite struct { - Name string `json:"name,omitempty"` // Name - Username string `json:"username,omitempty"` // Username - Password string `json:"password,omitempty"` // Password - Port *int `json:"port,omitempty"` // Port + Description string `json:"description,omitempty"` // Description for HTTP(S) Write Credentials + Username string `json:"username,omitempty"` // HTTP(S) Write Username + Password string `json:"password,omitempty"` // HTTP(S) Write Password + Port *int `json:"port,omitempty"` // HTTP(S) Port } //GetCountOfAllDiscoveryJobs Get count of all discovery jobs - 069d-9823-451b-892d @@ -1020,7 +1026,7 @@ type RequestDiscoveryCreateGlobalCredentialsV2HTTPSWrite struct { -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-count-of-all-discovery-jobs +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-count-of-all-discovery-jobs-v1 */ func (s *DiscoveryService) GetCountOfAllDiscoveryJobs() (*ResponseDiscoveryGetCountOfAllDiscoveryJobs, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/count" @@ -1055,7 +1061,7 @@ func (s *DiscoveryService) GetCountOfAllDiscoveryJobs() (*ResponseDiscoveryGetCo @param GetDiscoveryJobsByIPQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discovery-jobs-by-ip +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discovery-jobs-by-ip-v1 */ func (s *DiscoveryService) GetDiscoveryJobsByIP(GetDiscoveryJobsByIPQueryParams *GetDiscoveryJobsByIPQueryParams) (*ResponseDiscoveryGetDiscoveryJobsByIP, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/job" @@ -1093,7 +1099,7 @@ func (s *DiscoveryService) GetDiscoveryJobsByIP(GetDiscoveryJobsByIPQueryParams @param id id path parameter. Discovery ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discovery-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discovery-by-id-v1 */ func (s *DiscoveryService) GetDiscoveryByID(id string) (*ResponseDiscoveryGetDiscoveryByID, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/{id}" @@ -1131,7 +1137,7 @@ func (s *DiscoveryService) GetDiscoveryByID(id string) (*ResponseDiscoveryGetDis @param GetListOfDiscoveriesByDiscoveryIdQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-discoveries-by-discovery-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-discoveries-by-discovery-id-v1 */ func (s *DiscoveryService) GetListOfDiscoveriesByDiscoveryID(id string, GetListOfDiscoveriesByDiscoveryIdQueryParams *GetListOfDiscoveriesByDiscoveryIDQueryParams) (*ResponseDiscoveryGetListOfDiscoveriesByDiscoveryID, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/{id}/job" @@ -1171,7 +1177,7 @@ func (s *DiscoveryService) GetListOfDiscoveriesByDiscoveryID(id string, GetListO @param GetDiscoveredNetworkDevicesByDiscoveryIdQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discovered-network-devices-by-discovery-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discovered-network-devices-by-discovery-id-v1 */ func (s *DiscoveryService) GetDiscoveredNetworkDevicesByDiscoveryID(id string, GetDiscoveredNetworkDevicesByDiscoveryIdQueryParams *GetDiscoveredNetworkDevicesByDiscoveryIDQueryParams) (*ResponseDiscoveryGetDiscoveredNetworkDevicesByDiscoveryID, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/{id}/network-device" @@ -1211,7 +1217,7 @@ func (s *DiscoveryService) GetDiscoveredNetworkDevicesByDiscoveryID(id string, G @param GetDevicesDiscoveredByIdQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-devices-discovered-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-devices-discovered-by-id-v1 */ func (s *DiscoveryService) GetDevicesDiscoveredByID(id string, GetDevicesDiscoveredByIdQueryParams *GetDevicesDiscoveredByIDQueryParams) (*ResponseDiscoveryGetDevicesDiscoveredByID, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/{id}/network-device/count" @@ -1249,13 +1255,13 @@ func (s *DiscoveryService) GetDevicesDiscoveredByID(id string, GetDevicesDiscove @param id id path parameter. Discovery ID -@param startIndex startIndex path parameter. Start index +@param startIndex startIndex path parameter. Starting index for the records -@param recordsToReturn recordsToReturn path parameter. Number of records to return +@param recordsToReturn recordsToReturn path parameter. Number of records to fetch from the start index @param GetDiscoveredDevicesByRangeQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discovered-devices-by-range +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discovered-devices-by-range-v1 */ func (s *DiscoveryService) GetDiscoveredDevicesByRange(id string, startIndex int, recordsToReturn int, GetDiscoveredDevicesByRangeQueryParams *GetDiscoveredDevicesByRangeQueryParams) (*ResponseDiscoveryGetDiscoveredDevicesByRange, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/{id}/network-device/{startIndex}/{recordsToReturn}" @@ -1290,14 +1296,14 @@ func (s *DiscoveryService) GetDiscoveredDevicesByRange(id string, startIndex int } //GetNetworkDevicesFromDiscovery Get network devices from Discovery - 3d9b-99c3-4339-8a27 -/* Returns the network devices from a discovery job based on given filters. Discovery ID can be obtained using the "Get Discoveries by range" API. +/* Returns the devices discovered in the given discovery based on given filters. Discovery ID can be obtained using the "Get Discoveries by range" API. @param id id path parameter. Discovery ID @param GetNetworkDevicesFromDiscoveryQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-devices-from-discovery +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-devices-from-discovery-v1 */ func (s *DiscoveryService) GetNetworkDevicesFromDiscovery(id string, GetNetworkDevicesFromDiscoveryQueryParams *GetNetworkDevicesFromDiscoveryQueryParams) (*ResponseDiscoveryGetNetworkDevicesFromDiscovery, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/{id}/summary" @@ -1330,15 +1336,15 @@ func (s *DiscoveryService) GetNetworkDevicesFromDiscovery(id string, GetNetworkD } //GetDiscoveriesByRange Get Discoveries by range - 33b7-99d0-4d0a-8907 -/* Returns the discovery by specified range +/* Returns the discoveries by specified range -@param startIndex startIndex path parameter. Start index +@param startIndex startIndex path parameter. Starting index for the records -@param recordsToReturn recordsToReturn path parameter. Number of records to return +@param recordsToReturn recordsToReturn path parameter. Number of records to fetch from the starting index -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discoveries-by-range +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-discoveries-by-range-v1 */ func (s *DiscoveryService) GetDiscoveriesByRange(startIndex int, recordsToReturn int) (*ResponseDiscoveryGetDiscoveriesByRange, *resty.Response, error) { path := "/dna/intent/api/v1/discovery/{startIndex}/{recordsToReturn}" @@ -1375,7 +1381,7 @@ func (s *DiscoveryService) GetDiscoveriesByRange(startIndex int, recordsToReturn @param GetGlobalCredentialsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-global-credentials +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-global-credentials-v1 */ func (s *DiscoveryService) GetGlobalCredentials(GetGlobalCredentialsQueryParams *GetGlobalCredentialsQueryParams) (*ResponseDiscoveryGetGlobalCredentials, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential" @@ -1413,7 +1419,7 @@ func (s *DiscoveryService) GetGlobalCredentials(GetGlobalCredentialsQueryParams @param id id path parameter. Global Credential ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-credential-sub-type-by-credential-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-credential-sub-type-by-credential-id-v1 */ func (s *DiscoveryService) GetCredentialSubTypeByCredentialID(id string) (*ResponseDiscoveryGetCredentialSubTypeByCredentialID, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential/{id}" @@ -1448,7 +1454,7 @@ func (s *DiscoveryService) GetCredentialSubTypeByCredentialID(id string) (*Respo -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-snmp-properties +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-snmp-properties-v1 */ func (s *DiscoveryService) GetSNMPProperties() (*ResponseDiscoveryGetSNMPProperties, *resty.Response, error) { path := "/dna/intent/api/v1/snmp-property" @@ -1516,7 +1522,7 @@ func (s *DiscoveryService) GetAllGlobalCredentialsV2() (*ResponseDiscoveryGetAll -Documentation Link: https://developer.cisco.com/docs/dna-center/#!start-discovery +Documentation Link: https://developer.cisco.com/docs/dna-center/#!start-discovery-v1 */ func (s *DiscoveryService) StartDiscovery(requestDiscoveryStartDiscovery *RequestDiscoveryStartDiscovery) (*ResponseDiscoveryStartDiscovery, *resty.Response, error) { path := "/dna/intent/api/v1/discovery" @@ -1553,7 +1559,7 @@ func (s *DiscoveryService) StartDiscovery(requestDiscoveryStartDiscovery *Reques -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-cli-credentials +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-cli-credentials-v1 */ func (s *DiscoveryService) CreateCliCredentials(requestDiscoveryCreateCLICredentials *RequestDiscoveryCreateCliCredentials) (*ResponseDiscoveryCreateCliCredentials, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential/cli" @@ -1590,7 +1596,7 @@ func (s *DiscoveryService) CreateCliCredentials(requestDiscoveryCreateCLICredent -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-http-read-credentials +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-http-read-credentials-v1 */ func (s *DiscoveryService) CreateHTTPReadCredentials(requestDiscoveryCreateHTTPReadCredentials *RequestDiscoveryCreateHTTPReadCredentials) (*ResponseDiscoveryCreateHTTPReadCredentials, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential/http-read" @@ -1627,7 +1633,7 @@ func (s *DiscoveryService) CreateHTTPReadCredentials(requestDiscoveryCreateHTTPR -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-http-write-credentials +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-http-write-credentials-v1 */ func (s *DiscoveryService) CreateHTTPWriteCredentials(requestDiscoveryCreateHTTPWriteCredentials *RequestDiscoveryCreateHTTPWriteCredentials) (*ResponseDiscoveryCreateHTTPWriteCredentials, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential/http-write" @@ -1664,7 +1670,7 @@ func (s *DiscoveryService) CreateHTTPWriteCredentials(requestDiscoveryCreateHTTP -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-netconf-credentials +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-netconf-credentials-v1 */ func (s *DiscoveryService) CreateNetconfCredentials(requestDiscoveryCreateNetconfCredentials *RequestDiscoveryCreateNetconfCredentials) (*ResponseDiscoveryCreateNetconfCredentials, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential/netconf" @@ -1701,7 +1707,7 @@ func (s *DiscoveryService) CreateNetconfCredentials(requestDiscoveryCreateNetcon -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-snmp-read-community +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-snmp-read-community-v1 */ func (s *DiscoveryService) CreateSNMPReadCommunity(requestDiscoveryCreateSNMPReadCommunity *RequestDiscoveryCreateSNMPReadCommunity) (*ResponseDiscoveryCreateSNMPReadCommunity, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential/snmpv2-read-community" @@ -1738,7 +1744,7 @@ func (s *DiscoveryService) CreateSNMPReadCommunity(requestDiscoveryCreateSNMPRea -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-snmp-write-community +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-snmp-write-community-v1 */ func (s *DiscoveryService) CreateSNMPWriteCommunity(requestDiscoveryCreateSNMPWriteCommunity *RequestDiscoveryCreateSNMPWriteCommunity) (*ResponseDiscoveryCreateSNMPWriteCommunity, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential/snmpv2-write-community" @@ -1775,7 +1781,7 @@ func (s *DiscoveryService) CreateSNMPWriteCommunity(requestDiscoveryCreateSNMPWr -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-snmpv3-credentials +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-snmpv3-credentials-v1 */ func (s *DiscoveryService) CreateSNMPv3Credentials(requestDiscoveryCreateSNMPv3Credentials *RequestDiscoveryCreateSNMPv3Credentials) (*ResponseDiscoveryCreateSNMPv3Credentials, *resty.Response, error) { path := "/dna/intent/api/v1/global-credential/snmpv3" @@ -1812,7 +1818,7 @@ func (s *DiscoveryService) CreateSNMPv3Credentials(requestDiscoveryCreateSNMPv3C -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-update-snmp-properties +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-update-snmp-properties-v1 */ func (s *DiscoveryService) CreateUpdateSNMPProperties(requestDiscoveryCreateUpdateSNMPProperties *RequestDiscoveryCreateUpdateSNMPProperties) (*ResponseDiscoveryCreateUpdateSNMPProperties, *resty.Response, error) { path := "/dna/intent/api/v1/snmp-property" @@ -2219,7 +2225,7 @@ func (s *DiscoveryService) UpdateGlobalCredentialsV2(requestDiscoveryUpdateGloba -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-all-discovery +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-all-discovery-v1 */ func (s *DiscoveryService) DeleteAllDiscovery() (*ResponseDiscoveryDeleteAllDiscovery, *resty.Response, error) { // @@ -2256,7 +2262,7 @@ func (s *DiscoveryService) DeleteAllDiscovery() (*ResponseDiscoveryDeleteAllDisc @param id id path parameter. Discovery ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-discovery-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-discovery-by-id-v1 */ func (s *DiscoveryService) DeleteDiscoveryByID(id string) (*ResponseDiscoveryDeleteDiscoveryByID, *resty.Response, error) { //id string @@ -2291,12 +2297,12 @@ func (s *DiscoveryService) DeleteDiscoveryByID(id string) (*ResponseDiscoveryDel /* Stops discovery for the given range and removes them -@param startIndex startIndex path parameter. Start index +@param startIndex startIndex path parameter. Starting index for the records -@param recordsToDelete recordsToDelete path parameter. Number of records to delete +@param recordsToDelete recordsToDelete path parameter. Number of records to delete from the starting index -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-discovery-by-specified-range +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-discovery-by-specified-range-v1 */ func (s *DiscoveryService) DeleteDiscoveryBySpecifiedRange(startIndex int, recordsToDelete int) (*ResponseDiscoveryDeleteDiscoveryBySpecifiedRange, *resty.Response, error) { //startIndex int,recordsToDelete int @@ -2335,7 +2341,7 @@ func (s *DiscoveryService) DeleteDiscoveryBySpecifiedRange(startIndex int, recor @param globalCredentialID globalCredentialId path parameter. ID of global-credential -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-global-credentials-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-global-credentials-by-id-v1 */ func (s *DiscoveryService) DeleteGlobalCredentialsByID(globalCredentialID string) (*ResponseDiscoveryDeleteGlobalCredentialsByID, *resty.Response, error) { //globalCredentialID string diff --git a/sdk/eox.go b/sdk/eox.go index a5a7994..b27b370 100644 --- a/sdk/eox.go +++ b/sdk/eox.go @@ -12,58 +12,61 @@ type EoXService service type ResponseEoXGetEoXStatusForAllDevices struct { Response *[]ResponseEoXGetEoXStatusForAllDevicesResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version of the response } type ResponseEoXGetEoXStatusForAllDevicesResponse struct { - DeviceID string `json:"deviceId,omitempty"` // Device Id - AlertCount *int `json:"alertCount,omitempty"` // Alert Count + DeviceID string `json:"deviceId,omitempty"` // Device instance UUID + AlertCount *int `json:"alertCount,omitempty"` // Number of EoX alerts on the network device Summary *[]ResponseEoXGetEoXStatusForAllDevicesResponseSummary `json:"summary,omitempty"` // - ScanStatus string `json:"scanStatus,omitempty"` // Scan Status - LastScanTime *int `json:"lastScanTime,omitempty"` // Last Scan Time + ScanStatus string `json:"scanStatus,omitempty"` // Status of the scan performed on the network device + Comments []string `json:"comments,omitempty"` // More details about the scan status. ie:- if the scan status is failed, comments will give the reason for failure. + LastScanTime *int `json:"lastScanTime,omitempty"` // Time at which the network device was scanned. The representation is unix time. } type ResponseEoXGetEoXStatusForAllDevicesResponseSummary struct { - EoxType string `json:"eoxType,omitempty"` // Eox Type + EoXType string `json:"EoXType,omitempty"` // Type of EoX Alert } type ResponseEoXGetEoXDetailsPerDevice struct { Response *ResponseEoXGetEoXDetailsPerDeviceResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version of the response } type ResponseEoXGetEoXDetailsPerDeviceResponse struct { - DeviceID string `json:"deviceId,omitempty"` // Device Id - AlertCount *int `json:"alertCount,omitempty"` // Alert Count - EoxDetails *[]ResponseEoXGetEoXDetailsPerDeviceResponseEoxDetails `json:"eoxDetails,omitempty"` // - ScanStatus string `json:"scanStatus,omitempty"` // Scan Status - Comments *[]ResponseEoXGetEoXDetailsPerDeviceResponseComments `json:"comments,omitempty"` // Comments - LastScanTime *int `json:"lastScanTime,omitempty"` // Last Scan Time + DeviceID string `json:"deviceId,omitempty"` // Device instance UUID + AlertCount *int `json:"alertCount,omitempty"` // Number of EoX alerts on the network device + EoXDetails *[]ResponseEoXGetEoXDetailsPerDeviceResponseEoXDetails `json:"EoXDetails,omitempty"` // + ScanStatus string `json:"scanStatus,omitempty"` // Status of the scan performed on the network device + Comments []string `json:"comments,omitempty"` // More details about the scan status. ie:- if the scan status is failed, comments will give the reason for failure. + LastScanTime *int `json:"lastScanTime,omitempty"` // Time at which the network device was scanned. The representation is unix time. } -type ResponseEoXGetEoXDetailsPerDeviceResponseEoxDetails struct { - BulletinHeadline string `json:"bulletinHeadline,omitempty"` // Bulletin Headline - BulletinNumber string `json:"bulletinNumber,omitempty"` // Bulletin Number - BulletinURL string `json:"bulletinURL,omitempty"` // Bulletin U R L - EndOfHardwareNewServiceAttachmentDate *int `json:"endOfHardwareNewServiceAttachmentDate,omitempty"` // End Of Hardware New Service Attachment Date - EndOfHardwareServiceContractRenewalDate *int `json:"endOfHardwareServiceContractRenewalDate,omitempty"` // End Of Hardware Service Contract Renewal Date - EndOfLastHardwareShipDate *int `json:"endOfLastHardwareShipDate,omitempty"` // End Of Last Hardware Ship Date - EndOfLifeDate *int `json:"endOfLifeDate,omitempty"` // End Of Life Date - EndOfLifeExternalAnnouncementDate *int `json:"endOfLifeExternalAnnouncementDate,omitempty"` // End Of Life External Announcement Date - EndOfSaleDate *int `json:"endOfSaleDate,omitempty"` // End Of Sale Date - EndOfSignatureReleasesDate *int `json:"endOfSignatureReleasesDate,omitempty"` // End Of Signature Releases Date - EndOfSoftwareVulnerabilityOrSecuritySupportDate *int `json:"endOfSoftwareVulnerabilityOrSecuritySupportDate,omitempty"` // End Of Software Vulnerability Or Security Support Date - EndOfSoftwareVulnerabilityOrSecuritySupportDateHw *int `json:"endOfSoftwareVulnerabilityOrSecuritySupportDateHw,omitempty"` // End Of Software Vulnerability Or Security Support Date Hw - EndOfSoftwareMaintenanceReleasesDate *int `json:"endOfSoftwareMaintenanceReleasesDate,omitempty"` // End Of Software Maintenance Releases Date - EoxAlertType string `json:"eoxAlertType,omitempty"` // Eox Alert Type - LastDateOfSupport *int `json:"lastDateOfSupport,omitempty"` // Last Date Of Support - Name string `json:"name,omitempty"` // Name +type ResponseEoXGetEoXDetailsPerDeviceResponseEoXDetails struct { + Name string `json:"name,omitempty"` // Name of the EoX alert. Every EoX announcement has a unique name. ie:- EOL13873 + BulletinHeadline string `json:"bulletinHeadline,omitempty"` // Title of the EoX bulletin + BulletinName string `json:"bulletinName,omitempty"` // Name of the EoX bulletin + BulletinNumber string `json:"bulletinNumber,omitempty"` // Identifier of the EoX bulletin. Usually the same as name. + BulletinURL string `json:"bulletinURL,omitempty"` // URL where the EoX bulletin is posted + EndOfHardwareNewServiceAttachmentDate string `json:"endOfHardwareNewServiceAttachmentDate,omitempty"` // For equipment and software that is not covered by a service-and-support contract, this is the last date to order a new service-and-support contract or add the equipment and/or software to an existing service-and-support contract + EndOfHardwareServiceContractRenewalDate string `json:"endOfHardwareServiceContractRenewalDate,omitempty"` // The last date to extend or renew a service contract for the product + EndOfLastHardwareShipDate string `json:"endOfLastHardwareShipDate,omitempty"` // The last-possible ship date that can be requested of Cisco and/or its contract manufacturers + EndOfLifeExternalAnnouncementDate string `json:"endOfLifeExternalAnnouncementDate,omitempty"` // The date the document that announces the end-of-sale and end-of-life of a product is distributed to the general public + EndOfSignatureReleasesDate string `json:"endOfSignatureReleasesDate,omitempty"` // The date after which there will be no more signature update release for the product + EndOfSoftwareVulnerabilityOrSecuritySupportDate string `json:"endOfSoftwareVulnerabilityOrSecuritySupportDate,omitempty"` // The last date that Cisco Engineering may release bug fixes for Vulnerability or Security issues for the product. This will be populated for software alerts only. + EndOfSoftwareVulnerabilityOrSecuritySupportDateHw string `json:"endOfSoftwareVulnerabilityOrSecuritySupportDateHw,omitempty"` // The last date that Cisco Engineering may release bug fixes for Vulnerability or Security issues for the product. This will be populated for hardware or module alerts only. + EndOfSaleDate string `json:"endOfSaleDate,omitempty"` // The last date to order the product through Cisco point-of-sale mechanisms + EndOfLifeDate string `json:"endOfLifeDate,omitempty"` // The last date to receive applicable service and support for the product as entitled by active service contracts or by warranty terms and conditions. This will be populated for software alerts only. + LastDateOfSupport string `json:"lastDateOfSupport,omitempty"` // The last date to receive applicable service and support for the product as entitled by active service contracts or by warranty terms and conditions. This will be populated for hardware and module alerts only. + EndOfSoftwareMaintenanceReleasesDate string `json:"endOfSoftwareMaintenanceReleasesDate,omitempty"` // The last date that Cisco Engineering may release any final software maintenance releases or bug fixes for the product + EoXAlertType string `json:"EoXAlertType,omitempty"` // Type of EoX alert + EoXPhysicalType string `json:"EoXPhysicalType,omitempty"` // The type of part for EoX alert. eg:- Power Supply, Chassis, Fan etc. + BulletinPID string `json:"bulletinPID,omitempty"` // The part number for the EoX alert. eg:- PWR-C1-1100WAC } -type ResponseEoXGetEoXDetailsPerDeviceResponseComments interface{} type ResponseEoXGetEoXSummary struct { Response *ResponseEoXGetEoXSummaryResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version of the response } type ResponseEoXGetEoXSummaryResponse struct { - HardwareCount *int `json:"hardwareCount,omitempty"` // Hardware Count - SoftwareCount *int `json:"softwareCount,omitempty"` // Software Count - ModuleCount *int `json:"moduleCount,omitempty"` // Module Count - TotalCount *int `json:"totalCount,omitempty"` // Total Count + HardwareCount *int `json:"hardwareCount,omitempty"` // Number of hardware EoX alerts detected on the network + SoftwareCount *int `json:"softwareCount,omitempty"` // Number of software EoX alerts detected on the network + ModuleCount *int `json:"moduleCount,omitempty"` // Number of module EoX alerts detected on the network + TotalCount *int `json:"totalCount,omitempty"` // Total number of EoX alerts detected on the network. This is the sum of hardwareCount, softwareCount and moduleCount. } //GetEoXStatusForAllDevices Get EoX Status For All Devices - 3281-fa04-49ba-87d9 @@ -71,10 +74,10 @@ type ResponseEoXGetEoXSummaryResponse struct { -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-eo-x-status-for-all-devices +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-EoX-status-for-all-devices-v1 */ func (s *EoXService) GetEoXStatusForAllDevices() (*ResponseEoXGetEoXStatusForAllDevices, *resty.Response, error) { - path := "/dna/intent/api/v1/eox-status/device" + path := "/dna/intent/api/v1/EoX-status/device" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). @@ -107,10 +110,10 @@ func (s *EoXService) GetEoXStatusForAllDevices() (*ResponseEoXGetEoXStatusForAll @param deviceID deviceId path parameter. Device instance UUID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-eox-details-per-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-EoX-details-per-device-v1 */ func (s *EoXService) GetEoXDetailsPerDevice(deviceID string) (*ResponseEoXGetEoXDetailsPerDevice, *resty.Response, error) { - path := "/dna/intent/api/v1/eox-status/device/{deviceId}" + path := "/dna/intent/api/v1/EoX-status/device/{deviceId}" path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) response, err := s.client.R(). @@ -142,10 +145,10 @@ func (s *EoXService) GetEoXDetailsPerDevice(deviceID string) (*ResponseEoXGetEoX -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-eox-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-EoX-summary-v1 */ func (s *EoXService) GetEoXSummary() (*ResponseEoXGetEoXSummary, *resty.Response, error) { - path := "/dna/intent/api/v1/eox-status/summary" + path := "/dna/intent/api/v1/EoX-status/summary" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). diff --git a/sdk/event_management.go b/sdk/event_management.go index c848893..a92dadd 100644 --- a/sdk/event_management.go +++ b/sdk/event_management.go @@ -79,6 +79,13 @@ type GetAuditLogRecordsQueryParams struct { SortBy string `url:"sortBy,omitempty"` //Sort the Audit Logs by certain fields. Supported values are event notification header attributes. Order string `url:"order,omitempty"` //Order of the sorted Audit Log records. Default value is desc by timestamp. Supported values: asc, desc. } +type GetSNMPDestinationQueryParams struct { + ConfigID string `url:"configId,omitempty"` //List of SNMP configurations + Offset float64 `url:"offset,omitempty"` //The number of SNMP configuration's to offset in the resultset whose default value 0 + Limit float64 `url:"limit,omitempty"` //The number of SNMP configuration's to limit in the resultset whose default value 10 + SortBy string `url:"sortBy,omitempty"` //SortBy field name + Order string `url:"order,omitempty"` //order(asc/desc) +} type GetNotificationsQueryParams struct { EventIDs string `url:"eventIds,omitempty"` //The registered EventId should be provided StartTime float64 `url:"startTime,omitempty"` //Start Time in milliseconds @@ -108,13 +115,6 @@ type CountOfNotificationsQueryParams struct { SubDomain string `url:"subDomain,omitempty"` //Sub Domain Source string `url:"source,omitempty"` //Source } -type GetSNMPDestinationQueryParams struct { - ConfigID string `url:"configId,omitempty"` //List of SNMP configurations - Offset float64 `url:"offset,omitempty"` //The number of SNMP configuration's to offset in the resultset whose default value 0 - Limit float64 `url:"limit,omitempty"` //The number of SNMP configuration's to limit in the resultset whose default value 10 - SortBy string `url:"sortBy,omitempty"` //SortBy field name - Order string `url:"order,omitempty"` //order(asc/desc) -} type GetEventSubscriptionsQueryParams struct { EventIDs string `url:"eventIds,omitempty"` //List of subscriptions related to the respective eventIds Offset float64 `url:"offset,omitempty"` //The number of Subscriptions's to offset in the resultset whose default value 0 @@ -302,6 +302,24 @@ type ResponseItemEventManagementGetAuditLogRecords struct { type ResponseItemEventManagementGetAuditLogRecordsTags interface{} type ResponseItemEventManagementGetAuditLogRecordsDetails interface{} type ResponseItemEventManagementGetAuditLogRecordsAdditionalDetails interface{} +type ResponseEventManagementGetSNMPDestination []ResponseItemEventManagementGetSNMPDestination // Array of ResponseEventManagementGetSNMPDestination +type ResponseItemEventManagementGetSNMPDestination struct { + Version string `json:"version,omitempty"` // Version + TenantID string `json:"tenantId,omitempty"` // Tenant Id + ConfigID string `json:"configId,omitempty"` // Config Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + IPAddress string `json:"ipAddress,omitempty"` // Ip Address + Port *int `json:"port,omitempty"` // Port + SNMPVersion string `json:"snmpVersion,omitempty"` // Snmp Version + Community string `json:"community,omitempty"` // Community + UserName string `json:"userName,omitempty"` // User Name + SNMPMode string `json:"snmpMode,omitempty"` // Snmp Mode + SNMPAuthType string `json:"snmpAuthType,omitempty"` // Snmp Auth Type + AuthPassword string `json:"authPassword,omitempty"` // Auth Password + SNMPPrivacyType string `json:"snmpPrivacyType,omitempty"` // Snmp Privacy Type + PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password +} type ResponseEventManagementGetStatusAPIForEvents struct { ErrorMessage *ResponseEventManagementGetStatusAPIForEventsErrorMessage `json:"errorMessage,omitempty"` // Error Message APIStatus string `json:"apiStatus,omitempty"` // Api Status @@ -327,14 +345,14 @@ type ResponseItemEventManagementGetEmailDestinationPrimarySmtpConfig struct { Port string `json:"port,omitempty"` // Port UserName string `json:"userName,omitempty"` // User Name Password string `json:"password,omitempty"` // Password - Security string `json:"security,omitempty"` // Security + SmtpType string `json:"smtpType,omitempty"` // smtpType } type ResponseItemEventManagementGetEmailDestinationSecondarySmtpConfig struct { HostName string `json:"hostName,omitempty"` // Host Name Port string `json:"port,omitempty"` // Port UserName string `json:"userName,omitempty"` // User Name Password string `json:"password,omitempty"` // Password - Security string `json:"security,omitempty"` // Security + SmtpType string `json:"smtpType,omitempty"` // smtpType } type ResponseEventManagementCreateEmailDestination struct { StatusURI string `json:"statusUri,omitempty"` // Status Uri @@ -365,30 +383,22 @@ type ResponseItemEventManagementGetNotificationsNetwork struct { type ResponseEventManagementCountOfNotifications struct { Response string `json:"response,omitempty"` // Response } -type ResponseEventManagementGetSNMPDestination struct { - ErrorMessage *ResponseEventManagementGetSNMPDestinationErrorMessage `json:"errorMessage,omitempty"` // - APIStatus string `json:"apiStatus,omitempty"` // Status - StatusMessage *[]ResponseEventManagementGetSNMPDestinationStatusMessage `json:"statusMessage,omitempty"` // +type ResponseEventManagementCreateSNMPDestination struct { + ErrorMessage *ResponseEventManagementCreateSNMPDestinationErrorMessage `json:"errorMessage,omitempty"` // + APIStatus string `json:"apiStatus,omitempty"` // Api Status + StatusMessage string `json:"statusMessage,omitempty"` // Status Message } -type ResponseEventManagementGetSNMPDestinationErrorMessage struct { - Errors []string `json:"errors,omitempty"` // Errors +type ResponseEventManagementCreateSNMPDestinationErrorMessage struct { + Errors *[]ResponseEventManagementCreateSNMPDestinationErrorMessageErrors `json:"errors,omitempty"` // Errors } -type ResponseEventManagementGetSNMPDestinationStatusMessage struct { - Version string `json:"version,omitempty"` // Version - TenantID string `json:"tenantId,omitempty"` // Tenant Id - ConfigID string `json:"configId,omitempty"` // Config Id - Name string `json:"name,omitempty"` // Name - Description string `json:"description,omitempty"` // Description - IPAddress string `json:"ipAddress,omitempty"` // Ip Address - Port *int `json:"port,omitempty"` // Port - SNMPVersion string `json:"snmpVersion,omitempty"` // Snmp Version - Community string `json:"community,omitempty"` // Community - UserName string `json:"userName,omitempty"` // User Name - SNMPMode string `json:"snmpMode,omitempty"` // Snmp Mode - SNMPAuthType string `json:"snmpAuthType,omitempty"` // Snmp Auth Type - AuthPassword string `json:"authPassword,omitempty"` // Auth Password - SNMPPrivacyType string `json:"snmpPrivacyType,omitempty"` // Snmp Privacy Type - PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password +type ResponseEventManagementCreateSNMPDestinationErrorMessageErrors interface{} +type ResponseEventManagementUpdateSNMPDestination struct { + ErrorMessage *ResponseEventManagementUpdateSNMPDestinationErrorMessage `json:"errorMessage,omitempty"` // + APIStatus string `json:"apiStatus,omitempty"` // Api Status + StatusMessage string `json:"statusMessage,omitempty"` // Status Message +} +type ResponseEventManagementUpdateSNMPDestinationErrorMessage struct { + Errors []string `json:"errors,omitempty"` // Errors } type ResponseEventManagementGetEventSubscriptions []ResponseItemEventManagementGetEventSubscriptions // Array of ResponseEventManagementGetEventSubscriptions type ResponseItemEventManagementGetEventSubscriptions struct { @@ -467,16 +477,23 @@ type ResponseItemEventManagementGetEmailSubscriptionDetails struct { } type ResponseEventManagementGetRestWebhookSubscriptionDetails []ResponseItemEventManagementGetRestWebhookSubscriptionDetails // Array of ResponseEventManagementGetRestWebhookSubscriptionDetails type ResponseItemEventManagementGetRestWebhookSubscriptionDetails struct { - InstanceID string `json:"instanceId,omitempty"` // Instance Id - Name string `json:"name,omitempty"` // Name - Description string `json:"description,omitempty"` // Description - ConnectorType string `json:"connectorType,omitempty"` // Connector Type - URL string `json:"url,omitempty"` // Url - Method string `json:"method,omitempty"` // Method - TrustCert string `json:"trustCert,omitempty"` // Trust Cert - Headers *[]ResponseItemEventManagementGetRestWebhookSubscriptionDetailsHeaders `json:"headers,omitempty"` // - QueryParams []string `json:"queryParams,omitempty"` // Query Params - PathParams []string `json:"pathParams,omitempty"` // Path Params + InstanceID string `json:"instanceId,omitempty"` // Instance Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + ConnectorType string `json:"connectorType,omitempty"` // Connector Type + URL string `json:"url,omitempty"` // Url + Method string `json:"method,omitempty"` // Method + TrustCert *bool `json:"trustCert,omitempty"` // Trust Cert + Headers *[]ResponseItemEventManagementGetRestWebhookSubscriptionDetailsHeaders `json:"headers,omitempty"` // + QueryParams []string `json:"queryParams,omitempty"` // Query Params + PathParams []string `json:"pathParams,omitempty"` // Path Params + Body string `json:"body,omitempty"` // Body + ConnectTimeout *int `json:"connectTimeout,omitempty"` // Connect Timeout + ReadTimeout *int `json:"readTimeout,omitempty"` // Read Timeout + ServiceName string `json:"serviceName,omitempty"` // Service Name + ServicePort string `json:"servicePort,omitempty"` // Service Port + Namespace string `json:"namespace,omitempty"` // Namespace + ProxyRoute *bool `json:"proxyRoute,omitempty"` // Proxy Route } type ResponseItemEventManagementGetRestWebhookSubscriptionDetailsHeaders struct { Name string `json:"name,omitempty"` // Name @@ -720,15 +737,16 @@ type ResponseEventManagementGetWebhookDestinationErrorMessage struct { Errors []string `json:"errors,omitempty"` // Errors } type ResponseEventManagementGetWebhookDestinationStatusMessage struct { - Version string `json:"version,omitempty"` // Version - TenantID string `json:"tenantId,omitempty"` // Tenant Id - WebhookID string `json:"webhookId,omitempty"` // Webhook Id - Name string `json:"name,omitempty"` // Name - Description string `json:"description,omitempty"` // Description - URL string `json:"url,omitempty"` // Url - Method string `json:"method,omitempty"` // Method - TrustCert *bool `json:"trustCert,omitempty"` // Trust Cert - Headers *[]ResponseEventManagementGetWebhookDestinationStatusMessageHeaders `json:"headers,omitempty"` // + Version string `json:"version,omitempty"` // Version + TenantID string `json:"tenantId,omitempty"` // Tenant Id + WebhookID string `json:"webhookId,omitempty"` // Webhook Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + URL string `json:"url,omitempty"` // Url + Method string `json:"method,omitempty"` // Method + TrustCert *bool `json:"trustCert,omitempty"` // Trust Cert + Headers *[]ResponseEventManagementGetWebhookDestinationStatusMessageHeaders `json:"headers,omitempty"` // + IsProxyRoute *bool `json:"isProxyRoute,omitempty"` // Is Proxy Route } type ResponseEventManagementGetWebhookDestinationStatusMessageHeaders struct { Name string `json:"name,omitempty"` // Name @@ -765,6 +783,8 @@ type ResponseItemEventManagementGetEventArtifacts struct { Description string `json:"description,omitempty"` // Description Domain string `json:"domain,omitempty"` // Domain SubDomain string `json:"subDomain,omitempty"` // Sub Domain + DeprecationMessage string `json:"deprecationMessage,omitempty"` // Deprecation Message + Deprecated *bool `json:"deprecated,omitempty"` // Deprecated Tags []string `json:"tags,omitempty"` // Tags IsTemplateEnabled *bool `json:"isTemplateEnabled,omitempty"` // Is Template Enabled CiscoDnaEventLink string `json:"ciscoDNAEventLink,omitempty"` // Cisco D N A Event Link @@ -815,12 +835,14 @@ type RequestEventManagementUpdateEmailDestinationPrimarySmtpConfig struct { Port string `json:"port,omitempty"` // Port UserName string `json:"userName,omitempty"` // User Name Password string `json:"password,omitempty"` // Password + SmtpType string `json:"smtpType,omitempty"` // smtpType } type RequestEventManagementUpdateEmailDestinationSecondarySmtpConfig struct { HostName string `json:"hostName,omitempty"` // Host Name Port string `json:"port,omitempty"` // Port UserName string `json:"userName,omitempty"` // User Name Password string `json:"password,omitempty"` // Password + SmtpType string `json:"smtpType,omitempty"` // smtpType } type RequestEventManagementCreateEmailDestination struct { EmailConfigID string `json:"emailConfigId,omitempty"` // Required only for update email configuration @@ -835,12 +857,43 @@ type RequestEventManagementCreateEmailDestinationPrimarySmtpConfig struct { Port string `json:"port,omitempty"` // Port UserName string `json:"userName,omitempty"` // User Name Password string `json:"password,omitempty"` // Password + SmtpType string `json:"smtpType,omitempty"` // smtpType } type RequestEventManagementCreateEmailDestinationSecondarySmtpConfig struct { HostName string `json:"hostName,omitempty"` // Host Name Port string `json:"port,omitempty"` // Port UserName string `json:"userName,omitempty"` // User Name Password string `json:"password,omitempty"` // Password + SmtpType string `json:"smtpType,omitempty"` // smtpType +} +type RequestEventManagementCreateSNMPDestination struct { + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + IPAddress string `json:"ipAddress,omitempty"` // Ip Address + Port string `json:"port,omitempty"` // Port + SNMPVersion string `json:"snmpVersion,omitempty"` // Snmp Version + Community string `json:"community,omitempty"` // Required only if snmpVersion is V2C + UserName string `json:"userName,omitempty"` // Required only if snmpVersion is V3 + SNMPMode string `json:"snmpMode,omitempty"` // If snmpVersion is V3 it is required and cannot be NONE + SNMPAuthType string `json:"snmpAuthType,omitempty"` // Snmp Auth Type + AuthPassword string `json:"authPassword,omitempty"` // Auth Password + SNMPPrivacyType string `json:"snmpPrivacyType,omitempty"` // Snmp Privacy Type + PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password +} +type RequestEventManagementUpdateSNMPDestination struct { + ConfigID string `json:"configId,omitempty"` // Config Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // + IPAddress string `json:"ipAddress,omitempty"` // Ip Address + Port string `json:"port,omitempty"` // Port + SNMPVersion string `json:"snmpVersion,omitempty"` // Snmp Version + Community string `json:"community,omitempty"` // Required only if snmpVersion is V2C + UserName string `json:"userName,omitempty"` // Required only if snmpVersion is V3 + SNMPMode string `json:"snmpMode,omitempty"` // If snmpVersion is V3 it is required and cannot be NONE + SNMPAuthType string `json:"snmpAuthType,omitempty"` // Snmp Auth Type + AuthPassword string `json:"authPassword,omitempty"` // Auth Password + SNMPPrivacyType string `json:"snmpPrivacyType,omitempty"` // Snmp Privacy Type + PrivacyPassword string `json:"privacyPassword,omitempty"` // Privacy Password } type RequestEventManagementUpdateEventSubscriptions []RequestItemEventManagementUpdateEventSubscriptions // Array of RequestEventManagementUpdateEventSubscriptions type RequestItemEventManagementUpdateEventSubscriptions struct { @@ -910,7 +963,7 @@ type RequestItemEventManagementCreateEmailEventSubscription struct { Filter *RequestItemEventManagementCreateEmailEventSubscriptionFilter `json:"filter,omitempty"` // } type RequestItemEventManagementCreateEmailEventSubscriptionSubscriptionEndpoints struct { - InstanceID string `json:"instanceId,omitempty"` // (From Get Email Subscription Details --> pick InstanceId) + InstanceID string `json:"instanceId,omitempty"` // (From Get Email Subscription Details --> pick InstanceId if available) SubscriptionDetails *RequestItemEventManagementCreateEmailEventSubscriptionSubscriptionEndpointsSubscriptionDetails `json:"subscriptionDetails,omitempty"` // } type RequestItemEventManagementCreateEmailEventSubscriptionSubscriptionEndpointsSubscriptionDetails struct { @@ -1090,7 +1143,7 @@ type RequestEventManagementUpdateSyslogDestination struct { Description string `json:"description,omitempty"` // Description Host string `json:"host,omitempty"` // Host Protocol string `json:"protocol,omitempty"` // Protocol - Port string `json:"port,omitempty"` // Port + Port *int `json:"port,omitempty"` // Port } type RequestEventManagementCreateSyslogDestination struct { ConfigID string `json:"configId,omitempty"` // Required only for update syslog configuration @@ -1098,16 +1151,17 @@ type RequestEventManagementCreateSyslogDestination struct { Description string `json:"description,omitempty"` // Description Host string `json:"host,omitempty"` // Host Protocol string `json:"protocol,omitempty"` // Protocol - Port string `json:"port,omitempty"` // Port + Port *int `json:"port,omitempty"` // Port } type RequestEventManagementCreateWebhookDestination struct { - WebhookID string `json:"webhookId,omitempty"` // Required only for update webhook configuration - Name string `json:"name,omitempty"` // Name - Description string `json:"description,omitempty"` // Description - URL string `json:"url,omitempty"` // Url - Method string `json:"method,omitempty"` // Method - TrustCert *bool `json:"trustCert,omitempty"` // Trust Cert - Headers *[]RequestEventManagementCreateWebhookDestinationHeaders `json:"headers,omitempty"` // + WebhookID string `json:"webhookId,omitempty"` // Required only for update webhook configuration + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + URL string `json:"url,omitempty"` // Url + Method string `json:"method,omitempty"` // Method + TrustCert *bool `json:"trustCert,omitempty"` // Trust Cert + Headers *[]RequestEventManagementCreateWebhookDestinationHeaders `json:"headers,omitempty"` // + IsProxyRoute *bool `json:"isProxyRoute,omitempty"` // Is Proxy Route } type RequestEventManagementCreateWebhookDestinationHeaders struct { Name string `json:"name,omitempty"` // Name @@ -1116,13 +1170,14 @@ type RequestEventManagementCreateWebhookDestinationHeaders struct { Encrypt *bool `json:"encrypt,omitempty"` // Encrypt } type RequestEventManagementUpdateWebhookDestination struct { - WebhookID string `json:"webhookId,omitempty"` // Required only for update webhook configuration - Name string `json:"name,omitempty"` // Name - Description string `json:"description,omitempty"` // Description - URL string `json:"url,omitempty"` // Url - Method string `json:"method,omitempty"` // Method - TrustCert *bool `json:"trustCert,omitempty"` // Trust Cert - Headers *[]RequestEventManagementUpdateWebhookDestinationHeaders `json:"headers,omitempty"` // + WebhookID string `json:"webhookId,omitempty"` // Required only for update webhook configuration + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + URL string `json:"url,omitempty"` // Url + Method string `json:"method,omitempty"` // Method + TrustCert *bool `json:"trustCert,omitempty"` // Trust Cert + Headers *[]RequestEventManagementUpdateWebhookDestinationHeaders `json:"headers,omitempty"` // + IsProxyRoute *bool `json:"isProxyRoute,omitempty"` // Is Proxy Route } type RequestEventManagementUpdateWebhookDestinationHeaders struct { Name string `json:"name,omitempty"` // Name @@ -1137,7 +1192,7 @@ type RequestEventManagementUpdateWebhookDestinationHeaders struct { @param GetAuditLogParentRecordsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-audit-log-parent-records +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-audit-log-parent-records-v1 */ func (s *EventManagementService) GetAuditLogParentRecords(GetAuditLogParentRecordsQueryParams *GetAuditLogParentRecordsQueryParams) (*ResponseEventManagementGetAuditLogParentRecords, *resty.Response, error) { path := "/dna/data/api/v1/event/event-series/audit-log/parent-records" @@ -1174,7 +1229,7 @@ func (s *EventManagementService) GetAuditLogParentRecords(GetAuditLogParentRecor @param GetAuditLogSummaryQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-audit-log-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-audit-log-summary-v1 */ func (s *EventManagementService) GetAuditLogSummary(GetAuditLogSummaryQueryParams *GetAuditLogSummaryQueryParams) (*ResponseEventManagementGetAuditLogSummary, *resty.Response, error) { path := "/dna/data/api/v1/event/event-series/audit-log/summary" @@ -1211,7 +1266,7 @@ func (s *EventManagementService) GetAuditLogSummary(GetAuditLogSummaryQueryParam @param GetAuditLogRecordsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-audit-log-records +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-audit-log-records-v1 */ func (s *EventManagementService) GetAuditLogRecords(GetAuditLogRecordsQueryParams *GetAuditLogRecordsQueryParams) (*ResponseEventManagementGetAuditLogRecords, *resty.Response, error) { path := "/dna/data/api/v1/event/event-series/audit-logs" @@ -1242,6 +1297,43 @@ func (s *EventManagementService) GetAuditLogRecords(GetAuditLogRecordsQueryParam } +//GetSNMPDestination Get SNMP Destination - ffbb-e92a-40e9-9ae6 +/* Get SNMP Destination + + +@param GetSNMPDestinationQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-snmp-destination-v1 +*/ +func (s *EventManagementService) GetSNMPDestination(GetSNMPDestinationQueryParams *GetSNMPDestinationQueryParams) (*ResponseEventManagementGetSNMPDestination, *resty.Response, error) { + path := "/dna/intent/api/v1/dna-event/snmp-config" + + queryString, _ := query.Values(GetSNMPDestinationQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseEventManagementGetSNMPDestination{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSNMPDestination(GetSNMPDestinationQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSnmpDestination") + } + + result := response.Result().(*ResponseEventManagementGetSNMPDestination) + return result, response, err + +} + //GetStatusAPIForEvents Get Status API for Events - f9bd-99c7-4bba-8832 /* Get the Status of events API calls with provided executionId as mandatory path parameter @@ -1249,7 +1341,7 @@ func (s *EventManagementService) GetAuditLogRecords(GetAuditLogRecordsQueryParam @param executionID executionId path parameter. Execution ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-status-api-for-events +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-status-api-for-events-v1 */ func (s *EventManagementService) GetStatusAPIForEvents(executionID string) (*ResponseEventManagementGetStatusAPIForEvents, *resty.Response, error) { path := "/dna/intent/api/v1/event/api-status/{executionId}" @@ -1284,7 +1376,7 @@ func (s *EventManagementService) GetStatusAPIForEvents(executionID string) (*Res -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-email-destination +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-email-destination-v1 */ func (s *EventManagementService) GetEmailDestination() (*ResponseEventManagementGetEmailDestination, *resty.Response, error) { path := "/dna/intent/api/v1/event/email-config" @@ -1319,7 +1411,7 @@ func (s *EventManagementService) GetEmailDestination() (*ResponseEventManagement @param GetNotificationsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-notifications +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-notifications-v1 */ func (s *EventManagementService) GetNotifications(GetNotificationsQueryParams *GetNotificationsQueryParams) (*ResponseEventManagementGetNotifications, *resty.Response, error) { path := "/dna/intent/api/v1/event/event-series" @@ -1356,7 +1448,7 @@ func (s *EventManagementService) GetNotifications(GetNotificationsQueryParams *G @param CountOfNotificationsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-of-notifications +Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-of-notifications-v1 */ func (s *EventManagementService) CountOfNotifications(CountOfNotificationsQueryParams *CountOfNotificationsQueryParams) (*ResponseEventManagementCountOfNotifications, *resty.Response, error) { path := "/dna/intent/api/v1/event/event-series/count" @@ -1387,50 +1479,13 @@ func (s *EventManagementService) CountOfNotifications(CountOfNotificationsQueryP } -//GetSNMPDestination Get SNMP Destination - ffbb-e92a-40e9-9ae6 -/* Get SNMP Destination - - -@param GetSNMPDestinationQueryParams Filtering parameter - -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-snmp-destination -*/ -func (s *EventManagementService) GetSNMPDestination(GetSNMPDestinationQueryParams *GetSNMPDestinationQueryParams) (*ResponseEventManagementGetSNMPDestination, *resty.Response, error) { - path := "/dna/intent/api/v1/event/snmp-config" - - queryString, _ := query.Values(GetSNMPDestinationQueryParams) - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseEventManagementGetSNMPDestination{}). - SetError(&Error). - Get(path) - - if err != nil { - return nil, nil, err - - } - - if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.GetSNMPDestination(GetSNMPDestinationQueryParams) - } - return nil, response, fmt.Errorf("error with operation GetSnmpDestination") - } - - result := response.Result().(*ResponseEventManagementGetSNMPDestination) - return result, response, err - -} - //GetEventSubscriptions Get Event Subscriptions - dcaa-6bde-4feb-9152 /* Gets the list of Subscriptions's based on provided offset and limit (Deprecated) @param GetEventSubscriptionsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-event-subscriptions +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-event-subscriptions-v1 */ func (s *EventManagementService) GetEventSubscriptions(GetEventSubscriptionsQueryParams *GetEventSubscriptionsQueryParams) (*ResponseEventManagementGetEventSubscriptions, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription" @@ -1467,7 +1522,7 @@ func (s *EventManagementService) GetEventSubscriptions(GetEventSubscriptionsQuer @param GetEmailSubscriptionDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-email-subscription-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-email-subscription-details-v1 */ func (s *EventManagementService) GetEmailSubscriptionDetails(GetEmailSubscriptionDetailsQueryParams *GetEmailSubscriptionDetailsQueryParams) (*ResponseEventManagementGetEmailSubscriptionDetails, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription-details/email" @@ -1504,7 +1559,7 @@ func (s *EventManagementService) GetEmailSubscriptionDetails(GetEmailSubscriptio @param GetRestWebhookSubscriptionDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-rest-webhook-subscription-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-rest-webhook-subscription-details-v1 */ func (s *EventManagementService) GetRestWebhookSubscriptionDetails(GetRestWebhookSubscriptionDetailsQueryParams *GetRestWebhookSubscriptionDetailsQueryParams) (*ResponseEventManagementGetRestWebhookSubscriptionDetails, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription-details/rest" @@ -1541,7 +1596,7 @@ func (s *EventManagementService) GetRestWebhookSubscriptionDetails(GetRestWebhoo @param GetSyslogSubscriptionDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-syslog-subscription-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-syslog-subscription-details-v1 */ func (s *EventManagementService) GetSyslogSubscriptionDetails(GetSyslogSubscriptionDetailsQueryParams *GetSyslogSubscriptionDetailsQueryParams) (*ResponseEventManagementGetSyslogSubscriptionDetails, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription-details/syslog" @@ -1578,7 +1633,7 @@ func (s *EventManagementService) GetSyslogSubscriptionDetails(GetSyslogSubscript @param CountOfEventSubscriptionsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-of-event-subscriptions +Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-of-event-subscriptions-v1 */ func (s *EventManagementService) CountOfEventSubscriptions(CountOfEventSubscriptionsQueryParams *CountOfEventSubscriptionsQueryParams) (*ResponseEventManagementCountOfEventSubscriptions, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription/count" @@ -1615,7 +1670,7 @@ func (s *EventManagementService) CountOfEventSubscriptions(CountOfEventSubscript @param GetEmailEventSubscriptionsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-email-event-subscriptions +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-email-event-subscriptions-v1 */ func (s *EventManagementService) GetEmailEventSubscriptions(GetEmailEventSubscriptionsQueryParams *GetEmailEventSubscriptionsQueryParams) (*ResponseEventManagementGetEmailEventSubscriptions, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription/email" @@ -1652,7 +1707,7 @@ func (s *EventManagementService) GetEmailEventSubscriptions(GetEmailEventSubscri @param GetRestWebhookEventSubscriptionsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-rest-webhook-event-subscriptions +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-rest-webhook-event-subscriptions-v1 */ func (s *EventManagementService) GetRestWebhookEventSubscriptions(GetRestWebhookEventSubscriptionsQueryParams *GetRestWebhookEventSubscriptionsQueryParams) (*ResponseEventManagementGetRestWebhookEventSubscriptions, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription/rest" @@ -1689,7 +1744,7 @@ func (s *EventManagementService) GetRestWebhookEventSubscriptions(GetRestWebhook @param GetSyslogEventSubscriptionsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-syslog-event-subscriptions +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-syslog-event-subscriptions-v1 */ func (s *EventManagementService) GetSyslogEventSubscriptions(GetSyslogEventSubscriptionsQueryParams *GetSyslogEventSubscriptionsQueryParams) (*ResponseEventManagementGetSyslogEventSubscriptions, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription/syslog" @@ -1726,7 +1781,7 @@ func (s *EventManagementService) GetSyslogEventSubscriptions(GetSyslogEventSubsc @param GetSyslogDestinationQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-syslog-destination +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-syslog-destination-v1 */ func (s *EventManagementService) GetSyslogDestination(GetSyslogDestinationQueryParams *GetSyslogDestinationQueryParams) (*ResponseEventManagementGetSyslogDestination, *resty.Response, error) { path := "/dna/intent/api/v1/event/syslog-config" @@ -1763,7 +1818,7 @@ func (s *EventManagementService) GetSyslogDestination(GetSyslogDestinationQueryP @param GetWebhookDestinationQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-webhook-destination +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-webhook-destination-v1 */ func (s *EventManagementService) GetWebhookDestination(GetWebhookDestinationQueryParams *GetWebhookDestinationQueryParams) (*ResponseEventManagementGetWebhookDestination, *resty.Response, error) { path := "/dna/intent/api/v1/event/webhook" @@ -1800,7 +1855,7 @@ func (s *EventManagementService) GetWebhookDestination(GetWebhookDestinationQuer @param GetEventsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-events +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-events-v1 */ func (s *EventManagementService) GetEvents(GetEventsQueryParams *GetEventsQueryParams) (*ResponseEventManagementGetEvents, *resty.Response, error) { path := "/dna/intent/api/v1/events" @@ -1837,7 +1892,7 @@ func (s *EventManagementService) GetEvents(GetEventsQueryParams *GetEventsQueryP @param CountOfEventsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-of-events +Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-of-events-v1 */ func (s *EventManagementService) CountOfEvents(CountOfEventsQueryParams *CountOfEventsQueryParams) (*ResponseEventManagementCountOfEvents, *resty.Response, error) { path := "/dna/intent/api/v1/events/count" @@ -1874,7 +1929,7 @@ func (s *EventManagementService) CountOfEvents(CountOfEventsQueryParams *CountOf @param GetEventArtifactsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-event-artifacts +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-event-artifacts-v1 */ func (s *EventManagementService) GetEventArtifacts(GetEventArtifactsQueryParams *GetEventArtifactsQueryParams) (*ResponseEventManagementGetEventArtifacts, *resty.Response, error) { path := "/dna/system/api/v1/event/artifact" @@ -1906,11 +1961,11 @@ func (s *EventManagementService) GetEventArtifacts(GetEventArtifactsQueryParams } //EventArtifactCount EventArtifact Count - b78e-9bf7-4f8a-8321 -/* Get the count of registered event artifacts with provided eventIds or tags as mandatory +/* Get the count of registered event artifacts. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!event-artifact-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!event-artifact-count-v1 */ func (s *EventManagementService) EventArtifactCount() (*ResponseEventManagementEventArtifactCount, *resty.Response, error) { path := "/dna/system/api/v1/event/artifact/count" @@ -1944,7 +1999,7 @@ func (s *EventManagementService) EventArtifactCount() (*ResponseEventManagementE -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-connector-types +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-connector-types-v1 */ func (s *EventManagementService) GetConnectorTypes() (*ResponseEventManagementGetConnectorTypes, *resty.Response, error) { path := "/dna/system/api/v1/event/config/connector-types" @@ -1978,7 +2033,7 @@ func (s *EventManagementService) GetConnectorTypes() (*ResponseEventManagementGe -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-email-destination +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-email-destination-v1 */ func (s *EventManagementService) CreateEmailDestination(requestEventManagementCreateEmailDestination *RequestEventManagementCreateEmailDestination) (*ResponseEventManagementCreateEmailDestination, *resty.Response, error) { path := "/dna/intent/api/v1/event/email-config" @@ -2010,12 +2065,49 @@ func (s *EventManagementService) CreateEmailDestination(requestEventManagementCr } +//CreateSNMPDestination Create SNMP Destination - 0e81-69c1-4a7a-965d +/* Create SNMP Destination + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-snmp-destination-v1 +*/ +func (s *EventManagementService) CreateSNMPDestination(requestEventManagementCreateSNMPDestination *RequestEventManagementCreateSNMPDestination) (*ResponseEventManagementCreateSNMPDestination, *resty.Response, error) { + path := "/dna/intent/api/v1/event/snmp-config" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestEventManagementCreateSNMPDestination). + SetResult(&ResponseEventManagementCreateSNMPDestination{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateSNMPDestination(requestEventManagementCreateSNMPDestination) + } + + return nil, response, fmt.Errorf("error with operation CreateSnmpDestination") + } + + result := response.Result().(*ResponseEventManagementCreateSNMPDestination) + return result, response, err + +} + //CreateEventSubscriptions Create Event Subscriptions - 4f9f-7a7b-40f9-90de /* Subscribe SubscriptionEndpoint to list of registered events (Deprecated) -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-event-subscriptions +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-event-subscriptions-v1 */ func (s *EventManagementService) CreateEventSubscriptions(requestEventManagementCreateEventSubscriptions *RequestEventManagementCreateEventSubscriptions) (*ResponseEventManagementCreateEventSubscriptions, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription" @@ -2052,7 +2144,7 @@ func (s *EventManagementService) CreateEventSubscriptions(requestEventManagement -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-email-event-subscription +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-email-event-subscription-v1 */ func (s *EventManagementService) CreateEmailEventSubscription(requestEventManagementCreateEmailEventSubscription *RequestEventManagementCreateEmailEventSubscription) (*ResponseEventManagementCreateEmailEventSubscription, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription/email" @@ -2089,7 +2181,7 @@ func (s *EventManagementService) CreateEmailEventSubscription(requestEventManage -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-rest-webhook-event-subscription +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-rest-webhook-event-subscription-v1 */ func (s *EventManagementService) CreateRestWebhookEventSubscription(requestEventManagementCreateRestWebhookEventSubscription *RequestEventManagementCreateRestWebhookEventSubscription) (*ResponseEventManagementCreateRestWebhookEventSubscription, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription/rest" @@ -2126,7 +2218,7 @@ func (s *EventManagementService) CreateRestWebhookEventSubscription(requestEvent -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-syslog-event-subscription +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-syslog-event-subscription-v1 */ func (s *EventManagementService) CreateSyslogEventSubscription(requestEventManagementCreateSyslogEventSubscription *RequestEventManagementCreateSyslogEventSubscription) (*ResponseEventManagementCreateSyslogEventSubscription, *resty.Response, error) { path := "/dna/intent/api/v1/event/subscription/syslog" @@ -2163,7 +2255,7 @@ func (s *EventManagementService) CreateSyslogEventSubscription(requestEventManag -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-syslog-destination +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-syslog-destination-v1 */ func (s *EventManagementService) CreateSyslogDestination(requestEventManagementCreateSyslogDestination *RequestEventManagementCreateSyslogDestination) (*ResponseEventManagementCreateSyslogDestination, *resty.Response, error) { path := "/dna/intent/api/v1/event/syslog-config" @@ -2200,7 +2292,7 @@ func (s *EventManagementService) CreateSyslogDestination(requestEventManagementC -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-webhook-destination +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-webhook-destination-v1 */ func (s *EventManagementService) CreateWebhookDestination(requestEventManagementCreateWebhookDestination *RequestEventManagementCreateWebhookDestination) (*ResponseEventManagementCreateWebhookDestination, *resty.Response, error) { path := "/dna/intent/api/v1/event/webhook" @@ -2265,6 +2357,39 @@ func (s *EventManagementService) UpdateEmailDestination(requestEventManagementUp } +//UpdateSNMPDestination Update SNMP Destination - 26b7-ab81-4c5a-811b +/* Update SNMP Destination + + + */ +func (s *EventManagementService) UpdateSNMPDestination(requestEventManagementUpdateSNMPDestination *RequestEventManagementUpdateSNMPDestination) (*ResponseEventManagementUpdateSNMPDestination, *resty.Response, error) { + path := "/dna/intent/api/v1/event/snmp-config" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestEventManagementUpdateSNMPDestination). + SetResult(&ResponseEventManagementUpdateSNMPDestination{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateSNMPDestination(requestEventManagementUpdateSNMPDestination) + } + return nil, response, fmt.Errorf("error with operation UpdateSnmpDestination") + } + + result := response.Result().(*ResponseEventManagementUpdateSNMPDestination) + return result, response, err + +} + //UpdateEventSubscriptions Update Event Subscriptions - 579a-6a72-48cb-94cf /* Update SubscriptionEndpoint to list of registered events(Deprecated) @@ -2469,7 +2594,7 @@ func (s *EventManagementService) UpdateWebhookDestination(requestEventManagement @param DeleteEventSubscriptionsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-event-subscriptions +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-event-subscriptions-v1 */ func (s *EventManagementService) DeleteEventSubscriptions(DeleteEventSubscriptionsQueryParams *DeleteEventSubscriptionsQueryParams) (*ResponseEventManagementDeleteEventSubscriptions, *resty.Response, error) { //DeleteEventSubscriptionsQueryParams *DeleteEventSubscriptionsQueryParams @@ -2491,7 +2616,8 @@ func (s *EventManagementService) DeleteEventSubscriptions(DeleteEventSubscriptio if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteEventSubscriptions(DeleteEventSubscriptionsQueryParams) + return s.DeleteEventSubscriptions( + DeleteEventSubscriptionsQueryParams) } return nil, response, fmt.Errorf("error with operation DeleteEventSubscriptions") } diff --git a/sdk/fabric_wireless.go b/sdk/fabric_wireless.go index 956d3fc..32d7597 100644 --- a/sdk/fabric_wireless.go +++ b/sdk/fabric_wireless.go @@ -3,6 +3,7 @@ package dnac import ( "fmt" "net/http" + "strings" "github.com/go-resty/resty/v2" "github.com/google/go-querystring/query" @@ -10,9 +11,6 @@ import ( type FabricWirelessService service -type AddSSIDToIPPoolMappingHeaderParams struct { - Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type string. Enable this parameter to execute the API and return a response asynchronously. -} type GetSSIDToIPPoolMappingQueryParams struct { VLANName string `url:"vlanName,omitempty"` //VLAN Name SiteNameHierarchy string `url:"siteNameHierarchy,omitempty"` //Site Name Heirarchy @@ -23,16 +21,24 @@ type RemoveWLCFromFabricDomainQueryParams struct { type RemoveWLCFromFabricDomainHeaderParams struct { Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type string. Enable this parameter to execute the API and return a response asynchronously. } +type ReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingQueryParams struct { + Limit float64 `url:"limit,omitempty"` //Return only this many IP Pool to SSID Mapping + Offset float64 `url:"offset,omitempty"` //Number of records to skip for pagination +} +type RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteQueryParams struct { + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. +} type ResponseFabricWirelessAddSSIDToIPPoolMapping struct { - ExecutionID string `json:"executionId,omitempty"` // Status of the job for wireless state change in fabric domain - ExecutionStatusURL string `json:"executionStatusURL,omitempty"` // executionStatusURL - Message string `json:"message,omitempty"` // message + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url + Message string `json:"message,omitempty"` // Message } type ResponseFabricWirelessUpdateSSIDToIPPoolMapping struct { - ExecutionID string `json:"executionId,omitempty"` // Status of the job for wireless state change in fabric domain - ExecutionStatusURL string `json:"executionStatusURL,omitempty"` // executionStatusURL - Message string `json:"message,omitempty"` // message + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url + Message string `json:"message,omitempty"` // Message } type ResponseFabricWirelessGetSSIDToIPPoolMapping struct { VLANName string `json:"vlanName,omitempty"` // VLAN Name @@ -52,6 +58,56 @@ type ResponseFabricWirelessAddWLCToFabricDomain struct { ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url Message string `json:"message,omitempty"` // Message } +type ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMapping struct { + Response *[]ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingResponse struct { + FabricID string `json:"fabricId,omitempty"` // Fabric Id + VLANDetails *[]ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingResponseVLANDetails `json:"vlanDetails,omitempty"` // +} +type ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingResponseVLANDetails struct { + VLANName string `json:"vlanName,omitempty"` // Vlan Name + SSIDDetails *[]ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingResponseVLANDetailsSSIDDetails `json:"ssidDetails,omitempty"` // +} +type ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingResponseVLANDetailsSSIDDetails struct { + Name string `json:"name,omitempty"` // Name of the SSID. + SecurityGroupTag string `json:"securityGroupTag,omitempty"` // Represents the name of the Security Group. Example: Auditors, BYOD, Developers, etc. +} +type ResponseFabricWirelessReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMapping struct { + Response *ResponseFabricWirelessReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMappingResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseFabricWirelessReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMappingResponse struct { + Count *int `json:"count,omitempty"` // Return the count of all the fabric site which has SSID to IP Pool mapping +} +type ResponseFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN struct { + Response *ResponseFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLANResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLANResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseFabricWirelessRetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSite struct { + Response *[]ResponseFabricWirelessRetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseFabricWirelessRetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteResponse struct { + VLANName string `json:"vlanName,omitempty"` // Vlan Name + SSIDDetails *[]ResponseFabricWirelessRetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteResponseSSIDDetails `json:"ssidDetails,omitempty"` // +} +type ResponseFabricWirelessRetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteResponseSSIDDetails struct { + Name string `json:"name,omitempty"` // Name of the SSID + SecurityGroupTag string `json:"securityGroupTag,omitempty"` // Represents the name of the Security Group. Example: Auditors, BYOD, Developers, etc. +} +type ResponseFabricWirelessReturnsTheCountOfVLANsMappedToSSIDsInAFabricSite struct { + Response *ResponseFabricWirelessReturnsTheCountOfVLANsMappedToSSIDsInAFabricSiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseFabricWirelessReturnsTheCountOfVLANsMappedToSSIDsInAFabricSiteResponse struct { + Count *int `json:"count,omitempty"` // Returns the count of VLANs mapped to SSIDs in a Fabric Site +} type RequestFabricWirelessAddSSIDToIPPoolMapping struct { VLANName string `json:"vlanName,omitempty"` // VLAN Name ScalableGroupName string `json:"scalableGroupName,omitempty"` // Scalable Group Name @@ -65,8 +121,17 @@ type RequestFabricWirelessUpdateSSIDToIPPoolMapping struct { SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Site Name Hierarchy } type RequestFabricWirelessAddWLCToFabricDomain struct { - DeviceName string `json:"deviceName,omitempty"` // EWLC Device Name - SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Site Name Hierarchy + DeviceName string `json:"deviceName,omitempty"` // WLC Device Name + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Fabric Site Name Hierarchy +} +type RequestFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN []RequestItemFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN // Array of RequestFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN +type RequestItemFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN struct { + VLANName string `json:"vlanName,omitempty"` // Vlan Name + SSIDDetails *[]RequestItemFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLANSSIDDetails `json:"ssidDetails,omitempty"` // +} +type RequestItemFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLANSSIDDetails struct { + Name string `json:"name,omitempty"` // Name of the SSID + SecurityGroupTag string `json:"securityGroupTag,omitempty"` // Represents the name of the Security Group. Example: Auditors, BYOD, Developers, etc. } //GetSSIDToIPPoolMapping Get SSID to IP Pool Mapping - d891-8a44-4b6a-ad19 @@ -75,7 +140,7 @@ type RequestFabricWirelessAddWLCToFabricDomain struct { @param GetSSIDToIPPoolMappingQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ssid-to-ip-pool-mapping +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ssid-to-ip-pool-mapping-v1 */ func (s *FabricWirelessService) GetSSIDToIPPoolMapping(GetSSIDToIPPoolMappingQueryParams *GetSSIDToIPPoolMappingQueryParams) (*ResponseFabricWirelessGetSSIDToIPPoolMapping, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/hostonboarding/ssid-ippool" @@ -106,32 +171,167 @@ func (s *FabricWirelessService) GetSSIDToIPPoolMapping(GetSSIDToIPPoolMappingQue } -//AddSSIDToIPPoolMapping Add SSID to IP Pool Mapping - b783-49d9-463a-98dd -/* Add SSID to IP Pool Mapping. +//ReturnsAllTheFabricSitesThatHaveVLANToSSIDMapping Returns all the Fabric Sites that have VLAN to SSID mapping. - 7a96-98ce-400a-99ce +/* It will return all vlan to SSID mapping across all the fabric site -@param AddSSIDToIPPoolMappingHeaderParams Custom header parameters +@param ReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-ssid-to-ip-pool-mapping +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-all-the-fabric-sites-that-have-vlan-to-ssid-mapping-v1 */ -func (s *FabricWirelessService) AddSSIDToIPPoolMapping(requestFabricWirelessAddSSIDToIPPoolMapping *RequestFabricWirelessAddSSIDToIPPoolMapping, AddSSIDToIPPoolMappingHeaderParams *AddSSIDToIPPoolMappingHeaderParams) (*ResponseFabricWirelessAddSSIDToIPPoolMapping, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/hostonboarding/ssid-ippool" +func (s *FabricWirelessService) ReturnsAllTheFabricSitesThatHaveVLANToSSIDMapping(ReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingQueryParams *ReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingQueryParams) (*ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMapping, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabrics/vlanToSsids" - var response *resty.Response - var err error - clientRequest := s.client.R(). + queryString, _ := query.Values(ReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingQueryParams) + + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMapping{}). + SetError(&Error). + Get(path) - if AddSSIDToIPPoolMappingHeaderParams != nil { + if err != nil { + return nil, nil, err + + } - if AddSSIDToIPPoolMappingHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", AddSSIDToIPPoolMappingHeaderParams.Persistbapioutput) + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReturnsAllTheFabricSitesThatHaveVLANToSSIDMapping(ReturnsAllTheFabricSitesThatHaveVLANToSSIDMappingQueryParams) } + return nil, response, fmt.Errorf("error with operation ReturnsAllTheFabricSitesThatHaveVlanToSsidMapping") + } + + result := response.Result().(*ResponseFabricWirelessReturnsAllTheFabricSitesThatHaveVLANToSSIDMapping) + return result, response, err + +} + +//ReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMapping Return the count of all the fabric site which has SSID to IP Pool mapping - 36b0-0b14-44fa-8c4b +/* Return the count of all the fabric site which has SSID to IP Pool mapping + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!return-the-count-of-all-the-fabric-site-which-has-ssid-to-ip-pool-mapping-v1 +*/ +func (s *FabricWirelessService) ReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMapping() (*ResponseFabricWirelessReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMapping, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabrics/vlanToSsids/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseFabricWirelessReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMapping{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err } - response, err = clientRequest. + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMapping() + } + return nil, response, fmt.Errorf("error with operation ReturnTheCountOfAllTheFabricSiteWhichHasSsidToIpPoolMapping") + } + + result := response.Result().(*ResponseFabricWirelessReturnTheCountOfAllTheFabricSiteWhichHasSSIDToIPPoolMapping) + return result, response, err + +} + +//RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSite Retrieve the VLANs and SSIDs mapped to the VLAN within a Fabric Site. - edbe-baa6-46cb-9f5e +/* Retrieve the VLANs and SSIDs mapped to the VLAN, within a Fabric Site. The 'fabricId' represents the Fabric ID of a particular Fabric Site. + + +@param fabricID fabricId path parameter. The 'fabricId' represents the Fabric ID of a particular Fabric Site + +@param RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-the-vlans-and-ssids-mapped-to-the-vlan-within-a-fabric-site-v1 +*/ +func (s *FabricWirelessService) RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSite(fabricID string, RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteQueryParams *RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteQueryParams) (*ResponseFabricWirelessRetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSite, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabrics/{fabricId}/vlanToSsids" + path = strings.Replace(path, "{fabricId}", fmt.Sprintf("%v", fabricID), -1) + + queryString, _ := query.Values(RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseFabricWirelessRetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSite{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSite(fabricID, RetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSiteQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrieveTheVlansAndSsidsMappedToTheVlanWithinAFabricSite") + } + + result := response.Result().(*ResponseFabricWirelessRetrieveTheVLANsAndSSIDsMappedToTheVLANWithinAFabricSite) + return result, response, err + +} + +//ReturnsTheCountOfVLANsMappedToSSIDsInAFabricSite Returns the count of VLANs mapped to SSIDs in a Fabric Site. - e0ab-88b3-4198-a152 +/* Returns the count of VLANs mapped to SSIDs in a Fabric Site. The 'fabricId' represents the Fabric ID of a particular Fabric Site. + + +@param fabricID fabricId path parameter. The 'fabricId' represents the Fabric ID of a particular Fabric Site + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-the-count-of-vlans-mapped-to-ssids-in-a-fabric-site-v1 +*/ +func (s *FabricWirelessService) ReturnsTheCountOfVLANsMappedToSSIDsInAFabricSite(fabricID string) (*ResponseFabricWirelessReturnsTheCountOfVLANsMappedToSSIDsInAFabricSite, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabrics/{fabricId}/vlanToSsids/count" + path = strings.Replace(path, "{fabricId}", fmt.Sprintf("%v", fabricID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseFabricWirelessReturnsTheCountOfVLANsMappedToSSIDsInAFabricSite{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReturnsTheCountOfVLANsMappedToSSIDsInAFabricSite(fabricID) + } + return nil, response, fmt.Errorf("error with operation ReturnsTheCountOfVlansMappedToSsidsInAFabricSite") + } + + result := response.Result().(*ResponseFabricWirelessReturnsTheCountOfVLANsMappedToSSIDsInAFabricSite) + return result, response, err + +} + +//AddSSIDToIPPoolMapping Add SSID to IP Pool Mapping - b783-49d9-463a-98dd +/* Add SSID to IP Pool Mapping + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-ssid-to-ip-pool-mapping-v1 +*/ +func (s *FabricWirelessService) AddSSIDToIPPoolMapping(requestFabricWirelessAddSSIDToIPPoolMapping *RequestFabricWirelessAddSSIDToIPPoolMapping) (*ResponseFabricWirelessAddSSIDToIPPoolMapping, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/hostonboarding/ssid-ippool" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). SetBody(requestFabricWirelessAddSSIDToIPPoolMapping). SetResult(&ResponseFabricWirelessAddSSIDToIPPoolMapping{}). SetError(&Error). @@ -145,7 +345,7 @@ func (s *FabricWirelessService) AddSSIDToIPPoolMapping(requestFabricWirelessAddS if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.AddSSIDToIPPoolMapping(requestFabricWirelessAddSSIDToIPPoolMapping, AddSSIDToIPPoolMappingHeaderParams) + return s.AddSSIDToIPPoolMapping(requestFabricWirelessAddSSIDToIPPoolMapping) } return nil, response, fmt.Errorf("error with operation AddSsidToIpPoolMapping") @@ -161,7 +361,7 @@ func (s *FabricWirelessService) AddSSIDToIPPoolMapping(requestFabricWirelessAddS -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-w-l-c-to-fabric-domain +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-w-l-c-to-fabric-domain-v1 */ func (s *FabricWirelessService) AddWLCToFabricDomain(requestFabricWirelessAddWLCToFabricDomain *RequestFabricWirelessAddWLCToFabricDomain) (*ResponseFabricWirelessAddWLCToFabricDomain, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/wireless-controller" @@ -194,7 +394,7 @@ func (s *FabricWirelessService) AddWLCToFabricDomain(requestFabricWirelessAddWLC } //UpdateSSIDToIPPoolMapping Update SSID to IP Pool Mapping - a7bf-1936-424b-91f0 -/* Update SSID to IP Pool Mapping. +/* Update SSID to IP Pool Mapping */ @@ -226,6 +426,42 @@ func (s *FabricWirelessService) UpdateSSIDToIPPoolMapping(requestFabricWirelessU } +//AddUpdateOrRemoveSSIDMappingToAVLAN Add, Update or Remove SSID mapping to a VLAN - 07af-b879-4c2a-983b +/* Add, update, or remove SSID mappings to a VLAN. If the payload doesn't contain a 'vlanName' which has SSIDs mapping done earlier then all the mapped SSIDs of the 'vlanName' is cleared. The request must include all SSIDs currently mapped to a VLAN, as determined by the response from the GET operation for the same fabricId used in the request. If an already-mapped SSID is not included in the payload, its mapping will be removed by this API. Conversely, if a new SSID is provided, it will be added to the Mapping. Ensure that any new SSID added is a Fabric SSID. This API can also be used to add a VLAN and associate the relevant SSIDs with it. The 'vlanName' must be 'Fabric Wireless Enabled' and should be part of the Fabric Site representing 'Fabric ID' specified in the API request. + + +@param fabricID fabricId path parameter. The 'fabricId' represents the Fabric ID of a particular Fabric Site + +*/ +func (s *FabricWirelessService) AddUpdateOrRemoveSSIDMappingToAVLAN(fabricID string, requestFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN *RequestFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN) (*ResponseFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabrics/{fabricId}/vlanToSsids" + path = strings.Replace(path, "{fabricId}", fmt.Sprintf("%v", fabricID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN). + SetResult(&ResponseFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.AddUpdateOrRemoveSSIDMappingToAVLAN(fabricID, requestFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN) + } + return nil, response, fmt.Errorf("error with operation AddUpdateOrRemoveSsidMappingToAVlan") + } + + result := response.Result().(*ResponseFabricWirelessAddUpdateOrRemoveSSIDMappingToAVLAN) + return result, response, err + +} + //RemoveWLCFromFabricDomain Remove WLC from Fabric Domain - 10bb-1ae9-46e9-840f /* Remove WLC from Fabric Domain @@ -233,7 +469,7 @@ func (s *FabricWirelessService) UpdateSSIDToIPPoolMapping(requestFabricWirelessU @param RemoveWLCFromFabricDomainHeaderParams Custom header parameters @param RemoveWLCFromFabricDomainQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-w-l-c-from-fabric-domain +Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-w-l-c-from-fabric-domain-v1 */ func (s *FabricWirelessService) RemoveWLCFromFabricDomain(RemoveWLCFromFabricDomainHeaderParams *RemoveWLCFromFabricDomainHeaderParams, RemoveWLCFromFabricDomainQueryParams *RemoveWLCFromFabricDomainQueryParams) (*ResponseFabricWirelessRemoveWLCFromFabricDomain, *resty.Response, error) { //RemoveWLCFromFabricDomainHeaderParams *RemoveWLCFromFabricDomainHeaderParams,RemoveWLCFromFabricDomainQueryParams *RemoveWLCFromFabricDomainQueryParams diff --git a/sdk/file.go b/sdk/file.go index b59cc9c..cfe6c79 100644 --- a/sdk/file.go +++ b/sdk/file.go @@ -40,6 +40,7 @@ type ResponseFileGetListOfFilesResponse struct { } type ResponseFileGetListOfFilesResponseAttributeInfo interface{} type ResponseFileGetListOfFilesResponseSftpServerList interface{} +type ResponseFileDownloadAFileByFileID interface{} type ResponseFileUploadFile interface{} //GetListOfAvailableNamespaces Get list of available namespaces - 3f89-bbfc-4f6b-8b50 @@ -47,7 +48,7 @@ type ResponseFileUploadFile interface{} -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-available-namespaces +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-available-namespaces-v1 */ func (s *FileService) GetListOfAvailableNamespaces() (*ResponseFileGetListOfAvailableNamespaces, *resty.Response, error) { path := "/dna/intent/api/v1/file/namespace" @@ -83,7 +84,7 @@ func (s *FileService) GetListOfAvailableNamespaces() (*ResponseFileGetListOfAvai @param nameSpace nameSpace path parameter. A listing of fileId's -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-files +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-files-v1 */ func (s *FileService) GetListOfFiles(nameSpace string) (*ResponseFileGetListOfFiles, *resty.Response, error) { path := "/dna/intent/api/v1/file/namespace/{nameSpace}" @@ -120,7 +121,7 @@ func (s *FileService) GetListOfFiles(nameSpace string) (*ResponseFileGetListOfFi @param fileID fileId path parameter. File Identification number -Documentation Link: https://developer.cisco.com/docs/dna-center/#!download-a-file-by-file-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!download-a-file-by-file-id-v1 */ func (s *FileService) DownloadAFileByFileID(fileID string) (FileDownload, *resty.Response, error) { path := "/dna/intent/api/v1/file/{fileId}" @@ -129,6 +130,7 @@ func (s *FileService) DownloadAFileByFileID(fileID string) (FileDownload, *resty response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). + // SetResult(&ResponseFileDownloadAFileByFileID{}). SetError(&Error). Get(path) @@ -159,7 +161,7 @@ func (s *FileService) DownloadAFileByFileID(fileID string) (FileDownload, *resty @param nameSpace nameSpace path parameter. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!upload-file +Documentation Link: https://developer.cisco.com/docs/dna-center/#!upload-file-v1 */ func (s *FileService) UploadFile(nameSpace string, UploadFileMultipartFields *UploadFileMultipartFields) (*ResponseFileUploadFile, *resty.Response, error) { path := "/dna/intent/api/v1/file/{nameSpace}" diff --git a/sdk/health_and_performance.go b/sdk/health_and_performance.go index bf9f3c6..93b6063 100644 --- a/sdk/health_and_performance.go +++ b/sdk/health_and_performance.go @@ -3,6 +3,7 @@ package dnac import ( "fmt" "net/http" + "strings" "github.com/go-resty/resty/v2" "github.com/google/go-querystring/query" @@ -10,30 +11,145 @@ import ( type HealthAndPerformanceService service -type SystemHealthApIQueryParams struct { +type RetrievesAllTheValidationSetsQueryParams struct { + View string `url:"view,omitempty"` //When the query parameter `view=DETAIL` is passed, all validation sets and associated validations will be returned. When the query parameter `view=DEFAULT` is passed, only validation sets metadata will be returned. +} +type RetrievesTheListOfValidationWorkflowsQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Workflows started after the given time (as milliseconds since UNIX epoch). + EndTime float64 `url:"endTime,omitempty"` //Workflows started before the given time (as milliseconds since UNIX epoch). + RunStatus string `url:"runStatus,omitempty"` //Execution status of the workflow. If the workflow is successfully submitted, runStatus is `PENDING`. If the workflow execution has started, runStatus is `IN_PROGRESS`. If the workflow executed is completed with all validations executed, runStatus is `COMPLETED`. If the workflow execution fails while running validations, runStatus is `FAILED`. + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. +} +type RetrievesTheCountOfValidationWorkflowsQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Workflows started after the given time (as milliseconds since UNIX epoch). + EndTime float64 `url:"endTime,omitempty"` //Workflows started before the given time (as milliseconds since UNIX epoch). + RunStatus string `url:"runStatus,omitempty"` //Execution status of the workflow. If the workflow is successfully submitted, runStatus is `PENDING`. If the workflow execution has started, runStatus is `IN_PROGRESS`. If the workflow executed is completed with all validations executed, runStatus is `COMPLETED`. If the workflow execution fails while running validations, runStatus is `FAILED`. +} +type SystemHealthAPIQueryParams struct { Summary bool `url:"summary,omitempty"` //Fetch the latest high severity event Domain string `url:"domain,omitempty"` //Fetch system events with this domain. Possible values of domain are listed here : /dna/platform/app/consumer-portal/developer-toolkit/events Subdomain string `url:"subdomain,omitempty"` //Fetch system events with this subdomain. Possible values of subdomain are listed here : /dna/platform/app/consumer-portal/developer-toolkit/events Limit float64 `url:"limit,omitempty"` //limit Offset float64 `url:"offset,omitempty"` //offset } -type SystemHealthCountApIQueryParams struct { +type SystemHealthCountAPIQueryParams struct { Domain string `url:"domain,omitempty"` //Fetch system events with this domain. Possible values of domain are listed here : /dna/platform/app/consumer-portal/developer-toolkit/events Subdomain string `url:"subdomain,omitempty"` //Fetch system events with this subdomain. Possible values of subdomain are listed here : /dna/platform/app/consumer-portal/developer-toolkit/events } -type SystemPerformanceApIQueryParams struct { +type SystemPerformanceAPIQueryParams struct { Kpi string `url:"kpi,omitempty"` //Valid values: cpu,memory,network Function string `url:"function,omitempty"` //Valid values: sum,average,max StartTime float64 `url:"startTime,omitempty"` //This is the epoch start time in milliseconds from which performance indicator need to be fetched EndTime float64 `url:"endTime,omitempty"` //This is the epoch end time in milliseconds upto which performance indicator need to be fetched } -type SystemPerformanceHistoricalApIQueryParams struct { +type SystemPerformanceHistoricalAPIQueryParams struct { Kpi string `url:"kpi,omitempty"` //Fetch historical data for this kpi. Valid values: cpu,memory,network StartTime float64 `url:"startTime,omitempty"` //This is the epoch start time in milliseconds from which performance indicator need to be fetched EndTime float64 `url:"endTime,omitempty"` //This is the epoch end time in milliseconds upto which performance indicator need to be fetched } -type ResponseHealthAndPerformanceSystemHealthApI struct { +type ResponseHealthAndPerformanceRetrievesAllTheValidationSets struct { + Response *[]ResponseHealthAndPerformanceRetrievesAllTheValidationSetsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseHealthAndPerformanceRetrievesAllTheValidationSetsResponse struct { + ID string `json:"id,omitempty"` // Validation set id + Name string `json:"name,omitempty"` // Name of the validation set + Description string `json:"description,omitempty"` // Description of the validation set + Version string `json:"version,omitempty"` // Version of the validation set + ValidationGroups *[]ResponseHealthAndPerformanceRetrievesAllTheValidationSetsResponseValidationGroups `json:"validationGroups,omitempty"` // +} +type ResponseHealthAndPerformanceRetrievesAllTheValidationSetsResponseValidationGroups struct { + Name string `json:"name,omitempty"` // Name of the validation group + ID string `json:"id,omitempty"` // Validation group id + Description string `json:"description,omitempty"` // Description of the validation group + Validations *[]ResponseHealthAndPerformanceRetrievesAllTheValidationSetsResponseValidationGroupsValidations `json:"validations,omitempty"` // +} +type ResponseHealthAndPerformanceRetrievesAllTheValidationSetsResponseValidationGroupsValidations struct { + ID string `json:"id,omitempty"` // Validation id + Name string `json:"name,omitempty"` // Name of the validation +} +type ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSet struct { + Response *ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSetResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSetResponse struct { + ID string `json:"id,omitempty"` // Validation set id + Name string `json:"name,omitempty"` // Name of the validation set + Description string `json:"description,omitempty"` // Description of the validation set + Version string `json:"version,omitempty"` // Version of validation set + ValidationGroups *[]ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSetResponseValidationGroups `json:"validationGroups,omitempty"` // +} +type ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSetResponseValidationGroups struct { + Name string `json:"name,omitempty"` // Name of the validation group + ID string `json:"id,omitempty"` // Validation group id + Description string `json:"description,omitempty"` // Description of the validation group + Validations *[]ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSetResponseValidationGroupsValidations `json:"validations,omitempty"` // +} +type ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSetResponseValidationGroupsValidations struct { + ID string `json:"id,omitempty"` // Validation id + Name string `json:"name,omitempty"` // Name of the validation +} +type ResponseHealthAndPerformanceRetrievesTheListOfValidationWorkflows struct { + Response *[]ResponseHealthAndPerformanceRetrievesTheListOfValidationWorkflowsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseHealthAndPerformanceRetrievesTheListOfValidationWorkflowsResponse struct { + ID string `json:"id,omitempty"` // Workflow id + Name string `json:"name,omitempty"` // Workflow name + Description string `json:"description,omitempty"` // Workflow description + RunStatus string `json:"runStatus,omitempty"` // Execution status of the workflow. If the workflow is successfully submitted, runStatus will return `PENDING`. If the workflow execution has started, runStatus will return `IN_PROGRESS`. If the workflow executed is completed with all validations executed, runStatus will return `COMPLETED`. If the workflow execution fails while running validations, runStatus will return `FAILED`. + SubmitTime *int `json:"submitTime,omitempty"` // Workflow submit time (as milliseconds since UNIX epoch). + StartTime *int `json:"startTime,omitempty"` // Workflow start time (as milliseconds since UNIX epoch). + EndTime *int `json:"endTime,omitempty"` // Workflow finish time (as milliseconds since UNIX epoch). + ValidationStatus string `json:"validationStatus,omitempty"` // Overall result of execution of the validation workflow + ValidationSetIDs []string `json:"validationSetIds,omitempty"` // List of validation set ids +} +type ResponseHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations struct { + Response *ResponseHealthAndPerformanceSubmitsTheWorkflowForExecutingValidationsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseHealthAndPerformanceSubmitsTheWorkflowForExecutingValidationsResponse struct { + ID string `json:"id,omitempty"` // UUID of the workflow submitted for executing validations +} +type ResponseHealthAndPerformanceRetrievesTheCountOfValidationWorkflows struct { + Response *ResponseHealthAndPerformanceRetrievesTheCountOfValidationWorkflowsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseHealthAndPerformanceRetrievesTheCountOfValidationWorkflowsResponse struct { + Count *int `json:"count,omitempty"` // The reported count. +} +type ResponseHealthAndPerformanceRetrievesValidationWorkflowDetails struct { + Response *ResponseHealthAndPerformanceRetrievesValidationWorkflowDetailsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseHealthAndPerformanceRetrievesValidationWorkflowDetailsResponse struct { + ID string `json:"id,omitempty"` // Workflow id + Name string `json:"name,omitempty"` // Workflow name + Description string `json:"description,omitempty"` // Workflow description + RunStatus string `json:"runStatus,omitempty"` // Execution status of the workflow. If the workflow is successfully submitted, runStatus will return `PENDING`. If the workflow execution has started, runStatus will return `IN_PROGRESS`. If the workflow executed is completed with all validations executed, runStatus will return `COMPLETED`. If the workflow execution fails while running validations, runStatus will return `FAILED`. + SubmitTime *int `json:"submitTime,omitempty"` // Workflow submit time (as milliseconds since UNIX epoch). + ValidationSetIDs []string `json:"validationSetIds,omitempty"` // List of validation set ids + ReleaseVersion string `json:"releaseVersion,omitempty"` // Product version + ValidationSetsRunDetails *[]ResponseHealthAndPerformanceRetrievesValidationWorkflowDetailsResponseValidationSetsRunDetails `json:"validationSetsRunDetails,omitempty"` // + ValidationStatus string `json:"validationStatus,omitempty"` // Overall result of the execution of all the validations. If any of the contained validation execution status is `CRITICAL`, this is marked as `CRITICAL`. Else, if any of the contained validation execution status is `WARNING`, this is marked as `WARNING`. Else, this is marked as `INFORMATION`. +} +type ResponseHealthAndPerformanceRetrievesValidationWorkflowDetailsResponseValidationSetsRunDetails struct { + ValidationSetID string `json:"validationSetId,omitempty"` // Validation set id + StartTime *int `json:"startTime,omitempty"` // Validation set run start time (as milliseconds since UNIX epoch). + EndTime *int `json:"endTime,omitempty"` // Validation set run finish time (as milliseconds since UNIX epoch). + ValidationStatus string `json:"validationStatus,omitempty"` // Overall result of the validation set execution. If any of the contained validation execution status is `CRITICAL`, this is marked as `CRITICAL`. Else, if any of the contained validation execution status is `WARNING`, this is marked as `WARNING`. Else, this is marked as `INFORMATION`. This is empty when the workflow is in progress. + Version string `json:"version,omitempty"` // Validation set version + ValidationRunDetails *[]ResponseHealthAndPerformanceRetrievesValidationWorkflowDetailsResponseValidationSetsRunDetailsValidationRunDetails `json:"validationRunDetails,omitempty"` // +} +type ResponseHealthAndPerformanceRetrievesValidationWorkflowDetailsResponseValidationSetsRunDetailsValidationRunDetails struct { + ValidationID string `json:"validationId,omitempty"` // Validation id + ValidationName string `json:"validationName,omitempty"` // Validation name + ValidationMessage string `json:"validationMessage,omitempty"` // Validation execution result detail message + ValidationStatus string `json:"validationStatus,omitempty"` // Validation execution result status +} +type ResponseHealthAndPerformanceSystemHealthAPI struct { HealthEvents *[]ResponseHealthAndPerformanceSystemHealthAPIHealthEvents `json:"healthEvents,omitempty"` // Version string `json:"version,omitempty"` // API version HostName string `json:"hostName,omitempty"` // Cluster name @@ -50,10 +166,10 @@ type ResponseHealthAndPerformanceSystemHealthAPIHealthEvents struct { Timestamp string `json:"timestamp,omitempty"` // Time of the event occurance Status string `json:"status,omitempty"` // Event status } -type ResponseHealthAndPerformanceSystemHealthCountApI struct { +type ResponseHealthAndPerformanceSystemHealthCountAPI struct { Count *float64 `json:"count,omitempty"` // Count of the events } -type ResponseHealthAndPerformanceSystemPerformanceApI struct { +type ResponseHealthAndPerformanceSystemPerformanceAPI struct { HostName string `json:"hostName,omitempty"` // Hostname Version string `json:"version,omitempty"` // Version of the API Kpis *ResponseHealthAndPerformanceSystemPerformanceAPIKpis `json:"kpis,omitempty"` // @@ -80,14 +196,16 @@ type ResponseHealthAndPerformanceSystemPerformanceAPIKpisNetworkrxRate struct { Units string `json:"units,omitempty"` // Units for network rx_rate Utilization string `json:"utilization,omitempty"` // Network rx_rate in units } -type ResponseHealthAndPerformanceSystemPerformanceHistoricalApI struct { +type ResponseHealthAndPerformanceSystemPerformanceHistoricalAPI struct { HostName string `json:"hostName,omitempty"` // Hostname Version string `json:"version,omitempty"` // Version of the API Kpis *ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpis `json:"kpis,omitempty"` // } type ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpis struct { - Legends *ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpisLegends `json:"legends,omitempty"` // - Data *ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpisData `json:"data,omitempty"` // + Legends *ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpisLegends `json:"legends,omitempty"` // + Data *ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpisData `json:"data,omitempty"` // + CPUAvg string `json:"cpuAvg,omitempty"` // CPU average utilization + MemoryAvg string `json:"memoryAvg,omitempty"` // Memory average utilization } type ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpisLegends struct { CPU *ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpisLegendsCPU `json:"cpu,omitempty"` // @@ -108,24 +226,214 @@ type ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpisLegendsNetwor Units string `json:"units,omitempty"` // Units for network rx_rate } type ResponseHealthAndPerformanceSystemPerformanceHistoricalAPIKpisData map[string][]string // Time in 'YYYY-MM-DDT00:00:00Z' format with values for legends +type RequestHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations struct { + Name string `json:"name,omitempty"` // Name of the workflow to run. It must be unique. + Description string `json:"description,omitempty"` // Description of the workflow to run + ValidationSetIDs []string `json:"validationSetIds,omitempty"` // List of validation set ids +} + +//RetrievesAllTheValidationSets Retrieves all the validation sets - 11bb-4b03-4059-a001 +/* Retrieves all the validation sets and optionally the contained validations + + +@param RetrievesAllTheValidationSetsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-all-the-validation-sets-v1 +*/ +func (s *HealthAndPerformanceService) RetrievesAllTheValidationSets(RetrievesAllTheValidationSetsQueryParams *RetrievesAllTheValidationSetsQueryParams) (*ResponseHealthAndPerformanceRetrievesAllTheValidationSets, *resty.Response, error) { + path := "/dna/intent/api/v1/diagnosticValidationSets" + + queryString, _ := query.Values(RetrievesAllTheValidationSetsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceRetrievesAllTheValidationSets{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesAllTheValidationSets(RetrievesAllTheValidationSetsQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesAllTheValidationSets") + } + + result := response.Result().(*ResponseHealthAndPerformanceRetrievesAllTheValidationSets) + return result, response, err + +} + +//RetrievesValidationDetailsForAValidationSet Retrieves validation details for a validation set - 37b7-88bd-47b9-8533 +/* Retrieves validation details for the given validation set id + + +@param id id path parameter. Validation set id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-validation-details-for-a-validation-set-v1 +*/ +func (s *HealthAndPerformanceService) RetrievesValidationDetailsForAValidationSet(id string) (*ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSet, *resty.Response, error) { + path := "/dna/intent/api/v1/diagnosticValidationSets/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSet{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesValidationDetailsForAValidationSet(id) + } + return nil, response, fmt.Errorf("error with operation RetrievesValidationDetailsForAValidationSet") + } + + result := response.Result().(*ResponseHealthAndPerformanceRetrievesValidationDetailsForAValidationSet) + return result, response, err + +} + +//RetrievesTheListOfValidationWorkflows Retrieves the list of validation workflows - 0fab-cafd-440b-98f8 +/* Retrieves the workflows that have been successfully submitted and are currently available. This is sorted by `submitTime` + + +@param RetrievesTheListOfValidationWorkflowsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-list-of-validation-workflows-v1 +*/ +func (s *HealthAndPerformanceService) RetrievesTheListOfValidationWorkflows(RetrievesTheListOfValidationWorkflowsQueryParams *RetrievesTheListOfValidationWorkflowsQueryParams) (*ResponseHealthAndPerformanceRetrievesTheListOfValidationWorkflows, *resty.Response, error) { + path := "/dna/intent/api/v1/diagnosticValidationWorkflows" + + queryString, _ := query.Values(RetrievesTheListOfValidationWorkflowsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceRetrievesTheListOfValidationWorkflows{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheListOfValidationWorkflows(RetrievesTheListOfValidationWorkflowsQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheListOfValidationWorkflows") + } + + result := response.Result().(*ResponseHealthAndPerformanceRetrievesTheListOfValidationWorkflows) + return result, response, err + +} + +//RetrievesTheCountOfValidationWorkflows Retrieves the count of validation workflows - 4f91-8ac9-44c9-baef +/* Retrieves the count of workflows that have been successfully submitted and are currently available. -//SystemHealthApI System Health API - 6085-eb1b-4f48-9740 + +@param RetrievesTheCountOfValidationWorkflowsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-count-of-validation-workflows-v1 +*/ +func (s *HealthAndPerformanceService) RetrievesTheCountOfValidationWorkflows(RetrievesTheCountOfValidationWorkflowsQueryParams *RetrievesTheCountOfValidationWorkflowsQueryParams) (*ResponseHealthAndPerformanceRetrievesTheCountOfValidationWorkflows, *resty.Response, error) { + path := "/dna/intent/api/v1/diagnosticValidationWorkflows/count" + + queryString, _ := query.Values(RetrievesTheCountOfValidationWorkflowsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceRetrievesTheCountOfValidationWorkflows{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheCountOfValidationWorkflows(RetrievesTheCountOfValidationWorkflowsQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheCountOfValidationWorkflows") + } + + result := response.Result().(*ResponseHealthAndPerformanceRetrievesTheCountOfValidationWorkflows) + return result, response, err + +} + +//RetrievesValidationWorkflowDetails Retrieves validation workflow details - eb8b-eaad-451a-9c09 +/* Retrieves workflow details for a workflow id + + +@param id id path parameter. Workflow id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-validation-workflow-details-v1 +*/ +func (s *HealthAndPerformanceService) RetrievesValidationWorkflowDetails(id string) (*ResponseHealthAndPerformanceRetrievesValidationWorkflowDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/diagnosticValidationWorkflows/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseHealthAndPerformanceRetrievesValidationWorkflowDetails{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesValidationWorkflowDetails(id) + } + return nil, response, fmt.Errorf("error with operation RetrievesValidationWorkflowDetails") + } + + result := response.Result().(*ResponseHealthAndPerformanceRetrievesValidationWorkflowDetails) + return result, response, err + +} + +//SystemHealthAPI System Health API - 6085-eb1b-4f48-9740 /* This API retrieves the latest system events -@param SystemHealthApIQueryParams Filtering parameter +@param SystemHealthAPIQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!system-health-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!system-health-api-v1 */ -func (s *HealthAndPerformanceService) SystemHealthApI(SystemHealthApIQueryParams *SystemHealthApIQueryParams) (*ResponseHealthAndPerformanceSystemHealthApI, *resty.Response, error) { +func (s *HealthAndPerformanceService) SystemHealthAPI(SystemHealthAPIQueryParams *SystemHealthAPIQueryParams) (*ResponseHealthAndPerformanceSystemHealthAPI, *resty.Response, error) { path := "/dna/intent/api/v1/diagnostics/system/health" - queryString, _ := query.Values(SystemHealthApIQueryParams) + queryString, _ := query.Values(SystemHealthAPIQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceSystemHealthApI{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceSystemHealthAPI{}). SetError(&Error). Get(path) @@ -136,33 +444,33 @@ func (s *HealthAndPerformanceService) SystemHealthApI(SystemHealthApIQueryParams if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.SystemHealthApI(SystemHealthApIQueryParams) + return s.SystemHealthAPI(SystemHealthAPIQueryParams) } return nil, response, fmt.Errorf("error with operation SystemHealthApi") } - result := response.Result().(*ResponseHealthAndPerformanceSystemHealthApI) + result := response.Result().(*ResponseHealthAndPerformanceSystemHealthAPI) return result, response, err } -//SystemHealthCountApI System Health Count API - 5289-0891-4729-8714 +//SystemHealthCountAPI System Health Count API - 5289-0891-4729-8714 /* This API gives the count of the latest system events -@param SystemHealthCountApIQueryParams Filtering parameter +@param SystemHealthCountAPIQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!system-health-count-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!system-health-count-api-v1 */ -func (s *HealthAndPerformanceService) SystemHealthCountApI(SystemHealthCountApIQueryParams *SystemHealthCountApIQueryParams) (*ResponseHealthAndPerformanceSystemHealthCountApI, *resty.Response, error) { +func (s *HealthAndPerformanceService) SystemHealthCountAPI(SystemHealthCountAPIQueryParams *SystemHealthCountAPIQueryParams) (*ResponseHealthAndPerformanceSystemHealthCountAPI, *resty.Response, error) { path := "/dna/intent/api/v1/diagnostics/system/health/count" - queryString, _ := query.Values(SystemHealthCountApIQueryParams) + queryString, _ := query.Values(SystemHealthCountAPIQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceSystemHealthCountApI{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceSystemHealthCountAPI{}). SetError(&Error). Get(path) @@ -173,33 +481,33 @@ func (s *HealthAndPerformanceService) SystemHealthCountApI(SystemHealthCountApIQ if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.SystemHealthCountApI(SystemHealthCountApIQueryParams) + return s.SystemHealthCountAPI(SystemHealthCountAPIQueryParams) } return nil, response, fmt.Errorf("error with operation SystemHealthCountApi") } - result := response.Result().(*ResponseHealthAndPerformanceSystemHealthCountApI) + result := response.Result().(*ResponseHealthAndPerformanceSystemHealthCountAPI) return result, response, err } -//SystemPerformanceApI System Performance API - f2a9-5b4d-48eb-a4f8 -/* This API gives the aggregated performance indicators. The data can be retrieved for the last 3 months. +//SystemPerformanceAPI System Performance API - f2a9-5b4d-48eb-a4f8 +/* Retrieves the aggregated metrics (total, average or maximum) of cluster key performance indicators (KPIs), such as CPU utilization, memory utilization or network rates recorded within a specified time period. The data will be available from the past 24 hours. -@param SystemPerformanceApIQueryParams Filtering parameter +@param SystemPerformanceAPIQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!system-performance-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!system-performance-api-v1 */ -func (s *HealthAndPerformanceService) SystemPerformanceApI(SystemPerformanceApIQueryParams *SystemPerformanceApIQueryParams) (*ResponseHealthAndPerformanceSystemPerformanceApI, *resty.Response, error) { +func (s *HealthAndPerformanceService) SystemPerformanceAPI(SystemPerformanceAPIQueryParams *SystemPerformanceAPIQueryParams) (*ResponseHealthAndPerformanceSystemPerformanceAPI, *resty.Response, error) { path := "/dna/intent/api/v1/diagnostics/system/performance" - queryString, _ := query.Values(SystemPerformanceApIQueryParams) + queryString, _ := query.Values(SystemPerformanceAPIQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceSystemPerformanceApI{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceSystemPerformanceAPI{}). SetError(&Error). Get(path) @@ -210,33 +518,33 @@ func (s *HealthAndPerformanceService) SystemPerformanceApI(SystemPerformanceApIQ if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.SystemPerformanceApI(SystemPerformanceApIQueryParams) + return s.SystemPerformanceAPI(SystemPerformanceAPIQueryParams) } return nil, response, fmt.Errorf("error with operation SystemPerformanceApi") } - result := response.Result().(*ResponseHealthAndPerformanceSystemPerformanceApI) + result := response.Result().(*ResponseHealthAndPerformanceSystemPerformanceAPI) return result, response, err } -//SystemPerformanceHistoricalApI System Performance Historical API - 879b-ea1e-4389-83d7 -/* This API retrieves the historical performance indicators . The data can be retrieved for the last 3 months. +//SystemPerformanceHistoricalAPI System Performance Historical API - 879b-ea1e-4389-83d7 +/* Retrieves the average values of cluster key performance indicators (KPIs), like CPU utilization, memory utilization or network rates grouped by time intervals within a specified time range. The data will be available from the past 24 hours. -@param SystemPerformanceHistoricalApIQueryParams Filtering parameter +@param SystemPerformanceHistoricalAPIQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!system-performance-historical-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!system-performance-historical-api-v1 */ -func (s *HealthAndPerformanceService) SystemPerformanceHistoricalApI(SystemPerformanceHistoricalApIQueryParams *SystemPerformanceHistoricalApIQueryParams) (*ResponseHealthAndPerformanceSystemPerformanceHistoricalApI, *resty.Response, error) { +func (s *HealthAndPerformanceService) SystemPerformanceHistoricalAPI(SystemPerformanceHistoricalAPIQueryParams *SystemPerformanceHistoricalAPIQueryParams) (*ResponseHealthAndPerformanceSystemPerformanceHistoricalAPI, *resty.Response, error) { path := "/dna/intent/api/v1/diagnostics/system/performance/history" - queryString, _ := query.Values(SystemPerformanceHistoricalApIQueryParams) + queryString, _ := query.Values(SystemPerformanceHistoricalAPIQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceSystemPerformanceHistoricalApI{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseHealthAndPerformanceSystemPerformanceHistoricalAPI{}). SetError(&Error). Get(path) @@ -247,12 +555,86 @@ func (s *HealthAndPerformanceService) SystemPerformanceHistoricalApI(SystemPerfo if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.SystemPerformanceHistoricalApI(SystemPerformanceHistoricalApIQueryParams) + return s.SystemPerformanceHistoricalAPI(SystemPerformanceHistoricalAPIQueryParams) } return nil, response, fmt.Errorf("error with operation SystemPerformanceHistoricalApi") } - result := response.Result().(*ResponseHealthAndPerformanceSystemPerformanceHistoricalApI) + result := response.Result().(*ResponseHealthAndPerformanceSystemPerformanceHistoricalAPI) + return result, response, err + +} + +//SubmitsTheWorkflowForExecutingValidations Submits the workflow for executing validations - 52a0-7981-41ab-81d8 +/* Submits the workflow for executing the validations for the given validation specifications + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!submits-the-workflow-for-executing-validations-v1 +*/ +func (s *HealthAndPerformanceService) SubmitsTheWorkflowForExecutingValidations(requestHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations *RequestHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations) (*ResponseHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations, *resty.Response, error) { + path := "/dna/intent/api/v1/diagnosticValidationWorkflows" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations). + SetResult(&ResponseHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.SubmitsTheWorkflowForExecutingValidations(requestHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations) + } + + return nil, response, fmt.Errorf("error with operation SubmitsTheWorkflowForExecutingValidations") + } + + result := response.Result().(*ResponseHealthAndPerformanceSubmitsTheWorkflowForExecutingValidations) return result, response, err } + +//DeletesAValidationWorkflow Deletes a validation workflow - 8eb3-3959-47fa-9c50 +/* Deletes the workflow for the given id + + +@param id id path parameter. Workflow id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-a-validation-workflow-v1 +*/ +func (s *HealthAndPerformanceService) DeletesAValidationWorkflow(id string) (*resty.Response, error) { + //id string + path := "/dna/intent/api/v1/diagnosticValidationWorkflows/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletesAValidationWorkflow( + id) + } + return response, fmt.Errorf("error with operation DeletesAValidationWorkflow") + } + + return response, err + +} diff --git a/sdk/issues.go b/sdk/issues.go index 8413c72..fafcf30 100644 --- a/sdk/issues.go +++ b/sdk/issues.go @@ -3,6 +3,7 @@ package dnac import ( "fmt" "net/http" + "strings" "github.com/go-resty/resty/v2" "github.com/google/go-querystring/query" @@ -10,9 +11,163 @@ import ( type IssuesService service +type GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + Limit float64 `url:"limit,omitempty"` //Maximum number of issues to return + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + SortBy string `url:"sortBy,omitempty"` // + Order string `url:"order,omitempty"` //The sort order of the field ascending or descending. + IsGlobal bool `url:"isGlobal,omitempty"` //Global issues are those issues which impacts across many devices, sites. They are also displayed on Issue Dashboard in Catalyst Center UI. Non-Global issues are displayed only on Client 360 or Device 360 pages. If this flag is 'true', only global issues are returned. If it if 'false', all issues are returned. + Priority string `url:"priority,omitempty"` //Priority of the issue. Supports single priority and multiple priorities Examples: priority=P1 (single priority requested) priority=P1&priority=P2&priority=P3 (multiple priorities requested) + Severity string `url:"severity,omitempty"` //Severity of the issue. Supports single severity and multiple severities. Examples: severity=high (single severity requested) severity=high&severity=medium (multiple severities requested) + Status string `url:"status,omitempty"` //Status of the issue. Supports single status and multiple statuses. Examples: status=active (single status requested) status=active&status=resolved (multiple statuses requested) + EntityType string `url:"entityType,omitempty"` //Entity type of the issue. Supports single entity type and multiple entity types. Examples: entityType=networkDevice (single entity type requested) entityType=network device&entityType=client (multiple entity types requested) + Category string `url:"category,omitempty"` //Categories of the issue. Supports single category and multiple categories. Examples: category=availability (single status requested) category=availability&category=onboarding (multiple categories requested) + DeviceType string `url:"deviceType,omitempty"` //Device Type of the device to which this issue belongs to. Supports single device type and multiple device types. Examples: deviceType=wireless controller (single device type requested) deviceType=wireless controller&deviceType=core (multiple device types requested) + Name string `url:"name,omitempty"` //The name of the issue Examples: name=ap_down (single issue name requested) name=ap_down&name=wlc_monitor (multiple issue names requested) Issue names can be retrieved using the API - /data/api/v1/assuranceIssueConfigurations + IssueID string `url:"issueId,omitempty"` //UUID of the issue Examples: issueId=e52aecfe-b142-4287-a587-11a16ba6dd26 (single issue id requested) issueId=e52aecfe-b142-4287-a587-11a16ba6dd26&issueId=864d0421-02c0-43a6-9c52-81cad45f66d8 (multiple issue ids requested) + EntityID string `url:"entityId,omitempty"` //Id of the entity for which this issue belongs to. For example, it could be mac address of AP or UUID of Sensor example: 68:ca:e4:79:3f:20 4de02167-901b-43cf-8822-cffd3caa286f Examples: entityId=68:ca:e4:79:3f:20 (single entity id requested) entityId=68:ca:e4:79:3f:20&entityId=864d0421-02c0-43a6-9c52-81cad45f66d8 (multiple entity ids requested) + UpdatedBy string `url:"updatedBy,omitempty"` //The user who last updated this issue. Examples: updatedBy=admin (single updatedBy requested) updatedBy=admin&updatedBy=john (multiple updatedBy requested) + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (*) character search support. E.g. */San*, */San, /San* Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (*) character search support. E.g. `*uuid*, *uuid, uuid* Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteName string `url:"siteName,omitempty"` //The name of the site. (Ex. `FloorName`) This field supports wildcard asterisk (*) character search support. E.g. *San*, *San, San* Examples: `?siteName=building1` (single siteName requested) `?siteName=building1&siteName=building2&siteName=building3` (multiple siteNames requested) + SiteID string `url:"siteId,omitempty"` //The UUID of the site. (Ex. `flooruuid`) This field supports wildcard asterisk (*) character search support. E.g.*flooruuid*, *flooruuid, flooruuid* Examples: `?siteId=id1` (single id requested) `?siteId=id1&siteId=id2&siteId=id3` (multiple ids requested) + FabricSiteID string `url:"fabricSiteId,omitempty"` //The UUID of the fabric site. (Ex. "flooruuid") Examples: fabricSiteId=e52aecfe-b142-4287-a587-11a16ba6dd26 (single id requested) fabricSiteId=e52aecfe-b142-4287-a587-11a16ba6dd26,864d0421-02c0-43a6-9c52-81cad45f66d8 (multiple ids requested) + FabricVnName string `url:"fabricVnName,omitempty"` //The name of the fabric virtual network Examples: fabricVnName=name1 (single fabric virtual network name requested) fabricVnName=name1&fabricVnName=name2&fabricVnName=name3 (multiple fabric virtual network names requested) + FabricTransitSiteID string `url:"fabricTransitSiteId,omitempty"` //The UUID of the fabric transit site. (Ex. "flooruuid") Examples: fabricTransitSiteId=e52aecfe-b142-4287-a587-11a16ba6dd26 (single id requested) fabricTransitSiteId=e52aecfe-b142-4287-a587-11a16ba6dd26&fabricTransitSiteId=864d0421-02c0-43a6-9c52-81cad45f66d8 (multiple ids requested) + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //The list of Network Device Uuids. (Ex. `6bef213c-19ca-4170-8375-b694e251101c`) Examples: `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c` (single networkDeviceId requested) `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c&networkDeviceId=32219612-819e-4b5e-a96b-cf22aca13dd9&networkDeviceId=2541e9a7-b80d-4955-8aa2-79b233318ba0` (multiple networkDeviceIds with & separator) + NetworkDeviceIPAddress string `url:"networkDeviceIpAddress,omitempty"` //The list of Network Device management IP Address. (Ex. `121.1.1.10`) This field supports wildcard (`*`) character-based search. Ex: `*1.1*` or `1.1*` or `*1.1` Examples: `networkDeviceIpAddress=121.1.1.10` `networkDeviceIpAddress=121.1.1.10&networkDeviceIpAddress=172.20.1.10&networkDeviceIpAddress=10.10.20.10` (multiple networkDevice IP Address with & separator) + MacAddress string `url:"macAddress,omitempty"` //The macAddress of the network device or client This field supports wildcard (`*`) character-based search. Ex: `*AB:AB:AB*` or `AB:AB:AB*` or `*AB:AB:AB` Examples: `macAddress=AB:AB:AB:CD:CD:CD` (single macAddress requested) `macAddress=AB:AB:AB:CD:CD:DC&macAddress=AB:AB:AB:CD:CD:FE` (multiple macAddress requested) + View string `url:"view,omitempty"` //The name of the View. Each view represents a specific data set. Please refer to the `IssuesView` Model for supported views. View is predefined set of attributes supported by the API. Only the attributes related to the given view will be part of the API response along with default attributes. If multiple views are provided, then response will contain attributes from all those views. If no views are specified, all attributes will be returned. | View Name | Included Attributes | | --- | --- | | `update` | updatedTime, updatedBy | | `site` | siteName, siteHierarchy, siteId, siteHierarchyId | Examples: `view=update` (single view requested) `view=update&view=site` (multiple views requested) + Attribute string `url:"attribute,omitempty"` //List of attributes related to the issue. If these are provided, then only those attributes will be part of response along with the default attributes. Please refer to the `IssuesResponseAttribute` Model for supported attributes. Examples: `attribute=deviceType` (single attribute requested) `attribute=deviceType&attribute=updatedBy` (multiple attributes requested) + AiDriven bool `url:"aiDriven,omitempty"` //Flag whether the issue is AI driven issue + FabricDriven bool `url:"fabricDriven,omitempty"` //Flag whether the issue is related to a Fabric site, a virtual network or a transit. + FabricSiteDriven bool `url:"fabricSiteDriven,omitempty"` //Flag whether the issue is Fabric site driven issue + FabricVnDriven bool `url:"fabricVnDriven,omitempty"` //Flag whether the issue is Fabric Virtual Network driven issue + FabricTransitDriven bool `url:"fabricTransitDriven,omitempty"` //Flag whether the issue is Fabric Transit driven issue +} +type GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams struct { + AcceptLanguage string `url:"Accept-Language,omitempty"` //Expects type string. This header parameter can be used to specify the language in which issue description and suggested actions need to be returned. Available options are - 'en' (English), 'ja' (Japanese), 'ko' (Korean), 'zh' (Chinese). If this parameter is not present the issue details are returned in English language. + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + IsGlobal bool `url:"isGlobal,omitempty"` //Global issues are those issues which impacts across many devices, sites. They are also displayed on Issue Dashboard in Catalyst Center UI. Non-Global issues are displayed only on Client 360 or Device 360 pages. If this flag is 'true', only global issues are returned. If it if 'false', all issues are returned. + Priority string `url:"priority,omitempty"` //Priority of the issue. Supports single priority and multiple priorities Examples: priority=P1 (single priority requested) priority=P1&priority=P2&priority=P3 (multiple priorities requested) + Severity string `url:"severity,omitempty"` //Severity of the issue. Supports single severity and multiple severities. Examples: severity=high (single severity requested) severity=high&severity=medium (multiple severities requested) + Status string `url:"status,omitempty"` //Status of the issue. Supports single status and multiple statuses. Examples: status=active (single status requested) status=active&status=resolved (multiple statuses requested) + EntityType string `url:"entityType,omitempty"` //Entity type of the issue. Supports single entity type and multiple entity types. Examples: entityType=networkDevice (single entity type requested) entityType=network device&entityType=client (multiple entity types requested) + Category string `url:"category,omitempty"` //Categories of the issue. Supports single category and multiple categories. Examples: category=availability (single status requested) category=availability&category=onboarding (multiple categories requested) + DeviceType string `url:"deviceType,omitempty"` //Device Type of the device to which this issue belongs to. Supports single device type and multiple device types. Examples: deviceType=wireless controller (single device type requested) deviceType=wireless controller&deviceType=core (multiple device types requested) + Name string `url:"name,omitempty"` //The name of the issue Examples: name=ap_down (single issue name requested) name=ap_down&name=wlc_monitor (multiple issue names requested) Issue names can be retrieved using the API - /data/api/v1/assuranceIssueConfigurations + IssueID string `url:"issueId,omitempty"` //UUID of the issue Examples: issueId=e52aecfe-b142-4287-a587-11a16ba6dd26 (single issue id requested) issueId=e52aecfe-b142-4287-a587-11a16ba6dd26&issueId=864d0421-02c0-43a6-9c52-81cad45f66d8 (multiple issue ids requested) + EntityID string `url:"entityId,omitempty"` //Id of the entity for which this issue belongs to. For example, it could be mac address of AP or UUID of Sensor example: 68:ca:e4:79:3f:20 4de02167-901b-43cf-8822-cffd3caa286f Examples: entityId=68:ca:e4:79:3f:20 (single entity id requested) entityId=68:ca:e4:79:3f:20&entityId=864d0421-02c0-43a6-9c52-81cad45f66d8 (multiple entity ids requested) + UpdatedBy string `url:"updatedBy,omitempty"` //The user who last updated this issue. Examples: updatedBy=admin (single updatedBy requested) updatedBy=admin&updatedBy=john (multiple updatedBy requested) + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (*) character search support. E.g. */San*, */San, /San* Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (*) character search support. E.g. `*uuid*, *uuid, uuid* Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteName string `url:"siteName,omitempty"` //The name of the site. (Ex. `FloorName`) This field supports wildcard asterisk (*) character search support. E.g. *San*, *San, San* Examples: `?siteName=building1` (single siteName requested) `?siteName=building1&siteName=building2&siteName=building3` (multiple siteNames requested) + SiteID string `url:"siteId,omitempty"` //The UUID of the site. (Ex. `flooruuid`) This field supports wildcard asterisk (*) character search support. E.g.*flooruuid*, *flooruuid, flooruuid* Examples: `?siteId=id1` (single id requested) `?siteId=id1&siteId=id2&siteId=id3` (multiple ids requested) + FabricSiteID string `url:"fabricSiteId,omitempty"` //The UUID of the fabric site. (Ex. "flooruuid") Examples: fabricSiteId=e52aecfe-b142-4287-a587-11a16ba6dd26 (single id requested) fabricSiteId=e52aecfe-b142-4287-a587-11a16ba6dd26,864d0421-02c0-43a6-9c52-81cad45f66d8 (multiple ids requested) + FabricVnName string `url:"fabricVnName,omitempty"` //The name of the fabric virtual network Examples: fabricVnName=name1 (single fabric virtual network name requested) fabricVnName=name1&fabricVnName=name2&fabricVnName=name3 (multiple fabric virtual network names requested) + FabricTransitSiteID string `url:"fabricTransitSiteId,omitempty"` //The UUID of the fabric transit site. (Ex. "flooruuid") Examples: fabricTransitSiteId=e52aecfe-b142-4287-a587-11a16ba6dd26 (single id requested) fabricTransitSiteId=e52aecfe-b142-4287-a587-11a16ba6dd26&fabricTransitSiteId=864d0421-02c0-43a6-9c52-81cad45f66d8 (multiple ids requested) + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //The list of Network Device Uuids. (Ex. `6bef213c-19ca-4170-8375-b694e251101c`) Examples: `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c` (single networkDeviceId requested) `networkDeviceId=6bef213c-19ca-4170-8375-b694e251101c&networkDeviceId=32219612-819e-4b5e-a96b-cf22aca13dd9&networkDeviceId=2541e9a7-b80d-4955-8aa2-79b233318ba0` (multiple networkDeviceIds with & separator) + NetworkDeviceIPAddress string `url:"networkDeviceIpAddress,omitempty"` //The list of Network Device management IP Address. (Ex. `121.1.1.10`) This field supports wildcard (`*`) character-based search. Ex: `*1.1*` or `1.1*` or `*1.1` Examples: `networkDeviceIpAddress=121.1.1.10` `networkDeviceIpAddress=121.1.1.10&networkDeviceIpAddress=172.20.1.10&networkDeviceIpAddress=10.10.20.10` (multiple networkDevice IP Address with & separator) + MacAddress string `url:"macAddress,omitempty"` //The macAddress of the network device or client This field supports wildcard (`*`) character-based search. Ex: `*AB:AB:AB*` or `AB:AB:AB*` or `*AB:AB:AB` Examples: `macAddress=AB:AB:AB:CD:CD:CD` (single macAddress requested) `macAddress=AB:AB:AB:CD:CD:DC&macAddress=AB:AB:AB:CD:CD:FE` (multiple macAddress requested) + AiDriven bool `url:"aiDriven,omitempty"` //Flag whether the issue is AI driven issue + FabricDriven bool `url:"fabricDriven,omitempty"` //Flag whether the issue is related to a Fabric site, a virtual network or a transit. + FabricSiteDriven bool `url:"fabricSiteDriven,omitempty"` //Flag whether the issue is Fabric site driven issue + FabricVnDriven bool `url:"fabricVnDriven,omitempty"` //Flag whether the issue is Fabric Virtual Network driven issue + FabricTransitDriven bool `url:"fabricTransitDriven,omitempty"` //Flag whether the issue is Fabric Transit driven issue +} +type GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + AcceptLanguage string `url:"Accept-Language,omitempty"` //Expects type string. This header parameter can be used to specify the language in which issue description and suggested actions need to be returned. Available options are - 'en' (English), 'ja' (Japanese), 'ko' (Korean), 'zh' (Chinese). If this parameter is not present the issue details are returned in English language. + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type GetTheTotalNumberOfIssuesForGivenSetOfFiltersHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type GetSummaryAnalyticsDataOfIssuesHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + AcceptLanguage string `url:"Accept-Language,omitempty"` //Expects type string. This header parameter can be used to specify the language in which issue display name need to be returned. Available options are - 'en' (English), 'ja' (Japanese), 'ko' (Korean), 'zh' (Chinese). If this parameter is not present the issue display name is returned in English language. + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type GetTopNAnalyticsDataOfIssuesHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + AcceptLanguage string `url:"Accept-Language,omitempty"` //Expects type string. This header parameter can be used to specify the language in which issue display name need to be returned. Available options are - 'en' (English), 'ja' (Japanese), 'ko' (Korean), 'zh' (Chinese). If this parameter is not present the issue display name is returned in English language. + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type GetTrendAnalyticsDataOfIssuesHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + AcceptLanguage string `url:"Accept-Language,omitempty"` //Expects type string. This header parameter can be used to specify the language in which issue display name need to be returned. Available options are - 'en' (English), 'ja' (Japanese), 'ko' (Korean), 'zh' (Chinese). If this parameter is not present the issue display name is returned in English language. + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDQueryParams struct { + View string `url:"view,omitempty"` //The name of the View. Each view represents a specific data set. Please refer to the `IssuesView` Model for supported views. View is predefined set of attributes supported by the API. Only the attributes related to the given view will be part of the API response along with default attributes. If multiple views are provided, then response will contain attributes from all those views. If no views are specified, all attributes will be returned. | View Name | Included Attributes | | --- | --- | | `update` | updatedTime, updatedBy | | `site` | siteName, siteHierarchy, siteId, siteHierarchyId | Examples: `view=update` (single view requested) `view=update&view=site` (multiple views requested) + Attribute string `url:"attribute,omitempty"` //List of attributes related to the issue. If these are provided, then only those attributes will be part of response along with the default attributes. Please refer to the `IssuesResponseAttribute` Model for supported attributes. Examples: `attribute=deviceType` (single attribute requested) `attribute=deviceType&attribute=updatedBy` (multiple attributes requested) +} +type GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDHeaderParams struct { + AcceptLanguage string `url:"Accept-Language,omitempty"` //Expects type string. This header parameter can be used to specify the language in which issue description and suggested actions need to be returned. Available options are - 'en' (English), 'ja' (Japanese), 'ko' (Korean), 'zh' (Chinese). If this parameter is not present the issue details are returned in English language. + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type IgnoreTheGivenListOfIssuesHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type ResolveTheGivenListsOfIssuesHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + AcceptLanguage string `url:"Accept-Language,omitempty"` //Expects type string. This header parameter can be used to specify the language in which issue description and suggested actions need to be returned. Available options are - 'en' (English), 'ja' (Japanese), 'ko' (Korean), 'zh' (Chinese). If this parameter is not present the issue details are returned in English language. + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type CreatesANewUserDefinedIssueDefinitionsHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type GetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersQueryParams struct { + ID string `url:"id,omitempty"` //The custom issue definition identifier and unique identifier across the profile.Examples: id=6bef213c-19ca-4170-8375-b694e251101c (single entity uuid requested) id=6bef213c-19ca-4170-8375-b694e251101c&id=19ca-4170-8375-b694e251101c-6bef213c (multiple Id request in the query param) + ProfileID string `url:"profileId,omitempty"` //The profile identifier to fetch the profile associated custom issue definitions. The default is global. For the custom profile, it is profile UUID. Example : 3fa85f64-5717-4562-b3fc-2c963f66afa6 + Name string `url:"name,omitempty"` //The list of UDI issue names + Priority string `url:"priority,omitempty"` //The Issue priority value, possible values are P1, P2, P3, P4. P1: A critical issue that needs immediate attention and can have a wide impact on network operations. P2: A major issue that can potentially impact multiple devices or clients. P3: A minor issue that has a localized or minimal impact. P4: A warning issue that may not be an immediate problem but addressing it can optimize the network performance + IsEnabled bool `url:"isEnabled,omitempty"` //The enable status of the custom issue definition, either true or false. + Severity float64 `url:"severity,omitempty"` //The syslog severity level. 0: Emergency 1: Alert, 2: Critical. 3: Error, 4: Warning, 5: Notice, 6: Info. Examples:severity=1&severity=2 (multi value support with & separator) + Facility string `url:"facility,omitempty"` //The syslog facility name + Mnemonic string `url:"mnemonic,omitempty"` //The syslog mnemonic name + Limit float64 `url:"limit,omitempty"` //The maximum number of records to return + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + SortBy string `url:"sortBy,omitempty"` //A field within the response to sort by. + Order string `url:"order,omitempty"` //The sort order of the field ascending or descending. +} +type GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersQueryParams struct { + ID string `url:"id,omitempty"` //The custom issue definition identifier and unique identifier across the profile. Examples: id=6bef213c-19ca-4170-8375-b694e251101c (single entity uuid requested) id=6bef213c-19ca-4170-8375-b694e251101c&id=19ca-4170-8375-b694e251101c-6bef213c (multiple Id request in the query param) + ProfileID string `url:"profileId,omitempty"` //The profile identifier to fetch the profile associated custom issue definitions. The default is global. For the custom profile, it is profile UUID. Example : 3fa85f64-5717-4562-b3fc-2c963f66afa6 + Name string `url:"name,omitempty"` //The list of UDI issue names. (Ex."TestUdiIssues") + Priority string `url:"priority,omitempty"` //The Issue priority value, possible values are P1, P2, P3, P4. P1: A critical issue that needs immediate attention and can have a wide impact on network operations. P2: A major issue that can potentially impact multiple devices or clients. P3: A minor issue that has a localized or minimal impact. P4: A warning issue that may not be an immediate problem but addressing it can optimize the network performance + IsEnabled bool `url:"isEnabled,omitempty"` //The enable status of the custom issue definition, either true or false. + Severity float64 `url:"severity,omitempty"` //The syslog severity level. 0: Emergency 1: Alert, 2: Critical. 3: Error, 4: Warning, 5: Notice, 6: Info. Examples:severity=1&severity=2 (multi value support with & separator) + Facility string `url:"facility,omitempty"` //The syslog facility name + Mnemonic string `url:"mnemonic,omitempty"` //The syslog mnemonic name +} +type GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc +} +type UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIDHeaderParams struct { + ContentType string `url:"Content-Type,omitempty"` //Expects type string. Request body content type + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} type GetIssueEnrichmentDetailsHeaderParams struct { - EntityType string `url:"entity_type,omitempty"` //Expects type string. Issue enrichment details can be fetched based on either Issue ID or Client MAC address. This parameter value must either be issue_id/mac_address - EntityValue string `url:"entity_value,omitempty"` //Expects type string. Contains the actual value for the entity type that has been defined + EntityType string `url:"entity_type,omitempty"` //Expects type string. Issue enrichment details can be fetched based on either Issue ID or Client MAC address. This parameter value must either be issue_id/mac_address + EntityValue string `url:"entity_value,omitempty"` //Expects type string. Contains the actual value for the entity type that has been defined + Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. } type IssuesQueryParams struct { StartTime float64 `url:"startTime,omitempty"` //Starting epoch time in milliseconds of query time window @@ -20,11 +175,479 @@ type IssuesQueryParams struct { SiteID string `url:"siteId,omitempty"` //Assurance UUID value of the site in the issue content DeviceID string `url:"deviceId,omitempty"` //Assurance UUID value of the device in the issue content MacAddress string `url:"macAddress,omitempty"` //Client's device MAC address of the issue (format xx:xx:xx:xx:xx:xx) - Priority string `url:"priority,omitempty"` //The issue's priority value (One of P1, P2, P3, or P4)(Use only when macAddress and deviceId are not provided) - AiDriven string `url:"aiDriven,omitempty"` //The issue's AI driven value (Yes or No)(Use only when macAddress and deviceId are not provided) - IssueStatus string `url:"issueStatus,omitempty"` //The issue's status value (One of ACTIVE, IGNORED, RESOLVED) + Priority string `url:"priority,omitempty"` //The issue's priority value: P1, P2, P3, or P4 (case insensitive) (Use only when macAddress and deviceId are not provided) + IssueStatus string `url:"issueStatus,omitempty"` //The issue's status value: ACTIVE, IGNORED, RESOLVED (case insensitive) + AiDriven string `url:"aiDriven,omitempty"` //The issue's AI driven value: YES or NO (case insensitive) (Use only when macAddress and deviceId are not provided) +} +type ReturnsAllIssueTriggerDefinitionsForGivenFiltersQueryParams struct { + DeviceType string `url:"deviceType,omitempty"` //These are the device families/types supported for system issue definitions. If no input is made on device type, all device types are considered. + ProfileID string `url:"profileId,omitempty"` //The profile identier to fetch the profile associated issue defintions. The default is `global`. Please refer Network design profiles documentation for more details. + ID string `url:"id,omitempty"` //The definition identifier. Examples: id=015d9cba-4f53-4087-8317-7e49e5ffef46 (single entity id request) id=015d9cba-4f53-4087-8317-7e49e5ffef46&id=015d9cba-4f53-4087-8317-7e49e5ffef47 (multiple ids in the query param) + Name string `url:"name,omitempty"` //The list of system defined issue names. (Ex."BGP_Down") Examples: name=BGP_Down (single entity uuid requested) name=BGP_Down&name=BGP_Flap (multiple issue names separated by & operator) + Priority string `url:"priority,omitempty"` //Issue priority, possible values are P1, P2, P3, P4. `P1`: A critical issue that needs immediate attention and can have a wide impact on network operations. `P2`: A major issue that can potentially impact multiple devices or clients. `P3`: A minor issue that has a localized or minimal impact. `P4`: A warning issue that may not be an immediate problem but addressing it can optimize the network performance. + IssueEnabled bool `url:"issueEnabled,omitempty"` //The enablement status of the issue definition, either true or false. + Attribute string `url:"attribute,omitempty"` //These are the attributes supported in system issue definitions response. By default, all properties are sent in response. + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return + SortBy string `url:"sortBy,omitempty"` //A field within the response to sort by. + Order string `url:"order,omitempty"` //The sort order of the field ascending or descending. +} +type ReturnsAllIssueTriggerDefinitionsForGivenFiltersHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersQueryParams struct { + DeviceType string `url:"deviceType,omitempty"` //These are the device families/types supported for system issue definitions. If no input is made on device type, all device types are considered. + ProfileID string `url:"profileId,omitempty"` //The profile identier to fetch the profile associated issue defintions. The default is `global`. Please refer Network design profiles documentation for more details. + ID string `url:"id,omitempty"` //The definition identifier. Examples: id=015d9cba-4f53-4087-8317-7e49e5ffef46 (single entity id request) id=015d9cba-4f53-4087-8317-7e49e5ffef46&id=015d9cba-4f53-4087-8317-7e49e5ffef47 (multiple ids in the query param) + Name string `url:"name,omitempty"` //The list of system defined issue names. (Ex."BGP_Down") Examples: name=BGP_Down (single entity uuid requested) name=BGP_Down&name=BGP_Flap (multiple issue names separated by & operator) + Priority string `url:"priority,omitempty"` //Issue priority, possible values are P1, P2, P3, P4. `P1`: A critical issue that needs immediate attention and can have a wide impact on network operations. `P2`: A major issue that can potentially impact multiple devices or clients. `P3`: A minor issue that has a localized or minimal impact. `P4`: A warning issue that may not be an immediate problem but addressing it can optimize the network performance. + IssueEnabled bool `url:"issueEnabled,omitempty"` //The enablement status of the issue definition, either true or false. +} +type GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type GetIssueTriggerDefinitionForGivenIDHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIDHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID can be used to trace the caller for queries executed on database. The caller id is like a optional attribute which can be added to API invocation like ui, python, postman, test-automation etc } +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetwork struct { + Response *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponse `json:"response,omitempty"` // + Page *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponse struct { + IssueID string `json:"issueId,omitempty"` // Issue Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + Summary string `json:"summary,omitempty"` // Summary + Priority string `json:"priority,omitempty"` // Priority + Severity string `json:"severity,omitempty"` // Severity + DeviceType string `json:"deviceType,omitempty"` // Device Type + Category string `json:"category,omitempty"` // Category + EntityType string `json:"entityType,omitempty"` // Entity Type + EntityID string `json:"entityId,omitempty"` // Entity Id + FirstOccurredTime *int `json:"firstOccurredTime,omitempty"` // First Occurred Time + MostRecentOccurredTime *int `json:"mostRecentOccurredTime,omitempty"` // Most Recent Occurred Time + Status string `json:"status,omitempty"` // Status + IsGlobal *bool `json:"isGlobal,omitempty"` // Is Global + UpdatedBy *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseUpdatedBy `json:"updatedBy,omitempty"` // Updated By + UpdatedTime *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseUpdatedTime `json:"updatedTime,omitempty"` // Updated Time + Notes *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseNotes `json:"notes,omitempty"` // Notes + SiteID *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSiteID `json:"siteId,omitempty"` // Site Id + SiteHierarchyID *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSiteHierarchyID `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteName *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSiteName `json:"siteName,omitempty"` // Site Name + SiteHierarchy *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSiteHierarchy `json:"siteHierarchy,omitempty"` // Site Hierarchy + SuggestedActions *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSuggestedActions `json:"suggestedActions,omitempty"` // + AdditionalAttributes *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseAdditionalAttributes `json:"additionalAttributes,omitempty"` // +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseUpdatedBy interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseUpdatedTime interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseNotes interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSiteID interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSiteHierarchyID interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSiteName interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSiteHierarchy interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSuggestedActions struct { + Message string `json:"message,omitempty"` // Message + Steps *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSuggestedActionsSteps `json:"steps,omitempty"` // Steps +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseSuggestedActionsSteps interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkResponseAdditionalAttributes struct { + Key string `json:"key,omitempty"` // Key + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetwork struct { + Response *ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFilters struct { + Response *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponse `json:"response,omitempty"` // + Page *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponse struct { + IssueID string `json:"issueId,omitempty"` // Issue Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + Summary string `json:"summary,omitempty"` // Summary + Priority string `json:"priority,omitempty"` // Priority + Severity string `json:"severity,omitempty"` // Severity + DeviceType string `json:"deviceType,omitempty"` // Device Type + Category string `json:"category,omitempty"` // Category + EntityType string `json:"entityType,omitempty"` // Entity Type + EntityID string `json:"entityId,omitempty"` // Entity Id + FirstOccurredTime *int `json:"firstOccurredTime,omitempty"` // First Occurred Time + MostRecentOccurredTime *int `json:"mostRecentOccurredTime,omitempty"` // Most Recent Occurred Time + Status string `json:"status,omitempty"` // Status + IsGlobal *bool `json:"isGlobal,omitempty"` // Is Global + UpdatedBy *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseUpdatedBy `json:"updatedBy,omitempty"` // Updated By + UpdatedTime *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseUpdatedTime `json:"updatedTime,omitempty"` // Updated Time + Notes *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseNotes `json:"notes,omitempty"` // Notes + SiteID *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSiteID `json:"siteId,omitempty"` // Site Id + SiteHierarchyID *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSiteHierarchyID `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteName *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSiteName `json:"siteName,omitempty"` // Site Name + SiteHierarchy *ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSiteHierarchy `json:"siteHierarchy,omitempty"` // Site Hierarchy + SuggestedActions *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSuggestedActions `json:"suggestedActions,omitempty"` // + AdditionalAttributes *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseAdditionalAttributes `json:"additionalAttributes,omitempty"` // +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseUpdatedBy interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseUpdatedTime interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseNotes interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSiteID interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSiteHierarchyID interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSiteName interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSiteHierarchy interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSuggestedActions struct { + Message string `json:"message,omitempty"` // Message + Steps *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSuggestedActionsSteps `json:"steps,omitempty"` // Steps +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseSuggestedActionsSteps interface{} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersResponseAdditionalAttributes struct { + Key string `json:"key,omitempty"` // Key + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters struct { + Filters *[]ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersFilters `json:"filters,omitempty"` // +} +type ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Value string `json:"value,omitempty"` // Value + Operator string `json:"operator,omitempty"` // Operator +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssues struct { + Version string `json:"version,omitempty"` // Version + Response *ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponse `json:"response,omitempty"` // + Page *ResponseIssuesGetSummaryAnalyticsDataOfIssuesPage `json:"page,omitempty"` // +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponse struct { + Groups *[]ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseGroups `json:"groups,omitempty"` // + Attributes *[]ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseGroups struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseGroupsAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseGroupsAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseGroupsAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseGroupsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseIssuesGetSummaryAnalyticsDataOfIssuesPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Function *ResponseIssuesGetSummaryAnalyticsDataOfIssuesPageSortByFunction `json:"function,omitempty"` // Function + Order string `json:"order,omitempty"` // Order +} +type ResponseIssuesGetSummaryAnalyticsDataOfIssuesPageSortByFunction interface{} +type ResponseIssuesGetTopNAnalyticsDataOfIssues struct { + Version string `json:"version,omitempty"` // Version + Response *[]ResponseIssuesGetTopNAnalyticsDataOfIssuesResponse `json:"response,omitempty"` // + Page *ResponseIssuesGetTopNAnalyticsDataOfIssuesPage `json:"page,omitempty"` // +} +type ResponseIssuesGetTopNAnalyticsDataOfIssuesResponse struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseIssuesGetTopNAnalyticsDataOfIssuesResponseAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseIssuesGetTopNAnalyticsDataOfIssuesResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseIssuesGetTopNAnalyticsDataOfIssuesResponseAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesGetTopNAnalyticsDataOfIssuesResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseIssuesGetTopNAnalyticsDataOfIssuesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseIssuesGetTopNAnalyticsDataOfIssuesPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseIssuesGetTopNAnalyticsDataOfIssuesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Function *ResponseIssuesGetTopNAnalyticsDataOfIssuesPageSortByFunction `json:"function,omitempty"` // Function + Order string `json:"order,omitempty"` // Order +} +type ResponseIssuesGetTopNAnalyticsDataOfIssuesPageSortByFunction interface{} +type ResponseIssuesGetTrendAnalyticsDataOfIssues struct { + Version string `json:"version,omitempty"` // Version + Response *[]ResponseIssuesGetTrendAnalyticsDataOfIssuesResponse `json:"response,omitempty"` // + Page *ResponseIssuesGetTrendAnalyticsDataOfIssuesPage `json:"page,omitempty"` // +} +type ResponseIssuesGetTrendAnalyticsDataOfIssuesResponse struct { + Timestamp *int `json:"timestamp,omitempty"` // Timestamp + Groups *[]ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseGroups `json:"groups,omitempty"` // + Attributes *[]ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseGroups struct { + ID string `json:"id,omitempty"` // Id + Attributes *[]ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseGroupsAttributes `json:"attributes,omitempty"` // + AggregateAttributes *[]ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseGroupsAggregateAttributes `json:"aggregateAttributes,omitempty"` // +} +type ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseGroupsAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseGroupsAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseAttributes struct { + Name string `json:"name,omitempty"` // Name + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesGetTrendAnalyticsDataOfIssuesResponseAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function + Value *int `json:"value,omitempty"` // Value +} +type ResponseIssuesGetTrendAnalyticsDataOfIssuesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + TimestampOrder string `json:"timestampOrder,omitempty"` // Timestamp Order +} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueID struct { + Response *ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponse struct { + IssueID string `json:"issueId,omitempty"` // Issue Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + Summary string `json:"summary,omitempty"` // Summary + Priority string `json:"priority,omitempty"` // Priority + Severity string `json:"severity,omitempty"` // Severity + DeviceType string `json:"deviceType,omitempty"` // Device Type + Category string `json:"category,omitempty"` // Category + EntityType string `json:"entityType,omitempty"` // Entity Type + EntityID string `json:"entityId,omitempty"` // Entity Id + FirstOccurredTime *int `json:"firstOccurredTime,omitempty"` // First Occurred Time + MostRecentOccurredTime *int `json:"mostRecentOccurredTime,omitempty"` // Most Recent Occurred Time + Status string `json:"status,omitempty"` // Status + IsGlobal *bool `json:"isGlobal,omitempty"` // Is Global + UpdatedBy string `json:"updatedBy,omitempty"` // Updated By + UpdatedTime *int `json:"updatedTime,omitempty"` // Updated Time + Notes *ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseNotes `json:"notes,omitempty"` // Notes + SiteID *ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSiteID `json:"siteId,omitempty"` // Site Id + SiteHierarchyID *ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSiteHierarchyID `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteName *ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSiteName `json:"siteName,omitempty"` // Site Name + SiteHierarchy *ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSiteHierarchy `json:"siteHierarchy,omitempty"` // Site Hierarchy + SuggestedActions *[]ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSuggestedActions `json:"suggestedActions,omitempty"` // + AdditionalAttributes *[]ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseAdditionalAttributes `json:"additionalAttributes,omitempty"` // +} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseNotes interface{} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSiteID interface{} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSiteHierarchyID interface{} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSiteName interface{} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSiteHierarchy interface{} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSuggestedActions struct { + Message string `json:"message,omitempty"` // Message + Steps *[]ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSuggestedActionsSteps `json:"steps,omitempty"` // Steps +} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseSuggestedActionsSteps interface{} +type ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDResponseAdditionalAttributes struct { + Key string `json:"key,omitempty"` // Key + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesIgnoreTheGivenListOfIssues struct { + Response *ResponseIssuesIgnoreTheGivenListOfIssuesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesIgnoreTheGivenListOfIssuesResponse struct { + SuccessfulIssueIDs []string `json:"successfulIssueIds,omitempty"` // Successful Issue Ids + FailureIssueIDs []string `json:"failureIssueIds,omitempty"` // Failure Issue Ids +} +type ResponseIssuesResolveTheGivenListsOfIssues struct { + Response *ResponseIssuesResolveTheGivenListsOfIssuesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesResolveTheGivenListsOfIssuesResponse struct { + SuccessfulIssueIDs []string `json:"successfulIssueIds,omitempty"` // Successful Issue Ids + FailureIssueIDs []string `json:"failureIssueIds,omitempty"` // Failure Issue Ids +} +type ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFields struct { + Response *ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFieldsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFieldsResponse struct { + IssueID string `json:"issueId,omitempty"` // Issue Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + Summary string `json:"summary,omitempty"` // Summary + Priority string `json:"priority,omitempty"` // Priority + Severity string `json:"severity,omitempty"` // Severity + DeviceType string `json:"deviceType,omitempty"` // Device Type + Category string `json:"category,omitempty"` // Category + EntityType string `json:"entityType,omitempty"` // Entity Type + EntityID string `json:"entityId,omitempty"` // Entity Id + FirstOccurredTime *int `json:"firstOccurredTime,omitempty"` // First Occurred Time + MostRecentOccurredTime *int `json:"mostRecentOccurredTime,omitempty"` // Most Recent Occurred Time + Status string `json:"status,omitempty"` // Status + IsGlobal *bool `json:"isGlobal,omitempty"` // Is Global + UpdatedBy string `json:"updatedBy,omitempty"` // Updated By + UpdatedTime *int `json:"updatedTime,omitempty"` // Updated Time + Notes string `json:"notes,omitempty"` // Notes + SiteID string `json:"siteId,omitempty"` // Site Id + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteName string `json:"siteName,omitempty"` // Site Name + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SuggestedActions *[]ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFieldsResponseSuggestedActions `json:"suggestedActions,omitempty"` // + AdditionalAttributes *[]ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFieldsResponseAdditionalAttributes `json:"additionalAttributes,omitempty"` // +} +type ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFieldsResponseSuggestedActions struct { + Message string `json:"message,omitempty"` // Message +} +type ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFieldsResponseAdditionalAttributes struct { + Key string `json:"key,omitempty"` // Key + Value string `json:"value,omitempty"` // Value +} +type ResponseIssuesCreatesANewUserDefinedIssueDefinitions struct { + Response *ResponseIssuesCreatesANewUserDefinedIssueDefinitionsResponse `json:"response,omitempty"` // +} +type ResponseIssuesCreatesANewUserDefinedIssueDefinitionsResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + ProfileID string `json:"profileId,omitempty"` // Profile Id + TriggerID string `json:"triggerId,omitempty"` // Trigger Id + Rules *[]ResponseIssuesCreatesANewUserDefinedIssueDefinitionsResponseRules `json:"rules,omitempty"` // + IsEnabled *bool `json:"isEnabled,omitempty"` // Is Enabled + Priority string `json:"priority,omitempty"` // Priority + IsDeletable *bool `json:"isDeletable,omitempty"` // Is Deletable + IsNotificationEnabled *bool `json:"isNotificationEnabled,omitempty"` // Is Notification Enabled + CreatedTime *int `json:"createdTime,omitempty"` // Created Time + LastUpdatedTime *int `json:"lastUpdatedTime,omitempty"` // Last Updated Time +} +type ResponseIssuesCreatesANewUserDefinedIssueDefinitionsResponseRules struct { + Type string `json:"type,omitempty"` // Type + Severity *int `json:"severity,omitempty"` // Severity + Facility string `json:"facility,omitempty"` // Facility + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + Pattern string `json:"pattern,omitempty"` // Pattern + Occurrences *int `json:"occurrences,omitempty"` // Occurrences + DurationInMinutes *int `json:"durationInMinutes,omitempty"` // Duration In Minutes +} +type ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFilters struct { + Response *[]ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersResponse `json:"response,omitempty"` // + Page *ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + ProfileID string `json:"profileId,omitempty"` // Profile Id + TriggerID string `json:"triggerId,omitempty"` // Trigger Id + Rules *[]ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersResponseRules `json:"rules,omitempty"` // + IsEnabled *bool `json:"isEnabled,omitempty"` // Is Enabled + Priority string `json:"priority,omitempty"` // Priority + IsDeletable *bool `json:"isDeletable,omitempty"` // Is Deletable + IsNotificationEnabled *bool `json:"isNotificationEnabled,omitempty"` // Is Notification Enabled + CreatedTime *int `json:"createdTime,omitempty"` // Created Time + LastUpdatedTime *int `json:"lastUpdatedTime,omitempty"` // Last Updated Time +} +type ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersResponseRules struct { + Type string `json:"type,omitempty"` // Type + Severity *int `json:"severity,omitempty"` // Severity + Facility string `json:"facility,omitempty"` // Facility + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + Pattern string `json:"pattern,omitempty"` // Pattern + Occurrences *int `json:"occurrences,omitempty"` // Occurrences + DurationInMinutes *int `json:"durationInMinutes,omitempty"` // Duration In Minutes +} +type ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseIssuesGetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFilters struct { + Response *ResponseIssuesGetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesGetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID struct { + Response *ResponseIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIDResponse `json:"response,omitempty"` // +} +type ResponseIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIDResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + ProfileID string `json:"profileId,omitempty"` // Profile Id + TriggerID string `json:"triggerId,omitempty"` // Trigger Id + Rules *[]ResponseIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIDResponseRules `json:"rules,omitempty"` // + IsEnabled *bool `json:"isEnabled,omitempty"` // Is Enabled + Priority string `json:"priority,omitempty"` // Priority + IsDeletable *bool `json:"isDeletable,omitempty"` // Is Deletable + IsNotificationEnabled *bool `json:"isNotificationEnabled,omitempty"` // Is Notification Enabled + CreatedTime *int `json:"createdTime,omitempty"` // Created Time + LastUpdatedTime *int `json:"lastUpdatedTime,omitempty"` // Last Updated Time +} +type ResponseIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIDResponseRules struct { + Type string `json:"type,omitempty"` // Type + Severity *int `json:"severity,omitempty"` // Severity + Facility string `json:"facility,omitempty"` // Facility + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + Pattern string `json:"pattern,omitempty"` // Pattern + Occurrences *int `json:"occurrences,omitempty"` // Occurrences + DurationInMinutes *int `json:"durationInMinutes,omitempty"` // Duration In Minutes +} type ResponseIssuesExecuteSuggestedActionsCommands []ResponseItemIssuesExecuteSuggestedActionsCommands // Array of ResponseIssuesExecuteSuggestedActionsCommands type ResponseItemIssuesExecuteSuggestedActionsCommands struct { ActionInfo string `json:"actionInfo,omitempty"` // Actions Info @@ -64,39 +687,308 @@ type ResponseIssuesGetIssueEnrichmentDetailsIssueDetailsIssueSuggestedActions st type ResponseIssuesGetIssueEnrichmentDetailsIssueDetailsIssueSuggestedActionsSteps interface{} type ResponseIssuesGetIssueEnrichmentDetailsIssueDetailsIssueImpactedHosts interface{} type ResponseIssuesIssues struct { - Version string `json:"version,omitempty"` // Version - TotalCount *int `json:"totalCount,omitempty"` // Total Count + Version string `json:"version,omitempty"` // Response body's schema version string + TotalCount string `json:"totalCount,omitempty"` // Total number of issues in the query time window Response *[]ResponseIssuesIssuesResponse `json:"response,omitempty"` // } type ResponseIssuesIssuesResponse struct { - IssueID string `json:"issueId,omitempty"` // Issue Id - Name string `json:"name,omitempty"` // Name - SiteID string `json:"siteId,omitempty"` // Site Id - DeviceID string `json:"deviceId,omitempty"` // Device Id - DeviceRole string `json:"deviceRole,omitempty"` // Device Role - AiDriven *bool `json:"aiDriven,omitempty"` // Ai Driven - ClientMac string `json:"clientMac,omitempty"` // Client Mac - IssueOccurenceCount *int `json:"issue_occurence_count,omitempty"` // Issue Occurence Count - Status string `json:"status,omitempty"` // Status - Priority string `json:"priority,omitempty"` // Priority - Category string `json:"category,omitempty"` // Category - LastOccurenceTime *int `json:"last_occurence_time,omitempty"` // Last Occurence Time + IssueID string `json:"issueId,omitempty"` // The issue's unique identifier + Name string `json:"name,omitempty"` // The issue's display name + SiteID string `json:"siteId,omitempty"` // The site UUID where the issue occurred + DeviceID string `json:"deviceId,omitempty"` // The device UUID where the issue occurred + DeviceRole string `json:"deviceRole,omitempty"` // The device role + AiDriven string `json:"aiDriven,omitempty"` // Whether the issue is AI driven ('Yes' or 'No') + ClientMac string `json:"clientMac,omitempty"` // The client MAC address related to this issue + IssueOccurenceCount *int `json:"issue_occurence_count,omitempty"` // Total number of instances of this issue in the query time window + Status string `json:"status,omitempty"` // The status of the issue + Priority string `json:"priority,omitempty"` // Priority setting of the issue + Category string `json:"category,omitempty"` // Category of the issue + LastOccurenceTime *int `json:"last_occurence_time,omitempty"` // The UTC timestamp of last occurence of this issue +} +type ResponseIssuesReturnsAllIssueTriggerDefinitionsForGivenFilters struct { + Response *[]ResponseIssuesReturnsAllIssueTriggerDefinitionsForGivenFiltersResponse `json:"response,omitempty"` // +} +type ResponseIssuesReturnsAllIssueTriggerDefinitionsForGivenFiltersResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + DisplayName string `json:"displayName,omitempty"` // Display Name + Description string `json:"description,omitempty"` // Description + Priority string `json:"priority,omitempty"` // Priority + DefaultPriority string `json:"defaultPriority,omitempty"` // Default Priority + DeviceType string `json:"deviceType,omitempty"` // Device Type + IssueEnabled *bool `json:"issueEnabled,omitempty"` // Issue Enabled + ProfileID string `json:"profileId,omitempty"` // Profile Id + DefinitionStatus string `json:"definitionStatus,omitempty"` // Definition Status + CategoryName string `json:"categoryName,omitempty"` // Category Name + SynchronizeToHealthThreshold *bool `json:"synchronizeToHealthThreshold,omitempty"` // Synchronize To Health Threshold + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value + LastModified string `json:"lastModified,omitempty"` // Last Modified +} +type ResponseIssuesGetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFilters struct { + Response *ResponseIssuesGetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesGetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseIssuesGetIssueTriggerDefinitionForGivenID struct { + Response *ResponseIssuesGetIssueTriggerDefinitionForGivenIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesGetIssueTriggerDefinitionForGivenIDResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + DisplayName string `json:"displayName,omitempty"` // Display Name + Description string `json:"description,omitempty"` // Description + Priority string `json:"priority,omitempty"` // Priority + DefaultPriority string `json:"defaultPriority,omitempty"` // Default Priority + DeviceType string `json:"deviceType,omitempty"` // Device Type + IssueEnabled *bool `json:"issueEnabled,omitempty"` // Issue Enabled + ProfileID string `json:"profileId,omitempty"` // Profile Id + DefinitionStatus string `json:"definitionStatus,omitempty"` // Definition Status + CategoryName string `json:"categoryName,omitempty"` // Category Name + SynchronizeToHealthThreshold *bool `json:"synchronizeToHealthThreshold,omitempty"` // Synchronize To Health Threshold + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value + LastModified string `json:"lastModified,omitempty"` // Last Modified +} +type ResponseIssuesIssueTriggerDefinitionUpdate struct { + Response *ResponseIssuesIssueTriggerDefinitionUpdateResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseIssuesIssueTriggerDefinitionUpdateResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + DisplayName string `json:"displayName,omitempty"` // Display Name + Description string `json:"description,omitempty"` // Description + Priority string `json:"priority,omitempty"` // Priority + DefaultPriority string `json:"defaultPriority,omitempty"` // Default Priority + DeviceType string `json:"deviceType,omitempty"` // Device Type + IssueEnabled *bool `json:"issueEnabled,omitempty"` // Issue Enabled + ProfileID string `json:"profileId,omitempty"` // Profile Id + DefinitionStatus string `json:"definitionStatus,omitempty"` // Definition Status + CategoryName string `json:"categoryName,omitempty"` // Category Name + SynchronizeToHealthThreshold *bool `json:"synchronizeToHealthThreshold,omitempty"` // Synchronize To Health Threshold + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value + LastModified string `json:"lastModified,omitempty"` // Last Modified +} +type ResponseIssuesGetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionID struct { + Response *ResponseIssuesGetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIDResponse `json:"response,omitempty"` // +} +type ResponseIssuesGetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIDResponse struct { + ID string `json:"id,omitempty"` // Id + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + ProfileID string `json:"profileId,omitempty"` // Profile Id + TriggerID string `json:"triggerId,omitempty"` // Trigger Id + Rules *[]ResponseIssuesGetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIDResponseRules `json:"rules,omitempty"` // + IsEnabled *bool `json:"isEnabled,omitempty"` // Is Enabled + Priority string `json:"priority,omitempty"` // Priority + IsDeletable *bool `json:"isDeletable,omitempty"` // Is Deletable + IsNotificationEnabled *bool `json:"isNotificationEnabled,omitempty"` // Is Notification Enabled + CreatedTime *int `json:"createdTime,omitempty"` // Created Time + LastUpdatedTime *int `json:"lastUpdatedTime,omitempty"` // Last Updated Time +} +type ResponseIssuesGetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIDResponseRules struct { + Type string `json:"type,omitempty"` // Type + Severity *int `json:"severity,omitempty"` // Severity + Facility string `json:"facility,omitempty"` // Facility + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + Pattern string `json:"pattern,omitempty"` // Pattern + Occurrences *int `json:"occurrences,omitempty"` // Occurrences + DurationInMinutes *int `json:"durationInMinutes,omitempty"` // Duration In Minutes +} +type RequestIssuesGetTheDetailsOfIssuesForGivenSetOfFilters struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Filters *[]RequestIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersFilters `json:"filters,omitempty"` // +} +type RequestIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value + LogicalOperator string `json:"logicalOperator,omitempty"` // Logical Operator + Filters *[]RequestIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersFiltersFilters `json:"filters,omitempty"` // +} +type RequestIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Filters *[]RequestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersFilters `json:"filters,omitempty"` // +} +type RequestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value + LogicalOperator string `json:"logicalOperator,omitempty"` // Logical Operator + Filters *[]RequestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersFiltersFilters `json:"filters,omitempty"` // +} +type RequestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestIssuesGetSummaryAnalyticsDataOfIssues struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Filters *[]RequestIssuesGetSummaryAnalyticsDataOfIssuesFilters `json:"filters,omitempty"` // + GroupBy []string `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + AggregateAttributes *[]RequestIssuesGetSummaryAnalyticsDataOfIssuesAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestIssuesGetSummaryAnalyticsDataOfIssuesPage `json:"page,omitempty"` // +} +type RequestIssuesGetSummaryAnalyticsDataOfIssuesFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value + LogicalOperator string `json:"logicalOperator,omitempty"` // Logical Operator + Filters *[]RequestIssuesGetSummaryAnalyticsDataOfIssuesFiltersFilters `json:"filters,omitempty"` // +} +type RequestIssuesGetSummaryAnalyticsDataOfIssuesFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestIssuesGetSummaryAnalyticsDataOfIssuesAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestIssuesGetSummaryAnalyticsDataOfIssuesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + SortBy *[]RequestIssuesGetSummaryAnalyticsDataOfIssuesPageSortBy `json:"sortBy,omitempty"` // +} +type RequestIssuesGetSummaryAnalyticsDataOfIssuesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestIssuesGetTopNAnalyticsDataOfIssues struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + TopN *int `json:"topN,omitempty"` // Top N + Filters *[]RequestIssuesGetTopNAnalyticsDataOfIssuesFilters `json:"filters,omitempty"` // + GroupBy []string `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + AggregateAttributes *[]RequestIssuesGetTopNAnalyticsDataOfIssuesAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestIssuesGetTopNAnalyticsDataOfIssuesPage `json:"page,omitempty"` // +} +type RequestIssuesGetTopNAnalyticsDataOfIssuesFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value + LogicalOperator string `json:"logicalOperator,omitempty"` // Logical Operator + Filters *[]RequestIssuesGetTopNAnalyticsDataOfIssuesFiltersFilters `json:"filters,omitempty"` // +} +type RequestIssuesGetTopNAnalyticsDataOfIssuesFiltersFilters struct { + Key string `json:"key,omitempty"` // Key + Operator string `json:"operator,omitempty"` // Operator + Value string `json:"value,omitempty"` // Value +} +type RequestIssuesGetTopNAnalyticsDataOfIssuesAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestIssuesGetTopNAnalyticsDataOfIssuesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + SortBy *[]RequestIssuesGetTopNAnalyticsDataOfIssuesPageSortBy `json:"sortBy,omitempty"` // +} +type RequestIssuesGetTopNAnalyticsDataOfIssuesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type RequestIssuesGetTrendAnalyticsDataOfIssues struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + TrendInterval string `json:"trendInterval,omitempty"` // Trend Interval + Filters *[]RequestIssuesGetTrendAnalyticsDataOfIssuesFilters `json:"filters,omitempty"` // + GroupBy []string `json:"groupBy,omitempty"` // Group By + Attributes []string `json:"attributes,omitempty"` // Attributes + AggregateAttributes *[]RequestIssuesGetTrendAnalyticsDataOfIssuesAggregateAttributes `json:"aggregateAttributes,omitempty"` // + Page *RequestIssuesGetTrendAnalyticsDataOfIssuesPage `json:"page,omitempty"` // +} +type RequestIssuesGetTrendAnalyticsDataOfIssuesFilters struct { + Key string `json:"key,omitempty"` // Key + Value string `json:"value,omitempty"` // Value + Operator string `json:"operator,omitempty"` // Operator +} +type RequestIssuesGetTrendAnalyticsDataOfIssuesAggregateAttributes struct { + Name string `json:"name,omitempty"` // Name + Function string `json:"function,omitempty"` // Function +} +type RequestIssuesGetTrendAnalyticsDataOfIssuesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + TimestampOrder string `json:"timestampOrder,omitempty"` // Timestamp Order +} +type RequestIssuesIgnoreTheGivenListOfIssues struct { + IssueIDs []string `json:"issueIds,omitempty"` // Issue Ids +} +type RequestIssuesResolveTheGivenListsOfIssues struct { + IssueIDs []string `json:"issueIds,omitempty"` // Issue Ids +} +type RequestIssuesUpdateTheGivenIssueByUpdatingSelectedFields struct { + Notes string `json:"notes,omitempty"` // Notes +} +type RequestIssuesCreatesANewUserDefinedIssueDefinitions struct { + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + Rules *[]RequestIssuesCreatesANewUserDefinedIssueDefinitionsRules `json:"rules,omitempty"` // + IsEnabled *bool `json:"isEnabled,omitempty"` // Is Enabled + Priority string `json:"priority,omitempty"` // Priority + IsNotificationEnabled *bool `json:"isNotificationEnabled,omitempty"` // Is Notification Enabled +} +type RequestIssuesCreatesANewUserDefinedIssueDefinitionsRules struct { + Severity *int `json:"severity,omitempty"` // Severity + Facility string `json:"facility,omitempty"` // Facility + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + Pattern string `json:"pattern,omitempty"` // Pattern + Occurrences *int `json:"occurrences,omitempty"` // Occurrences + DurationInMinutes *int `json:"durationInMinutes,omitempty"` // Duration In Minutes +} +type RequestIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID struct { + Name string `json:"name,omitempty"` // Name + Description string `json:"description,omitempty"` // Description + Rules *[]RequestIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIDRules `json:"rules,omitempty"` // + IsEnabled *bool `json:"isEnabled,omitempty"` // Is Enabled + Priority string `json:"priority,omitempty"` // Priority + IsNotificationEnabled *bool `json:"isNotificationEnabled,omitempty"` // Is Notification Enabled +} +type RequestIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIDRules struct { + Severity *int `json:"severity,omitempty"` // Severity + Facility string `json:"facility,omitempty"` // Facility + Mnemonic string `json:"mnemonic,omitempty"` // Mnemonic + Pattern string `json:"pattern,omitempty"` // Pattern + Occurrences *int `json:"occurrences,omitempty"` // Occurrences + DurationInMinutes *int `json:"durationInMinutes,omitempty"` // Duration In Minutes } type RequestIssuesExecuteSuggestedActionsCommands struct { EntityType string `json:"entity_type,omitempty"` // Commands provided as part of the suggested actions for an issue can be executed based on issue id. The value here must be issue_id EntityValue string `json:"entity_value,omitempty"` // Contains the actual value for the entity type that has been defined } +type RequestIssuesIssueTriggerDefinitionUpdate struct { + SynchronizeToHealthThreshold *bool `json:"synchronizeToHealthThreshold,omitempty"` // Synchronize To Health Threshold + Priority string `json:"priority,omitempty"` // Priority + IssueEnabled *bool `json:"issueEnabled,omitempty"` // Issue Enabled + ThresholdValue *float64 `json:"thresholdValue,omitempty"` // Threshold Value +} -//GetIssueEnrichmentDetails Get Issue Enrichment Details - 8684-39bb-4e89-a6e4 -/* Enriches a given network issue context (an issue id or end userā€™s Mac Address) with details about the issue(s), impacted hosts and suggested actions for remediation +//GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetwork Get the details of issues for given set of filters - a991-6985-476b-b271 +/* Returns all details of each issue along with suggested actions for given set of filters specified in query parameters. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time. All string type query parameters support wildcard search (using *). For example: siteHierarchy=Global/San Jose/* returns issues under all sites whole siteHierarchy starts with "Global/San Jose/". https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesList-1.0.0-resolved.yaml -@param GetIssueEnrichmentDetailsHeaderParams Custom header parameters +@param GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams Custom header parameters +@param GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-issue-enrichment-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-details-of-issues-for-given-set-of-filters-know-your-network-v1 */ -func (s *IssuesService) GetIssueEnrichmentDetails(GetIssueEnrichmentDetailsHeaderParams *GetIssueEnrichmentDetailsHeaderParams) (*ResponseIssuesGetIssueEnrichmentDetails, *resty.Response, error) { - path := "/dna/intent/api/v1/issue-enrichment-details" +func (s *IssuesService) GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetwork(GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams *GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams, GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams *GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams) (*ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetwork, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceIssues" + + queryString, _ := query.Values(GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams) var response *resty.Response var err error @@ -104,20 +996,20 @@ func (s *IssuesService) GetIssueEnrichmentDetails(GetIssueEnrichmentDetailsHeade SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json") - if GetIssueEnrichmentDetailsHeaderParams != nil { + if GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams != nil { - if GetIssueEnrichmentDetailsHeaderParams.EntityType != "" { - clientRequest = clientRequest.SetHeader("entity_type", GetIssueEnrichmentDetailsHeaderParams.EntityType) + if GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams.AcceptLanguage != "" { + clientRequest = clientRequest.SetHeader("Accept-Language", GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams.AcceptLanguage) } - if GetIssueEnrichmentDetailsHeaderParams.EntityValue != "" { - clientRequest = clientRequest.SetHeader("entity_value", GetIssueEnrichmentDetailsHeaderParams.EntityValue) + if GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams.XCaLLERID) } } response, err = clientRequest. - SetResult(&ResponseIssuesGetIssueEnrichmentDetails{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetwork{}). SetError(&Error). Get(path) @@ -128,33 +1020,46 @@ func (s *IssuesService) GetIssueEnrichmentDetails(GetIssueEnrichmentDetailsHeade if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetIssueEnrichmentDetails(GetIssueEnrichmentDetailsHeaderParams) + return s.GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetwork(GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams, GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams) } - return nil, response, fmt.Errorf("error with operation GetIssueEnrichmentDetails") + return nil, response, fmt.Errorf("error with operation GetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetwork") } - result := response.Result().(*ResponseIssuesGetIssueEnrichmentDetails) + result := response.Result().(*ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFiltersKnowYourNetwork) return result, response, err } -//Issues Issues - 5e86-3b7b-4a4b-b2f9 -/* Intent API to get a list of global issues, issues for a specific device, or issue for a specific client device's MAC address. +//GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetwork Get the total number of issues for given set of filters - 049b-c87d-456a-a69b +/* Returns the total number issues for given set of filters. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time. https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesList-1.0.0-resolved.yaml -@param IssuesQueryParams Filtering parameter +@param GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams Custom header parameters +@param GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!issues +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-total-number-of-issues-for-given-set-of-filters-know-your-network-v1 */ -func (s *IssuesService) Issues(IssuesQueryParams *IssuesQueryParams) (*ResponseIssuesIssues, *resty.Response, error) { - path := "/dna/intent/api/v1/issues" +func (s *IssuesService) GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetwork(GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams *GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams, GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams *GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams) (*ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetwork, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceIssues/count" - queryString, _ := query.Values(IssuesQueryParams) + queryString, _ := query.Values(GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams) - response, err := s.client.R(). + var response *resty.Response + var err error + clientRequest := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesIssues{}). + SetHeader("Accept", "application/json") + + if GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams != nil { + + if GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetwork{}). SetError(&Error). Get(path) @@ -165,34 +1070,94 @@ func (s *IssuesService) Issues(IssuesQueryParams *IssuesQueryParams) (*ResponseI if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.Issues(IssuesQueryParams) + return s.GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetwork(GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkHeaderParams, GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetworkQueryParams) } - return nil, response, fmt.Errorf("error with operation Issues") + return nil, response, fmt.Errorf("error with operation GetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetwork") } - result := response.Result().(*ResponseIssuesIssues) + result := response.Result().(*ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFiltersKnowYourNetwork) return result, response, err } -//ExecuteSuggestedActionsCommands Execute Suggested Actions Commands - cfb2-ab10-4cea-bfbb -/* This API triggers the execution of the suggested actions for an issue, given the Issue Id. It will return an execution Id. At the completion of the execution, the output of the commands associated with the suggested actions will be provided -Invoking this API would provide the execution id. Execute the 'Get Business API Execution Details' API with this execution id, to receive the suggested actions commands output. +//GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueID Get all the details and suggested actions of an issue for the given issue id - 82ae-1acd-4b6a-ab00 +/* Returns all the details and suggested actions of an issue for the given issue id. https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesList-1.0.0-resolved.yaml +@param id id path parameter. The issue Uuid -Documentation Link: https://developer.cisco.com/docs/dna-center/#!execute-suggested-actions-commands +@param GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdHeaderParams Custom header parameters +@param GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-the-details-and-suggested-actions-of-an-issue-for-the-given-issue-id-v1 */ -func (s *IssuesService) ExecuteSuggestedActionsCommands(requestIssuesExecuteSuggestedActionsCommands *RequestIssuesExecuteSuggestedActionsCommands) (*ResponseIssuesExecuteSuggestedActionsCommands, *resty.Response, error) { - path := "/dna/intent/api/v1/execute-suggested-actions-commands" +func (s *IssuesService) GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueID(id string, GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdHeaderParams *GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDHeaderParams, GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdQueryParams *GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIDQueryParams) (*ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueID, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceIssues/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdHeaderParams != nil { + + if GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdHeaderParams.AcceptLanguage != "" { + clientRequest = clientRequest.SetHeader("Accept-Language", GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdHeaderParams.AcceptLanguage) + } + + if GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueID(id, GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdHeaderParams, GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueIdQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueId") + } + + result := response.Result().(*ResponseIssuesGetAllTheDetailsAndSuggestedActionsOfAnIssueForTheGivenIssueID) + return result, response, err + +} + +//GetAllTheCustomIssueDefinitionsBasedOnTheGivenFilters Get all the custom issue definitions based on the given filters. - 1bb9-bb87-4efa-afd2 +/* Retrieve the existing syslog-based custom issue definitions. The supported filters are id, name, profileId, definition enable status, priority, severity, facility and mnemonic. The issue definition configurations may vary across profiles, hence specifying the profile Id in the query parameter is important and the default profile is global. + + The assurance profile definitions can be obtain via the API endpoint: /api/v1/siteprofile?namespace=assurance. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceUserDefinedIssueAPIs-1.0.0-resolved.yaml + + +@param GetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-the-custom-issue-definitions-based-on-the-given-filters-v1 +*/ +func (s *IssuesService) GetAllTheCustomIssueDefinitionsBasedOnTheGivenFilters(GetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersQueryParams *GetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersQueryParams) (*ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFilters, *resty.Response, error) { + path := "/dna/intent/api/v1/customIssueDefinitions" + + queryString, _ := query.Values(GetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestIssuesExecuteSuggestedActionsCommands). - SetResult(&ResponseIssuesExecuteSuggestedActionsCommands{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFilters{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -200,15 +1165,989 @@ func (s *IssuesService) ExecuteSuggestedActionsCommands(requestIssuesExecuteSugg } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.ExecuteSuggestedActionsCommands(requestIssuesExecuteSuggestedActionsCommands) + return s.GetAllTheCustomIssueDefinitionsBasedOnTheGivenFilters(GetAllTheCustomIssueDefinitionsBasedOnTheGivenFiltersQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetAllTheCustomIssueDefinitionsBasedOnTheGivenFilters") + } + + result := response.Result().(*ResponseIssuesGetAllTheCustomIssueDefinitionsBasedOnTheGivenFilters) + return result, response, err + +} + +//GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFilters Get the total custom issue definitions count based on the provided filters. - 9b91-2a4a-4d1a-9595 +/* Get the total number of Custom issue definitions count based on the provided filters. The supported filters are id, name, profileId and definition enable status, severity, facility and mnemonic. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceUserDefinedIssueAPIs-1.0.0-resolved.yaml + + +@param GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersHeaderParams Custom header parameters +@param GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-total-custom-issue-definitions-count-based-on-the-provided-filters-v1 +*/ +func (s *IssuesService) GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFilters(GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersHeaderParams *GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersHeaderParams, GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersQueryParams *GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersQueryParams) (*ResponseIssuesGetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFilters, *resty.Response, error) { + path := "/dna/intent/api/v1/customIssueDefinitions/count" + + queryString, _ := query.Values(GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersHeaderParams != nil { + + if GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersHeaderParams.XCaLLERID) } - return nil, response, fmt.Errorf("error with operation ExecuteSuggestedActionsCommands") } - result := response.Result().(*ResponseIssuesExecuteSuggestedActionsCommands) + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesGetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFilters{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFilters(GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersHeaderParams, GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFiltersQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFilters") + } + + result := response.Result().(*ResponseIssuesGetTheTotalCustomIssueDefinitionsCountBasedOnTheProvidedFilters) return result, response, err } + +//GetIssueEnrichmentDetails Get Issue Enrichment Details - 8684-39bb-4e89-a6e4 +/* Enriches a given network issue context (an issue id or end userā€™s Mac Address) with details about the issue(s), impacted hosts and suggested actions for remediation + + +@param GetIssueEnrichmentDetailsHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-issue-enrichment-details-v1 +*/ +func (s *IssuesService) GetIssueEnrichmentDetails(GetIssueEnrichmentDetailsHeaderParams *GetIssueEnrichmentDetailsHeaderParams) (*ResponseIssuesGetIssueEnrichmentDetails, *resty.Response, error) { + path := "/dna/intent/api/v1/issue-enrichment-details" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetIssueEnrichmentDetailsHeaderParams != nil { + + if GetIssueEnrichmentDetailsHeaderParams.EntityType != "" { + clientRequest = clientRequest.SetHeader("entity_type", GetIssueEnrichmentDetailsHeaderParams.EntityType) + } + + if GetIssueEnrichmentDetailsHeaderParams.EntityValue != "" { + clientRequest = clientRequest.SetHeader("entity_value", GetIssueEnrichmentDetailsHeaderParams.EntityValue) + } + + if GetIssueEnrichmentDetailsHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", GetIssueEnrichmentDetailsHeaderParams.Persistbapioutput) + } + + } + + response, err = clientRequest. + SetResult(&ResponseIssuesGetIssueEnrichmentDetails{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetIssueEnrichmentDetails(GetIssueEnrichmentDetailsHeaderParams) + } + return nil, response, fmt.Errorf("error with operation GetIssueEnrichmentDetails") + } + + result := response.Result().(*ResponseIssuesGetIssueEnrichmentDetails) + return result, response, err + +} + +//Issues Issues - ecb6-7807-47c9-bc59 +/* Intent API to get a list of global issues, issues for a specific device, or issue for a specific client device's MAC address. + + +@param IssuesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!issues-v1 +*/ +func (s *IssuesService) Issues(IssuesQueryParams *IssuesQueryParams) (*ResponseIssuesIssues, *resty.Response, error) { + path := "/dna/intent/api/v1/issues" + + queryString, _ := query.Values(IssuesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesIssues{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.Issues(IssuesQueryParams) + } + return nil, response, fmt.Errorf("error with operation Issues") + } + + result := response.Result().(*ResponseIssuesIssues) + return result, response, err + +} + +//ReturnsAllIssueTriggerDefinitionsForGivenFilters Returns all issue trigger definitions for given filters. - 199e-880b-4dc9-95c3 +/* Get all system issue defintions. The supported filters are id, name, profileId and definition enable status. An issue trigger definition can be different across the profile and device type. So, `profileId` and `deviceType` in the query param is important and default is global profile and all device type. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml + + +@param ReturnsAllIssueTriggerDefinitionsForGivenFiltersHeaderParams Custom header parameters +@param ReturnsAllIssueTriggerDefinitionsForGivenFiltersQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-all-issue-trigger-definitions-for-given-filters-v1 +*/ +func (s *IssuesService) ReturnsAllIssueTriggerDefinitionsForGivenFilters(ReturnsAllIssueTriggerDefinitionsForGivenFiltersHeaderParams *ReturnsAllIssueTriggerDefinitionsForGivenFiltersHeaderParams, ReturnsAllIssueTriggerDefinitionsForGivenFiltersQueryParams *ReturnsAllIssueTriggerDefinitionsForGivenFiltersQueryParams) (*ResponseIssuesReturnsAllIssueTriggerDefinitionsForGivenFilters, *resty.Response, error) { + path := "/dna/intent/api/v1/systemIssueDefinitions" + + queryString, _ := query.Values(ReturnsAllIssueTriggerDefinitionsForGivenFiltersQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if ReturnsAllIssueTriggerDefinitionsForGivenFiltersHeaderParams != nil { + + if ReturnsAllIssueTriggerDefinitionsForGivenFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", ReturnsAllIssueTriggerDefinitionsForGivenFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesReturnsAllIssueTriggerDefinitionsForGivenFilters{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReturnsAllIssueTriggerDefinitionsForGivenFilters(ReturnsAllIssueTriggerDefinitionsForGivenFiltersHeaderParams, ReturnsAllIssueTriggerDefinitionsForGivenFiltersQueryParams) + } + return nil, response, fmt.Errorf("error with operation ReturnsAllIssueTriggerDefinitionsForGivenFilters") + } + + result := response.Result().(*ResponseIssuesReturnsAllIssueTriggerDefinitionsForGivenFilters) + return result, response, err + +} + +//GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFilters Get the count of system defined issue definitions based on provided filters. - a7b5-4a48-4b5b-a680 +/* Get the count of system defined issue definitions based on provided filters. Supported filters are id, name, profileId and definition enable status. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml + + +@param GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersHeaderParams Custom header parameters +@param GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-count-of-system-defined-issue-definitions-based-on-provided-filters-v1 +*/ +func (s *IssuesService) GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFilters(GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersHeaderParams *GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersHeaderParams, GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersQueryParams *GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersQueryParams) (*ResponseIssuesGetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFilters, *resty.Response, error) { + path := "/dna/intent/api/v1/systemIssueDefinitions/count" + + queryString, _ := query.Values(GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersHeaderParams != nil { + + if GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseIssuesGetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFilters{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFilters(GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersHeaderParams, GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFiltersQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFilters") + } + + result := response.Result().(*ResponseIssuesGetTheCountOfSystemDefinedIssueDefinitionsBasedOnProvidedFilters) + return result, response, err + +} + +//GetIssueTriggerDefinitionForGivenID Get issue trigger definition for given id. - 71a4-aa5c-400a-a129 +/* Get system issue defintion for the given id. Definition includes all properties from IssueTriggerDefinition schema by default. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml + + +@param id id path parameter. Issue trigger definition id. + +@param GetIssueTriggerDefinitionForGivenIdHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-issue-trigger-definition-for-given-id-v1 +*/ +func (s *IssuesService) GetIssueTriggerDefinitionForGivenID(id string, GetIssueTriggerDefinitionForGivenIdHeaderParams *GetIssueTriggerDefinitionForGivenIDHeaderParams) (*ResponseIssuesGetIssueTriggerDefinitionForGivenID, *resty.Response, error) { + path := "/dna/intent/api/v1/systemIssueDefinitions/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetIssueTriggerDefinitionForGivenIdHeaderParams != nil { + + if GetIssueTriggerDefinitionForGivenIdHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetIssueTriggerDefinitionForGivenIdHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetResult(&ResponseIssuesGetIssueTriggerDefinitionForGivenID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetIssueTriggerDefinitionForGivenID(id, GetIssueTriggerDefinitionForGivenIdHeaderParams) + } + return nil, response, fmt.Errorf("error with operation GetIssueTriggerDefinitionForGivenId") + } + + result := response.Result().(*ResponseIssuesGetIssueTriggerDefinitionForGivenID) + return result, response, err + +} + +//GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionID Get the custom issue definition for the given custom issue definition Id. - d39f-a9d8-44b8-880d +/* Get the custom issue definition for the given custom issue definition Id. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceUserDefinedIssueAPIs-1.0.0-resolved.yaml + + +@param id id path parameter. Get the custom issue definition for the given custom issue definition Id. + +@param GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIdHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-custom-issue-definition-for-the-given-custom-issue-definition-id-v1 +*/ +func (s *IssuesService) GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionID(id string, GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIdHeaderParams *GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIDHeaderParams) (*ResponseIssuesGetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionID, *resty.Response, error) { + path := "/intent/api/v1/customIssueDefinitions/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIdHeaderParams != nil { + + if GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIdHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIdHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetResult(&ResponseIssuesGetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionID(id, GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionIdHeaderParams) + } + return nil, response, fmt.Errorf("error with operation GetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionId") + } + + result := response.Result().(*ResponseIssuesGetTheCustomIssueDefinitionForTheGivenCustomIssueDefinitionID) + return result, response, err + +} + +//GetTheDetailsOfIssuesForGivenSetOfFilters Get the details of issues for given set of filters - 82ad-186f-4848-a3dd +/* Returns all details of each issue along with suggested actions for given set of filters specified in request body. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time. https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesList-1.0.0-resolved.yaml + + +@param GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-details-of-issues-for-given-set-of-filters-v1 +*/ +func (s *IssuesService) GetTheDetailsOfIssuesForGivenSetOfFilters(requestIssuesGetTheDetailsOfIssuesForGivenSetOfFilters *RequestIssuesGetTheDetailsOfIssuesForGivenSetOfFilters, GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams *GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams) (*ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFilters, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceIssues/query" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams != nil { + + if GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams.AcceptLanguage != "" { + clientRequest = clientRequest.SetHeader("Accept-Language", GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams.AcceptLanguage) + } + + if GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesGetTheDetailsOfIssuesForGivenSetOfFilters). + SetResult(&ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFilters{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTheDetailsOfIssuesForGivenSetOfFilters(requestIssuesGetTheDetailsOfIssuesForGivenSetOfFilters, GetTheDetailsOfIssuesForGivenSetOfFiltersHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation GetTheDetailsOfIssuesForGivenSetOfFilters") + } + + result := response.Result().(*ResponseIssuesGetTheDetailsOfIssuesForGivenSetOfFilters) + return result, response, err + +} + +//GetTheTotalNumberOfIssuesForGivenSetOfFilters Get the total number of issues for given set of filters - b3ad-493a-409b-90b4 +/* Returns the total number issues for given set of filters. If there is no start and/or end time, then end time will be defaulted to current time and start time will be defaulted to 24-hours ago from end time. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesList-1.0.0-resolved.yaml + + +@param GetTheTotalNumberOfIssuesForGivenSetOfFiltersHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-the-total-number-of-issues-for-given-set-of-filters-v1 +*/ +func (s *IssuesService) GetTheTotalNumberOfIssuesForGivenSetOfFilters(requestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters *RequestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters, GetTheTotalNumberOfIssuesForGivenSetOfFiltersHeaderParams *GetTheTotalNumberOfIssuesForGivenSetOfFiltersHeaderParams) (*ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceIssues/query/count" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetTheTotalNumberOfIssuesForGivenSetOfFiltersHeaderParams != nil { + + if GetTheTotalNumberOfIssuesForGivenSetOfFiltersHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTheTotalNumberOfIssuesForGivenSetOfFiltersHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters). + SetResult(&ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTheTotalNumberOfIssuesForGivenSetOfFilters(requestIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters, GetTheTotalNumberOfIssuesForGivenSetOfFiltersHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation GetTheTotalNumberOfIssuesForGivenSetOfFilters") + } + + result := response.Result().(*ResponseIssuesGetTheTotalNumberOfIssuesForGivenSetOfFilters) + return result, response, err + +} + +//GetSummaryAnalyticsDataOfIssues Get summary analytics data of issues - afaa-2bdf-424b-9161 +/* Gets the summary analytics data related to issues based on given filters and group by field. This data can be used to find issue counts grouped by different keys. https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesList-1.0.0-resolved.yaml + + +@param GetSummaryAnalyticsDataOfIssuesHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-summary-analytics-data-of-issues-v1 +*/ +func (s *IssuesService) GetSummaryAnalyticsDataOfIssues(requestIssuesGetSummaryAnalyticsDataOfIssues *RequestIssuesGetSummaryAnalyticsDataOfIssues, GetSummaryAnalyticsDataOfIssuesHeaderParams *GetSummaryAnalyticsDataOfIssuesHeaderParams) (*ResponseIssuesGetSummaryAnalyticsDataOfIssues, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceIssues/summaryAnalytics" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetSummaryAnalyticsDataOfIssuesHeaderParams != nil { + + if GetSummaryAnalyticsDataOfIssuesHeaderParams.AcceptLanguage != "" { + clientRequest = clientRequest.SetHeader("Accept-Language", GetSummaryAnalyticsDataOfIssuesHeaderParams.AcceptLanguage) + } + + if GetSummaryAnalyticsDataOfIssuesHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetSummaryAnalyticsDataOfIssuesHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesGetSummaryAnalyticsDataOfIssues). + SetResult(&ResponseIssuesGetSummaryAnalyticsDataOfIssues{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSummaryAnalyticsDataOfIssues(requestIssuesGetSummaryAnalyticsDataOfIssues, GetSummaryAnalyticsDataOfIssuesHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation GetSummaryAnalyticsDataOfIssues") + } + + result := response.Result().(*ResponseIssuesGetSummaryAnalyticsDataOfIssues) + return result, response, err + +} + +//GetTopNAnalyticsDataOfIssues Get Top N analytics data of issues - 21a7-c91a-4f5a-b54d +/* Gets the Top N analytics data related to issues based on given filters and group by field. This data can be used to find top sites which has most issues or top device types with most issue etc,. https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesList-1.0.0-resolved.yaml + + +@param GetTopNAnalyticsDataOfIssuesHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-top-n-analytics-data-of-issues-v1 +*/ +func (s *IssuesService) GetTopNAnalyticsDataOfIssues(requestIssuesGetTopNAnalyticsDataOfIssues *RequestIssuesGetTopNAnalyticsDataOfIssues, GetTopNAnalyticsDataOfIssuesHeaderParams *GetTopNAnalyticsDataOfIssuesHeaderParams) (*ResponseIssuesGetTopNAnalyticsDataOfIssues, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceIssues/topNAnalytics" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetTopNAnalyticsDataOfIssuesHeaderParams != nil { + + if GetTopNAnalyticsDataOfIssuesHeaderParams.AcceptLanguage != "" { + clientRequest = clientRequest.SetHeader("Accept-Language", GetTopNAnalyticsDataOfIssuesHeaderParams.AcceptLanguage) + } + + if GetTopNAnalyticsDataOfIssuesHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTopNAnalyticsDataOfIssuesHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesGetTopNAnalyticsDataOfIssues). + SetResult(&ResponseIssuesGetTopNAnalyticsDataOfIssues{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTopNAnalyticsDataOfIssues(requestIssuesGetTopNAnalyticsDataOfIssues, GetTopNAnalyticsDataOfIssuesHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation GetTopNAnalyticsDataOfIssues") + } + + result := response.Result().(*ResponseIssuesGetTopNAnalyticsDataOfIssues) + return result, response, err + +} + +//GetTrendAnalyticsDataOfIssues Get trend analytics data of issues - f9ae-db6a-4618-b045 +/* Gets the trend analytics data related to issues based on given filters and group by field. This data can be used to find issue counts in different intervals over a period of time. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesList-1.0.0-resolved.yaml + + +@param GetTrendAnalyticsDataOfIssuesHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-trend-analytics-data-of-issues-v1 +*/ +func (s *IssuesService) GetTrendAnalyticsDataOfIssues(requestIssuesGetTrendAnalyticsDataOfIssues *RequestIssuesGetTrendAnalyticsDataOfIssues, GetTrendAnalyticsDataOfIssuesHeaderParams *GetTrendAnalyticsDataOfIssuesHeaderParams) (*ResponseIssuesGetTrendAnalyticsDataOfIssues, *resty.Response, error) { + path := "/dna/data/api/v1/assuranceIssues/trendAnalytics" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if GetTrendAnalyticsDataOfIssuesHeaderParams != nil { + + if GetTrendAnalyticsDataOfIssuesHeaderParams.AcceptLanguage != "" { + clientRequest = clientRequest.SetHeader("Accept-Language", GetTrendAnalyticsDataOfIssuesHeaderParams.AcceptLanguage) + } + + if GetTrendAnalyticsDataOfIssuesHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", GetTrendAnalyticsDataOfIssuesHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesGetTrendAnalyticsDataOfIssues). + SetResult(&ResponseIssuesGetTrendAnalyticsDataOfIssues{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTrendAnalyticsDataOfIssues(requestIssuesGetTrendAnalyticsDataOfIssues, GetTrendAnalyticsDataOfIssuesHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation GetTrendAnalyticsDataOfIssues") + } + + result := response.Result().(*ResponseIssuesGetTrendAnalyticsDataOfIssues) + return result, response, err + +} + +//IgnoreTheGivenListOfIssues Ignore the given list of issues - 4b92-ca6b-4918-b9fd +/* Ignores the given list of issues. The response contains the list of issues which were successfully ignored as well as the issues which are failed to ignore. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesLifecycle-1.0.0-resolved.yaml + + +@param IgnoreTheGivenListOfIssuesHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!ignore-the-given-list-of-issues-v1 +*/ +func (s *IssuesService) IgnoreTheGivenListOfIssues(requestIssuesIgnoreTheGivenListOfIssues *RequestIssuesIgnoreTheGivenListOfIssues, IgnoreTheGivenListOfIssuesHeaderParams *IgnoreTheGivenListOfIssuesHeaderParams) (*ResponseIssuesIgnoreTheGivenListOfIssues, *resty.Response, error) { + path := "/dna/intent/api/v1/assuranceIssues/ignore" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if IgnoreTheGivenListOfIssuesHeaderParams != nil { + + if IgnoreTheGivenListOfIssuesHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", IgnoreTheGivenListOfIssuesHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesIgnoreTheGivenListOfIssues). + SetResult(&ResponseIssuesIgnoreTheGivenListOfIssues{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.IgnoreTheGivenListOfIssues(requestIssuesIgnoreTheGivenListOfIssues, IgnoreTheGivenListOfIssuesHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation IgnoreTheGivenListOfIssues") + } + + result := response.Result().(*ResponseIssuesIgnoreTheGivenListOfIssues) + return result, response, err + +} + +//ResolveTheGivenListsOfIssues Resolve the given lists of issues - d48f-a9ed-4929-a6dd +/* Resolves the given list of issues. The response contains the list of issues which were successfully resolved as well as the issues which are failed to resolve. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesLifecycle-1.0.0-resolved.yaml + + +@param ResolveTheGivenListsOfIssuesHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!resolve-the-given-lists-of-issues-v1 +*/ +func (s *IssuesService) ResolveTheGivenListsOfIssues(requestIssuesResolveTheGivenListsOfIssues *RequestIssuesResolveTheGivenListsOfIssues, ResolveTheGivenListsOfIssuesHeaderParams *ResolveTheGivenListsOfIssuesHeaderParams) (*ResponseIssuesResolveTheGivenListsOfIssues, *resty.Response, error) { + path := "/dna/intent/api/v1/assuranceIssues/resolve" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if ResolveTheGivenListsOfIssuesHeaderParams != nil { + + if ResolveTheGivenListsOfIssuesHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", ResolveTheGivenListsOfIssuesHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesResolveTheGivenListsOfIssues). + SetResult(&ResponseIssuesResolveTheGivenListsOfIssues{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ResolveTheGivenListsOfIssues(requestIssuesResolveTheGivenListsOfIssues, ResolveTheGivenListsOfIssuesHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation ResolveTheGivenListsOfIssues") + } + + result := response.Result().(*ResponseIssuesResolveTheGivenListsOfIssues) + return result, response, err + +} + +//UpdateTheGivenIssueByUpdatingSelectedFields Update the given issue by updating selected fields - b0bc-dba1-4c19-8d7c +/* Updates selected fields in the given issue. Currently the only field that can be updated is 'notes' field. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-IssuesLifecycle-1.0.0-resolved.yaml + + +@param id id path parameter. The issue Uuid + +@param UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!update-the-given-issue-by-updating-selected-fields-v1 +*/ +func (s *IssuesService) UpdateTheGivenIssueByUpdatingSelectedFields(id string, requestIssuesUpdateTheGivenIssueByUpdatingSelectedFields *RequestIssuesUpdateTheGivenIssueByUpdatingSelectedFields, UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams *UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams) (*ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFields, *resty.Response, error) { + path := "/dna/intent/api/v1/assuranceIssues/{id}/update" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams != nil { + + if UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams.AcceptLanguage != "" { + clientRequest = clientRequest.SetHeader("Accept-Language", UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams.AcceptLanguage) + } + + if UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesUpdateTheGivenIssueByUpdatingSelectedFields). + SetResult(&ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFields{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateTheGivenIssueByUpdatingSelectedFields(id, requestIssuesUpdateTheGivenIssueByUpdatingSelectedFields, UpdateTheGivenIssueByUpdatingSelectedFieldsHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation UpdateTheGivenIssueByUpdatingSelectedFields") + } + + result := response.Result().(*ResponseIssuesUpdateTheGivenIssueByUpdatingSelectedFields) + return result, response, err + +} + +//CreatesANewUserDefinedIssueDefinitions Creates a new user-defined issue definitions. - 95b5-9b50-4e48-9d82 +/* Create a new custom issue definition using the provided input request data. The unique identifier for this issue definition is id. Please note that the issue names cannot be duplicated. The definition is based on the syslog. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceUserDefinedIssueAPIs-1.0.0-resolved.yaml + + +@param CreatesANewUserDefinedIssueDefinitionsHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!creates-a-new-user-defined-issue-definitions-v1 +*/ +func (s *IssuesService) CreatesANewUserDefinedIssueDefinitions(requestIssuesCreatesANewUserDefinedIssueDefinitions *RequestIssuesCreatesANewUserDefinedIssueDefinitions, CreatesANewUserDefinedIssueDefinitionsHeaderParams *CreatesANewUserDefinedIssueDefinitionsHeaderParams) (*ResponseIssuesCreatesANewUserDefinedIssueDefinitions, *resty.Response, error) { + path := "/dna/intent/api/v1/customIssueDefinitions" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if CreatesANewUserDefinedIssueDefinitionsHeaderParams != nil { + + if CreatesANewUserDefinedIssueDefinitionsHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", CreatesANewUserDefinedIssueDefinitionsHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesCreatesANewUserDefinedIssueDefinitions). + SetResult(&ResponseIssuesCreatesANewUserDefinedIssueDefinitions{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreatesANewUserDefinedIssueDefinitions(requestIssuesCreatesANewUserDefinedIssueDefinitions, CreatesANewUserDefinedIssueDefinitionsHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation CreatesANewUserDefinedIssueDefinitions") + } + + result := response.Result().(*ResponseIssuesCreatesANewUserDefinedIssueDefinitions) + return result, response, err + +} + +//ExecuteSuggestedActionsCommands Execute Suggested Actions Commands - cfb2-ab10-4cea-bfbb +/* This API triggers the execution of the suggested actions for an issue, given the Issue Id. It will return an execution Id. At the completion of the execution, the output of the commands associated with the suggested actions will be provided +Invoking this API would provide the execution id. Execute the 'Get Business API Execution Details' API with this execution id, to receive the suggested actions commands output. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!execute-suggested-actions-commands-v1 +*/ +func (s *IssuesService) ExecuteSuggestedActionsCommands(requestIssuesExecuteSuggestedActionsCommands *RequestIssuesExecuteSuggestedActionsCommands) (*ResponseIssuesExecuteSuggestedActionsCommands, *resty.Response, error) { + path := "/dna/intent/api/v1/execute-suggested-actions-commands" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestIssuesExecuteSuggestedActionsCommands). + SetResult(&ResponseIssuesExecuteSuggestedActionsCommands{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ExecuteSuggestedActionsCommands(requestIssuesExecuteSuggestedActionsCommands) + } + + return nil, response, fmt.Errorf("error with operation ExecuteSuggestedActionsCommands") + } + + result := response.Result().(*ResponseIssuesExecuteSuggestedActionsCommands) + return result, response, err + +} + +//UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID Updates an existing custom issue definition based on the provided Id. - 8b90-3b69-4c18-90ad +/* Updates an existing custom issue definition based on the provided Id. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceUserDefinedIssueAPIs-1.0.0-resolved.yaml + + +@param id id path parameter. The custom issue definition Identifier + +@param UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIdHeaderParams Custom header parameters +*/ +func (s *IssuesService) UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID(id string, requestIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedId *RequestIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID, UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIdHeaderParams *UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIDHeaderParams) (*ResponseIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID, *resty.Response, error) { + path := "/dna/intent/api/v1/customIssueDefinitions/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIdHeaderParams != nil { + + if UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIdHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIdHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetBody(requestIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedId). + SetResult(&ResponseIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID(id, requestIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedId, UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedIdHeaderParams) + } + return nil, response, fmt.Errorf("error with operation UpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedId") + } + + result := response.Result().(*ResponseIssuesUpdatesAnExistingCustomIssueDefinitionBasedOnTheProvidedID) + return result, response, err + +} + +//IssueTriggerDefinitionUpdate Issue trigger definition update. - 099a-397b-46c8-8aa7 +/* Update issue trigger threshold, priority for the given id. +Also enable or disable issue trigger for the given id. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-issueAndHealthDefinitions-1.0.0-resolved.yaml + + +@param id id path parameter. Issue trigger definition id. + +*/ +func (s *IssuesService) IssueTriggerDefinitionUpdate(id string, requestIssuesIssueTriggerDefinitionUpdate *RequestIssuesIssueTriggerDefinitionUpdate) (*ResponseIssuesIssueTriggerDefinitionUpdate, *resty.Response, error) { + path := "/dna/intent/api/v1/systemIssueDefinitions/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestIssuesIssueTriggerDefinitionUpdate). + SetResult(&ResponseIssuesIssueTriggerDefinitionUpdate{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.IssueTriggerDefinitionUpdate(id, requestIssuesIssueTriggerDefinitionUpdate) + } + return nil, response, fmt.Errorf("error with operation IssueTriggerDefinitionUpdate") + } + + result := response.Result().(*ResponseIssuesIssueTriggerDefinitionUpdate) + return result, response, err + +} + +//DeletesAnExistingCustomIssueDefinition Deletes an existing custom issue definition. - e38b-fa80-4c28-955f +/* Deletes an existing custom issue definition based on the Id. Only the Global profile issue has the access to delete the issue definition, so no profile id is required. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-AssuranceUserDefinedIssueAPIs-1.0.0-resolved.yaml + + +@param id id path parameter. The custom issue definition unique identifier + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-an-existing-custom-issue-definition-v1 +*/ +func (s *IssuesService) DeletesAnExistingCustomIssueDefinition(id string) (*resty.Response, error) { + //id string + path := "/dna/intent/api/v1/customIssueDefinitions/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletesAnExistingCustomIssueDefinition( + id) + } + return response, fmt.Errorf("error with operation DeletesAnExistingCustomIssueDefinition") + } + + return response, err + +} diff --git a/sdk/itsm.go b/sdk/itsm.go index 45d4d50..1a679e1 100644 --- a/sdk/itsm.go +++ b/sdk/itsm.go @@ -66,7 +66,7 @@ type RequestItsmRetryIntegrationEvents []string // Array of RequestItsmRetryInte @param GetCMDBSyncStatusQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-c-m-d-b-sync-status +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-cmdb-sync-status-v1 */ func (s *ItsmService) GetCmdbSyncStatus(GetCMDBSyncStatusQueryParams *GetCmdbSyncStatusQueryParams) (*ResponseItsmGetCmdbSyncStatus, *resty.Response, error) { path := "/dna/intent/api/v1/cmdb-sync/detail" @@ -103,7 +103,7 @@ func (s *ItsmService) GetCmdbSyncStatus(GetCMDBSyncStatusQueryParams *GetCmdbSyn @param GetFailedITSMEventsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-failed-itsm-events +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-failed-itsm-events-v1 */ func (s *ItsmService) GetFailedItsmEvents(GetFailedITSMEventsQueryParams *GetFailedItsmEventsQueryParams) (*ResponseItsmGetFailedItsmEvents, *resty.Response, error) { path := "/dna/intent/api/v1/integration/events" @@ -139,7 +139,7 @@ func (s *ItsmService) GetFailedItsmEvents(GetFailedITSMEventsQueryParams *GetFai -Documentation Link: https://developer.cisco.com/docs/dna-center/#!retry-integration-events +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retry-integration-events-v1 */ func (s *ItsmService) RetryIntegrationEvents(requestItsmRetryIntegrationEvents *RequestItsmRetryIntegrationEvents) (*ResponseItsmRetryIntegrationEvents, *resty.Response, error) { path := "/dna/intent/api/v1/integration/events" diff --git a/sdk/itsm_integration.go b/sdk/itsm_integration.go index 1ffd55b..c76ebfe 100644 --- a/sdk/itsm_integration.go +++ b/sdk/itsm_integration.go @@ -96,11 +96,25 @@ type ResponseItemItsmIntegrationGetAllItsmIntegrationSettings struct { TenantID string `json:"tenantId,omitempty"` // Tenant Id } type ResponseItemItsmIntegrationGetAllItsmIntegrationSettingsSoftwareVersionLog interface{} +type ResponseItsmIntegrationGetItsmIntegrationStatus struct { + Response *[]ResponseItsmIntegrationGetItsmIntegrationStatusResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseItsmIntegrationGetItsmIntegrationStatusResponse struct { + ID string `json:"id,omitempty"` // Bundle Id + Name string `json:"name,omitempty"` // Bundle name + Status string `json:"status,omitempty"` // Bundle Status + Configurations *[]ResponseItsmIntegrationGetItsmIntegrationStatusResponseConfigurations `json:"configurations,omitempty"` // +} +type ResponseItsmIntegrationGetItsmIntegrationStatusResponseConfigurations struct { + DypSchemaName string `json:"dypSchemaName,omitempty"` // DYP name of the configuration + DypInstanceID string `json:"dypInstanceId,omitempty"` // DYP instance Id of the configuration +} type RequestItsmIntegrationCreateItsmIntegrationSetting struct { Name string `json:"name,omitempty"` // Name of the setting instance Description string `json:"description,omitempty"` // Description of the setting instance Data *RequestItsmIntegrationCreateItsmIntegrationSettingData `json:"data,omitempty"` // - DypName string `json:"dypName,omitempty"` // It should be ServiceNowConnection + DypName string `json:"dypName,omitempty"` // It can be ServiceNowConnection } type RequestItsmIntegrationCreateItsmIntegrationSettingData struct { ConnectionSettings *RequestItsmIntegrationCreateItsmIntegrationSettingDataConnectionSettings `json:"ConnectionSettings,omitempty"` // @@ -114,7 +128,7 @@ type RequestItsmIntegrationUpdateItsmIntegrationSetting struct { Name string `json:"name,omitempty"` // Name of the setting instance Description string `json:"description,omitempty"` // Description of the setting instance Data *RequestItsmIntegrationUpdateItsmIntegrationSettingData `json:"data,omitempty"` // - DypName string `json:"dypName,omitempty"` // It should be ServiceNowConnection + DypName string `json:"dypName,omitempty"` // It can be ServiceNowConnection } type RequestItsmIntegrationUpdateItsmIntegrationSettingData struct { ConnectionSettings *RequestItsmIntegrationUpdateItsmIntegrationSettingDataConnectionSettings `json:"ConnectionSettings,omitempty"` // @@ -132,7 +146,7 @@ type RequestItsmIntegrationUpdateItsmIntegrationSettingDataConnectionSettings st @param instanceID instanceId path parameter. Instance Id of the Integration setting instance -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-itsm-integration-setting-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-itsm-integration-setting-by-id-v1 */ func (s *ItsmIntegrationService) GetItsmIntegrationSettingByID(instanceID string) (*ResponseItsmIntegrationGetItsmIntegrationSettingByID, *resty.Response, error) { path := "/dna/intent/api/v1/integration-settings/instances/itsm/{instanceId}" @@ -167,7 +181,7 @@ func (s *ItsmIntegrationService) GetItsmIntegrationSettingByID(instanceID string -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-itsm-integration-settings +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-itsm-integration-settings-v1 */ func (s *ItsmIntegrationService) GetAllItsmIntegrationSettings() (*ResponseItsmIntegrationGetAllItsmIntegrationSettings, *resty.Response, error) { path := "/dna/intent/api/v1/integration-settings/itsm/instances" @@ -196,12 +210,46 @@ func (s *ItsmIntegrationService) GetAllItsmIntegrationSettings() (*ResponseItsmI } +//GetItsmIntegrationStatus Get ITSM Integration status - b7a2-ea02-4e69-abdf +/* Fetches ITSM Integration status + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-itsm-integration-status-v1 +*/ +func (s *ItsmIntegrationService) GetItsmIntegrationStatus() (*ResponseItsmIntegrationGetItsmIntegrationStatus, *resty.Response, error) { + path := "/dna/intent/api/v1/integration-settings/status" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseItsmIntegrationGetItsmIntegrationStatus{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetItsmIntegrationStatus() + } + return nil, response, fmt.Errorf("error with operation GetItsmIntegrationStatus") + } + + result := response.Result().(*ResponseItsmIntegrationGetItsmIntegrationStatus) + return result, response, err + +} + //CreateItsmIntegrationSetting Create ITSM Integration setting - 0cb0-1a15-4d79-a440 /* Creates ITSM Integration setting -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-itsm-integration-setting +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-itsm-integration-setting-v1 */ func (s *ItsmIntegrationService) CreateItsmIntegrationSetting(requestItsmIntegrationCreateITSMIntegrationSetting *RequestItsmIntegrationCreateItsmIntegrationSetting) (*ResponseItsmIntegrationCreateItsmIntegrationSetting, *resty.Response, error) { path := "/dna/intent/api/v1/integration-settings/instances/itsm" @@ -276,7 +324,7 @@ func (s *ItsmIntegrationService) UpdateItsmIntegrationSetting(instanceID string, @param instanceID instanceId path parameter. Instance Id of the Integration setting instance -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-itsm-integration-setting +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-itsm-integration-setting-v1 */ func (s *ItsmIntegrationService) DeleteItsmIntegrationSetting(instanceID string) (*resty.Response, error) { //instanceID string diff --git a/sdk/lan_automation.go b/sdk/lan_automation.go index ef6dee7..ed35680 100644 --- a/sdk/lan_automation.go +++ b/sdk/lan_automation.go @@ -12,15 +12,18 @@ import ( type LanAutomationService service type LanAutomationLogQueryParams struct { - Offset int `url:"offset,omitempty"` //Starting index of the LAN Automation session. Minimum value is 1. - Limit int `url:"limit,omitempty"` //Number of LAN Automation sessions to be retrieved. Limit value can range between 1 to 10. + Offset float64 `url:"offset,omitempty"` //Starting index of the LAN Automation session. Minimum value is 1. + Limit float64 `url:"limit,omitempty"` //Number of LAN Automation sessions to be retrieved. Limit value can range between 1 to 10. } type LanAutomationLogsForIndividualDevicesQueryParams struct { LogLevel string `url:"logLevel,omitempty"` //Supported levels are ERROR, INFO, WARNING, TRACE, CONFIG and ALL. Specifying ALL will display device specific logs with the exception of CONFIG logs. In order to view CONFIG logs along with the remaining logs, please leave the query parameter blank. } type LanAutomationStatusQueryParams struct { - Offset int `url:"offset,omitempty"` //Starting index of the LAN Automation session. Minimum value is 1. - Limit int `url:"limit,omitempty"` //Number of LAN Automation sessions to be retrieved. Limit value can range between 1 to 10. + Offset float64 `url:"offset,omitempty"` //Starting index of the LAN Automation session. Minimum value is 1. + Limit float64 `url:"limit,omitempty"` //Number of LAN Automation sessions to be retrieved. Limit value can range between 1 to 10. +} +type LanAutomationDeviceUpdateQueryParams struct { + Feature string `url:"feature,omitempty"` //Feature ID for the update. Supported feature IDs include: LOOPBACK0_IPADDRESS_UPDATE, HOSTNAME_UPDATE, LINK_ADD, and LINK_DELETE. } type ResponseLanAutomationLanAutomationStart struct { @@ -96,7 +99,7 @@ type ResponseLanAutomationLanAutomationStatusResponse struct { ID string `json:"id,omitempty"` // LAN Automation session id. DiscoveredDeviceSiteNameHierarchy string `json:"discoveredDeviceSiteNameHierarchy,omitempty"` // Discovered device site name. PrimaryDeviceManagmentIPAddress string `json:"primaryDeviceManagmentIPAddress,omitempty"` // Primary seed device management IP address. - IPPoolList *[]ResponseLanAutomationLanAutomationStatusResponseIPPoolList `json:"ipPoolList,omitempty"` // + IPPools *[]ResponseLanAutomationLanAutomationStatusResponseIPPools `json:"ipPools,omitempty"` // PrimaryDeviceInterfaceNames []string `json:"primaryDeviceInterfaceNames,omitempty"` // The list of interfaces on primary seed via which the discovered devices are connected. Status string `json:"status,omitempty"` // Status of the LAN Automation session along with the number of discovered devices. Action string `json:"action,omitempty"` // State (START/STOP) of the LAN Automation session. @@ -105,8 +108,11 @@ type ResponseLanAutomationLanAutomationStatusResponse struct { PeerDeviceManagmentIPAddress string `json:"peerDeviceManagmentIPAddress,omitempty"` // Peer seed device management IP address. DiscoveredDeviceList *[]ResponseLanAutomationLanAutomationStatusResponseDiscoveredDeviceList `json:"discoveredDeviceList,omitempty"` // RedistributeIsisToBgp *bool `json:"redistributeIsisToBgp,omitempty"` // Shows whether advertise LAN Automation summary route into BGP is enabled or not. + DiscoveryLevel *int `json:"discoveryLevel,omitempty"` // Level below primary seed device upto which the new devices will be LAN Automated by this session, level + seed = tier. Supported range for level is [1-5], default level is 2. + DiscoveryTimeout *int `json:"discoveryTimeout,omitempty"` // Discovery timeout in minutes. Until this time, the stop processing will not be triggered. Any device contacting after the provided discovery timeout will not be processed, and a device reset and reload will be attempted to bring it back to the PnP agent state before process completion. The supported timeout range is in minutes [20-10080]. + DiscoveryDevices *[]ResponseLanAutomationLanAutomationStatusResponseDiscoveryDevices `json:"discoveryDevices,omitempty"` // Specific devices that will be LAN Automated in this session. Any other device discovered via DHCP will be attempted for a reset and reload to bring it back to the PnP agent state at the end of the LAN Automation process before process completion. The maximum supported devices that can be provided for a session is 50. } -type ResponseLanAutomationLanAutomationStatusResponseIPPoolList struct { +type ResponseLanAutomationLanAutomationStatusResponseIPPools struct { IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP pool. IPPoolRole string `json:"ipPoolRole,omitempty"` // Role of the IP pool. Supported roles are: MAIN_POOL and PHYSICAL_LINK_POOL. } @@ -116,6 +122,7 @@ type ResponseLanAutomationLanAutomationStatusResponseDiscoveredDeviceList struct State string `json:"state,omitempty"` // State of the device (Added to inventory/Deleted from inventory). IPAddressInUseList []string `json:"ipAddressInUseList,omitempty"` // List of IP address used by the device. } +type ResponseLanAutomationLanAutomationStatusResponseDiscoveryDevices interface{} type ResponseLanAutomationLanAutomationStatusByID struct { Response *[]ResponseLanAutomationLanAutomationStatusByIDResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version @@ -124,7 +131,7 @@ type ResponseLanAutomationLanAutomationStatusByIDResponse struct { ID string `json:"id,omitempty"` // LAN Automation session id. DiscoveredDeviceSiteNameHierarchy string `json:"discoveredDeviceSiteNameHierarchy,omitempty"` // Discovered device site name. PrimaryDeviceManagmentIPAddress string `json:"primaryDeviceManagmentIPAddress,omitempty"` // Primary seed device management IP address. - IPPoolList *[]ResponseLanAutomationLanAutomationStatusByIDResponseIPPoolList `json:"ipPoolList,omitempty"` // + IPPools *[]ResponseLanAutomationLanAutomationStatusByIDResponseIPPools `json:"ipPools,omitempty"` // PrimaryDeviceInterfaceNames []string `json:"primaryDeviceInterfaceNames,omitempty"` // The list of interfaces on primary seed via which the discovered devices are connected. Status string `json:"status,omitempty"` // Status of the LAN Automation session along with the number of discovered devices. Action string `json:"action,omitempty"` // State (START/STOP) of the LAN Automation session. @@ -133,8 +140,11 @@ type ResponseLanAutomationLanAutomationStatusByIDResponse struct { PeerDeviceManagmentIPAddress string `json:"peerDeviceManagmentIPAddress,omitempty"` // Peer seed device management IP address. DiscoveredDeviceList *[]ResponseLanAutomationLanAutomationStatusByIDResponseDiscoveredDeviceList `json:"discoveredDeviceList,omitempty"` // RedistributeIsisToBgp *bool `json:"redistributeIsisToBgp,omitempty"` // Shows whether advertise LAN Automation summary route into BGP is enabled or not. + DiscoveryLevel *int `json:"discoveryLevel,omitempty"` // Level below primary seed device upto which the new devices will be LAN Automated by this session, level + seed = tier. Supported range for level is [1-5], default level is 2. + DiscoveryTimeout *int `json:"discoveryTimeout,omitempty"` // Discovery timeout in minutes. Until this time, the stop processing will not be triggered. Any device contacting after the provided discovery timeout will not be processed, and a device reset and reload will be attempted to bring it back to the PnP agent state before process completion. The supported timeout range is in minutes [20-10080]. + DiscoveryDevices *[]ResponseLanAutomationLanAutomationStatusByIDResponseDiscoveryDevices `json:"discoveryDevices,omitempty"` // Specific devices that will be LAN Automated in this session. Any other device discovered via DHCP will be attempted for a reset and reload to bring it back to the PnP agent state at the end of the LAN Automation process before process completion. The maximum supported devices that can be provided for a session is 50. } -type ResponseLanAutomationLanAutomationStatusByIDResponseIPPoolList struct { +type ResponseLanAutomationLanAutomationStatusByIDResponseIPPools struct { IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP pool. IPPoolRole string `json:"ipPoolRole,omitempty"` // Role of the IP pool. Supported roles are: MAIN_POOL and PHYSICAL_LINK_POOL. } @@ -144,6 +154,15 @@ type ResponseLanAutomationLanAutomationStatusByIDResponseDiscoveredDeviceList st State string `json:"state,omitempty"` // State of the device (Added to inventory/Deleted from inventory). IPAddressInUseList []string `json:"ipAddressInUseList,omitempty"` // List of IP address used by the device. } +type ResponseLanAutomationLanAutomationStatusByIDResponseDiscoveryDevices interface{} +type ResponseLanAutomationLanAutomationDeviceUpdate struct { + Response *ResponseLanAutomationLanAutomationDeviceUpdateResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // version +} +type ResponseLanAutomationLanAutomationDeviceUpdateResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // url to check the status of task +} type ResponseLanAutomationLanAutomationStop struct { Response *ResponseLanAutomationLanAutomationStopResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version @@ -153,6 +172,30 @@ type ResponseLanAutomationLanAutomationStopResponse struct { Message string `json:"message,omitempty"` // Description of the error code. Detail string `json:"detail,omitempty"` // Detailed information of the error code. } +type ResponseLanAutomationLanAutomationStopAndUpdateDevices struct { + Response *ResponseLanAutomationLanAutomationStopAndUpdateDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // version +} +type ResponseLanAutomationLanAutomationStopAndUpdateDevicesResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // url to check the status of task +} +type ResponseLanAutomationLanAutomationStartV2 struct { + Response *ResponseLanAutomationLanAutomationStartV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // version +} +type ResponseLanAutomationLanAutomationStartV2Response struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // url to check the status of task +} +type ResponseLanAutomationLanAutomationStopAndUpdateDevicesV2 struct { + Response *ResponseLanAutomationLanAutomationStopAndUpdateDevicesV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // version +} +type ResponseLanAutomationLanAutomationStopAndUpdateDevicesV2Response struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // url to check the status of task +} type RequestLanAutomationLanAutomationStart []RequestItemLanAutomationLanAutomationStart // Array of RequestLanAutomationLANAutomationStart type RequestItemLanAutomationLanAutomationStart struct { DiscoveredDeviceSiteNameHierarchy string `json:"discoveredDeviceSiteNameHierarchy,omitempty"` // Discovered device site name. @@ -160,7 +203,7 @@ type RequestItemLanAutomationLanAutomationStart struct { PeerDeviceManagmentIPAddress string `json:"peerDeviceManagmentIPAddress,omitempty"` // Peer seed management IP address. PrimaryDeviceInterfaceNames []string `json:"primaryDeviceInterfaceNames,omitempty"` // The list of interfaces on primary seed via which the discovered devices are connected. IPPools *[]RequestItemLanAutomationLanAutomationStartIPPools `json:"ipPools,omitempty"` // - MulticastEnabled *bool `json:"multicastEnabled,omitempty"` // To enable underlay native multicast. + MulitcastEnabled *bool `json:"mulitcastEnabled,omitempty"` // To enable underlay native multicast. HostNamePrefix string `json:"hostNamePrefix,omitempty"` // Host name prefix which shall be assigned to the discovered device. HostNameFileID string `json:"hostNameFileId,omitempty"` // Use /dna/intent/api/v1/file/namespace/nw_orch api to get the file id for the already uploaded file in nw_orch namespace. IsisDomainPwd string `json:"isisDomainPwd,omitempty"` // IS-IS domain password in plain text. @@ -170,13 +213,70 @@ type RequestItemLanAutomationLanAutomationStartIPPools struct { IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP pool. IPPoolRole string `json:"ipPoolRole,omitempty"` // Role of the IP pool. Supported roles are: MAIN_POOL and PHYSICAL_LINK_POOL. } +type RequestLanAutomationLanAutomationDeviceUpdate struct { + LoopbackUpdateDeviceList *[]RequestLanAutomationLanAutomationDeviceUpdateLoopbackUpdateDeviceList `json:"loopbackUpdateDeviceList,omitempty"` // + LinkUpdate *RequestLanAutomationLanAutomationDeviceUpdateLinkUpdate `json:"linkUpdate,omitempty"` // + HostnameUpdateDevices *[]RequestLanAutomationLanAutomationDeviceUpdateHostnameUpdateDevices `json:"hostnameUpdateDevices,omitempty"` // +} +type RequestLanAutomationLanAutomationDeviceUpdateLoopbackUpdateDeviceList struct { + DeviceManagementIPAddress string `json:"deviceManagementIPAddress,omitempty"` // Device Management IP Address + NewLoopback0IPAddress string `json:"newLoopback0IPAddress,omitempty"` // New Loopback0 IP Address from LAN Pool of Device Discovery Site(Shared pool should not be used). +} +type RequestLanAutomationLanAutomationDeviceUpdateLinkUpdate struct { + SourceDeviceManagementIPAddress string `json:"sourceDeviceManagementIPAddress,omitempty"` // Source Device Management IP Address + SourceDeviceInterfaceName string `json:"sourceDeviceInterfaceName,omitempty"` // Source Device Interface Name + DestinationDeviceManagementIPAddress string `json:"destinationDeviceManagementIPAddress,omitempty"` // Destination Device Management IP Address + DestinationDeviceInterfaceName string `json:"destinationDeviceInterfaceName,omitempty"` // Destination Device Interface Name + IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP LAN Pool, required for Link Add should be from discovery site of source and destination device. +} +type RequestLanAutomationLanAutomationDeviceUpdateHostnameUpdateDevices struct { + DeviceManagementIPAddress string `json:"deviceManagementIPAddress,omitempty"` // Device Management IP Address + NewHostName string `json:"newHostName,omitempty"` // New hostname for the device +} +type RequestLanAutomationLanAutomationStopAndUpdateDevices []RequestItemLanAutomationLanAutomationStopAndUpdateDevices // Array of RequestLanAutomationLANAutomationStopAndUpdateDevices +type RequestItemLanAutomationLanAutomationStopAndUpdateDevices struct { + DeviceManagementIPAddress string `json:"deviceManagementIPAddress,omitempty"` // Device Management IP Address + NewLoopback0IPAddress string `json:"newLoopback0IPAddress,omitempty"` // New Loopback0 IP Address from LAN pool of Device Discovery Site. +} +type RequestLanAutomationLanAutomationStartV2 []RequestItemLanAutomationLanAutomationStartV2 // Array of RequestLanAutomationLANAutomationStartV2 +type RequestItemLanAutomationLanAutomationStartV2 struct { + DiscoveredDeviceSiteNameHierarchy string `json:"discoveredDeviceSiteNameHierarchy,omitempty"` // Discovered device site name. + PrimaryDeviceManagmentIPAddress string `json:"primaryDeviceManagmentIPAddress,omitempty"` // Primary seed management IP address. + PeerDeviceManagmentIPAddress string `json:"peerDeviceManagmentIPAddress,omitempty"` // Peer seed management IP address. + PrimaryDeviceInterfaceNames []string `json:"primaryDeviceInterfaceNames,omitempty"` // The list of interfaces on primary seed via which the discovered devices are connected. + IPPools *[]RequestItemLanAutomationLanAutomationStartV2IPPools `json:"ipPools,omitempty"` // + MulticastEnabled *bool `json:"multicastEnabled,omitempty"` // Enable underlay native multicast. + HostNamePrefix string `json:"hostNamePrefix,omitempty"` // Host name prefix assigned to the discovered device. + HostNameFileID string `json:"hostNameFileId,omitempty"` // Use /dna/intent/api/v1/file/namespace/nw_orch API to get the file ID for the already uploaded file in the nw_orch namespace. + RedistributeIsisToBgp *bool `json:"redistributeIsisToBgp,omitempty"` // Advertise LAN Automation summary route into BGP. + IsisDomainPwd string `json:"isisDomainPwd,omitempty"` // IS-IS domain password in plain text. + DiscoveryLevel *int `json:"discoveryLevel,omitempty"` // Level below primary seed device upto which the new devices will be LAN Automated by this session, level + seed = tier. Supported range for level is [1-5], default level is 2. + DiscoveryTimeout *int `json:"discoveryTimeout,omitempty"` // Discovery timeout in minutes. Until this time, the stop processing will not be triggered. Any device contacting after the provided discovery timeout will not be processed, and a device reset and reload will be attempted to bring it back to the PnP agent state before process completion. The supported timeout range is in minutes [20-10080]. If both timeout and discovery devices list are provided, the stop processing will be attempted whichever happens earlier. Users can always use the LAN Automation delete API to force stop processing. + DiscoveryDevices *[]RequestItemLanAutomationLanAutomationStartV2DiscoveryDevices `json:"discoveryDevices,omitempty"` // +} +type RequestItemLanAutomationLanAutomationStartV2IPPools struct { + IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP pool. + IPPoolRole string `json:"ipPoolRole,omitempty"` // Role of the IP pool. Supported roles are: MAIN_POOL and PHYSICAL_LINK_POOL. +} +type RequestItemLanAutomationLanAutomationStartV2DiscoveryDevices struct { + DeviceSerialNumber string `json:"deviceSerialNumber,omitempty"` // Serial number of the device + DeviceHostName string `json:"deviceHostName,omitempty"` // Hostname of the device + DeviceSiteNameHierarchy string `json:"deviceSiteNameHierarchy,omitempty"` // Site name hierarchy for the device, must be a child site of the discoveredDeviceSiteNameHierarchy or same if itā€™s not area type. + DeviceManagementIPAddress string `json:"deviceManagementIPAddress,omitempty"` // Management IP Address of the device +} +type RequestLanAutomationLanAutomationStopAndUpdateDevicesV2 []RequestItemLanAutomationLanAutomationStopAndUpdateDevicesV2 // Array of RequestLanAutomationLANAutomationStopAndUpdateDevicesV2 +type RequestItemLanAutomationLanAutomationStopAndUpdateDevicesV2 struct { + DeviceManagementIPAddress string `json:"deviceManagementIPAddress,omitempty"` // Device Management IP Address + NewLoopback0IPAddress string `json:"newLoopback0IPAddress,omitempty"` // New Loopback0 IP Address from LAN pool of Device Discovery Site. + NewHostName string `json:"newHostName,omitempty"` // New hostname to be assigned to the device +} //LanAutomationSessionCount LAN Automation Session Count - b08b-6b11-4669-a12b /* Invoke this API to get the total count of LAN Automation sessions. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-session-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-session-count-v1 */ func (s *LanAutomationService) LanAutomationSessionCount() (*ResponseLanAutomationLanAutomationSessionCount, *resty.Response, error) { path := "/dna/intent/api/v1/lan-automation/count" @@ -211,7 +311,7 @@ func (s *LanAutomationService) LanAutomationSessionCount() (*ResponseLanAutomati @param LANAutomationLogQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-log +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-log-v1 */ func (s *LanAutomationService) LanAutomationLog(LANAutomationLogQueryParams *LanAutomationLogQueryParams) (*ResponseLanAutomationLanAutomationLog, *resty.Response, error) { path := "/dna/intent/api/v1/lan-automation/log" @@ -249,7 +349,7 @@ func (s *LanAutomationService) LanAutomationLog(LANAutomationLogQueryParams *Lan @param id id path parameter. LAN Automation session identifier. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-log-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-log-by-id-v1 */ func (s *LanAutomationService) LanAutomationLogByID(id string) (*ResponseLanAutomationLanAutomationLogByID, *resty.Response, error) { path := "/dna/intent/api/v1/lan-automation/log/{id}" @@ -289,7 +389,7 @@ func (s *LanAutomationService) LanAutomationLogByID(id string) (*ResponseLanAuto @param LANAutomationLogsForIndividualDevicesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-logs-for-individual-devices +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-logs-for-individual-devices-v1 */ func (s *LanAutomationService) LanAutomationLogsForIndividualDevices(id string, serialNumber string, LANAutomationLogsForIndividualDevicesQueryParams *LanAutomationLogsForIndividualDevicesQueryParams) (*ResponseLanAutomationLanAutomationLogsForIndividualDevices, *resty.Response, error) { path := "/dna/intent/api/v1/lan-automation/log/{id}/{serialNumber}" @@ -327,7 +427,7 @@ func (s *LanAutomationService) LanAutomationLogsForIndividualDevices(id string, -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-active-sessions +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-active-sessions-v1 */ func (s *LanAutomationService) LanAutomationActiveSessions() (*ResponseLanAutomationLanAutomationActiveSessions, *resty.Response, error) { path := "/dna/intent/api/v1/lan-automation/sessions" @@ -362,7 +462,7 @@ func (s *LanAutomationService) LanAutomationActiveSessions() (*ResponseLanAutoma @param LANAutomationStatusQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-status +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-status-v1 */ func (s *LanAutomationService) LanAutomationStatus(LANAutomationStatusQueryParams *LanAutomationStatusQueryParams) (*ResponseLanAutomationLanAutomationStatus, *resty.Response, error) { path := "/dna/intent/api/v1/lan-automation/status" @@ -400,7 +500,7 @@ func (s *LanAutomationService) LanAutomationStatus(LANAutomationStatusQueryParam @param id id path parameter. LAN Automation session identifier. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-status-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-status-by-id-v1 */ func (s *LanAutomationService) LanAutomationStatusByID(id string) (*ResponseLanAutomationLanAutomationStatusByID, *resty.Response, error) { path := "/dna/intent/api/v1/lan-automation/status/{id}" @@ -435,7 +535,7 @@ func (s *LanAutomationService) LanAutomationStatusByID(id string) (*ResponseLanA -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-start +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-start-v1 */ func (s *LanAutomationService) LanAutomationStart(requestLanAutomationLANAutomationStart *RequestLanAutomationLanAutomationStart) (*ResponseLanAutomationLanAutomationStart, *resty.Response, error) { path := "/dna/intent/api/v1/lan-automation" @@ -467,6 +567,151 @@ func (s *LanAutomationService) LanAutomationStart(requestLanAutomationLANAutomat } +//LanAutomationStartV2 LAN Automation Start V2 - 51ba-8921-46da-9bec +/* Invoke V2 LAN Automation Start API, which supports optional auto-stop processing feature based on the provided timeout or a specific device list, or both. The stop processing will be executed automatically when either of the cases is satisfied, without specifically calling the stop API. The V2 API behaves similarly to if no timeout or device list is provided, and the user needs to call the stop API for LAN Automation stop processing. With the V2 API, the user can also specify the level up to which the devices can be LAN automated. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-start-v2 +*/ +func (s *LanAutomationService) LanAutomationStartV2(requestLanAutomationLANAutomationStartV2 *RequestLanAutomationLanAutomationStartV2) (*ResponseLanAutomationLanAutomationStartV2, *resty.Response, error) { + path := "/dna/intent/api/v2/lan-automation" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestLanAutomationLANAutomationStartV2). + SetResult(&ResponseLanAutomationLanAutomationStartV2{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.LanAutomationStartV2(requestLanAutomationLANAutomationStartV2) + } + + return nil, response, fmt.Errorf("error with operation LanAutomationStartV2") + } + + result := response.Result().(*ResponseLanAutomationLanAutomationStartV2) + return result, response, err + +} + +//LanAutomationDeviceUpdate LAN Automation Device Update - 1190-5ac3-4e88-bd5e +/* Invoke this API to perform a DAY-N update on LAN Automation-related devices. Supported features include Loopback0 IP update, hostname update, link addition, and link deletion. + + +@param LANAutomationDeviceUpdateQueryParams Filtering parameter +*/ +func (s *LanAutomationService) LanAutomationDeviceUpdate(requestLanAutomationLANAutomationDeviceUpdate *RequestLanAutomationLanAutomationDeviceUpdate, LANAutomationDeviceUpdateQueryParams *LanAutomationDeviceUpdateQueryParams) (*ResponseLanAutomationLanAutomationDeviceUpdate, *resty.Response, error) { + path := "/dna/intent/api/v1/lan-automation/updateDevice" + + queryString, _ := query.Values(LANAutomationDeviceUpdateQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetBody(requestLanAutomationLANAutomationDeviceUpdate). + SetResult(&ResponseLanAutomationLanAutomationDeviceUpdate{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.LanAutomationDeviceUpdate(requestLanAutomationLANAutomationDeviceUpdate, LANAutomationDeviceUpdateQueryParams) + } + return nil, response, fmt.Errorf("error with operation LanAutomationDeviceUpdate") + } + + result := response.Result().(*ResponseLanAutomationLanAutomationDeviceUpdate) + return result, response, err + +} + +//LanAutomationStopAndUpdateDevices LAN Automation Stop and Update Devices - 0780-4a4c-44cb-bae8 +/* Invoke this API to stop LAN Automation and Update Loopback0 IP Address of Devices, discovered in the current session + + +@param id id path parameter. LAN Automation id can be obtained from /dna/intent/api/v1/lan-automation/status. + +*/ +func (s *LanAutomationService) LanAutomationStopAndUpdateDevices(id string, requestLanAutomationLANAutomationStopAndUpdateDevices *RequestLanAutomationLanAutomationStopAndUpdateDevices) (*ResponseLanAutomationLanAutomationStopAndUpdateDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/lan-automation/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestLanAutomationLANAutomationStopAndUpdateDevices). + SetResult(&ResponseLanAutomationLanAutomationStopAndUpdateDevices{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.LanAutomationStopAndUpdateDevices(id, requestLanAutomationLANAutomationStopAndUpdateDevices) + } + return nil, response, fmt.Errorf("error with operation LanAutomationStopAndUpdateDevices") + } + + result := response.Result().(*ResponseLanAutomationLanAutomationStopAndUpdateDevices) + return result, response, err + +} + +//LanAutomationStopAndUpdateDevicesV2 LAN Automation Stop and Update Devices V2 - 9381-ba28-42c9-9e6a +/* Invoke this API to stop LAN Automation and update device parameters such as Loopback0 IP address and/or hostname discovered in the current session. + + +@param id id path parameter. LAN Automation id can be obtained from /dna/intent/api/v1/lan-automation/status. + +*/ +func (s *LanAutomationService) LanAutomationStopAndUpdateDevicesV2(id string, requestLanAutomationLANAutomationStopAndUpdateDevicesV2 *RequestLanAutomationLanAutomationStopAndUpdateDevicesV2) (*ResponseLanAutomationLanAutomationStopAndUpdateDevicesV2, *resty.Response, error) { + path := "/dna/intent/api/v2/lan-automation/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestLanAutomationLANAutomationStopAndUpdateDevicesV2). + SetResult(&ResponseLanAutomationLanAutomationStopAndUpdateDevicesV2{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.LanAutomationStopAndUpdateDevicesV2(id, requestLanAutomationLANAutomationStopAndUpdateDevicesV2) + } + return nil, response, fmt.Errorf("error with operation LanAutomationStopAndUpdateDevicesV2") + } + + result := response.Result().(*ResponseLanAutomationLanAutomationStopAndUpdateDevicesV2) + return result, response, err + +} + //LanAutomationStop LAN Automation Stop - e6a0-da69-4adb-8929 /* Invoke this API to stop LAN Automation for the given site. @@ -474,7 +719,7 @@ func (s *LanAutomationService) LanAutomationStart(requestLanAutomationLANAutomat @param id id path parameter. LAN Automation id can be obtained from /dna/intent/api/v1/lan-automation/status. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-stop +Documentation Link: https://developer.cisco.com/docs/dna-center/#!lan-automation-stop-v1 */ func (s *LanAutomationService) LanAutomationStop(id string) (*ResponseLanAutomationLanAutomationStop, *resty.Response, error) { //id string @@ -495,7 +740,8 @@ func (s *LanAutomationService) LanAutomationStop(id string) (*ResponseLanAutomat if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.LanAutomationStop(id) + return s.LanAutomationStop( + id) } return nil, response, fmt.Errorf("error with operation LanAutomationStop") } diff --git a/sdk/licenses.go b/sdk/licenses.go index 618bddb..e857c2b 100644 --- a/sdk/licenses.go +++ b/sdk/licenses.go @@ -11,40 +11,57 @@ import ( type LicensesService service -type DeviceCountDetails2QueryParams struct { +type DeviceCountDetailsQueryParams struct { DeviceType string `url:"device_type,omitempty"` //Type of device RegistrationStatus string `url:"registration_status,omitempty"` //Smart license registration status of device DnaLevel string `url:"dna_level,omitempty"` //Device Cisco DNA License Level VirtualAccountName string `url:"virtual_account_name,omitempty"` //Virtual account name SmartAccountID string `url:"smart_account_id,omitempty"` //Smart account id } -type DeviceLicenseSummary2QueryParams struct { +type DeviceLicenseSummaryQueryParams struct { PageNumber float64 `url:"page_number,omitempty"` //Page number of response Order string `url:"order,omitempty"` //Sorting order SortBy string `url:"sort_by,omitempty"` //Sort result by field - DnaLevel string `url:"dna_level,omitempty"` //Device Cisco DNA license level - DeviceType string `url:"device_type,omitempty"` //Type of device + DnaLevel string `url:"dna_level,omitempty"` //Device Cisco DNA license level. The valid values are Advantage, Essentials + DeviceType string `url:"device_type,omitempty"` //Type of device. The valid values are Routers, Switches and Hubs, Wireless Controller Limit float64 `url:"limit,omitempty"` //Limit - RegistrationStatus string `url:"registration_status,omitempty"` //Smart license registration status of device + RegistrationStatus string `url:"registration_status,omitempty"` //Smart license registration status of device. The valid values are Unknown, NA, Unregistered, Registered, Registration_expired, Reservation_in_progress, Registered_slr, Registered_plr, Registered_satellite VirtualAccountName string `url:"virtual_account_name,omitempty"` //Name of virtual account - SmartAccountID float64 `url:"smart_account_id,omitempty"` //Id of smart account + SmartAccountID string `url:"smart_account_id,omitempty"` //Id of smart account DeviceUUID string `url:"device_uuid,omitempty"` //Id of device } -type LicenseTermDetails2QueryParams struct { +type LicenseTermDetailsQueryParams struct { DeviceType string `url:"device_type,omitempty"` //Type of device like router, switch, wireless or ise } -type LicenseUsageDetails2QueryParams struct { +type LicenseUsageDetailsQueryParams struct { DeviceType string `url:"device_type,omitempty"` //Type of device like router, switch, wireless or ise } -type ResponseLicensesDeviceCountDetails2 struct { +type ResponseLicensesRetrieveLicenseSetting struct { + Response *ResponseLicensesRetrieveLicenseSettingResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // API version +} +type ResponseLicensesRetrieveLicenseSettingResponse struct { + DefaultSmartAccountID string `json:"defaultSmartAccountId,omitempty"` // Default smart account id + AutoRegistrationVirtualAccountID string `json:"autoRegistrationVirtualAccountId,omitempty"` // Virtual account id +} +type ResponseLicensesUpdateLicenseSetting struct { + Response *ResponseLicensesUpdateLicenseSettingResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // API version +} +type ResponseLicensesUpdateLicenseSettingResponse struct { + DefaultSmartAccountID string `json:"defaultSmartAccountId,omitempty"` // Default smart account id + AutoRegistrationVirtualAccountID string `json:"autoRegistrationVirtualAccountId,omitempty"` // Virtual account id +} +type ResponseLicensesDeviceCountDetails struct { Response *int `json:"response,omitempty"` // Total number of managed device Version string `json:"version,omitempty"` // Version } -type ResponseLicensesDeviceLicenseSummary2 struct { - Response *[]ResponseLicensesDeviceLicenseSummary2Response `json:"response,omitempty"` // +type ResponseLicensesDeviceLicenseSummary struct { + Response *[]ResponseLicensesDeviceLicenseSummaryResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version } -type ResponseLicensesDeviceLicenseSummary2Response struct { +type ResponseLicensesDeviceLicenseSummaryResponse struct { AuthorizationStatus string `json:"authorization_status,omitempty"` // Smart license authorization status of device LastUpdatedTime string `json:"last_updated_time,omitempty"` // Time when license information was collected from device IsPerformanceAllowed *bool `json:"is_performance_allowed,omitempty"` // Is performance license available @@ -81,87 +98,84 @@ type ResponseLicensesDeviceLicenseSummary2Response struct { CustomerTag4 string `json:"customer_tag4,omitempty"` // Customer Tag4 set on device SmartAccountName string `json:"smart_account_name,omitempty"` // Name of smart account } -type ResponseLicensesDeviceLicenseDetails2 struct { - Response *[]ResponseLicensesDeviceLicenseDetails2Response `json:"response,omitempty"` // -} -type ResponseLicensesDeviceLicenseDetails2Response struct { - DeviceUUID string `json:"device_uuid,omitempty"` // Id of device - Site string `json:"site,omitempty"` // Site of device - Model string `json:"model,omitempty"` // Model of device - LicenseMode string `json:"license_mode,omitempty"` // Mode of license - IsLicenseExpired *bool `json:"is_license_expired,omitempty"` // Is device license expired - SoftwareVersion string `json:"software_version,omitempty"` // Software image version of device - NetworkLicense string `json:"network_license,omitempty"` // Device network license level - EvaluationLicenseExpiry string `json:"evaluation_license_expiry,omitempty"` // Evaluation period expiry date - DeviceName string `json:"device_name,omitempty"` // Name of device - DeviceType string `json:"device_type,omitempty"` // Type of device - DnaLevel string `json:"dna_level,omitempty"` // Device Cisco DNA license level - VirtualAccountName string `json:"virtual_account_name,omitempty"` // Name of virtual account - IPAddress string `json:"ip_address,omitempty"` // IP address of device - MacAddress string `json:"mac_address,omitempty"` // MAC address of device - SntcStatus string `json:"sntc_status,omitempty"` // Valid if device is covered under license contract and invalid if not covered, otherwise unknown. - FeatureLicense []string `json:"feature_license,omitempty"` // Name of feature licenses - HasSupCards *bool `json:"has_sup_cards,omitempty"` // Whether device has supervisor cards - Udi string `json:"udi,omitempty"` // Unique Device Identifier - StackedDevices *[]ResponseLicensesDeviceLicenseDetails2ResponseStackedDevices `json:"stacked_devices,omitempty"` // - IsStackedDevice *bool `json:"is_stacked_device,omitempty"` // Is Stacked Device - AccessPoints *[]ResponseLicensesDeviceLicenseDetails2ResponseAccessPoints `json:"access_points,omitempty"` // - ChassisDetails *ResponseLicensesDeviceLicenseDetails2ResponseChassisDetails `json:"chassis_details,omitempty"` // -} -type ResponseLicensesDeviceLicenseDetails2ResponseStackedDevices struct { +type ResponseLicensesDeviceLicenseDetails struct { + DeviceUUID string `json:"device_uuid,omitempty"` // Id of device + Site string `json:"site,omitempty"` // Site of device + Model string `json:"model,omitempty"` // Model of device + LicenseMode string `json:"license_mode,omitempty"` // Mode of license + IsLicenseExpired *bool `json:"is_license_expired,omitempty"` // Is device license expired + SoftwareVersion string `json:"software_version,omitempty"` // Software image version of device + NetworkLicense string `json:"network_license,omitempty"` // Device network license level + EvaluationLicenseExpiry string `json:"evaluation_license_expiry,omitempty"` // Evaluation period expiry date + DeviceName string `json:"device_name,omitempty"` // Name of device + DeviceType string `json:"device_type,omitempty"` // Type of device + DnaLevel string `json:"dna_level,omitempty"` // Device Cisco DNA license level + VirtualAccountName string `json:"virtual_account_name,omitempty"` // Name of virtual account + IPAddress string `json:"ip_address,omitempty"` // IP address of device + MacAddress string `json:"mac_address,omitempty"` // MAC address of device + SntcStatus string `json:"sntc_status,omitempty"` // Valid if device is covered under license contract and invalid if not covered, otherwise unknown. + FeatureLicense []string `json:"feature_license,omitempty"` // Name of feature licenses + HasSupCards *bool `json:"has_sup_cards,omitempty"` // Whether device has supervisor cards + Udi string `json:"udi,omitempty"` // Unique Device Identifier + StackedDevices *[]ResponseLicensesDeviceLicenseDetailsStackedDevices `json:"stacked_devices,omitempty"` // + IsStackedDevice *bool `json:"is_stacked_device,omitempty"` // Is Stacked Device + AccessPoints *[]ResponseLicensesDeviceLicenseDetailsAccessPoints `json:"access_points,omitempty"` // + ChassisDetails *ResponseLicensesDeviceLicenseDetailsChassisDetails `json:"chassis_details,omitempty"` // +} +type ResponseLicensesDeviceLicenseDetailsStackedDevices struct { MacAddress string `json:"mac_address,omitempty"` // Stack mac address - ID string `json:"id,omitempty"` // Id + ID *int `json:"id,omitempty"` // Id Role string `json:"role,omitempty"` // Chassis role SerialNumber string `json:"serial_number,omitempty"` // Chassis serial number } -type ResponseLicensesDeviceLicenseDetails2ResponseAccessPoints struct { +type ResponseLicensesDeviceLicenseDetailsAccessPoints struct { ApType string `json:"ap_type,omitempty"` // Type of access point Count string `json:"count,omitempty"` // Number of access point } -type ResponseLicensesDeviceLicenseDetails2ResponseChassisDetails struct { - BoardSerialNumber string `json:"board_serial_number,omitempty"` // Board serial number - Modules *[]ResponseLicensesDeviceLicenseDetails2ResponseChassisDetailsModules `json:"modules,omitempty"` // - SupervisorCards *[]ResponseLicensesDeviceLicenseDetails2ResponseChassisDetailsSupervisorCards `json:"supervisor_cards,omitempty"` // - Port *int `json:"port,omitempty"` // Number of port +type ResponseLicensesDeviceLicenseDetailsChassisDetails struct { + BoardSerialNumber string `json:"board_serial_number,omitempty"` // Board serial number + Modules *[]ResponseLicensesDeviceLicenseDetailsChassisDetailsModules `json:"modules,omitempty"` // + SupervisorCards *[]ResponseLicensesDeviceLicenseDetailsChassisDetailsSupervisorCards `json:"supervisor_cards,omitempty"` // + Port *int `json:"port,omitempty"` // Number of port } -type ResponseLicensesDeviceLicenseDetails2ResponseChassisDetailsModules struct { +type ResponseLicensesDeviceLicenseDetailsChassisDetailsModules struct { ModuleType string `json:"module_type,omitempty"` // Type of module ModuleName string `json:"module_name,omitempty"` // Name of module SerialNumber string `json:"serial_number,omitempty"` // Serial number of module - ID string `json:"id,omitempty"` // Id of module + ID *int `json:"id,omitempty"` // Id of module } -type ResponseLicensesDeviceLicenseDetails2ResponseChassisDetailsSupervisorCards struct { +type ResponseLicensesDeviceLicenseDetailsChassisDetailsSupervisorCards struct { SerialNumber string `json:"serial_number,omitempty"` // Serial number of supervisor card SupervisorCardType string `json:"supervisor_card_type,omitempty"` // Type of supervisor card Status string `json:"status,omitempty"` // Status of supervisor card } -type ResponseLicensesDeviceDeregistration2 struct { - Response *ResponseLicensesDeviceDeregistration2Response `json:"response,omitempty"` // +type ResponseLicensesDeviceDeregistration struct { + Response *ResponseLicensesDeviceDeregistrationResponse `json:"response,omitempty"` // } -type ResponseLicensesDeviceDeregistration2Response struct { +type ResponseLicensesDeviceDeregistrationResponse struct { TaskID string `json:"taskId,omitempty"` // Task id of process URL string `json:"url,omitempty"` // Task URL of process } -type ResponseLicensesDeviceRegistration2 struct { - Response *ResponseLicensesDeviceRegistration2Response `json:"response,omitempty"` // +type ResponseLicensesDeviceRegistration struct { + Response *ResponseLicensesDeviceRegistrationResponse `json:"response,omitempty"` // } -type ResponseLicensesDeviceRegistration2Response struct { +type ResponseLicensesDeviceRegistrationResponse struct { TaskID string `json:"taskId,omitempty"` // Task id of process URL string `json:"url,omitempty"` // Task URL of process } -type ResponseLicensesChangeVirtualAccount2 struct { - Response *ResponseLicensesChangeVirtualAccount2Response `json:"response,omitempty"` // +type ResponseLicensesChangeVirtualAccount struct { + Response *ResponseLicensesChangeVirtualAccountResponse `json:"response,omitempty"` // } -type ResponseLicensesChangeVirtualAccount2Response struct { +type ResponseLicensesChangeVirtualAccountResponse struct { TaskID string `json:"taskId,omitempty"` // Task id of process URL string `json:"url,omitempty"` // Task URL of process } -type ResponseLicensesVirtualAccountDetails2 struct { - SmartAccountID string `json:"smart_account_id,omitempty"` // Id of smart account - SmartAccountName string `json:"smart_account_name,omitempty"` // Name of smart account - VirtualAccountDetails *[]ResponseLicensesVirtualAccountDetails2VirtualAccountDetails `json:"virtual_account_details,omitempty"` // +type ResponseLicensesVirtualAccountDetails struct { + SmartAccountID string `json:"smart_account_id,omitempty"` // Id of smart account + SmartAccountName string `json:"smart_account_name,omitempty"` // Name of smart account + VirtualAccountDetails *[]ResponseLicensesVirtualAccountDetailsVirtualAccountDetails `json:"virtual_account_details,omitempty"` // } -type ResponseLicensesVirtualAccountDetails2VirtualAccountDetails struct { +type ResponseLicensesVirtualAccountDetailsVirtualAccountDetails struct { VirtualAccountID string `json:"virtual_account_id,omitempty"` // Id of virtual account VirtualAccountName string `json:"virtual_account_name,omitempty"` // Name of virtual account } @@ -175,10 +189,10 @@ type ResponseLicensesSmartAccountDetailsResponse struct { Domain string `json:"domain,omitempty"` // Domain of smart account IsActiveSmartAccount *bool `json:"is_active_smart_account,omitempty"` // Is active smart account } -type ResponseLicensesLicenseTermDetails2 struct { - LicenseDetails *[]ResponseLicensesLicenseTermDetails2LicenseDetails `json:"license_details,omitempty"` // +type ResponseLicensesLicenseTermDetails struct { + LicenseDetails *[]ResponseLicensesLicenseTermDetailsLicenseDetails `json:"license_details,omitempty"` // } -type ResponseLicensesLicenseTermDetails2LicenseDetails struct { +type ResponseLicensesLicenseTermDetailsLicenseDetails struct { Model string `json:"model,omitempty"` // Model of device VirtualAccountName string `json:"virtual_account_name,omitempty"` // Name of virtual account LicenseTermStartDate string `json:"license_term_start_date,omitempty"` // Start date of license term @@ -187,71 +201,127 @@ type ResponseLicensesLicenseTermDetails2LicenseDetails struct { PurchasedDnaLicenseCount string `json:"purchased_dna_license_count,omitempty"` // Number of purchased DNA licenses IsLicenseExpired string `json:"is_license_expired,omitempty"` // Is license expired } -type ResponseLicensesLicenseUsageDetails2 struct { - PurchasedDnaLicense *ResponseLicensesLicenseUsageDetails2PurchasedDnaLicense `json:"purchased_dna_license,omitempty"` // - PurchasedNetworkLicense *ResponseLicensesLicenseUsageDetails2PurchasedNetworkLicense `json:"purchased_network_license,omitempty"` // - UsedDnaLicense *ResponseLicensesLicenseUsageDetails2UsedDnaLicense `json:"used_dna_license,omitempty"` // - UsedNetworkLicense *ResponseLicensesLicenseUsageDetails2UsedNetworkLicense `json:"used_network_license,omitempty"` // +type ResponseLicensesLicenseUsageDetails struct { + PurchasedDnaLicense *ResponseLicensesLicenseUsageDetailsPurchasedDnaLicense `json:"purchased_dna_license,omitempty"` // + PurchasedNetworkLicense *ResponseLicensesLicenseUsageDetailsPurchasedNetworkLicense `json:"purchased_network_license,omitempty"` // + UsedDnaLicense *ResponseLicensesLicenseUsageDetailsUsedDnaLicense `json:"used_dna_license,omitempty"` // + UsedNetworkLicense *ResponseLicensesLicenseUsageDetailsUsedNetworkLicense `json:"used_network_license,omitempty"` // + PurchasedIseLicense *ResponseLicensesLicenseUsageDetailsPurchasedIseLicense `json:"purchased_ise_license,omitempty"` // + UsedIseLicense *ResponseLicensesLicenseUsageDetailsUsedIseLicense `json:"used_ise_license,omitempty"` // +} +type ResponseLicensesLicenseUsageDetailsPurchasedDnaLicense struct { + TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses + LicenseCountByType *[]ResponseLicensesLicenseUsageDetailsPurchasedDnaLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // +} +type ResponseLicensesLicenseUsageDetailsPurchasedDnaLicenseLicenseCountByType struct { + LicenseType string `json:"license_type,omitempty"` // Type of license + LicenseCount *int `json:"license_count,omitempty"` // Number of licenses } -type ResponseLicensesLicenseUsageDetails2PurchasedDnaLicense struct { - TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses - LicenseCountByType *[]ResponseLicensesLicenseUsageDetails2PurchasedDnaLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // +type ResponseLicensesLicenseUsageDetailsPurchasedNetworkLicense struct { + TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses + LicenseCountByType *[]ResponseLicensesLicenseUsageDetailsPurchasedNetworkLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // } -type ResponseLicensesLicenseUsageDetails2PurchasedDnaLicenseLicenseCountByType struct { +type ResponseLicensesLicenseUsageDetailsPurchasedNetworkLicenseLicenseCountByType struct { LicenseType string `json:"license_type,omitempty"` // Type of license LicenseCount *int `json:"license_count,omitempty"` // Number of licenses } -type ResponseLicensesLicenseUsageDetails2PurchasedNetworkLicense struct { - TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses - LicenseCountByType *[]ResponseLicensesLicenseUsageDetails2PurchasedNetworkLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // +type ResponseLicensesLicenseUsageDetailsUsedDnaLicense struct { + TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses + LicenseCountByType *[]ResponseLicensesLicenseUsageDetailsUsedDnaLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // } -type ResponseLicensesLicenseUsageDetails2PurchasedNetworkLicenseLicenseCountByType struct { +type ResponseLicensesLicenseUsageDetailsUsedDnaLicenseLicenseCountByType struct { LicenseType string `json:"license_type,omitempty"` // Type of license LicenseCount *int `json:"license_count,omitempty"` // Number of licenses } -type ResponseLicensesLicenseUsageDetails2UsedDnaLicense struct { - TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses - LicenseCountByType *[]ResponseLicensesLicenseUsageDetails2UsedDnaLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // +type ResponseLicensesLicenseUsageDetailsUsedNetworkLicense struct { + TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses + LicenseCountByType *[]ResponseLicensesLicenseUsageDetailsUsedNetworkLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // } -type ResponseLicensesLicenseUsageDetails2UsedDnaLicenseLicenseCountByType struct { +type ResponseLicensesLicenseUsageDetailsUsedNetworkLicenseLicenseCountByType struct { LicenseType string `json:"license_type,omitempty"` // Type of license LicenseCount *int `json:"license_count,omitempty"` // Number of licenses } -type ResponseLicensesLicenseUsageDetails2UsedNetworkLicense struct { +type ResponseLicensesLicenseUsageDetailsPurchasedIseLicense struct { TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses - LicenseCountByType *[]ResponseLicensesLicenseUsageDetails2UsedNetworkLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // + LicenseCountByType *[]ResponseLicensesLicenseUsageDetailsPurchasedIseLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // +} +type ResponseLicensesLicenseUsageDetailsPurchasedIseLicenseLicenseCountByType struct { + LicenseType string `json:"license_type,omitempty"` // Type of license + LicenseCount *int `json:"license_count,omitempty"` // Number of licenses } -type ResponseLicensesLicenseUsageDetails2UsedNetworkLicenseLicenseCountByType struct { +type ResponseLicensesLicenseUsageDetailsUsedIseLicense struct { + TotalLicenseCount *int `json:"total_license_count,omitempty"` // Total number of licenses + LicenseCountByType *[]ResponseLicensesLicenseUsageDetailsUsedIseLicenseLicenseCountByType `json:"license_count_by_type,omitempty"` // +} +type ResponseLicensesLicenseUsageDetailsUsedIseLicenseLicenseCountByType struct { LicenseType string `json:"license_type,omitempty"` // Type of license LicenseCount *int `json:"license_count,omitempty"` // Number of licenses } -type RequestLicensesDeviceDeregistration2 struct { +type RequestLicensesUpdateLicenseSetting struct { + DefaultSmartAccountID string `json:"defaultSmartAccountId,omitempty"` // Default smart account id + AutoRegistrationVirtualAccountID string `json:"autoRegistrationVirtualAccountId,omitempty"` // Virtual account id +} +type RequestLicensesDeviceDeregistration struct { DeviceUUIDs []string `json:"device_uuids,omitempty"` // Comma separated device ids } -type RequestLicensesDeviceRegistration2 struct { +type RequestLicensesDeviceRegistration struct { DeviceUUIDs []string `json:"device_uuids,omitempty"` // Comma separated device ids } -type RequestLicensesChangeVirtualAccount2 struct { +type RequestLicensesChangeVirtualAccount struct { DeviceUUIDs []string `json:"device_uuids,omitempty"` // Comma separated device ids } -//DeviceCountDetails2 Device Count Details - 949a-6983-4c38-9d59 +//RetrieveLicenseSetting Retrieve license setting - c489-d9a3-4c09-84c7 +/* Retrieves license setting Default smart account id and virtual account id for auto registration of devices for smart license flow. If default smart account is not configured, 'defaultSmartAccountId' is 'null'. Similarly, if auto registration of devices for smart license flow is not enabled, 'autoRegistrationVirtualAccountId' is 'null'. For smart proxy connection mode, 'autoRegistrationVirtualAccountId' is always 'null'. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-license-setting-v1 +*/ +func (s *LicensesService) RetrieveLicenseSetting() (*ResponseLicensesRetrieveLicenseSetting, *resty.Response, error) { + path := "/dna/intent/api/v1/licenseSetting" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseLicensesRetrieveLicenseSetting{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveLicenseSetting() + } + return nil, response, fmt.Errorf("error with operation RetrieveLicenseSetting") + } + + result := response.Result().(*ResponseLicensesRetrieveLicenseSetting) + return result, response, err + +} + +//DeviceCountDetails Device Count Details - 949a-6983-4c38-9d59 /* Get total number of managed device(s). -@param DeviceCountDetails2QueryParams Filtering parameter +@param DeviceCountDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!device-count-details2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!device-count-details-v1 */ -func (s *LicensesService) DeviceCountDetails2(DeviceCountDetails2QueryParams *DeviceCountDetails2QueryParams) (*ResponseLicensesDeviceCountDetails2, *resty.Response, error) { +func (s *LicensesService) DeviceCountDetails(DeviceCountDetailsQueryParams *DeviceCountDetailsQueryParams) (*ResponseLicensesDeviceCountDetails, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/device/count" - queryString, _ := query.Values(DeviceCountDetails2QueryParams) + queryString, _ := query.Values(DeviceCountDetailsQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseLicensesDeviceCountDetails2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseLicensesDeviceCountDetails{}). SetError(&Error). Get(path) @@ -262,33 +332,33 @@ func (s *LicensesService) DeviceCountDetails2(DeviceCountDetails2QueryParams *De if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeviceCountDetails2(DeviceCountDetails2QueryParams) + return s.DeviceCountDetails(DeviceCountDetailsQueryParams) } - return nil, response, fmt.Errorf("error with operation DeviceCountDetails2") + return nil, response, fmt.Errorf("error with operation DeviceCountDetails") } - result := response.Result().(*ResponseLicensesDeviceCountDetails2) + result := response.Result().(*ResponseLicensesDeviceCountDetails) return result, response, err } -//DeviceLicenseSummary2 Device License Summary - c491-4937-44fa-a216 +//DeviceLicenseSummary Device License Summary - 529e-2ae0-4a9b-89b1 /* Show license summary of device(s). -@param DeviceLicenseSummary2QueryParams Filtering parameter +@param DeviceLicenseSummaryQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!device-license-summary2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!device-license-summary-v1 */ -func (s *LicensesService) DeviceLicenseSummary2(DeviceLicenseSummary2QueryParams *DeviceLicenseSummary2QueryParams) (*ResponseLicensesDeviceLicenseSummary2, *resty.Response, error) { +func (s *LicensesService) DeviceLicenseSummary(DeviceLicenseSummaryQueryParams *DeviceLicenseSummaryQueryParams) (*ResponseLicensesDeviceLicenseSummary, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/device/summary" - queryString, _ := query.Values(DeviceLicenseSummary2QueryParams) + queryString, _ := query.Values(DeviceLicenseSummaryQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseLicensesDeviceLicenseSummary2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseLicensesDeviceLicenseSummary{}). SetError(&Error). Get(path) @@ -299,33 +369,33 @@ func (s *LicensesService) DeviceLicenseSummary2(DeviceLicenseSummary2QueryParams if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeviceLicenseSummary2(DeviceLicenseSummary2QueryParams) + return s.DeviceLicenseSummary(DeviceLicenseSummaryQueryParams) } - return nil, response, fmt.Errorf("error with operation DeviceLicenseSummary2") + return nil, response, fmt.Errorf("error with operation DeviceLicenseSummary") } - result := response.Result().(*ResponseLicensesDeviceLicenseSummary2) + result := response.Result().(*ResponseLicensesDeviceLicenseSummary) return result, response, err } -//DeviceLicenseDetails2 Device License Details - dca1-1bc2-4e7b-8c5d +//DeviceLicenseDetails Device License Details - dca1-1bc2-4e7b-8c5d /* Get detailed license information of a device. @param deviceuuid device_uuid path parameter. Id of device -Documentation Link: https://developer.cisco.com/docs/dna-center/#!device-license-details2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!device-license-details-v1 */ -func (s *LicensesService) DeviceLicenseDetails2(deviceuuid string) (*ResponseLicensesDeviceLicenseDetails2, *resty.Response, error) { +func (s *LicensesService) DeviceLicenseDetails(deviceuuid string) (*ResponseLicensesDeviceLicenseDetails, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/device/{device_uuid}/details" path = strings.Replace(path, "{device_uuid}", fmt.Sprintf("%v", deviceuuid), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseLicensesDeviceLicenseDetails2{}). + SetResult(&ResponseLicensesDeviceLicenseDetails{}). SetError(&Error). Get(path) @@ -336,33 +406,33 @@ func (s *LicensesService) DeviceLicenseDetails2(deviceuuid string) (*ResponseLic if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeviceLicenseDetails2(deviceuuid) + return s.DeviceLicenseDetails(deviceuuid) } - return nil, response, fmt.Errorf("error with operation DeviceLicenseDetails2") + return nil, response, fmt.Errorf("error with operation DeviceLicenseDetails") } - result := response.Result().(*ResponseLicensesDeviceLicenseDetails2) + result := response.Result().(*ResponseLicensesDeviceLicenseDetails) return result, response, err } -//VirtualAccountDetails2 Virtual Account Details - b681-09f6-4bb9-b3b3 +//VirtualAccountDetails Virtual Account Details - 829e-daf5-4d49-a581 /* Get virtual account details of a smart account. @param smartaccountTypeID smart_account_id path parameter. Id of smart account -Documentation Link: https://developer.cisco.com/docs/dna-center/#!virtual-account-details2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!virtual-account-details-v1 */ -func (s *LicensesService) VirtualAccountDetails2(smartaccountTypeID string) (*ResponseLicensesVirtualAccountDetails2, *resty.Response, error) { +func (s *LicensesService) VirtualAccountDetails(smartaccountTypeID string) (*ResponseLicensesVirtualAccountDetails, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/smartAccount/{smart_account_id}/virtualAccounts" path = strings.Replace(path, "{smart_account_id}", fmt.Sprintf("%v", smartaccountTypeID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseLicensesVirtualAccountDetails2{}). + SetResult(&ResponseLicensesVirtualAccountDetails{}). SetError(&Error). Get(path) @@ -373,22 +443,22 @@ func (s *LicensesService) VirtualAccountDetails2(smartaccountTypeID string) (*Re if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.VirtualAccountDetails2(smartaccountTypeID) + return s.VirtualAccountDetails(smartaccountTypeID) } - return nil, response, fmt.Errorf("error with operation VirtualAccountDetails2") + return nil, response, fmt.Errorf("error with operation VirtualAccountDetails") } - result := response.Result().(*ResponseLicensesVirtualAccountDetails2) + result := response.Result().(*ResponseLicensesVirtualAccountDetails) return result, response, err } //SmartAccountDetails Smart Account Details - c181-b8db-4c89-adf0 -/* Get detail of all smart accounts. +/* Retrieve details of all smart accounts. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!smart-account-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!smart-account-details-v1 */ func (s *LicensesService) SmartAccountDetails() (*ResponseLicensesSmartAccountDetails, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/smartAccounts" @@ -417,7 +487,7 @@ func (s *LicensesService) SmartAccountDetails() (*ResponseLicensesSmartAccountDe } -//LicenseTermDetails2 License Term Details - c8a9-cb5e-4078-a16f +//LicenseTermDetails License Term Details - e891-4b73-4ad9-b414 /* Get license term details. @@ -425,21 +495,21 @@ func (s *LicensesService) SmartAccountDetails() (*ResponseLicensesSmartAccountDe @param virtualaccountname virtual_account_name path parameter. Name of virtual account. Putting "All" will give license term detail for all virtual accounts. -@param LicenseTermDetails2QueryParams Filtering parameter +@param LicenseTermDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!license-term-details2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!license-term-details-v1 */ -func (s *LicensesService) LicenseTermDetails2(smartaccountTypeID string, virtualaccountname string, LicenseTermDetails2QueryParams *LicenseTermDetails2QueryParams) (*ResponseLicensesLicenseTermDetails2, *resty.Response, error) { +func (s *LicensesService) LicenseTermDetails(smartaccountTypeID string, virtualaccountname string, LicenseTermDetailsQueryParams *LicenseTermDetailsQueryParams) (*ResponseLicensesLicenseTermDetails, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/term/smartAccount/{smart_account_id}/virtualAccount/{virtual_account_name}" path = strings.Replace(path, "{smart_account_id}", fmt.Sprintf("%v", smartaccountTypeID), -1) path = strings.Replace(path, "{virtual_account_name}", fmt.Sprintf("%v", virtualaccountname), -1) - queryString, _ := query.Values(LicenseTermDetails2QueryParams) + queryString, _ := query.Values(LicenseTermDetailsQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseLicensesLicenseTermDetails2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseLicensesLicenseTermDetails{}). SetError(&Error). Get(path) @@ -450,17 +520,17 @@ func (s *LicensesService) LicenseTermDetails2(smartaccountTypeID string, virtual if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.LicenseTermDetails2(smartaccountTypeID, virtualaccountname, LicenseTermDetails2QueryParams) + return s.LicenseTermDetails(smartaccountTypeID, virtualaccountname, LicenseTermDetailsQueryParams) } - return nil, response, fmt.Errorf("error with operation LicenseTermDetails2") + return nil, response, fmt.Errorf("error with operation LicenseTermDetails") } - result := response.Result().(*ResponseLicensesLicenseTermDetails2) + result := response.Result().(*ResponseLicensesLicenseTermDetails) return result, response, err } -//LicenseUsageDetails2 License Usage Details - 418a-6b43-4e29-bfe5 +//LicenseUsageDetails License Usage Details - 418a-6b43-4e29-bfe5 /* Get count of purchased and in use Cisco DNA and Network licenses. @@ -468,21 +538,21 @@ func (s *LicensesService) LicenseTermDetails2(smartaccountTypeID string, virtual @param virtualaccountname virtual_account_name path parameter. Name of virtual account. Putting "All" will give license term detail for all virtual accounts. -@param LicenseUsageDetails2QueryParams Filtering parameter +@param LicenseUsageDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!license-usage-details2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!license-usage-details-v1 */ -func (s *LicensesService) LicenseUsageDetails2(smartaccountTypeID string, virtualaccountname string, LicenseUsageDetails2QueryParams *LicenseUsageDetails2QueryParams) (*ResponseLicensesLicenseUsageDetails2, *resty.Response, error) { +func (s *LicensesService) LicenseUsageDetails(smartaccountTypeID string, virtualaccountname string, LicenseUsageDetailsQueryParams *LicenseUsageDetailsQueryParams) (*ResponseLicensesLicenseUsageDetails, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/usage/smartAccount/{smart_account_id}/virtualAccount/{virtual_account_name}" path = strings.Replace(path, "{smart_account_id}", fmt.Sprintf("%v", smartaccountTypeID), -1) path = strings.Replace(path, "{virtual_account_name}", fmt.Sprintf("%v", virtualaccountname), -1) - queryString, _ := query.Values(LicenseUsageDetails2QueryParams) + queryString, _ := query.Values(LicenseUsageDetailsQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseLicensesLicenseUsageDetails2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseLicensesLicenseUsageDetails{}). SetError(&Error). Get(path) @@ -493,17 +563,17 @@ func (s *LicensesService) LicenseUsageDetails2(smartaccountTypeID string, virtua if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.LicenseUsageDetails2(smartaccountTypeID, virtualaccountname, LicenseUsageDetails2QueryParams) + return s.LicenseUsageDetails(smartaccountTypeID, virtualaccountname, LicenseUsageDetailsQueryParams) } - return nil, response, fmt.Errorf("error with operation LicenseUsageDetails2") + return nil, response, fmt.Errorf("error with operation LicenseUsageDetails") } - result := response.Result().(*ResponseLicensesLicenseUsageDetails2) + result := response.Result().(*ResponseLicensesLicenseUsageDetails) return result, response, err } -//ChangeVirtualAccount2 Change Virtual Account - ba89-1873-4089-9a37 +//ChangeVirtualAccount Change Virtual Account - bea7-4a0b-4778-8c89 /* Transfer device(s) from one virtual account to another within same smart account. @@ -512,9 +582,9 @@ func (s *LicensesService) LicenseUsageDetails2(smartaccountTypeID string, virtua @param virtualaccountname virtual_account_name path parameter. Name of target virtual account -Documentation Link: https://developer.cisco.com/docs/dna-center/#!change-virtual-account2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!change-virtual-account-v1 */ -func (s *LicensesService) ChangeVirtualAccount2(smartaccountTypeID string, virtualaccountname string, requestLicensesChangeVirtualAccount2 *RequestLicensesChangeVirtualAccount2) (*ResponseLicensesChangeVirtualAccount2, *resty.Response, error) { +func (s *LicensesService) ChangeVirtualAccount(smartaccountTypeID string, virtualaccountname string, requestLicensesChangeVirtualAccount *RequestLicensesChangeVirtualAccount) (*ResponseLicensesChangeVirtualAccount, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/smartAccount/{smart_account_id}/virtualAccount/{virtual_account_name}/device/transfer" path = strings.Replace(path, "{smart_account_id}", fmt.Sprintf("%v", smartaccountTypeID), -1) path = strings.Replace(path, "{virtual_account_name}", fmt.Sprintf("%v", virtualaccountname), -1) @@ -522,8 +592,8 @@ func (s *LicensesService) ChangeVirtualAccount2(smartaccountTypeID string, virtu response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestLicensesChangeVirtualAccount2). - SetResult(&ResponseLicensesChangeVirtualAccount2{}). + SetBody(requestLicensesChangeVirtualAccount). + SetResult(&ResponseLicensesChangeVirtualAccount{}). SetError(&Error). Post(path) @@ -535,30 +605,63 @@ func (s *LicensesService) ChangeVirtualAccount2(smartaccountTypeID string, virtu if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.ChangeVirtualAccount2(smartaccountTypeID, virtualaccountname, requestLicensesChangeVirtualAccount2) + return s.ChangeVirtualAccount(smartaccountTypeID, virtualaccountname, requestLicensesChangeVirtualAccount) } - return nil, response, fmt.Errorf("error with operation ChangeVirtualAccount2") + return nil, response, fmt.Errorf("error with operation ChangeVirtualAccount") + } + + result := response.Result().(*ResponseLicensesChangeVirtualAccount) + return result, response, err + +} + +//UpdateLicenseSetting Update license setting - 97ae-8980-475a-961e +/* Update license setting Configure default smart account id and/or virtual account id for auto registration of devices for smart license flow. Virtual account should be part of default smart account. Default smart account id cannot be set to 'null'. Auto registration of devices for smart license flow is applicable only for direct or on-prem SSM connection mode. + + + */ +func (s *LicensesService) UpdateLicenseSetting(requestLicensesUpdateLicenseSetting *RequestLicensesUpdateLicenseSetting) (*ResponseLicensesUpdateLicenseSetting, *resty.Response, error) { + path := "/dna/intent/api/v1/licenseSetting" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestLicensesUpdateLicenseSetting). + SetResult(&ResponseLicensesUpdateLicenseSetting{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateLicenseSetting(requestLicensesUpdateLicenseSetting) + } + return nil, response, fmt.Errorf("error with operation UpdateLicenseSetting") } - result := response.Result().(*ResponseLicensesChangeVirtualAccount2) + result := response.Result().(*ResponseLicensesUpdateLicenseSetting) return result, response, err } -//DeviceDeregistration2 Device Deregistration - 8c82-dad4-49ba-b8eb +//DeviceDeregistration Device Deregistration - 8c82-dad4-49ba-b8eb /* Deregister device(s) from CSSM(Cisco Smart Software Manager). */ -func (s *LicensesService) DeviceDeregistration2(requestLicensesDeviceDeregistration2 *RequestLicensesDeviceDeregistration2) (*ResponseLicensesDeviceDeregistration2, *resty.Response, error) { +func (s *LicensesService) DeviceDeregistration(requestLicensesDeviceDeregistration *RequestLicensesDeviceDeregistration) (*ResponseLicensesDeviceDeregistration, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/smartAccount/virtualAccount/deregister" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestLicensesDeviceDeregistration2). - SetResult(&ResponseLicensesDeviceDeregistration2{}). + SetBody(requestLicensesDeviceDeregistration). + SetResult(&ResponseLicensesDeviceDeregistration{}). SetError(&Error). Put(path) @@ -569,32 +672,32 @@ func (s *LicensesService) DeviceDeregistration2(requestLicensesDeviceDeregistrat if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeviceDeregistration2(requestLicensesDeviceDeregistration2) + return s.DeviceDeregistration(requestLicensesDeviceDeregistration) } - return nil, response, fmt.Errorf("error with operation DeviceDeregistration2") + return nil, response, fmt.Errorf("error with operation DeviceDeregistration") } - result := response.Result().(*ResponseLicensesDeviceDeregistration2) + result := response.Result().(*ResponseLicensesDeviceDeregistration) return result, response, err } -//DeviceRegistration2 Device Registration - a08b-eae5-47fb-95e3 +//DeviceRegistration Device Registration - a08b-eae5-47fb-95e3 /* Register device(s) in CSSM(Cisco Smart Software Manager). @param virtualaccountname virtual_account_name path parameter. Name of virtual account */ -func (s *LicensesService) DeviceRegistration2(virtualaccountname string, requestLicensesDeviceRegistration2 *RequestLicensesDeviceRegistration2) (*ResponseLicensesDeviceRegistration2, *resty.Response, error) { +func (s *LicensesService) DeviceRegistration(virtualaccountname string, requestLicensesDeviceRegistration *RequestLicensesDeviceRegistration) (*ResponseLicensesDeviceRegistration, *resty.Response, error) { path := "/dna/intent/api/v1/licenses/smartAccount/virtualAccount/{virtual_account_name}/register" path = strings.Replace(path, "{virtual_account_name}", fmt.Sprintf("%v", virtualaccountname), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestLicensesDeviceRegistration2). - SetResult(&ResponseLicensesDeviceRegistration2{}). + SetBody(requestLicensesDeviceRegistration). + SetResult(&ResponseLicensesDeviceRegistration{}). SetError(&Error). Put(path) @@ -605,12 +708,12 @@ func (s *LicensesService) DeviceRegistration2(virtualaccountname string, request if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeviceRegistration2(virtualaccountname, requestLicensesDeviceRegistration2) + return s.DeviceRegistration(virtualaccountname, requestLicensesDeviceRegistration) } - return nil, response, fmt.Errorf("error with operation DeviceRegistration2") + return nil, response, fmt.Errorf("error with operation DeviceRegistration") } - result := response.Result().(*ResponseLicensesDeviceRegistration2) + result := response.Result().(*ResponseLicensesDeviceRegistration) return result, response, err } diff --git a/sdk/network_settings.go b/sdk/network_settings.go index a715408..09f6bef 100644 --- a/sdk/network_settings.go +++ b/sdk/network_settings.go @@ -18,8 +18,8 @@ type GetDeviceCredentialDetailsQueryParams struct { SiteID string `url:"siteId,omitempty"` //Site id to retrieve the credential details associated with the site. } type GetGlobalPoolQueryParams struct { - Offset int `url:"offset,omitempty"` //offset/starting row - Limit int `url:"limit,omitempty"` //No of Global Pools to be retrieved + Offset float64 `url:"offset,omitempty"` //Offset/starting row. Indexed from 1. Default value of 1. + Limit float64 `url:"limit,omitempty"` //Number of Global Pools to be retrieved. Default is 25 if not specified. } type GetNetworkQueryParams struct { SiteID string `url:"siteId,omitempty"` //Site id to get the network settings associated with the site. @@ -28,12 +28,42 @@ type CreateNetworkHeaderParams struct { Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. Persist bapi sync response } type GetReserveIPSubpoolQueryParams struct { - SiteID string `url:"siteId,omitempty"` //site id to get the reserve ip associated with the site - Offset int `url:"offset,omitempty"` //offset/starting row - Limit int `url:"limit,omitempty"` //No of Global Pools to be retrieved + SiteID string `url:"siteId,omitempty"` //site id of site from which to retrieve associated reserve pools. Either siteId (per site queries) or ignoreInheritedGroups must be used. They can also be used together. + Offset float64 `url:"offset,omitempty"` //offset/starting row. Indexed from 1. + Limit float64 `url:"limit,omitempty"` //Number of reserve pools to be retrieved. Default is 25 if not specified. Maximum allowed limit is 500. + IgnoreInheritedGroups string `url:"ignoreInheritedGroups,omitempty"` //Ignores pools inherited from parent site. Either siteId or ignoreInheritedGroups must be passed. They can also be used together. + PoolUsage string `url:"poolUsage,omitempty"` //Can take values empty, partially-full or empty-partially-full + GroupName string `url:"groupName,omitempty"` //Name of the group } type UpdateReserveIPSubpoolQueryParams struct { - ID string `url:"id,omitempty"` //Id of subpool to be associated with the site + ID string `url:"id,omitempty"` //Id of subpool group +} +type RetrieveAAASettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. +} +type RetrieveBannerSettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. +} +type GetDeviceCredentialSettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. +} +type RetrieveDHCPSettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. +} +type RetrieveDNSSettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. +} +type RetrieveImageDistributionSettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. +} +type RetrieveNTPSettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. +} +type RetrieveTelemetrySettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. +} +type RetrieveTimeZoneSettingsForASiteQueryParams struct { + Inherited bool `url:"_inherited,omitempty"` //Include settings explicitly set for this site and settings inherited from sites higher in the site hierarchy; when `false`, `null` values indicate that the site inherits that setting from the parent site or a site higher in the site hierarchy. } type GetNetworkV2QueryParams struct { SiteID string `url:"siteId,omitempty"` //Site Id to get the network settings associated with the site. @@ -142,10 +172,10 @@ type ResponseNetworkSettingsGetGlobalPoolResponse struct { IPPoolName string `json:"ipPoolName,omitempty"` // Ip Pool Name DhcpServerIPs []string `json:"dhcpServerIps,omitempty"` // Dhcp Server Ips Gateways []string `json:"gateways,omitempty"` // Gateways - CreateTime int `json:"createTime,omitempty"` // Create Time - LastUpdateTime int `json:"lastUpdateTime,omitempty"` // Last Update Time - TotalIPAddressCount int `json:"totalIpAddressCount,omitempty"` // Total Ip Address Count - UsedIPAddressCount int `json:"usedIpAddressCount,omitempty"` // Used Ip Address Count + CreateTime *int `json:"createTime,omitempty"` // Create Time + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time + TotalIPAddressCount *int `json:"totalIpAddressCount,omitempty"` // Total Ip Address Count + UsedIPAddressCount *int `json:"usedIpAddressCount,omitempty"` // Used Ip Address Count ParentUUID string `json:"parentUuid,omitempty"` // Parent Uuid Owner string `json:"owner,omitempty"` // Owner Shared *bool `json:"shared,omitempty"` // Shared @@ -153,17 +183,17 @@ type ResponseNetworkSettingsGetGlobalPoolResponse struct { ConfigureExternalDhcp *bool `json:"configureExternalDhcp,omitempty"` // Configure External Dhcp UsedPercentage string `json:"usedPercentage,omitempty"` // Used Percentage ClientOptions *ResponseNetworkSettingsGetGlobalPoolResponseClientOptions `json:"clientOptions,omitempty"` // Client Options + IPPoolType string `json:"ipPoolType,omitempty"` // Ip Pool Type + UnavailableIPAddressCount *float64 `json:"unavailableIpAddressCount,omitempty"` // Unavailable Ip Address Count + AvailableIPAddressCount *float64 `json:"availableIpAddressCount,omitempty"` // Available Ip Address Count + TotalAssignableIPAddressCount *int `json:"totalAssignableIpAddressCount,omitempty"` // Total Assignable Ip Address Count DNSServerIPs []string `json:"dnsServerIps,omitempty"` // Dns Server Ips + HasSubpools *bool `json:"hasSubpools,omitempty"` // Has Subpools + DefaultAssignedIPAddressCount *int `json:"defaultAssignedIpAddressCount,omitempty"` // Default Assigned Ip Address Count Context *[]ResponseNetworkSettingsGetGlobalPoolResponseContext `json:"context,omitempty"` // IPv6 *bool `json:"ipv6,omitempty"` // Ipv6 ID string `json:"id,omitempty"` // Id IPPoolCidr string `json:"ipPoolCidr,omitempty"` // Ip Pool Cidr - IPPoolType string `json:"ipPoolType,omitempty"` // ipPoolType - UnavailableIpAddressCount int `json:"unavailableIpAddressCount,omitempty"` // unavailableIpAddressCount - AvailableIpAddressCount int `json:"availableIpAddressCount,omitempty"` // availableIpAddressCount - TotalAssignableIpAddressCount int `json:"totalAssignableIpAddressCount,omitempty"` // totalAssignableIpAddressCount - HasSubpools *bool `json:"hasSubpools,omitempty"` // hasSubpools - DefaultAssignedIpAddressCount int `json:"defaultAssignedIpAddressCount,omitempty"` // defaultAssignedIpAddressCount } type ResponseNetworkSettingsGetGlobalPoolResponseClientOptions interface{} type ResponseNetworkSettingsGetGlobalPoolResponseContext struct { @@ -230,33 +260,30 @@ type ResponseNetworkSettingsGetReserveIPSubpoolResponse struct { GroupOwner string `json:"groupOwner,omitempty"` // Group Owner } type ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPools struct { - IPPoolName string `json:"ipPoolName,omitempty"` // Ip Pool Name - DhcpServerIPs []string `json:"dhcpServerIps,omitempty"` // Dhcp Server Ips - Gateways []string `json:"gateways,omitempty"` // Gateways - CreateTime *int `json:"createTime,omitempty"` // Create Time - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time - TotalIPAddressCount *int `json:"totalIpAddressCount,omitempty"` // Total Ip Address Count - UsedIPAddressCount *int `json:"usedIpAddressCount,omitempty"` // Used Ip Address Count - ParentUUID string `json:"parentUuid,omitempty"` // Parent Uuid - Owner string `json:"owner,omitempty"` // Owner - Shared *bool `json:"shared,omitempty"` // Shared - Overlapping *bool `json:"overlapping,omitempty"` // Overlapping - ConfigureExternalDhcp *bool `json:"configureExternalDhcp,omitempty"` // Configure External Dhcp - UsedPercentage string `json:"usedPercentage,omitempty"` // Used Percentage - ClientOptions *ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsClientOptions `json:"clientOptions,omitempty"` // Client Options - GroupUUID string `json:"groupUuid,omitempty"` // Group Uuid - DNSServerIPs []string `json:"dnsServerIps,omitempty"` // Dns Server Ips - Context *[]ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsContext `json:"context,omitempty"` // - IPv6 *bool `json:"ipv6,omitempty"` // Ipv6 - ID string `json:"id,omitempty"` // Id - IPPoolCidr string `json:"ipPoolCidr,omitempty"` // Ip Pool Cidr -} - -// type ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsDhcpServerIPs interface{} - + IPPoolName string `json:"ipPoolName,omitempty"` // Ip Pool Name + DhcpServerIPs *[]ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsDhcpServerIPs `json:"dhcpServerIps,omitempty"` // Dhcp Server Ips + Gateways []string `json:"gateways,omitempty"` // Gateways + CreateTime *int `json:"createTime,omitempty"` // Create Time + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time + TotalIPAddressCount *int `json:"totalIpAddressCount,omitempty"` // Total Ip Address Count + UsedIPAddressCount *int `json:"usedIpAddressCount,omitempty"` // Used Ip Address Count + ParentUUID string `json:"parentUuid,omitempty"` // Parent Uuid + Owner string `json:"owner,omitempty"` // Owner + Shared *bool `json:"shared,omitempty"` // Shared + Overlapping *bool `json:"overlapping,omitempty"` // Overlapping + ConfigureExternalDhcp *bool `json:"configureExternalDhcp,omitempty"` // Configure External Dhcp + UsedPercentage string `json:"usedPercentage,omitempty"` // Used Percentage + ClientOptions *ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsClientOptions `json:"clientOptions,omitempty"` // Client Options + GroupUUID string `json:"groupUuid,omitempty"` // Group Uuid + DNSServerIPs *[]ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsDNSServerIPs `json:"dnsServerIps,omitempty"` // Dns Server Ips + Context *[]ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsContext `json:"context,omitempty"` // + IPv6 *bool `json:"ipv6,omitempty"` // Ipv6 + ID string `json:"id,omitempty"` // Id + IPPoolCidr string `json:"ipPoolCidr,omitempty"` // Ip Pool Cidr +} +type ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsDhcpServerIPs interface{} type ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsClientOptions interface{} - -// type ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsDNSServerIPs interface{} +type ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsDNSServerIPs interface{} type ResponseNetworkSettingsGetReserveIPSubpoolResponseIPPoolsContext struct { Owner string `json:"owner,omitempty"` // Owner ContextKey string `json:"contextKey,omitempty"` // Context Key @@ -279,7 +306,7 @@ type ResponseNetworkSettingsUpdateReserveIPSubpool struct { } type ResponseNetworkSettingsGetServiceProviderDetails struct { Response *[]ResponseNetworkSettingsGetServiceProviderDetailsResponse `json:"response,omitempty"` // - Version *int `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version } type ResponseNetworkSettingsGetServiceProviderDetailsResponse struct { InstanceType string `json:"instanceType,omitempty"` // Instance Type @@ -287,7 +314,7 @@ type ResponseNetworkSettingsGetServiceProviderDetailsResponse struct { Namespace string `json:"namespace,omitempty"` // Namespace Type string `json:"type,omitempty"` // Type Key string `json:"key,omitempty"` // Key - Version string `json:"version,omitempty"` // Version + Version *int `json:"version,omitempty"` // Version Value *[]ResponseNetworkSettingsGetServiceProviderDetailsResponseValue `json:"value,omitempty"` // GroupUUID string `json:"groupUuid,omitempty"` // Group Uuid InheritedGroupUUID string `json:"inheritedGroupUuid,omitempty"` // Inherited Group Uuid @@ -308,11 +335,313 @@ type ResponseNetworkSettingsUpdateSpProfile struct { ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url Message string `json:"message,omitempty"` // Message } +type ResponseNetworkSettingsSyncNetworkDevicesCredential struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSyncNetworkDevicesCredentialResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSyncNetworkDevicesCredentialResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsSetAAASettingsForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSetAAASettingsForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSetAAASettingsForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsRetrieveAAASettingsForASite struct { + Response *ResponseNetworkSettingsRetrieveAAASettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsRetrieveAAASettingsForASiteResponse struct { + AAANetwork *ResponseNetworkSettingsRetrieveAAASettingsForASiteResponseAAANetwork `json:"aaaNetwork,omitempty"` // + AAAClient *ResponseNetworkSettingsRetrieveAAASettingsForASiteResponseAAAClient `json:"aaaClient,omitempty"` // +} +type ResponseNetworkSettingsRetrieveAAASettingsForASiteResponseAAANetwork struct { + ServerType string `json:"serverType,omitempty"` // Server Type + Protocol string `json:"protocol,omitempty"` // Protocol + Pan string `json:"pan,omitempty"` // Administration Node. Required for ISE. + PrimaryServerIP string `json:"primaryServerIp,omitempty"` // The server to use as a primary. + SecondaryServerIP string `json:"secondaryServerIp,omitempty"` // The server to use as a secondary. + SharedSecret string `json:"sharedSecret,omitempty"` // Shared Secret + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name. +} +type ResponseNetworkSettingsRetrieveAAASettingsForASiteResponseAAAClient struct { + ServerType string `json:"serverType,omitempty"` // Server Type + Protocol string `json:"protocol,omitempty"` // Protocol + Pan string `json:"pan,omitempty"` // Administration Node. Required for ISE. + PrimaryServerIP string `json:"primaryServerIp,omitempty"` // The server to use as a primary. + SecondaryServerIP string `json:"secondaryServerIp,omitempty"` // The server to use as a secondary. + SharedSecret string `json:"sharedSecret,omitempty"` // Shared Secret + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name. +} +type ResponseNetworkSettingsRetrieveBannerSettingsForASite struct { + Response *ResponseNetworkSettingsRetrieveBannerSettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsRetrieveBannerSettingsForASiteResponse struct { + Banner *ResponseNetworkSettingsRetrieveBannerSettingsForASiteResponseBanner `json:"banner,omitempty"` // +} +type ResponseNetworkSettingsRetrieveBannerSettingsForASiteResponseBanner struct { + Type string `json:"type,omitempty"` // Type + Message string `json:"message,omitempty"` // Custom message that appears when logging into routers, switches, and hubs. Required for custom type. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name. +} +type ResponseNetworkSettingsSetBannerSettingsForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSetBannerSettingsForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSetBannerSettingsForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsGetDeviceCredentialSettingsForASite struct { + Response *ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponse struct { + CliCredentialsID *ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseCliCredentialsID `json:"cliCredentialsId,omitempty"` // + SNMPv2CReadCredentialsID *ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseSNMPv2CReadCredentialsID `json:"snmpv2cReadCredentialsId,omitempty"` // + SNMPv2CWriteCredentialsID *ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseSNMPv2CWriteCredentialsID `json:"snmpv2cWriteCredentialsId,omitempty"` // + SNMPv3CredentialsID *ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseSNMPv3CredentialsID `json:"snmpv3CredentialsId,omitempty"` // + HTTPReadCredentialsID *ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseHTTPReadCredentialsID `json:"httpReadCredentialsId,omitempty"` // + HTTPWriteCredentialsID *ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseHTTPWriteCredentialsID `json:"httpWriteCredentialsId,omitempty"` // +} +type ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseCliCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseSNMPv2CReadCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseSNMPv2CWriteCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseSNMPv3CredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseHTTPReadCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsGetDeviceCredentialSettingsForASiteResponseHTTPWriteCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsUpdateDeviceCredentialSettingsForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsUpdateDeviceCredentialSettingsForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsUpdateDeviceCredentialSettingsForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatus struct { + Response *ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponse struct { + Cli *[]ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponseCli `json:"cli,omitempty"` // + SNMPV2Read *[]ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponseSNMPV2Read `json:"snmpV2Read,omitempty"` // + SNMPV2Write *[]ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponseSNMPV2Write `json:"snmpV2Write,omitempty"` // + SNMPV3 *[]ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponseSNMPV3 `json:"snmpV3,omitempty"` // +} +type ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponseCli struct { + DeviceCount *int `json:"deviceCount,omitempty"` // Device count + Status string `json:"status,omitempty"` // Sync status +} +type ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponseSNMPV2Read struct { + DeviceCount *int `json:"deviceCount,omitempty"` // Device count + Status string `json:"status,omitempty"` // Sync status +} +type ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponseSNMPV2Write struct { + DeviceCount *int `json:"deviceCount,omitempty"` // Device count + Status string `json:"status,omitempty"` // Sync status +} +type ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatusResponseSNMPV3 struct { + DeviceCount *int `json:"deviceCount,omitempty"` // Device count + Status string `json:"status,omitempty"` // Sync status +} +type ResponseNetworkSettingsSetDhcpSettingsForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSetDhcpSettingsForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSetDhcpSettingsForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsRetrieveDHCPSettingsForASite struct { + Response *ResponseNetworkSettingsRetrieveDHCPSettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsRetrieveDHCPSettingsForASiteResponse struct { + Dhcp *ResponseNetworkSettingsRetrieveDHCPSettingsForASiteResponseDhcp `json:"dhcp,omitempty"` // +} +type ResponseNetworkSettingsRetrieveDHCPSettingsForASiteResponseDhcp struct { + Servers []string `json:"servers,omitempty"` // DHCP servers for managing client device networking configuration. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name. +} +type ResponseNetworkSettingsRetrieveDNSSettingsForASite struct { + Response *ResponseNetworkSettingsRetrieveDNSSettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsRetrieveDNSSettingsForASiteResponse struct { + DNS *ResponseNetworkSettingsRetrieveDNSSettingsForASiteResponseDNS `json:"dns,omitempty"` // +} +type ResponseNetworkSettingsRetrieveDNSSettingsForASiteResponseDNS struct { + DomainName string `json:"domainName,omitempty"` // Network's domain name. + DNSServers []string `json:"dnsServers,omitempty"` // DNS servers for hostname resolution. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name. +} +type ResponseNetworkSettingsSetDNSSettingsForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSetDNSSettingsForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSetDNSSettingsForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsSetImageDistributionSettingsForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSetImageDistributionSettingsForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSetImageDistributionSettingsForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsRetrieveImageDistributionSettingsForASite struct { + Response *ResponseNetworkSettingsRetrieveImageDistributionSettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsRetrieveImageDistributionSettingsForASiteResponse struct { + ImageDistribution *ResponseNetworkSettingsRetrieveImageDistributionSettingsForASiteResponseImageDistribution `json:"imageDistribution,omitempty"` // +} +type ResponseNetworkSettingsRetrieveImageDistributionSettingsForASiteResponseImageDistribution struct { + Servers []string `json:"servers,omitempty"` // This field holds an array of unique identifiers representing image distribution servers. SFTP servers to act as image distribution servers. A distributed SWIM architecture, using suitably located SFTP servers, can help support large-scale device software image upgrades and conserve WAN bandwidth. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name. +} +type ResponseNetworkSettingsSetNTPSettingsForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSetNTPSettingsForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSetNTPSettingsForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsRetrieveNTPSettingsForASite struct { + Response *ResponseNetworkSettingsRetrieveNTPSettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsRetrieveNTPSettingsForASiteResponse struct { + Ntp *ResponseNetworkSettingsRetrieveNTPSettingsForASiteResponseNtp `json:"ntp,omitempty"` // +} +type ResponseNetworkSettingsRetrieveNTPSettingsForASiteResponseNtp struct { + Servers []string `json:"servers,omitempty"` // NTP servers to facilitate system clock synchronization for your network. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name. +} +type ResponseNetworkSettingsRetrieveTelemetrySettingsForASite struct { + Response *ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponse struct { + WiredDataCollection *ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseWiredDataCollection `json:"wiredDataCollection,omitempty"` // + WirelessTelemetry *ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseWirelessTelemetry `json:"wirelessTelemetry,omitempty"` // + SNMPTraps *ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseSNMPTraps `json:"snmpTraps,omitempty"` // + Syslogs *ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseSyslogs `json:"syslogs,omitempty"` // + ApplicationVisibility *ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseApplicationVisibility `json:"applicationVisibility,omitempty"` // +} +type ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseWiredDataCollection struct { + EnableWiredDataCollectio *bool `json:"enableWiredDataCollectio,omitempty"` // Track the presence, location, and movement of wired endpoints in the network. Traffic received from endpoints is used to extract and store their identity information (MAC address and IP address). Other features, such as IEEE 802.1X, web authentication, Cisco Security Groups (formerly TrustSec), SD-Access, and Assurance, depend on this identity information to operate properly. Wired Endpoint Data Collection enables Device Tracking policies on devices assigned to the Access role in Inventory. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseWirelessTelemetry struct { + EnableWirelessTelemetry *bool `json:"enableWirelessTelemetry,omitempty"` // Enables Streaming Telemetry on your wireless controllers in order to determine the health of your wireless controller, access points and wireless clients. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseSNMPTraps struct { + UseBuiltinTrapServer *bool `json:"useBuiltinTrapServer,omitempty"` // Enable this server as a destination server for SNMP traps and messages from your network + ExternalTrapServers []string `json:"externalTrapServers,omitempty"` // External SNMP trap servers. Example: ["250.162.252.170","2001:db8:3c4d:15::1a2f:1a2b"] + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseSyslogs struct { + UseBuiltinSyslogServer *bool `json:"useBuiltinSyslogServer,omitempty"` // Enable this server as a destination server for syslog messages. + ExternalSyslogServers []string `json:"externalSyslogServers,omitempty"` // External syslog servers. Example: ["250.162.252.170", "2001:db8:3c4d:15::1a2f:1a2b"] + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseApplicationVisibility struct { + Collector *ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseApplicationVisibilityCollector `json:"collector,omitempty"` // + EnableOnWiredAccessDevices *bool `json:"enableOnWiredAccessDevices,omitempty"` // Enable Netflow Application Telemetry and Controller Based Application Recognition (CBAR) by default upon network device site assignment for wired access devices. + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name +} +type ResponseNetworkSettingsRetrieveTelemetrySettingsForASiteResponseApplicationVisibilityCollector struct { + CollectorType string `json:"collectorType,omitempty"` // Collector Type + Address string `json:"address,omitempty"` // IP Address. If collection type is 'TelemetryBrokerOrUDPDirector', this field value is mandatory otherwise it is optional. Examples: "250.162.252.170", "2001:db8:3c4d:15::1a2f:1a2b" + Port *int `json:"port,omitempty"` // Min:1; Max: 65535. If collection type is 'TelemetryBrokerOrUDPDirector', this field value is mandatory otherwise it is optional. +} +type ResponseNetworkSettingsSetTelemetrySettingsForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSetTelemetrySettingsForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSetTelemetrySettingsForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsSetTimeZoneForASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsSetTimeZoneForASiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsSetTimeZoneForASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseNetworkSettingsRetrieveTimeZoneSettingsForASite struct { + Response *ResponseNetworkSettingsRetrieveTimeZoneSettingsForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseNetworkSettingsRetrieveTimeZoneSettingsForASiteResponse struct { + TimeZone *ResponseNetworkSettingsRetrieveTimeZoneSettingsForASiteResponseTimeZone `json:"timeZone,omitempty"` // +} +type ResponseNetworkSettingsRetrieveTimeZoneSettingsForASiteResponseTimeZone struct { + IDentifier string `json:"identifier,omitempty"` // Time zone that corresponds to the site's physical location. The site time zone is used when scheduling device provisioning and updates. Example : GMT + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Inherited Site Id. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Inherited Site Name. +} type ResponseNetworkSettingsDeleteSpProfile struct { ExecutionID string `json:"executionId,omitempty"` // Execution Id ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url Message string `json:"message,omitempty"` // Message } +type ResponseNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSiteResponse `json:"response,omitempty"` // +} +type ResponseNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} type ResponseNetworkSettingsAssignDeviceCredentialToSiteV2 struct { Response *ResponseNetworkSettingsAssignDeviceCredentialToSiteV2Response `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version @@ -325,16 +654,16 @@ type ResponseNetworkSettingsGetNetworkV2 struct { Response *[]ResponseNetworkSettingsGetNetworkV2Response `json:"response,omitempty"` // } type ResponseNetworkSettingsGetNetworkV2Response struct { - InstanceType string `json:"instanceType,omitempty"` // Instance Type - InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid - Namespace string `json:"namespace,omitempty"` // Namespace - Type string `json:"type,omitempty"` // Type - Key string `json:"key,omitempty"` // Key - Version *int `json:"version,omitempty"` // Version - Value interface{} `json:"value,omitempty"` // Value - GroupUUID string `json:"groupUuid,omitempty"` // Group Uuid - InheritedGroupUUID string `json:"inheritedGroupUuid,omitempty"` // Inherited Group Uuid - InheritedGroupName string `json:"inheritedGroupName,omitempty"` // Inherited Group Name + InstanceType string `json:"instanceType,omitempty"` // Instance Type + InstanceUUID string `json:"instanceUuid,omitempty"` // Instance Uuid + Namespace string `json:"namespace,omitempty"` // Namespace + Type string `json:"type,omitempty"` // Type + Key string `json:"key,omitempty"` // Key + Version *int `json:"version,omitempty"` // Version + Value []string `json:"value,omitempty"` // Value + GroupUUID string `json:"groupUuid,omitempty"` // Group Uuid + InheritedGroupUUID string `json:"inheritedGroupUuid,omitempty"` // Inherited Group Uuid + InheritedGroupName string `json:"inheritedGroupName,omitempty"` // Inherited Group Name } type ResponseNetworkSettingsCreateNetworkV2 struct { Response *ResponseNetworkSettingsCreateNetworkV2Response `json:"response,omitempty"` // @@ -634,40 +963,40 @@ type RequestNetworkSettingsUpdateNetworkSettingsClientAndEndpointAAA struct { type RequestNetworkSettingsReserveIPSubpool struct { Name string `json:"name,omitempty"` // Name of the reserve ip sub pool Type string `json:"type,omitempty"` // Type of the reserve ip sub pool - IPv6AddressSpace *bool `json:"ipv6AddressSpace,omitempty"` // If the value is false only ipv4 input are required, otherwise both ipv6 and ipv4 are required + IPv6AddressSpace *bool `json:"ipv6AddressSpace,omitempty"` // If the value is omitted or false only ipv4 input are required, otherwise both ipv6 and ipv4 are required IPv4GlobalPool string `json:"ipv4GlobalPool,omitempty"` // IP v4 Global pool address with cidr, example: 175.175.0.0/16 IPv4Prefix *bool `json:"ipv4Prefix,omitempty"` // IPv4 prefix value is true, the ip4 prefix length input field is enabled , if it is false ipv4 total Host input is enable IPv4PrefixLength *int `json:"ipv4PrefixLength,omitempty"` // The ipv4 prefix length is required when ipv4prefix value is true. - IPv4Subnet string `json:"ipv4Subnet,omitempty"` // IPv4 Subnet address, example: 175.175.0.0 + IPv4Subnet string `json:"ipv4Subnet,omitempty"` // IPv4 Subnet address, example: 175.175.0.0. Either ipv4Subnet or ipv4TotalHost needs to be passed if creating IPv4 subpool. IPv4GateWay string `json:"ipv4GateWay,omitempty"` // Gateway ip address details, example: 175.175.0.1 - IPv4DhcpServers []string `json:"ipv4DhcpServers,omitempty"` // IPv4 input for dhcp server ip example: 1.1.1.1 - IPv4DNSServers []string `json:"ipv4DnsServers,omitempty"` // IPv4 input for dns server ip example: 4.4.4.4 + IPv4DhcpServers []string `json:"ipv4DhcpServers,omitempty"` // IPv4 input for dhcp server ip example: ["1.1.1.1"] + IPv4DNSServers []string `json:"ipv4DnsServers,omitempty"` // IPv4 input for dns server ip example: ["4.4.4.4"] IPv6GlobalPool string `json:"ipv6GlobalPool,omitempty"` // IPv6 Global pool address with cidr this is required when Ipv6AddressSpace value is true, example: 2001:db8:85a3::/64 IPv6Prefix *bool `json:"ipv6Prefix,omitempty"` // Ipv6 prefix value is true, the ip6 prefix length input field is enabled , if it is false ipv6 total Host input is enable IPv6PrefixLength *int `json:"ipv6PrefixLength,omitempty"` // IPv6 prefix length is required when the ipv6prefix value is true - IPv6Subnet string `json:"ipv6Subnet,omitempty"` // IPv6 Subnet address, example :2001:db8:85a3:0:100:: + IPv6Subnet string `json:"ipv6Subnet,omitempty"` // IPv6 Subnet address, example :2001:db8:85a3:0:100::. Either ipv6Subnet or ipv6TotalHost needs to be passed if creating IPv6 subpool. IPv6GateWay string `json:"ipv6GateWay,omitempty"` // Gateway ip address details, example: 2001:db8:85a3:0:100::1 - IPv6DhcpServers []string `json:"ipv6DhcpServers,omitempty"` // IPv6 format dhcp server as input example : 2001:db8::1234 - IPv6DNSServers []string `json:"ipv6DnsServers,omitempty"` // IPv6 format dns server input example: 2001:db8::1234 + IPv6DhcpServers []string `json:"ipv6DhcpServers,omitempty"` // IPv6 format dhcp server as input example : ["2001:db8::1234"] + IPv6DNSServers []string `json:"ipv6DnsServers,omitempty"` // IPv6 format dns server input example: ["2001:db8::1234"] IPv4TotalHost *int `json:"ipv4TotalHost,omitempty"` // IPv4 total host is required when ipv4prefix value is false. IPv6TotalHost *int `json:"ipv6TotalHost,omitempty"` // IPv6 total host is required when ipv6prefix value is false. SLAacSupport *bool `json:"slaacSupport,omitempty"` // Slaac Support } type RequestNetworkSettingsUpdateReserveIPSubpool struct { Name string `json:"name,omitempty"` // Name of the reserve ip sub pool - IPv6AddressSpace *bool `json:"ipv6AddressSpace,omitempty"` // If the value is false only ipv4 input are required, otherwise both ipv6 and ipv4 are required - IPv4DhcpServers []string `json:"ipv4DhcpServers,omitempty"` // IPv4 input for dhcp server ip example: 1.1.1.1 - IPv4DNSServers []string `json:"ipv4DnsServers,omitempty"` // IPv4 input for dns server ip example: 4.4.4.4 - IPv6GlobalPool string `json:"ipv6GlobalPool,omitempty"` // IP v6 Global pool address with cidr this is required when Ipv6AddressSpace value is true, example: 2001:db8:85a3::/64 - IPv6Prefix *bool `json:"ipv6Prefix,omitempty"` // IPv6 prefix value is true, the ip6 prefix length input field is enabled , if it is false ipv6 total Host input is enable + IPv6AddressSpace *bool `json:"ipv6AddressSpace,omitempty"` // If the value is false only ipv4 input are required. NOTE if value is false then any existing ipv6 subpool in the group will be removed. + IPv4DhcpServers []string `json:"ipv4DhcpServers,omitempty"` // IPv4 input for dhcp server ip example: ["1.1.1.1"] + IPv4DNSServers []string `json:"ipv4DnsServers,omitempty"` // IPv4 input for dns server ip example: ["4.4.4.4"] + IPv6GlobalPool string `json:"ipv6GlobalPool,omitempty"` // IPv6 Global pool address with cidr this is required when Ipv6AddressSpace value is true, example: 2001:db8:85a3::/64 + IPv6Prefix *bool `json:"ipv6Prefix,omitempty"` // Ipv6 prefix value is true, the ip6 prefix length input field is enabled, if it is false ipv6 total Host input is enable IPv6PrefixLength *int `json:"ipv6PrefixLength,omitempty"` // IPv6 prefix length is required when the ipv6prefix value is true - IPv6Subnet string `json:"ipv6Subnet,omitempty"` // IPv6 Subnet address, example :2001:db8:85a3:0:100:: + IPv6Subnet string `json:"ipv6Subnet,omitempty"` // IPv6 Subnet address, example :2001:db8:85a3:0:100::. + IPv6TotalHost *int `json:"ipv6TotalHost,omitempty"` // Size of pool in terms of number of IPs. IPv6 total host is required when ipv6prefix value is false. IPv6GateWay string `json:"ipv6GateWay,omitempty"` // Gateway ip address details, example: 2001:db8:85a3:0:100::1 - IPv6DhcpServers []string `json:"ipv6DhcpServers,omitempty"` // IPv6 format dhcp server as input example : 2001:db8::1234 - IPv6DNSServers []string `json:"ipv6DnsServers,omitempty"` // IPv6 format dns server input example: 2001:db8::1234 - IPv6TotalHost *int `json:"ipv6TotalHost,omitempty"` // IPv6 total host is required when ipv6prefix value is false. + IPv6DhcpServers []string `json:"ipv6DhcpServers,omitempty"` // IPv6 format dhcp server as input example : ["2001:db8::1234"] + IPv6DNSServers []string `json:"ipv6DnsServers,omitempty"` // IPv6 format dns server input example: ["2001:db8::1234"] SLAacSupport *bool `json:"slaacSupport,omitempty"` // Slaac Support - IPv4GateWay string `json:"ipv4GateWay,omitempty"` // Ipv4 Gate Way + IPv4GateWay string `json:"ipv4GateWay,omitempty"` // Gateway ip address details, example: 175.175.0.1 } type RequestNetworkSettingsCreateSpProfile struct { Settings *RequestNetworkSettingsCreateSpProfileSettings `json:"settings,omitempty"` // @@ -692,6 +1021,127 @@ type RequestNetworkSettingsUpdateSpProfileSettingsQos struct { WanProvider string `json:"wanProvider,omitempty"` // Wan Provider OldProfileName string `json:"oldProfileName,omitempty"` // Old Profile Name } +type RequestNetworkSettingsSyncNetworkDevicesCredential struct { + DeviceCredentialID string `json:"deviceCredentialId,omitempty"` // It must be cli/snmpV2Read/snmpV2Write/snmpV3 Id. + SiteID string `json:"siteId,omitempty"` // Site Id. +} +type RequestNetworkSettingsSetAAASettingsForASite struct { + AAANetwork *RequestNetworkSettingsSetAAASettingsForASiteAAANetwork `json:"aaaNetwork,omitempty"` // + AAAClient *RequestNetworkSettingsSetAAASettingsForASiteAAAClient `json:"aaaClient,omitempty"` // +} +type RequestNetworkSettingsSetAAASettingsForASiteAAANetwork struct { + ServerType string `json:"serverType,omitempty"` // Server Type + Protocol string `json:"protocol,omitempty"` // Protocol + Pan string `json:"pan,omitempty"` // Administration Node. Required for ISE. + PrimaryServerIP string `json:"primaryServerIp,omitempty"` // The server to use as a primary. + SecondaryServerIP string `json:"secondaryServerIp,omitempty"` // The server to use as a secondary. + SharedSecret string `json:"sharedSecret,omitempty"` // Shared Secret +} +type RequestNetworkSettingsSetAAASettingsForASiteAAAClient struct { + ServerType string `json:"serverType,omitempty"` // Server Type + Protocol string `json:"protocol,omitempty"` // Protocol + Pan string `json:"pan,omitempty"` // Administration Node. Required for ISE. + PrimaryServerIP string `json:"primaryServerIp,omitempty"` // The server to use as a primary. + SecondaryServerIP string `json:"secondaryServerIp,omitempty"` // The server to use as a secondary. + SharedSecret string `json:"sharedSecret,omitempty"` // Shared Secret +} +type RequestNetworkSettingsSetBannerSettingsForASite struct { + Banner *RequestNetworkSettingsSetBannerSettingsForASiteBanner `json:"banner,omitempty"` // +} +type RequestNetworkSettingsSetBannerSettingsForASiteBanner struct { + Type string `json:"type,omitempty"` // Type + Message string `json:"message,omitempty"` // Custom message that appears when logging into routers, switches, and hubs. Required for custom type. +} +type RequestNetworkSettingsUpdateDeviceCredentialSettingsForASite struct { + CliCredentialsID *RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteCliCredentialsID `json:"cliCredentialsId,omitempty"` // + SNMPv2CReadCredentialsID *RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteSNMPv2CReadCredentialsID `json:"snmpv2cReadCredentialsId,omitempty"` // + SNMPv2CWriteCredentialsID *RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteSNMPv2CWriteCredentialsID `json:"snmpv2cWriteCredentialsId,omitempty"` // + SNMPv3CredentialsID *RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteSNMPv3CredentialsID `json:"snmpv3CredentialsId,omitempty"` // + HTTPReadCredentialsID *RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteHTTPReadCredentialsID `json:"httpReadCredentialsId,omitempty"` // + HTTPWriteCredentialsID *RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteHTTPWriteCredentialsID `json:"httpWriteCredentialsId,omitempty"` // +} +type RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteCliCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. +} +type RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteSNMPv2CReadCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. +} +type RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteSNMPv2CWriteCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. +} +type RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteSNMPv3CredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. +} +type RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteHTTPReadCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. +} +type RequestNetworkSettingsUpdateDeviceCredentialSettingsForASiteHTTPWriteCredentialsID struct { + CredentialsID string `json:"credentialsId,omitempty"` // The `id` of the credentials. +} +type RequestNetworkSettingsSetDhcpSettingsForASite struct { + Dhcp *RequestNetworkSettingsSetDhcpSettingsForASiteDhcp `json:"dhcp,omitempty"` // +} +type RequestNetworkSettingsSetDhcpSettingsForASiteDhcp struct { + Servers []string `json:"servers,omitempty"` // DHCP servers for managing client device networking configuration. Max:10 +} +type RequestNetworkSettingsSetDNSSettingsForASite struct { + DNS *RequestNetworkSettingsSetDNSSettingsForASiteDNS `json:"dns,omitempty"` // +} +type RequestNetworkSettingsSetDNSSettingsForASiteDNS struct { + DomainName string `json:"domainName,omitempty"` // Network's domain name. Example : myCompnay.com + DNSServers []string `json:"dnsServers,omitempty"` // DNS servers for hostname resolution. +} +type RequestNetworkSettingsSetImageDistributionSettingsForASite struct { + ImageDistribution *RequestNetworkSettingsSetImageDistributionSettingsForASiteImageDistribution `json:"imageDistribution,omitempty"` // +} +type RequestNetworkSettingsSetImageDistributionSettingsForASiteImageDistribution struct { + Servers []string `json:"servers,omitempty"` // This field holds an array of unique identifiers representing image distribution servers. Use ā€˜/intent/api/v1/images/distributionServerSettingsā€™ to find the Image distribution server Id. Max:2. Use SFTP servers to act as image distribution servers. A distributed SWIM architecture, using suitably located SFTP servers, can help support large-scale device software image upgrades and conserve WAN bandwidth. +} +type RequestNetworkSettingsSetNTPSettingsForASite struct { + Ntp *RequestNetworkSettingsSetNTPSettingsForASiteNtp `json:"ntp,omitempty"` // +} +type RequestNetworkSettingsSetNTPSettingsForASiteNtp struct { + Servers []string `json:"servers,omitempty"` // NTP servers to facilitate system clock synchronization for your network. Max:10 +} +type RequestNetworkSettingsSetTelemetrySettingsForASite struct { + WiredDataCollection *RequestNetworkSettingsSetTelemetrySettingsForASiteWiredDataCollection `json:"wiredDataCollection,omitempty"` // + WirelessTelemetry *RequestNetworkSettingsSetTelemetrySettingsForASiteWirelessTelemetry `json:"wirelessTelemetry,omitempty"` // + SNMPTraps *RequestNetworkSettingsSetTelemetrySettingsForASiteSNMPTraps `json:"snmpTraps,omitempty"` // + Syslogs *RequestNetworkSettingsSetTelemetrySettingsForASiteSyslogs `json:"syslogs,omitempty"` // + ApplicationVisibility *RequestNetworkSettingsSetTelemetrySettingsForASiteApplicationVisibility `json:"applicationVisibility,omitempty"` // +} +type RequestNetworkSettingsSetTelemetrySettingsForASiteWiredDataCollection struct { + EnableWiredDataCollectio *bool `json:"enableWiredDataCollectio,omitempty"` // Track the presence, location, and movement of wired endpoints in the network. Traffic received from endpoints is used to extract and store their identity information (MAC address and IP address). Other features, such as IEEE 802.1X, web authentication, Cisco Security Groups (formerly TrustSec), SD-Access, and Assurance, depend on this identity information to operate properly. Wired Endpoint Data Collection enables Device Tracking policies on devices assigned to the Access role in Inventory. +} +type RequestNetworkSettingsSetTelemetrySettingsForASiteWirelessTelemetry struct { + EnableWirelessTelemetry *bool `json:"enableWirelessTelemetry,omitempty"` // Enables Streaming Telemetry on your wireless controllers in order to determine the health of your wireless controller, access points and wireless clients. +} +type RequestNetworkSettingsSetTelemetrySettingsForASiteSNMPTraps struct { + UseBuiltinTrapServer *bool `json:"useBuiltinTrapServer,omitempty"` // Enable this server as a destination server for SNMP traps and messages from your network + ExternalTrapServers []string `json:"externalTrapServers,omitempty"` // External SNMP trap servers. Example: ["250.162.252.170","2001:db8:3c4d:15::1a2f:1a2b"] +} +type RequestNetworkSettingsSetTelemetrySettingsForASiteSyslogs struct { + UseBuiltinSyslogServer *bool `json:"useBuiltinSyslogServer,omitempty"` // Enable this server as a destination server for syslog messages. + ExternalSyslogServers []string `json:"externalSyslogServers,omitempty"` // External syslog servers. Example: ["250.162.252.170", "2001:db8:3c4d:15::1a2f:1a2b"] +} +type RequestNetworkSettingsSetTelemetrySettingsForASiteApplicationVisibility struct { + Collector *RequestNetworkSettingsSetTelemetrySettingsForASiteApplicationVisibilityCollector `json:"collector,omitempty"` // + EnableOnWiredAccessDevices *bool `json:"enableOnWiredAccessDevices,omitempty"` // Enable Netflow Application Telemetry and Controller Based Application Recognition (CBAR) by default upon network device site assignment for wired access devices. +} +type RequestNetworkSettingsSetTelemetrySettingsForASiteApplicationVisibilityCollector struct { + CollectorType string `json:"collectorType,omitempty"` // Collector Type + Address string `json:"address,omitempty"` // IP Address. If collection type is 'TelemetryBrokerOrUDPDirector', this field value is mandatory otherwise it is optional. Examples: "250.162.252.170", "2001:db8:3c4d:15::1a2f:1a2b" + Port *int `json:"port,omitempty"` // Min:1; Max: 65535. If collection type is 'TelemetryBrokerOrUDPDirector', this field value is mandatory otherwise it is optional. +} +type RequestNetworkSettingsSetTimeZoneForASite struct { + TimeZone *RequestNetworkSettingsSetTimeZoneForASiteTimeZone `json:"timeZone,omitempty"` // +} +type RequestNetworkSettingsSetTimeZoneForASiteTimeZone struct { + IDentifier string `json:"identifier,omitempty"` // Time zone that corresponds to the site's physical location. The site time zone is used when scheduling device provisioning and updates. Example: GMT +} +type RequestNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite struct { + DeviceIDs []string `json:"deviceIds,omitempty"` // The list of device Ids to perform the provisioning against +} type RequestNetworkSettingsAssignDeviceCredentialToSiteV2 struct { CliID string `json:"cliId,omitempty"` // CLI Credential Id SNMPV2ReadID string `json:"snmpV2ReadId,omitempty"` // SNMPv2c Read Credential Id @@ -825,12 +1275,12 @@ type RequestNetworkSettingsUpdateSpProfileV2SettingsQos struct { } //GetDeviceCredentialDetails Get Device Credential Details - 899f-08e7-401b-82dd -/* API to get device credential details. +/* API to get device credential details. This API has been deprecated and will not be available in a Cisco DNA Center release after August 1st 2024 23:59:59 GMT. Please refer new Intent API : Get All Global Credentials V2 @param GetDeviceCredentialDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-credential-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-credential-details-v1 */ func (s *NetworkSettingsService) GetDeviceCredentialDetails(GetDeviceCredentialDetailsQueryParams *GetDeviceCredentialDetailsQueryParams) (*ResponseNetworkSettingsGetDeviceCredentialDetails, *resty.Response, error) { path := "/dna/intent/api/v1/device-credential" @@ -862,12 +1312,12 @@ func (s *NetworkSettingsService) GetDeviceCredentialDetails(GetDeviceCredentialD } //GetGlobalPool Get Global Pool - c0bc-a856-43c8-b58d -/* API to get global pool. +/* API to get the global pool. @param GetGlobalPoolQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-global-pool +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-global-pool-v1 */ func (s *NetworkSettingsService) GetGlobalPool(GetGlobalPoolQueryParams *GetGlobalPoolQueryParams) (*ResponseNetworkSettingsGetGlobalPool, *resty.Response, error) { path := "/dna/intent/api/v1/global-pool" @@ -904,7 +1354,7 @@ func (s *NetworkSettingsService) GetGlobalPool(GetGlobalPoolQueryParams *GetGlob @param GetNetworkQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-v1 */ func (s *NetworkSettingsService) GetNetwork(GetNetworkQueryParams *GetNetworkQueryParams) (*ResponseNetworkSettingsGetNetwork, *resty.Response, error) { path := "/dna/intent/api/v1/network" @@ -941,7 +1391,7 @@ func (s *NetworkSettingsService) GetNetwork(GetNetworkQueryParams *GetNetworkQue @param GetReserveIPSubpoolQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-reserve-ip-subpool +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-reserve-ip-subpool-v1 */ func (s *NetworkSettingsService) GetReserveIPSubpool(GetReserveIPSubpoolQueryParams *GetReserveIPSubpoolQueryParams) (*ResponseNetworkSettingsGetReserveIPSubpool, *resty.Response, error) { path := "/dna/intent/api/v1/reserve-ip-subpool" @@ -977,7 +1427,7 @@ func (s *NetworkSettingsService) GetReserveIPSubpool(GetReserveIPSubpoolQueryPar -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-service-provider-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-service-provider-details-v1 */ func (s *NetworkSettingsService) GetServiceProviderDetails() (*ResponseNetworkSettingsGetServiceProviderDetails, *resty.Response, error) { path := "/dna/intent/api/v1/service-provider" @@ -1006,23 +1456,26 @@ func (s *NetworkSettingsService) GetServiceProviderDetails() (*ResponseNetworkSe } -//GetNetworkV2 Get Network V2 - fdbd-3b7b-4048-bbfd -/* API to get SNMP, NTP, Network AAA, Client and Endpoint AAA, and/or DNS center server settings. +//RetrieveAAASettingsForASite Retrieve AAA settings for a site - 3c99-79ea-4ab9-bd33 +/* Retrieve AAA settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the setting is unset at a site. -@param GetNetworkV2QueryParams Filtering parameter +@param id id path parameter. Site Id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-v2 +@param RetrieveAAASettingsForASiteQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-a-a-a-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) GetNetworkV2(GetNetworkV2QueryParams *GetNetworkV2QueryParams) (*ResponseNetworkSettingsGetNetworkV2, *resty.Response, error) { - path := "/dna/intent/api/v2/network" +func (s *NetworkSettingsService) RetrieveAAASettingsForASite(id string, RetrieveAAASettingsForASiteQueryParams *RetrieveAAASettingsForASiteQueryParams) (*ResponseNetworkSettingsRetrieveAAASettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/aaaSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - queryString, _ := query.Values(GetNetworkV2QueryParams) + queryString, _ := query.Values(RetrieveAAASettingsForASiteQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsGetNetworkV2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsRetrieveAAASettingsForASite{}). SetError(&Error). Get(path) @@ -1033,30 +1486,36 @@ func (s *NetworkSettingsService) GetNetworkV2(GetNetworkV2QueryParams *GetNetwor if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetNetworkV2(GetNetworkV2QueryParams) + return s.RetrieveAAASettingsForASite(id, RetrieveAAASettingsForASiteQueryParams) } - return nil, response, fmt.Errorf("error with operation GetNetworkV2") + return nil, response, fmt.Errorf("error with operation RetrieveAAASettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsGetNetworkV2) + result := response.Result().(*ResponseNetworkSettingsRetrieveAAASettingsForASite) return result, response, err } -//GetServiceProviderDetailsV2 Get Service Provider Details V2 - c89e-0ac4-4279-8591 -/* API to get Service Provider details (QoS). +//RetrieveBannerSettingsForASite Retrieve banner settings for a site - 2a9f-3b2f-4cda-8390 +/* Retrieve banner settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the setting is unset at a site. +@param id id path parameter. Site Id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-service-provider-details-v2 +@param RetrieveBannerSettingsForASiteQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-banner-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) GetServiceProviderDetailsV2() (*ResponseNetworkSettingsGetServiceProviderDetailsV2, *resty.Response, error) { - path := "/dna/intent/api/v2/service-provider" +func (s *NetworkSettingsService) RetrieveBannerSettingsForASite(id string, RetrieveBannerSettingsForASiteQueryParams *RetrieveBannerSettingsForASiteQueryParams) (*ResponseNetworkSettingsRetrieveBannerSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/bannerSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(RetrieveBannerSettingsForASiteQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseNetworkSettingsGetServiceProviderDetailsV2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsRetrieveBannerSettingsForASite{}). SetError(&Error). Get(path) @@ -1067,49 +1526,38 @@ func (s *NetworkSettingsService) GetServiceProviderDetailsV2() (*ResponseNetwork if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetServiceProviderDetailsV2() + return s.RetrieveBannerSettingsForASite(id, RetrieveBannerSettingsForASiteQueryParams) } - return nil, response, fmt.Errorf("error with operation GetServiceProviderDetailsV2") + return nil, response, fmt.Errorf("error with operation RetrieveBannerSettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsGetServiceProviderDetailsV2) + result := response.Result().(*ResponseNetworkSettingsRetrieveBannerSettingsForASite) return result, response, err } -//AssignDeviceCredentialToSite Assign Device Credential To Site. - 4da9-1a54-4e29-842d -/* Assign Device Credential to a site. +//GetDeviceCredentialSettingsForASite Get device credential settings for a site - bebf-c9fc-4d3a-be03 +/* Gets device credential settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the credential is unset, and that no credential of that type will be used for the site. -@param siteID siteId path parameter. site id to assign credential. +@param id id path parameter. Site Id, retrievable from the `id` attribute in `/dna/intent/api/v1/sites` -@param AssignDeviceCredentialToSiteHeaderParams Custom header parameters +@param GetDeviceCredentialSettingsForASiteQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-device-credential-to-site +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-credential-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) AssignDeviceCredentialToSite(siteID string, requestNetworkSettingsAssignDeviceCredentialToSite *RequestNetworkSettingsAssignDeviceCredentialToSite, AssignDeviceCredentialToSiteHeaderParams *AssignDeviceCredentialToSiteHeaderParams) (*ResponseNetworkSettingsAssignDeviceCredentialToSite, *resty.Response, error) { - path := "/dna/intent/api/v1/credential-to-site/{siteId}" - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) - - var response *resty.Response - var err error - clientRequest := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") - - if AssignDeviceCredentialToSiteHeaderParams != nil { - - if AssignDeviceCredentialToSiteHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", AssignDeviceCredentialToSiteHeaderParams.Persistbapioutput) - } +func (s *NetworkSettingsService) GetDeviceCredentialSettingsForASite(id string, GetDeviceCredentialSettingsForASiteQueryParams *GetDeviceCredentialSettingsForASiteQueryParams) (*ResponseNetworkSettingsGetDeviceCredentialSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/deviceCredentials" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - } + queryString, _ := query.Values(GetDeviceCredentialSettingsForASiteQueryParams) - response, err = clientRequest. - SetBody(requestNetworkSettingsAssignDeviceCredentialToSite). - SetResult(&ResponseNetworkSettingsAssignDeviceCredentialToSite{}). + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsGetDeviceCredentialSettingsForASite{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1117,36 +1565,36 @@ func (s *NetworkSettingsService) AssignDeviceCredentialToSite(siteID string, req } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AssignDeviceCredentialToSite(siteID, requestNetworkSettingsAssignDeviceCredentialToSite, AssignDeviceCredentialToSiteHeaderParams) + return s.GetDeviceCredentialSettingsForASite(id, GetDeviceCredentialSettingsForASiteQueryParams) } - - return nil, response, fmt.Errorf("error with operation AssignDeviceCredentialToSite") + return nil, response, fmt.Errorf("error with operation GetDeviceCredentialSettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsAssignDeviceCredentialToSite) + result := response.Result().(*ResponseNetworkSettingsGetDeviceCredentialSettingsForASite) return result, response, err } -//CreateDeviceCredentials Create Device Credentials - fbb9-5b37-484a-9fce -/* API to create device credentials. +//GetNetworkDevicesCredentialsSyncStatus Get network devices credentials sync status - 0f9e-d8a6-45eb-9590 +/* Get network devices credentials sync status at a given site. + +@param id id path parameter. Site Id. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-device-credentials +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-devices-credentials-sync-status-v1 */ -func (s *NetworkSettingsService) CreateDeviceCredentials(requestNetworkSettingsCreateDeviceCredentials *RequestNetworkSettingsCreateDeviceCredentials) (*ResponseNetworkSettingsCreateDeviceCredentials, *resty.Response, error) { - path := "/dna/intent/api/v1/device-credential" +func (s *NetworkSettingsService) GetNetworkDevicesCredentialsSyncStatus(id string) (*ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatus, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/deviceCredentials/status" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestNetworkSettingsCreateDeviceCredentials). - SetResult(&ResponseNetworkSettingsCreateDeviceCredentials{}). + SetResult(&ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatus{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1154,36 +1602,39 @@ func (s *NetworkSettingsService) CreateDeviceCredentials(requestNetworkSettingsC } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateDeviceCredentials(requestNetworkSettingsCreateDeviceCredentials) + return s.GetNetworkDevicesCredentialsSyncStatus(id) } - - return nil, response, fmt.Errorf("error with operation CreateDeviceCredentials") + return nil, response, fmt.Errorf("error with operation GetNetworkDevicesCredentialsSyncStatus") } - result := response.Result().(*ResponseNetworkSettingsCreateDeviceCredentials) + result := response.Result().(*ResponseNetworkSettingsGetNetworkDevicesCredentialsSyncStatus) return result, response, err } -//CreateGlobalPool Create Global Pool - f793-192a-43da-bed9 -/* API to create global pool. +//RetrieveDHCPSettingsForASite Retrieve DHCP settings for a site - cfbb-ca8d-4529-a94b +/* Retrieve DHCP settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the setting is unset at a site. +@param id id path parameter. Site Id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-global-pool +@param RetrieveDHCPSettingsForASiteQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-d-h-c-p-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) CreateGlobalPool(requestNetworkSettingsCreateGlobalPool *RequestNetworkSettingsCreateGlobalPool) (*ResponseNetworkSettingsCreateGlobalPool, *resty.Response, error) { - path := "/dna/intent/api/v1/global-pool" +func (s *NetworkSettingsService) RetrieveDHCPSettingsForASite(id string, RetrieveDHCPSettingsForASiteQueryParams *RetrieveDHCPSettingsForASiteQueryParams) (*ResponseNetworkSettingsRetrieveDHCPSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/dhcpSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(RetrieveDHCPSettingsForASiteQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestNetworkSettingsCreateGlobalPool). - SetResult(&ResponseNetworkSettingsCreateGlobalPool{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsRetrieveDHCPSettingsForASite{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1191,52 +1642,39 @@ func (s *NetworkSettingsService) CreateGlobalPool(requestNetworkSettingsCreateGl } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateGlobalPool(requestNetworkSettingsCreateGlobalPool) + return s.RetrieveDHCPSettingsForASite(id, RetrieveDHCPSettingsForASiteQueryParams) } - - return nil, response, fmt.Errorf("error with operation CreateGlobalPool") + return nil, response, fmt.Errorf("error with operation RetrieveDHCPSettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsCreateGlobalPool) + result := response.Result().(*ResponseNetworkSettingsRetrieveDHCPSettingsForASite) return result, response, err } -//CreateNetwork Create Network - be89-2bd8-4a78-865a -/* API to create a network for DHCP, Syslog, SNMP, NTP, Network AAA, Client and EndPoint AAA, and/or DNS center server settings. +//RetrieveDNSSettingsForASite Retrieve DNS settings for a site - d7a4-0932-41d9-bcf8 +/* Retrieve DNS settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the setting is unset at a site. -@param siteID siteId path parameter. Site id to which site details to associate with the network settings. +@param id id path parameter. Site Id -@param CreateNetworkHeaderParams Custom header parameters +@param RetrieveDNSSettingsForASiteQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-network +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-d-n-s-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) CreateNetwork(siteID string, requestNetworkSettingsCreateNetwork *RequestNetworkSettingsCreateNetwork, CreateNetworkHeaderParams *CreateNetworkHeaderParams) (*ResponseNetworkSettingsCreateNetwork, *resty.Response, error) { - path := "/dna/intent/api/v1/network/{siteId}" - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) - - var response *resty.Response - var err error - clientRequest := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") - - if CreateNetworkHeaderParams != nil { - - if CreateNetworkHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", CreateNetworkHeaderParams.Persistbapioutput) - } +func (s *NetworkSettingsService) RetrieveDNSSettingsForASite(id string, RetrieveDNSSettingsForASiteQueryParams *RetrieveDNSSettingsForASiteQueryParams) (*ResponseNetworkSettingsRetrieveDNSSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/dnsSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - } + queryString, _ := query.Values(RetrieveDNSSettingsForASiteQueryParams) - response, err = clientRequest. - SetBody(requestNetworkSettingsCreateNetwork). - SetResult(&ResponseNetworkSettingsCreateNetwork{}). + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsRetrieveDNSSettingsForASite{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1244,39 +1682,39 @@ func (s *NetworkSettingsService) CreateNetwork(siteID string, requestNetworkSett } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateNetwork(siteID, requestNetworkSettingsCreateNetwork, CreateNetworkHeaderParams) + return s.RetrieveDNSSettingsForASite(id, RetrieveDNSSettingsForASiteQueryParams) } - - return nil, response, fmt.Errorf("error with operation CreateNetwork") + return nil, response, fmt.Errorf("error with operation RetrieveDNSSettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsCreateNetwork) + result := response.Result().(*ResponseNetworkSettingsRetrieveDNSSettingsForASite) return result, response, err } -//ReserveIPSubpool Reserve IP Subpool - 429f-aa81-4d3b-960a -/* API to reserve an ip subpool from the global pool +//RetrieveImageDistributionSettingsForASite Retrieve image distribution settings for a site - d2ad-d9bc-4bcb-9fed +/* Retrieve image distribution settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the setting is unset at a site. -@param siteID siteId path parameter. Site id to reserve the ip sub pool. +@param id id path parameter. Site Id +@param RetrieveImageDistributionSettingsForASiteQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!reserve-ip-subpool +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-image-distribution-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) ReserveIPSubpool(siteID string, requestNetworkSettingsReserveIPSubpool *RequestNetworkSettingsReserveIPSubpool) (*ResponseNetworkSettingsReserveIPSubpool, *resty.Response, error) { - path := "/dna/intent/api/v1/reserve-ip-subpool/{siteId}" - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) +func (s *NetworkSettingsService) RetrieveImageDistributionSettingsForASite(id string, RetrieveImageDistributionSettingsForASiteQueryParams *RetrieveImageDistributionSettingsForASiteQueryParams) (*ResponseNetworkSettingsRetrieveImageDistributionSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/imageDistributionSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(RetrieveImageDistributionSettingsForASiteQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestNetworkSettingsReserveIPSubpool). - SetResult(&ResponseNetworkSettingsReserveIPSubpool{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsRetrieveImageDistributionSettingsForASite{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1284,36 +1722,39 @@ func (s *NetworkSettingsService) ReserveIPSubpool(siteID string, requestNetworkS } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.ReserveIPSubpool(siteID, requestNetworkSettingsReserveIPSubpool) + return s.RetrieveImageDistributionSettingsForASite(id, RetrieveImageDistributionSettingsForASiteQueryParams) } - - return nil, response, fmt.Errorf("error with operation ReserveIpSubpool") + return nil, response, fmt.Errorf("error with operation RetrieveImageDistributionSettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsReserveIPSubpool) + result := response.Result().(*ResponseNetworkSettingsRetrieveImageDistributionSettingsForASite) return result, response, err } -//CreateSpProfile Create SP Profile - a39a-1a21-4deb-b781 -/* API to create Service Provider Profile(QOS). +//RetrieveNTPSettingsForASite Retrieve NTP settings for a site - beae-2bf1-4cdb-8f60 +/* Retrieve NTP settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the setting is unset at a site. + +@param id id path parameter. Site Id +@param RetrieveNTPSettingsForASiteQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-sp-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-n-t-p-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) CreateSpProfile(requestNetworkSettingsCreateSPProfile *RequestNetworkSettingsCreateSpProfile) (*ResponseNetworkSettingsCreateSpProfile, *resty.Response, error) { - path := "/dna/intent/api/v1/service-provider" +func (s *NetworkSettingsService) RetrieveNTPSettingsForASite(id string, RetrieveNTPSettingsForASiteQueryParams *RetrieveNTPSettingsForASiteQueryParams) (*ResponseNetworkSettingsRetrieveNTPSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/ntpSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(RetrieveNTPSettingsForASiteQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestNetworkSettingsCreateSPProfile). - SetResult(&ResponseNetworkSettingsCreateSpProfile{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsRetrieveNTPSettingsForASite{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1321,39 +1762,39 @@ func (s *NetworkSettingsService) CreateSpProfile(requestNetworkSettingsCreateSPP } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateSpProfile(requestNetworkSettingsCreateSPProfile) + return s.RetrieveNTPSettingsForASite(id, RetrieveNTPSettingsForASiteQueryParams) } - - return nil, response, fmt.Errorf("error with operation CreateSpProfile") + return nil, response, fmt.Errorf("error with operation RetrieveNTPSettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsCreateSpProfile) + result := response.Result().(*ResponseNetworkSettingsRetrieveNTPSettingsForASite) return result, response, err } -//AssignDeviceCredentialToSiteV2 Assign Device Credential To Site V2 - 0eb2-8bc5-4b99-8d6c -/* API to assign Device Credential to a site. +//RetrieveTelemetrySettingsForASite Retrieve Telemetry settings for a site - 11a7-cbc7-4a9a-bac3 +/* Retrieves telemetry settings for the given site. `null` values indicate that the setting will be inherited from the parent site. -@param siteID siteId path parameter. Site Id to assign credential. +@param id id path parameter. Site Id, retrievable from the `id` attribute in `/dna/intent/api/v1/sites` +@param RetrieveTelemetrySettingsForASiteQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-device-credential-to-site-v2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-telemetry-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) AssignDeviceCredentialToSiteV2(siteID string, requestNetworkSettingsAssignDeviceCredentialToSiteV2 *RequestNetworkSettingsAssignDeviceCredentialToSiteV2) (*ResponseNetworkSettingsAssignDeviceCredentialToSiteV2, *resty.Response, error) { - path := "/dna/intent/api/v2/credential-to-site/{siteId}" - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) +func (s *NetworkSettingsService) RetrieveTelemetrySettingsForASite(id string, RetrieveTelemetrySettingsForASiteQueryParams *RetrieveTelemetrySettingsForASiteQueryParams) (*ResponseNetworkSettingsRetrieveTelemetrySettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/telemetrySettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(RetrieveTelemetrySettingsForASiteQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestNetworkSettingsAssignDeviceCredentialToSiteV2). - SetResult(&ResponseNetworkSettingsAssignDeviceCredentialToSiteV2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsRetrieveTelemetrySettingsForASite{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1361,39 +1802,39 @@ func (s *NetworkSettingsService) AssignDeviceCredentialToSiteV2(siteID string, r } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AssignDeviceCredentialToSiteV2(siteID, requestNetworkSettingsAssignDeviceCredentialToSiteV2) + return s.RetrieveTelemetrySettingsForASite(id, RetrieveTelemetrySettingsForASiteQueryParams) } - - return nil, response, fmt.Errorf("error with operation AssignDeviceCredentialToSiteV2") + return nil, response, fmt.Errorf("error with operation RetrieveTelemetrySettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsAssignDeviceCredentialToSiteV2) + result := response.Result().(*ResponseNetworkSettingsRetrieveTelemetrySettingsForASite) return result, response, err } -//CreateNetworkV2 Create Network V2 - 4696-fb19-48da-ac38 -/* API to create network settings for DHCP, Syslog, SNMP, NTP, Network AAA, Client and Endpoint AAA, and/or DNS center server settings. +//RetrieveTimeZoneSettingsForASite Retrieve time zone settings for a site - 5ba6-0966-4768-9ae7 +/* Retrieve time zone settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the setting is unset at a site. -@param siteID siteId path parameter. Site Id to which site details to associate with the network settings. +@param id id path parameter. Site Id +@param RetrieveTimeZoneSettingsForASiteQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-network-v2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-time-zone-settings-for-a-site-v1 */ -func (s *NetworkSettingsService) CreateNetworkV2(siteID string, requestNetworkSettingsCreateNetworkV2 *RequestNetworkSettingsCreateNetworkV2) (*ResponseNetworkSettingsCreateNetworkV2, *resty.Response, error) { - path := "/dna/intent/api/v2/network/{siteId}" - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) +func (s *NetworkSettingsService) RetrieveTimeZoneSettingsForASite(id string, RetrieveTimeZoneSettingsForASiteQueryParams *RetrieveTimeZoneSettingsForASiteQueryParams) (*ResponseNetworkSettingsRetrieveTimeZoneSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/timeZoneSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(RetrieveTimeZoneSettingsForASiteQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestNetworkSettingsCreateNetworkV2). - SetResult(&ResponseNetworkSettingsCreateNetworkV2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsRetrieveTimeZoneSettingsForASite{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1401,34 +1842,514 @@ func (s *NetworkSettingsService) CreateNetworkV2(siteID string, requestNetworkSe } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateNetworkV2(siteID, requestNetworkSettingsCreateNetworkV2) + return s.RetrieveTimeZoneSettingsForASite(id, RetrieveTimeZoneSettingsForASiteQueryParams) } - - return nil, response, fmt.Errorf("error with operation CreateNetworkV2") + return nil, response, fmt.Errorf("error with operation RetrieveTimeZoneSettingsForASite") } - result := response.Result().(*ResponseNetworkSettingsCreateNetworkV2) + result := response.Result().(*ResponseNetworkSettingsRetrieveTimeZoneSettingsForASite) return result, response, err } -//CreateSpProfileV2 Create SP Profile V2 - b6b1-1aa9-4b4b-99e0 -/* API to create Service Provider Profile(QOS). +//GetNetworkV2 Get Network V2 - fdbd-3b7b-4048-bbfd +/* API to get SNMP, NTP, Network AAA, Client and Endpoint AAA, and/or DNS center server settings. +@param GetNetworkV2QueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-sp-profile-v2 +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-v2 */ -func (s *NetworkSettingsService) CreateSpProfileV2(requestNetworkSettingsCreateSPProfileV2 *RequestNetworkSettingsCreateSpProfileV2) (*ResponseNetworkSettingsCreateSpProfileV2, *resty.Response, error) { - path := "/dna/intent/api/v2/service-provider" +func (s *NetworkSettingsService) GetNetworkV2(GetNetworkV2QueryParams *GetNetworkV2QueryParams) (*ResponseNetworkSettingsGetNetworkV2, *resty.Response, error) { + path := "/dna/intent/api/v2/network" + + queryString, _ := query.Values(GetNetworkV2QueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestNetworkSettingsCreateSPProfileV2). - SetResult(&ResponseNetworkSettingsCreateSpProfileV2{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseNetworkSettingsGetNetworkV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetNetworkV2(GetNetworkV2QueryParams) + } + return nil, response, fmt.Errorf("error with operation GetNetworkV2") + } + + result := response.Result().(*ResponseNetworkSettingsGetNetworkV2) + return result, response, err + +} + +//GetServiceProviderDetailsV2 Get Service Provider Details V2 - c89e-0ac4-4279-8591 +/* API to get Service Provider details (QoS). + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-service-provider-details-v2 +*/ +func (s *NetworkSettingsService) GetServiceProviderDetailsV2() (*ResponseNetworkSettingsGetServiceProviderDetailsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/service-provider" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseNetworkSettingsGetServiceProviderDetailsV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetServiceProviderDetailsV2() + } + return nil, response, fmt.Errorf("error with operation GetServiceProviderDetailsV2") + } + + result := response.Result().(*ResponseNetworkSettingsGetServiceProviderDetailsV2) + return result, response, err + +} + +//AssignDeviceCredentialToSite Assign Device Credential To Site - 4da9-1a54-4e29-842d +/* Assign Device Credential to a site. + + +@param siteID siteId path parameter. site id to assign credential. + +@param AssignDeviceCredentialToSiteHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-device-credential-to-site-v1 +*/ +func (s *NetworkSettingsService) AssignDeviceCredentialToSite(siteID string, requestNetworkSettingsAssignDeviceCredentialToSite *RequestNetworkSettingsAssignDeviceCredentialToSite, AssignDeviceCredentialToSiteHeaderParams *AssignDeviceCredentialToSiteHeaderParams) (*ResponseNetworkSettingsAssignDeviceCredentialToSite, *resty.Response, error) { + path := "/dna/intent/api/v1/credential-to-site/{siteId}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if AssignDeviceCredentialToSiteHeaderParams != nil { + + if AssignDeviceCredentialToSiteHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", AssignDeviceCredentialToSiteHeaderParams.Persistbapioutput) + } + + } + + response, err = clientRequest. + SetBody(requestNetworkSettingsAssignDeviceCredentialToSite). + SetResult(&ResponseNetworkSettingsAssignDeviceCredentialToSite{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AssignDeviceCredentialToSite(siteID, requestNetworkSettingsAssignDeviceCredentialToSite, AssignDeviceCredentialToSiteHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation AssignDeviceCredentialToSite") + } + + result := response.Result().(*ResponseNetworkSettingsAssignDeviceCredentialToSite) + return result, response, err + +} + +//CreateDeviceCredentials Create Device Credentials - fbb9-5b37-484a-9fce +/* API to create device credentials. This API has been deprecated and will not be available in a Cisco DNA Center release after August 1st 2024 23:59:59 GMT. Please refer new Intent API : Create Global Credentials V2 + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-device-credentials-v1 +*/ +func (s *NetworkSettingsService) CreateDeviceCredentials(requestNetworkSettingsCreateDeviceCredentials *RequestNetworkSettingsCreateDeviceCredentials) (*ResponseNetworkSettingsCreateDeviceCredentials, *resty.Response, error) { + path := "/dna/intent/api/v1/device-credential" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsCreateDeviceCredentials). + SetResult(&ResponseNetworkSettingsCreateDeviceCredentials{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateDeviceCredentials(requestNetworkSettingsCreateDeviceCredentials) + } + + return nil, response, fmt.Errorf("error with operation CreateDeviceCredentials") + } + + result := response.Result().(*ResponseNetworkSettingsCreateDeviceCredentials) + return result, response, err + +} + +//CreateGlobalPool Create Global Pool - f793-192a-43da-bed9 +/* API to create global pool. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-global-pool-v1 +*/ +func (s *NetworkSettingsService) CreateGlobalPool(requestNetworkSettingsCreateGlobalPool *RequestNetworkSettingsCreateGlobalPool) (*ResponseNetworkSettingsCreateGlobalPool, *resty.Response, error) { + path := "/dna/intent/api/v1/global-pool" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsCreateGlobalPool). + SetResult(&ResponseNetworkSettingsCreateGlobalPool{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateGlobalPool(requestNetworkSettingsCreateGlobalPool) + } + + return nil, response, fmt.Errorf("error with operation CreateGlobalPool") + } + + result := response.Result().(*ResponseNetworkSettingsCreateGlobalPool) + return result, response, err + +} + +//CreateNetwork Create Network - be89-2bd8-4a78-865a +/* API to create a network for DHCP, Syslog, SNMP, NTP, Network AAA, Client and EndPoint AAA, and/or DNS center server settings. + + +@param siteID siteId path parameter. Site id to which site details to associate with the network settings. + +@param CreateNetworkHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-network-v1 +*/ +func (s *NetworkSettingsService) CreateNetwork(siteID string, requestNetworkSettingsCreateNetwork *RequestNetworkSettingsCreateNetwork, CreateNetworkHeaderParams *CreateNetworkHeaderParams) (*ResponseNetworkSettingsCreateNetwork, *resty.Response, error) { + path := "/dna/intent/api/v1/network/{siteId}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if CreateNetworkHeaderParams != nil { + + if CreateNetworkHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", CreateNetworkHeaderParams.Persistbapioutput) + } + + } + + response, err = clientRequest. + SetBody(requestNetworkSettingsCreateNetwork). + SetResult(&ResponseNetworkSettingsCreateNetwork{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateNetwork(siteID, requestNetworkSettingsCreateNetwork, CreateNetworkHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation CreateNetwork") + } + + result := response.Result().(*ResponseNetworkSettingsCreateNetwork) + return result, response, err + +} + +//ReserveIPSubpool Reserve IP Subpool - 429f-aa81-4d3b-960a +/* API to reserve an ip subpool from the global pool + + +@param siteID siteId path parameter. Site id to reserve the ip sub pool. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!reserve-ip-subpool-v1 +*/ +func (s *NetworkSettingsService) ReserveIPSubpool(siteID string, requestNetworkSettingsReserveIPSubpool *RequestNetworkSettingsReserveIPSubpool) (*ResponseNetworkSettingsReserveIPSubpool, *resty.Response, error) { + path := "/dna/intent/api/v1/reserve-ip-subpool/{siteId}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsReserveIPSubpool). + SetResult(&ResponseNetworkSettingsReserveIPSubpool{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ReserveIPSubpool(siteID, requestNetworkSettingsReserveIPSubpool) + } + + return nil, response, fmt.Errorf("error with operation ReserveIpSubpool") + } + + result := response.Result().(*ResponseNetworkSettingsReserveIPSubpool) + return result, response, err + +} + +//CreateSpProfile Create SP Profile - a39a-1a21-4deb-b781 +/* API to create Service Provider Profile(QOS). + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-sp-profile-v1 +*/ +func (s *NetworkSettingsService) CreateSpProfile(requestNetworkSettingsCreateSPProfile *RequestNetworkSettingsCreateSpProfile) (*ResponseNetworkSettingsCreateSpProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/service-provider" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsCreateSPProfile). + SetResult(&ResponseNetworkSettingsCreateSpProfile{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateSpProfile(requestNetworkSettingsCreateSPProfile) + } + + return nil, response, fmt.Errorf("error with operation CreateSpProfile") + } + + result := response.Result().(*ResponseNetworkSettingsCreateSpProfile) + return result, response, err + +} + +//SyncNetworkDevicesCredential Sync network devices credential - 5ca0-2a36-4d68-92e7 +/* When sync is triggered at a site with the credential that are associated to the same site, network devices in impacted sites (child sites which are inheriting the credential) get managed in inventory with the associated site credential. Credential gets configured on network devices before these get managed in inventory. Please make a note that cli credential wouldn't be configured on AAA authenticated devices but they just get managed with the associated site cli credential. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!sync-network-devices-credential-v1 +*/ +func (s *NetworkSettingsService) SyncNetworkDevicesCredential(requestNetworkSettingsSyncNetworkDevicesCredential *RequestNetworkSettingsSyncNetworkDevicesCredential) (*ResponseNetworkSettingsSyncNetworkDevicesCredential, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/deviceCredentials/apply" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSyncNetworkDevicesCredential). + SetResult(&ResponseNetworkSettingsSyncNetworkDevicesCredential{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.SyncNetworkDevicesCredential(requestNetworkSettingsSyncNetworkDevicesCredential) + } + + return nil, response, fmt.Errorf("error with operation SyncNetworkDevicesCredential") + } + + result := response.Result().(*ResponseNetworkSettingsSyncNetworkDevicesCredential) + return result, response, err + +} + +//UpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite Update a device(s) telemetry settings to conform to the telemetry settings for its site - 14bf-7997-432b-94a1 +/* Update a device(s) telemetry settings to conform to the telemetry settings for its site. One Task is created to track the update, for more granular status tracking, split your devices into multiple requests. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!update-a-devices-telemetry-settings-to-conform-to-the-telemetry-settings-for-its-site-v1 +*/ +func (s *NetworkSettingsService) UpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite(requestNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite *RequestNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite) (*ResponseNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite, *resty.Response, error) { + path := "/dna/intent/api/v1/telemetrySettings/apply" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite). + SetResult(&ResponseNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite(requestNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite) + } + + return nil, response, fmt.Errorf("error with operation UpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite") + } + + result := response.Result().(*ResponseNetworkSettingsUpdateADevicesTelemetrySettingsToConformToTheTelemetrySettingsForItsSite) + return result, response, err + +} + +//AssignDeviceCredentialToSiteV2 Assign Device Credential To Site V2 - 0eb2-8bc5-4b99-8d6c +/* API to assign Device Credential to a site. + + +@param siteID siteId path parameter. Site Id to assign credential. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-device-credential-to-site-v2 +*/ +func (s *NetworkSettingsService) AssignDeviceCredentialToSiteV2(siteID string, requestNetworkSettingsAssignDeviceCredentialToSiteV2 *RequestNetworkSettingsAssignDeviceCredentialToSiteV2) (*ResponseNetworkSettingsAssignDeviceCredentialToSiteV2, *resty.Response, error) { + path := "/dna/intent/api/v2/credential-to-site/{siteId}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsAssignDeviceCredentialToSiteV2). + SetResult(&ResponseNetworkSettingsAssignDeviceCredentialToSiteV2{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AssignDeviceCredentialToSiteV2(siteID, requestNetworkSettingsAssignDeviceCredentialToSiteV2) + } + + return nil, response, fmt.Errorf("error with operation AssignDeviceCredentialToSiteV2") + } + + result := response.Result().(*ResponseNetworkSettingsAssignDeviceCredentialToSiteV2) + return result, response, err + +} + +//CreateNetworkV2 Create Network V2 - 4696-fb19-48da-ac38 +/* API to create network settings for DHCP, Syslog, SNMP, NTP, Network AAA, Client and Endpoint AAA, and/or DNS center server settings. + + +@param siteID siteId path parameter. Site Id to which site details to associate with the network settings. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-network-v2 +*/ +func (s *NetworkSettingsService) CreateNetworkV2(siteID string, requestNetworkSettingsCreateNetworkV2 *RequestNetworkSettingsCreateNetworkV2) (*ResponseNetworkSettingsCreateNetworkV2, *resty.Response, error) { + path := "/dna/intent/api/v2/network/{siteId}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsCreateNetworkV2). + SetResult(&ResponseNetworkSettingsCreateNetworkV2{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateNetworkV2(siteID, requestNetworkSettingsCreateNetworkV2) + } + + return nil, response, fmt.Errorf("error with operation CreateNetworkV2") + } + + result := response.Result().(*ResponseNetworkSettingsCreateNetworkV2) + return result, response, err + +} + +//CreateSpProfileV2 Create SP Profile V2 - b6b1-1aa9-4b4b-99e0 +/* API to create Service Provider Profile(QOS). + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-sp-profile-v2 +*/ +func (s *NetworkSettingsService) CreateSpProfileV2(requestNetworkSettingsCreateSPProfileV2 *RequestNetworkSettingsCreateSpProfileV2) (*ResponseNetworkSettingsCreateSpProfileV2, *resty.Response, error) { + path := "/dna/intent/api/v2/service-provider" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsCreateSPProfileV2). + SetResult(&ResponseNetworkSettingsCreateSpProfileV2{}). SetError(&Error). Post(path) @@ -1452,7 +2373,7 @@ func (s *NetworkSettingsService) CreateSpProfileV2(requestNetworkSettingsCreateS } //UpdateDeviceCredentials Update Device Credentials - 4f94-7a1c-4fc8-84f6 -/* API to update device credentials. +/* API to update device credentials. This API has been deprecated and will not be available in a Cisco DNA Center release after August 1st 2024 23:59:59 GMT. Please refer new Intent API : Update Global Credentials V2 */ @@ -1625,6 +2546,330 @@ func (s *NetworkSettingsService) UpdateSpProfile(requestNetworkSettingsUpdateSPP } +//SetAAASettingsForASite Set AAA settings for a site - 3582-ca30-4718-a064 +/* Set AAA settings for a site; `null` values indicate that the settings will be inherited from the parent site; empty objects (`{}`) indicate that the settings is unset. + + +@param id id path parameter. Site Id + +*/ +func (s *NetworkSettingsService) SetAAASettingsForASite(id string, requestNetworkSettingsSetAAASettingsForASite *RequestNetworkSettingsSetAAASettingsForASite) (*ResponseNetworkSettingsSetAAASettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/aaaSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSetAAASettingsForASite). + SetResult(&ResponseNetworkSettingsSetAAASettingsForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetAAASettingsForASite(id, requestNetworkSettingsSetAAASettingsForASite) + } + return nil, response, fmt.Errorf("error with operation SetAAASettingsForASite") + } + + result := response.Result().(*ResponseNetworkSettingsSetAAASettingsForASite) + return result, response, err + +} + +//SetBannerSettingsForASite Set banner settings for a site - 0aae-aa56-44f9-95a7 +/* Set banner settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the settings is unset. + + +@param id id path parameter. Site Id + +*/ +func (s *NetworkSettingsService) SetBannerSettingsForASite(id string, requestNetworkSettingsSetBannerSettingsForASite *RequestNetworkSettingsSetBannerSettingsForASite) (*ResponseNetworkSettingsSetBannerSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/bannerSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSetBannerSettingsForASite). + SetResult(&ResponseNetworkSettingsSetBannerSettingsForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetBannerSettingsForASite(id, requestNetworkSettingsSetBannerSettingsForASite) + } + return nil, response, fmt.Errorf("error with operation SetBannerSettingsForASite") + } + + result := response.Result().(*ResponseNetworkSettingsSetBannerSettingsForASite) + return result, response, err + +} + +//UpdateDeviceCredentialSettingsForASite Update device credential settings for a site. - 5aa0-6949-4dfa-bec5 +/* Updates device credential settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the credential is unset, and that no credential of that type will be used for the site. + + +@param id id path parameter. Site Id, retrievable from the `id` attribute in `/dna/intent/api/v1/sites` + +*/ +func (s *NetworkSettingsService) UpdateDeviceCredentialSettingsForASite(id string, requestNetworkSettingsUpdateDeviceCredentialSettingsForASite *RequestNetworkSettingsUpdateDeviceCredentialSettingsForASite) (*ResponseNetworkSettingsUpdateDeviceCredentialSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/deviceCredentials" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsUpdateDeviceCredentialSettingsForASite). + SetResult(&ResponseNetworkSettingsUpdateDeviceCredentialSettingsForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateDeviceCredentialSettingsForASite(id, requestNetworkSettingsUpdateDeviceCredentialSettingsForASite) + } + return nil, response, fmt.Errorf("error with operation UpdateDeviceCredentialSettingsForASite") + } + + result := response.Result().(*ResponseNetworkSettingsUpdateDeviceCredentialSettingsForASite) + return result, response, err + +} + +//SetDhcpSettingsForASite Set dhcp settings for a site - c1ac-194d-40d9-8ae4 +/* Set DHCP settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the settings is unset. + + +@param id id path parameter. Site Id + +*/ +func (s *NetworkSettingsService) SetDhcpSettingsForASite(id string, requestNetworkSettingsSetDhcpSettingsForASite *RequestNetworkSettingsSetDhcpSettingsForASite) (*ResponseNetworkSettingsSetDhcpSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/dhcpSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSetDhcpSettingsForASite). + SetResult(&ResponseNetworkSettingsSetDhcpSettingsForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetDhcpSettingsForASite(id, requestNetworkSettingsSetDhcpSettingsForASite) + } + return nil, response, fmt.Errorf("error with operation SetDhcpSettingsForASite") + } + + result := response.Result().(*ResponseNetworkSettingsSetDhcpSettingsForASite) + return result, response, err + +} + +//SetDNSSettingsForASite Set DNS settings for a site - 9892-798e-4ed8-a40b +/* Set DNS settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the settings is unset. + + +@param id id path parameter. Site Id + +*/ +func (s *NetworkSettingsService) SetDNSSettingsForASite(id string, requestNetworkSettingsSetDNSSettingsForASite *RequestNetworkSettingsSetDNSSettingsForASite) (*ResponseNetworkSettingsSetDNSSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/dnsSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSetDNSSettingsForASite). + SetResult(&ResponseNetworkSettingsSetDNSSettingsForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetDNSSettingsForASite(id, requestNetworkSettingsSetDNSSettingsForASite) + } + return nil, response, fmt.Errorf("error with operation SetDNSSettingsForASite") + } + + result := response.Result().(*ResponseNetworkSettingsSetDNSSettingsForASite) + return result, response, err + +} + +//SetImageDistributionSettingsForASite Set image distribution settings for a site - 8ab7-3889-45f8-9e5d +/* Set image distribution settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the settings is unset. + + +@param id id path parameter. Site Id + +*/ +func (s *NetworkSettingsService) SetImageDistributionSettingsForASite(id string, requestNetworkSettingsSetImageDistributionSettingsForASite *RequestNetworkSettingsSetImageDistributionSettingsForASite) (*ResponseNetworkSettingsSetImageDistributionSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/imageDistributionSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSetImageDistributionSettingsForASite). + SetResult(&ResponseNetworkSettingsSetImageDistributionSettingsForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetImageDistributionSettingsForASite(id, requestNetworkSettingsSetImageDistributionSettingsForASite) + } + return nil, response, fmt.Errorf("error with operation SetImageDistributionSettingsForASite") + } + + result := response.Result().(*ResponseNetworkSettingsSetImageDistributionSettingsForASite) + return result, response, err + +} + +//SetNTPSettingsForASite Set NTP settings for a site - 9d80-8815-42a9-b006 +/* Set NTP settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the settings is unset. + + +@param id id path parameter. Site Id + +*/ +func (s *NetworkSettingsService) SetNTPSettingsForASite(id string, requestNetworkSettingsSetNTPSettingsForASite *RequestNetworkSettingsSetNTPSettingsForASite) (*ResponseNetworkSettingsSetNTPSettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/ntpSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSetNTPSettingsForASite). + SetResult(&ResponseNetworkSettingsSetNTPSettingsForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetNTPSettingsForASite(id, requestNetworkSettingsSetNTPSettingsForASite) + } + return nil, response, fmt.Errorf("error with operation SetNTPSettingsForASite") + } + + result := response.Result().(*ResponseNetworkSettingsSetNTPSettingsForASite) + return result, response, err + +} + +//SetTelemetrySettingsForASite Set Telemetry settings for a site - a5a1-6835-40ab-8d2f +/* Sets telemetry settings for the given site; `null` values indicate that the setting will be inherited from the parent site. + + +@param id id path parameter. Site Id, retrievable from the `id` attribute in `/dna/intent/api/v1/sites` + +*/ +func (s *NetworkSettingsService) SetTelemetrySettingsForASite(id string, requestNetworkSettingsSetTelemetrySettingsForASite *RequestNetworkSettingsSetTelemetrySettingsForASite) (*ResponseNetworkSettingsSetTelemetrySettingsForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/telemetrySettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSetTelemetrySettingsForASite). + SetResult(&ResponseNetworkSettingsSetTelemetrySettingsForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetTelemetrySettingsForASite(id, requestNetworkSettingsSetTelemetrySettingsForASite) + } + return nil, response, fmt.Errorf("error with operation SetTelemetrySettingsForASite") + } + + result := response.Result().(*ResponseNetworkSettingsSetTelemetrySettingsForASite) + return result, response, err + +} + +//SetTimeZoneForASite Set time zone for a site - 16a7-b874-4b19-88d0 +/* Set time zone settings for a site; `null` values indicate that the setting will be inherited from the parent site; empty objects (`{}`) indicate that the settings is unset. + + +@param id id path parameter. Site Id + +*/ +func (s *NetworkSettingsService) SetTimeZoneForASite(id string, requestNetworkSettingsSetTimeZoneForASite *RequestNetworkSettingsSetTimeZoneForASite) (*ResponseNetworkSettingsSetTimeZoneForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{id}/timeZoneSettings" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestNetworkSettingsSetTimeZoneForASite). + SetResult(&ResponseNetworkSettingsSetTimeZoneForASite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetTimeZoneForASite(id, requestNetworkSettingsSetTimeZoneForASite) + } + return nil, response, fmt.Errorf("error with operation SetTimeZoneForASite") + } + + result := response.Result().(*ResponseNetworkSettingsSetTimeZoneForASite) + return result, response, err + +} + //UpdateNetworkV2 Update Network V2 - ac85-8bd9-4c78-a705 /* API to update network settings for DHCP, Syslog, SNMP, NTP, Network AAA, Client and Endpoint AAA, and/or DNS center server settings. @@ -1695,13 +2940,13 @@ func (s *NetworkSettingsService) UpdateSpProfileV2(requestNetworkSettingsUpdateS } //DeleteDeviceCredential Delete Device Credential - 259e-ab30-4598-8958 -/* Delete device credential. +/* Delete device credential. This API has been deprecated and will not be available in a Cisco DNA Center release after August 1st 2024 23:59:59 GMT. Please refer new Intent API : Delete Global Credentials V2 @param id id path parameter. global credential id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-device-credential +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-device-credential-v1 */ func (s *NetworkSettingsService) DeleteDeviceCredential(id string) (*ResponseNetworkSettingsDeleteDeviceCredential, *resty.Response, error) { //id string @@ -1722,7 +2967,8 @@ func (s *NetworkSettingsService) DeleteDeviceCredential(id string) (*ResponseNet if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteDeviceCredential(id) + return s.DeleteDeviceCredential( + id) } return nil, response, fmt.Errorf("error with operation DeleteDeviceCredential") } @@ -1739,7 +2985,7 @@ func (s *NetworkSettingsService) DeleteDeviceCredential(id string) (*ResponseNet @param id id path parameter. global pool id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-global-ip-pool +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-global-ip-pool-v1 */ func (s *NetworkSettingsService) DeleteGlobalIPPool(id string) (*ResponseNetworkSettingsDeleteGlobalIPPool, *resty.Response, error) { //id string @@ -1777,7 +3023,7 @@ func (s *NetworkSettingsService) DeleteGlobalIPPool(id string) (*ResponseNetwork @param id id path parameter. Id of reserve ip subpool to be deleted. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!release-reserve-ip-subpool +Documentation Link: https://developer.cisco.com/docs/dna-center/#!release-reserve-ip-subpool-v1 */ func (s *NetworkSettingsService) ReleaseReserveIPSubpool(id string) (*ResponseNetworkSettingsReleaseReserveIPSubpool, *resty.Response, error) { //id string @@ -1815,7 +3061,7 @@ func (s *NetworkSettingsService) ReleaseReserveIPSubpool(id string) (*ResponseNe @param spProfileName spProfileName path parameter. sp profile name -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-sp-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-sp-profile-v1 */ func (s *NetworkSettingsService) DeleteSpProfile(spProfileName string) (*ResponseNetworkSettingsDeleteSpProfile, *resty.Response, error) { //spProfileName string @@ -1850,7 +3096,7 @@ func (s *NetworkSettingsService) DeleteSpProfile(spProfileName string) (*Respons /* API to delete Service Provider Profile (QoS). -@param spProfileName spProfileName path parameter. sp profile name +@param spProfileName spProfileName path parameter. SP profile name Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-sp-profile-v2 diff --git a/sdk/path_trace.go b/sdk/path_trace.go index 5570e91..b9383a5 100644 --- a/sdk/path_trace.go +++ b/sdk/path_trace.go @@ -11,42 +11,43 @@ import ( type PathTraceService service -type RetrivesAllPreviousPathtracesSummaryQueryParams struct { - PeriodicRefresh bool `url:"periodicRefresh,omitempty"` //Is analysis periodically refreshed? - SourceIP string `url:"sourceIP,omitempty"` //Source IP address - DestIP string `url:"destIP,omitempty"` //Destination IP adress - SourcePort string `url:"sourcePort,omitempty"` //Source port - DestPort string `url:"destPort,omitempty"` //Destination port - GtCreateTime string `url:"gtCreateTime,omitempty"` //Analyses requested after this time - LtCreateTime string `url:"ltCreateTime,omitempty"` //Analyses requested before this time - Protocol string `url:"protocol,omitempty"` //Protocol - Status string `url:"status,omitempty"` //Status - TaskID string `url:"taskId,omitempty"` //Task ID - LastUpdateTime string `url:"lastUpdateTime,omitempty"` //Last update time - Limit int `url:"limit,omitempty"` //Number of resources returned - Offset int `url:"offset,omitempty"` //Start index of resources returned (1-based) - Order string `url:"order,omitempty"` //Order by this field - SortBy string `url:"sortBy,omitempty"` //Sort by this field +type RetrievesAllPreviousPathtracesSummaryQueryParams struct { + PeriodicRefresh bool `url:"periodicRefresh,omitempty"` //Is analysis periodically refreshed? + SourceIP string `url:"sourceIP,omitempty"` //Source IP address + DestIP string `url:"destIP,omitempty"` //Destination IP address + SourcePort float64 `url:"sourcePort,omitempty"` //Source port + DestPort float64 `url:"destPort,omitempty"` //Destination port + GtCreateTime float64 `url:"gtCreateTime,omitempty"` //Analyses requested after this time + LtCreateTime float64 `url:"ltCreateTime,omitempty"` //Analyses requested before this time + Protocol string `url:"protocol,omitempty"` //Protocol + Status string `url:"status,omitempty"` //Status + TaskID string `url:"taskId,omitempty"` //Task ID + LastUpdateTime float64 `url:"lastUpdateTime,omitempty"` //Last update time + Limit float64 `url:"limit,omitempty"` //Number of resources returned + Offset float64 `url:"offset,omitempty"` //Start index of resources returned (1-based) + Order string `url:"order,omitempty"` //Order by this field + SortBy string `url:"sortBy,omitempty"` //Sort by this field } -type ResponsePathTraceRetrivesAllPreviousPathtracesSummary struct { - Response *[]ResponsePathTraceRetrivesAllPreviousPathtracesSummaryResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // -} -type ResponsePathTraceRetrivesAllPreviousPathtracesSummaryResponse struct { - ControlPath *bool `json:"controlPath,omitempty"` // - CreateTime *int `json:"createTime,omitempty"` // - DestIP string `json:"destIP,omitempty"` // - DestPort string `json:"destPort,omitempty"` // - FailureReason string `json:"failureReason,omitempty"` // - ID string `json:"id,omitempty"` // - Inclusions []string `json:"inclusions,omitempty"` // - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // - PeriodicRefresh *bool `json:"periodicRefresh,omitempty"` // - Protocol string `json:"protocol,omitempty"` // - SourceIP string `json:"sourceIP,omitempty"` // - SourcePort string `json:"sourcePort,omitempty"` // - Status string `json:"status,omitempty"` // +type ResponsePathTraceRetrievesAllPreviousPathtracesSummary struct { + Response *[]ResponsePathTraceRetrievesAllPreviousPathtracesSummaryResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponsePathTraceRetrievesAllPreviousPathtracesSummaryResponse struct { + ControlPath *bool `json:"controlPath,omitempty"` // Control path tracing + CreateTime *int `json:"createTime,omitempty"` // Timestamp when the Path Trace request was first received + DestIP string `json:"destIP,omitempty"` // IP Address of the destination device + DestPort string `json:"destPort,omitempty"` // Port on the destination device + FailureReason string `json:"failureReason,omitempty"` // Reason for failure + ID string `json:"id,omitempty"` // Unique ID for the Path Trace request + Inclusions []string `json:"inclusions,omitempty"` // Subset of {INTERFACE-STATS, QOS-STATS, DEVICE-STATS, PERFORMANCE-STATS, ACL-TRACE} + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last timestamp when the path trace response was updated + PeriodicRefresh *bool `json:"periodicRefresh,omitempty"` // Re-run the Path Trace every 30 seconds + Protocol string `json:"protocol,omitempty"` // One of TCP/UDP or either (null) + SourceIP string `json:"sourceIP,omitempty"` // IP Address of the source device + SourcePort string `json:"sourcePort,omitempty"` // Port on the source device + Status string `json:"status,omitempty"` // One of {SUCCESS, INPROGRESS, FAILED, SCHEDULED, PENDING, COMPLETED} + PreviousFlowAnalysisID string `json:"previousFlowAnalysisId,omitempty"` // When periodicRefresh is true, this field holds the original Path Trace request ID } type ResponsePathTraceInitiateANewPathtrace struct { Response *ResponsePathTraceInitiateANewPathtraceResponse `json:"response,omitempty"` // @@ -894,19 +895,20 @@ type ResponsePathTraceRetrievesPreviousPathtraceResponseNetworkElementsInfoPerfM SourcePort string `json:"sourcePort,omitempty"` // } type ResponsePathTraceRetrievesPreviousPathtraceResponseRequest struct { - ControlPath *bool `json:"controlPath,omitempty"` // - CreateTime *int `json:"createTime,omitempty"` // - DestIP string `json:"destIP,omitempty"` // - DestPort string `json:"destPort,omitempty"` // - FailureReason string `json:"failureReason,omitempty"` // - ID string `json:"id,omitempty"` // - Inclusions []string `json:"inclusions,omitempty"` // - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // - PeriodicRefresh *bool `json:"periodicRefresh,omitempty"` // - Protocol string `json:"protocol,omitempty"` // - SourceIP string `json:"sourceIP,omitempty"` // - SourcePort string `json:"sourcePort,omitempty"` // - Status string `json:"status,omitempty"` // + ControlPath *bool `json:"controlPath,omitempty"` // Control path tracing + CreateTime *int `json:"createTime,omitempty"` // Timestamp when the Path Trace request was first received + DestIP string `json:"destIP,omitempty"` // IP Address of the destination device + DestPort string `json:"destPort,omitempty"` // Port on the destination device + FailureReason string `json:"failureReason,omitempty"` // Reason for failure + ID string `json:"id,omitempty"` // Unique ID for the Path Trace request + Inclusions []string `json:"inclusions,omitempty"` // Subset of {INTERFACE-STATS, QOS-STATS, DEVICE-STATS, PERFORMANCE-STATS, ACL-TRACE} + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last timestamp when the path trace response was updated + PeriodicRefresh *bool `json:"periodicRefresh,omitempty"` // Re-run the Path Trace every 30 seconds + Protocol string `json:"protocol,omitempty"` // One of TCP/UDP or either (null) + SourceIP string `json:"sourceIP,omitempty"` // IP Address of the source device + SourcePort string `json:"sourcePort,omitempty"` // Port on the source device + Status string `json:"status,omitempty"` // One of {SUCCESS, INPROGRESS, FAILED, SCHEDULED, PENDING, COMPLETED} + PreviousFlowAnalysisID string `json:"previousFlowAnalysisId,omitempty"` // When periodicRefresh is true, this field holds the original Path Trace request ID } type ResponsePathTraceDeletesPathtraceByID struct { Response *ResponsePathTraceDeletesPathtraceByIDResponse `json:"response,omitempty"` // @@ -919,31 +921,31 @@ type ResponsePathTraceDeletesPathtraceByIDResponse struct { type RequestPathTraceInitiateANewPathtrace struct { ControlPath *bool `json:"controlPath,omitempty"` // Control path tracing DestIP string `json:"destIP,omitempty"` // Destination IP address - DestPort string `json:"destPort,omitempty"` // Destination Port + DestPort string `json:"destPort,omitempty"` // Destination Port, range: 1-65535 Inclusions []string `json:"inclusions,omitempty"` // Subset of {INTERFACE-STATS, QOS-STATS, DEVICE-STATS, PERFORMANCE-STATS, ACL-TRACE} PeriodicRefresh *bool `json:"periodicRefresh,omitempty"` // Periodic refresh of path for every 30 sec - Protocol string `json:"protocol,omitempty"` // Protocol + Protocol string `json:"protocol,omitempty"` // Protocol - one of [TCP, UDP] - checks both when left blank SourceIP string `json:"sourceIP,omitempty"` // Source IP address - SourcePort string `json:"sourcePort,omitempty"` // Source Port + SourcePort string `json:"sourcePort,omitempty"` // Source Port, range: 1-65535 } -//RetrivesAllPreviousPathtracesSummary Retrives all previous Pathtraces summary - 55bc-3bf9-4e38-b6ff +//RetrievesAllPreviousPathtracesSummary Retrieves all previous Pathtraces summary - 55bc-3bf9-4e38-b6ff /* Returns a summary of all flow analyses stored. Results can be filtered by specified parameters. -@param RetrivesAllPreviousPathtracesSummaryQueryParams Filtering parameter +@param RetrievesAllPreviousPathtracesSummaryQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrives-all-previous-pathtraces-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-all-previous-pathtraces-summary-v1 */ -func (s *PathTraceService) RetrivesAllPreviousPathtracesSummary(RetrivesAllPreviousPathtracesSummaryQueryParams *RetrivesAllPreviousPathtracesSummaryQueryParams) (*ResponsePathTraceRetrivesAllPreviousPathtracesSummary, *resty.Response, error) { +func (s *PathTraceService) RetrievesAllPreviousPathtracesSummary(RetrievesAllPreviousPathtracesSummaryQueryParams *RetrievesAllPreviousPathtracesSummaryQueryParams) (*ResponsePathTraceRetrievesAllPreviousPathtracesSummary, *resty.Response, error) { path := "/dna/intent/api/v1/flow-analysis" - queryString, _ := query.Values(RetrivesAllPreviousPathtracesSummaryQueryParams) + queryString, _ := query.Values(RetrievesAllPreviousPathtracesSummaryQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponsePathTraceRetrivesAllPreviousPathtracesSummary{}). + SetQueryString(queryString.Encode()).SetResult(&ResponsePathTraceRetrievesAllPreviousPathtracesSummary{}). SetError(&Error). Get(path) @@ -954,12 +956,12 @@ func (s *PathTraceService) RetrivesAllPreviousPathtracesSummary(RetrivesAllPrevi if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.RetrivesAllPreviousPathtracesSummary(RetrivesAllPreviousPathtracesSummaryQueryParams) + return s.RetrievesAllPreviousPathtracesSummary(RetrievesAllPreviousPathtracesSummaryQueryParams) } - return nil, response, fmt.Errorf("error with operation RetrivesAllPreviousPathtracesSummary") + return nil, response, fmt.Errorf("error with operation RetrievesAllPreviousPathtracesSummary") } - result := response.Result().(*ResponsePathTraceRetrivesAllPreviousPathtracesSummary) + result := response.Result().(*ResponsePathTraceRetrievesAllPreviousPathtracesSummary) return result, response, err } @@ -971,7 +973,7 @@ func (s *PathTraceService) RetrivesAllPreviousPathtracesSummary(RetrivesAllPrevi @param flowAnalysisID flowAnalysisId path parameter. Flow analysis request id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-previous-pathtrace +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-previous-pathtrace-v1 */ func (s *PathTraceService) RetrievesPreviousPathtrace(flowAnalysisID string) (*ResponsePathTraceRetrievesPreviousPathtrace, *resty.Response, error) { path := "/dna/intent/api/v1/flow-analysis/{flowAnalysisId}" @@ -1006,7 +1008,7 @@ func (s *PathTraceService) RetrievesPreviousPathtrace(flowAnalysisID string) (*R -Documentation Link: https://developer.cisco.com/docs/dna-center/#!initiate-a-new-pathtrace +Documentation Link: https://developer.cisco.com/docs/dna-center/#!initiate-a-new-pathtrace-v1 */ func (s *PathTraceService) InitiateANewPathtrace(requestPathTraceInitiateANewPathtrace *RequestPathTraceInitiateANewPathtrace) (*ResponsePathTraceInitiateANewPathtrace, *resty.Response, error) { path := "/dna/intent/api/v1/flow-analysis" @@ -1045,7 +1047,7 @@ func (s *PathTraceService) InitiateANewPathtrace(requestPathTraceInitiateANewPat @param flowAnalysisID flowAnalysisId path parameter. Flow analysis request id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-pathtrace-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-pathtrace-by-id-v1 */ func (s *PathTraceService) DeletesPathtraceByID(flowAnalysisID string) (*ResponsePathTraceDeletesPathtraceByID, *resty.Response, error) { //flowAnalysisID string diff --git a/sdk/platform.go b/sdk/platform.go index 6a9956d..dd12fac 100644 --- a/sdk/platform.go +++ b/sdk/platform.go @@ -84,12 +84,12 @@ type ResponsePlatformCiscoDnaCenterNodesConfigurationSummaryResponseNodesPlatfor Serial string `json:"serial,omitempty"` // Serial number of chassis } -//CiscoDnaCenterPackagesSummary Cisco DNA Center Packages Summary - f3aa-697a-453a-bba0 -/* Provides information such as name, version of packages installed on the DNA center. +//CiscoDnaCenterPackagesSummary Cisco Catalyst Center Packages Summary - f3aa-697a-453a-bba0 +/* Provides information such as name, version of packages installed on the Catalyst Center. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!cisco-d-n-a-center-packages-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!cisco-dna-center-packages-summary-v1 */ func (s *PlatformService) CiscoDnaCenterPackagesSummary() (*ResponsePlatformCiscoDnaCenterPackagesSummary, *resty.Response, error) { path := "/dna/intent/api/v1/dnac-packages" @@ -118,12 +118,12 @@ func (s *PlatformService) CiscoDnaCenterPackagesSummary() (*ResponsePlatformCisc } -//CiscoDnaCenterReleaseSummary Cisco DNA Center Release Summary - 5b87-e929-418b-8550 -/* Provides information such as API version, mandatory core packages for installation or upgrade, optional packages, Cisco DNA Center name and version, supported direct updates, and tenant ID. +//CiscoDnaCenterReleaseSummary Cisco Catalyst Center Release Summary - 5b87-e929-418b-8550 +/* Provides information such as API version, mandatory core packages for installation or upgrade, optional packages, Cisco Catalyst Center name and version, supported direct updates, and tenant ID. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!cisco-dna-center-release-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!cisco-dna-center-release-summary-v1 */ func (s *PlatformService) CiscoDnaCenterReleaseSummary() (*ResponsePlatformCiscoDnaCenterReleaseSummary, *resty.Response, error) { path := "/dna/intent/api/v1/dnac-release" @@ -152,12 +152,12 @@ func (s *PlatformService) CiscoDnaCenterReleaseSummary() (*ResponsePlatformCisco } -//CiscoDnaCenterNodesConfigurationSummary Cisco DNA Center Nodes Configuration Summary - d8b0-fb13-4f08-a967 -/* Provides details about the current Cisco DNA Center node configuration, such as API version, node name, NTP server, intracluster link, LACP mode, network static routes, DNS server, subnet mask, host IP, default gateway, and interface information. +//CiscoDnaCenterNodesConfigurationSummary Cisco Catalyst Center Nodes Configuration Summary - d8b0-fb13-4f08-a967 +/* Provides details about the current Cisco Catalyst Center node configuration, such as API version, node name, NTP server, intracluster link, LACP mode, network static routes, DNS server, subnet mask, host IP, default gateway, and interface information. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!cisco-dna-center-nodes-configuration-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!cisco-dna-center-nodes-configuration-summary-v1 */ func (s *PlatformService) CiscoDnaCenterNodesConfigurationSummary() (*ResponsePlatformCiscoDnaCenterNodesConfigurationSummary, *resty.Response, error) { path := "/dna/intent/api/v1/nodes-config" diff --git a/sdk/policy.go b/sdk/policy.go deleted file mode 100644 index 179819a..0000000 --- a/sdk/policy.go +++ /dev/null @@ -1,458 +0,0 @@ -package dnac - -import ( - "fmt" - "net/http" - "strings" - - "github.com/go-resty/resty/v2" - "github.com/google/go-querystring/query" -) - -type PolicyService service - -type GetListOfProfilingRulesQueryParams struct { - RuleType string `url:"ruleType,omitempty"` //Use comma-separated list of rule types to filter the data. Defaults to 'Custom Rule'. - IncludeDeleted bool `url:"includeDeleted,omitempty"` //Flag to indicate whether deleted rules should be part of the records fetched. - Limit float64 `url:"limit,omitempty"` //Maximum number of records to be fetched. If not provided, 500 records will be fetched by default. To fetch all the records in the system, provide a large value for this parameter. - Offset float64 `url:"offset,omitempty"` //Record offset to start data fetch at. Offset starts at zero. - SortBy string `url:"sortBy,omitempty"` //Name of the column to sort the results on. Please note that fetch might take more time if sorting is requested. - Order string `url:"order,omitempty"` //Order to be used for sorting. -} -type GetCountOfProfilingRulesQueryParams struct { - RuleType string `url:"ruleType,omitempty"` //Use comma-separated list of rule types to filter the data. Defaults to 'Custom Rule'. - IncludeDeleted bool `url:"includeDeleted,omitempty"` //Flag to indicate whether deleted rules should be part of the records fetched. -} - -type ResponsePolicyCreateAProfilingRule struct { - ID string `json:"id,omitempty"` // Unique identifier for the newly created resource. - Link string `json:"link,omitempty"` // Link to the newly created resource. -} -type ResponsePolicyGetListOfProfilingRules struct { - ProfilingRules *[]ResponsePolicyGetListOfProfilingRulesProfilingRules `json:"profilingRules,omitempty"` // -} -type ResponsePolicyGetListOfProfilingRulesProfilingRules struct { - RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. - RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. - RuleType string `json:"ruleType,omitempty"` // Type of the rule. - RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. - RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. - SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. - IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. - LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. - LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. - PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. - ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. - Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. - Result *ResponsePolicyGetListOfProfilingRulesProfilingRulesResult `json:"result,omitempty"` // - ConditionGroups *ResponsePolicyGetListOfProfilingRulesProfilingRulesConditionGroups `json:"conditionGroups,omitempty"` // - UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. -} -type ResponsePolicyGetListOfProfilingRulesProfilingRulesResult struct { - DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. - HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. - HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. - OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. -} -type ResponsePolicyGetListOfProfilingRulesProfilingRulesConditionGroups struct { - Type string `json:"type,omitempty"` // - Condition *ResponsePolicyGetListOfProfilingRulesProfilingRulesConditionGroupsCondition `json:"condition,omitempty"` // - Operator string `json:"operator,omitempty"` // - ConditionGroup *[]ResponsePolicyGetListOfProfilingRulesProfilingRulesConditionGroupsConditionGroup `json:"conditionGroup,omitempty"` // -} -type ResponsePolicyGetListOfProfilingRulesProfilingRulesConditionGroupsCondition struct { - Attribute string `json:"attribute,omitempty"` // - Operator string `json:"operator,omitempty"` // - Value string `json:"value,omitempty"` // - AttributeDictionary string `json:"attributeDictionary,omitempty"` // -} -type ResponsePolicyGetListOfProfilingRulesProfilingRulesConditionGroupsConditionGroup interface{} -type ResponsePolicyGetCountOfProfilingRules struct { - Count *int `json:"count,omitempty"` // -} -type ResponsePolicyGetDetailsOfASingleProfilingRule struct { - RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. - RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. - RuleType string `json:"ruleType,omitempty"` // Type of the rule. - RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. - RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. - SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. - IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. - LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. - LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. - PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. - ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. - Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. - Result *ResponsePolicyGetDetailsOfASingleProfilingRuleResult `json:"result,omitempty"` // - ConditionGroups *ResponsePolicyGetDetailsOfASingleProfilingRuleConditionGroups `json:"conditionGroups,omitempty"` // - UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. -} -type ResponsePolicyGetDetailsOfASingleProfilingRuleResult struct { - DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. - HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. - HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. - OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. -} -type ResponsePolicyGetDetailsOfASingleProfilingRuleConditionGroups struct { - Type string `json:"type,omitempty"` // - Condition *ResponsePolicyGetDetailsOfASingleProfilingRuleConditionGroupsCondition `json:"condition,omitempty"` // - Operator string `json:"operator,omitempty"` // - ConditionGroup *[]ResponsePolicyGetDetailsOfASingleProfilingRuleConditionGroupsConditionGroup `json:"conditionGroup,omitempty"` // -} -type ResponsePolicyGetDetailsOfASingleProfilingRuleConditionGroupsCondition struct { - Attribute string `json:"attribute,omitempty"` // - Operator string `json:"operator,omitempty"` // - Value string `json:"value,omitempty"` // - AttributeDictionary string `json:"attributeDictionary,omitempty"` // -} -type ResponsePolicyGetDetailsOfASingleProfilingRuleConditionGroupsConditionGroup interface{} -type RequestPolicyCreateAProfilingRule struct { - RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. - RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. - RuleType string `json:"ruleType,omitempty"` // Type of the rule. - RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. - RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. - SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. - IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. - LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. - LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. - PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. - ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. - Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. - Result *RequestPolicyCreateAProfilingRuleResult `json:"result,omitempty"` // - ConditionGroups *RequestPolicyCreateAProfilingRuleConditionGroups `json:"conditionGroups,omitempty"` // - UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. -} -type RequestPolicyCreateAProfilingRuleResult struct { - DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. - HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. - HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. - OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. -} -type RequestPolicyCreateAProfilingRuleConditionGroups struct { - Type string `json:"type,omitempty"` // - Condition *RequestPolicyCreateAProfilingRuleConditionGroupsCondition `json:"condition,omitempty"` // - Operator string `json:"operator,omitempty"` // - ConditionGroup *[]RequestPolicyCreateAProfilingRuleConditionGroupsConditionGroup `json:"conditionGroup,omitempty"` // -} -type RequestPolicyCreateAProfilingRuleConditionGroupsCondition struct { - Attribute string `json:"attribute,omitempty"` // - Operator string `json:"operator,omitempty"` // - Value string `json:"value,omitempty"` // - AttributeDictionary string `json:"attributeDictionary,omitempty"` // -} -type RequestPolicyCreateAProfilingRuleConditionGroupsConditionGroup interface{} -type RequestPolicyImportProfilingRulesInBulk struct { - ProfilingRules *[]RequestPolicyImportProfilingRulesInBulkProfilingRules `json:"profilingRules,omitempty"` // -} -type RequestPolicyImportProfilingRulesInBulkProfilingRules struct { - RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. - RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. - RuleType string `json:"ruleType,omitempty"` // Type of the rule. - RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. - RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. - SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. - IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. - LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. - LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. - PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. - ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. - Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. - Result *RequestPolicyImportProfilingRulesInBulkProfilingRulesResult `json:"result,omitempty"` // - ConditionGroups *RequestPolicyImportProfilingRulesInBulkProfilingRulesConditionGroups `json:"conditionGroups,omitempty"` // - UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. -} -type RequestPolicyImportProfilingRulesInBulkProfilingRulesResult struct { - DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. - HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. - HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. - OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. -} -type RequestPolicyImportProfilingRulesInBulkProfilingRulesConditionGroups struct { - Type string `json:"type,omitempty"` // - Condition *RequestPolicyImportProfilingRulesInBulkProfilingRulesConditionGroupsCondition `json:"condition,omitempty"` // - Operator string `json:"operator,omitempty"` // - ConditionGroup *[]RequestPolicyImportProfilingRulesInBulkProfilingRulesConditionGroupsConditionGroup `json:"conditionGroup,omitempty"` // -} -type RequestPolicyImportProfilingRulesInBulkProfilingRulesConditionGroupsCondition struct { - Attribute string `json:"attribute,omitempty"` // - Operator string `json:"operator,omitempty"` // - Value string `json:"value,omitempty"` // - AttributeDictionary string `json:"attributeDictionary,omitempty"` // -} -type RequestPolicyImportProfilingRulesInBulkProfilingRulesConditionGroupsConditionGroup interface{} -type RequestPolicyUpdateAnExistingProfilingRule struct { - RuleID string `json:"ruleId,omitempty"` // Unique identifier for the rule. This is normally generated by the system, and client does not need to provide it for rules that need to be newly created. - RuleName string `json:"ruleName,omitempty"` // Human readable name for the rule. - RuleType string `json:"ruleType,omitempty"` // Type of the rule. - RuleVersion *int `json:"ruleVersion,omitempty"` // Version of the rule. - RulePriority *int `json:"rulePriority,omitempty"` // Priority for the rule. - SourcePriority *int `json:"sourcePriority,omitempty"` // Source priority for the rule. - IsDeleted *bool `json:"isDeleted,omitempty"` // Flag to indicate whether the rule was deleted. - LastModifiedBy string `json:"lastModifiedBy,omitempty"` // User that last modified the rule. It is read-only, and is ignored if provided as part of input request. - LastModifiedOn *int `json:"lastModifiedOn,omitempty"` // Timestamp (in epoch milliseconds) of last modification. It is read-only, and is ignored if provided as part of input request. - PluginID string `json:"pluginId,omitempty"` // Plugin for the rule. Only applicable for 'Cisco Default' rules. - ClusterID string `json:"clusterId,omitempty"` // Unique identifier for ML cluster. Only applicable for 'ML Rule'. - Rejected *bool `json:"rejected,omitempty"` // Flag to indicate whether rule has been rejected by user or not. Only applicable for 'ML Rule'. - Result *RequestPolicyUpdateAnExistingProfilingRuleResult `json:"result,omitempty"` // - ConditionGroups *RequestPolicyUpdateAnExistingProfilingRuleConditionGroups `json:"conditionGroups,omitempty"` // - UsedAttributes []string `json:"usedAttributes,omitempty"` // List of attributes used in the rule. Only applicable for 'Cisco Default' rules. -} -type RequestPolicyUpdateAnExistingProfilingRuleResult struct { - DeviceType []string `json:"deviceType,omitempty"` // List of device types determined by the current rule. - HardwareManufacturer []string `json:"hardwareManufacturer,omitempty"` // List of hardware manufacturers determined by the current rule. - HardwareModel []string `json:"hardwareModel,omitempty"` // List of hardware models determined by the current rule. - OperatingSystem []string `json:"operatingSystem,omitempty"` // List of operating systems determined by the current rule. -} -type RequestPolicyUpdateAnExistingProfilingRuleConditionGroups struct { - Type string `json:"type,omitempty"` // - Condition *RequestPolicyUpdateAnExistingProfilingRuleConditionGroupsCondition `json:"condition,omitempty"` // - Operator string `json:"operator,omitempty"` // - ConditionGroup *[]RequestPolicyUpdateAnExistingProfilingRuleConditionGroupsConditionGroup `json:"conditionGroup,omitempty"` // -} -type RequestPolicyUpdateAnExistingProfilingRuleConditionGroupsCondition struct { - Attribute string `json:"attribute,omitempty"` // - Operator string `json:"operator,omitempty"` // - Value string `json:"value,omitempty"` // - AttributeDictionary string `json:"attributeDictionary,omitempty"` // -} -type RequestPolicyUpdateAnExistingProfilingRuleConditionGroupsConditionGroup interface{} - -//GetListOfProfilingRules Get list of profiling rules - 07b4-eb60-435a-bf90 -/* This API fetches the list of profiling rules. It can be used to show profiling rules in client applications, or export those from an environment. 'POST /profiling-rules/bulk' API can be used to import such exported rules into another environment. If this API is used to export rules to be imported into another Cisco DNA Center system, then ensure that 'includeDeleted' parameter is 'true', so that deleted rules get synchronized correctly. Use query parameters to filter the data, as required. If no filter is provided, then it will include only rules of type 'Custom Rule' in the response. By default, the response is limited to 500 records. Use 'limit' parameter to fetch higher number of records, if required. 'GET /profiling-rules/count' API can be used to find out the total number of rules in the system. - - -@param GetListOfProfilingRulesQueryParams Filtering parameter -*/ -func (s *PolicyService) GetListOfProfilingRules(GetListOfProfilingRulesQueryParams *GetListOfProfilingRulesQueryParams) (*ResponsePolicyGetListOfProfilingRules, *resty.Response, error) { - path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules" - - queryString, _ := query.Values(GetListOfProfilingRulesQueryParams) - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponsePolicyGetListOfProfilingRules{}). - SetError(&Error). - Get(path) - - if err != nil { - return nil, nil, err - - } - - if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.GetListOfProfilingRules(GetListOfProfilingRulesQueryParams) - } - return nil, response, fmt.Errorf("error with operation GetListOfProfilingRules") - } - - result := response.Result().(*ResponsePolicyGetListOfProfilingRules) - return result, response, err - -} - -//GetCountOfProfilingRules Get count of profiling rules - 4dad-ba2c-4968-b494 -/* This API fetches the count of profiling rules based on the filter values provided in the query parameters. The filter parameters are same as that of 'GET /profiling-rules' API, excluding the pagination and sort parameters. - - -@param GetCountOfProfilingRulesQueryParams Filtering parameter -*/ -func (s *PolicyService) GetCountOfProfilingRules(GetCountOfProfilingRulesQueryParams *GetCountOfProfilingRulesQueryParams) (*ResponsePolicyGetCountOfProfilingRules, *resty.Response, error) { - path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/count" - - queryString, _ := query.Values(GetCountOfProfilingRulesQueryParams) - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponsePolicyGetCountOfProfilingRules{}). - SetError(&Error). - Get(path) - - if err != nil { - return nil, nil, err - - } - - if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.GetCountOfProfilingRules(GetCountOfProfilingRulesQueryParams) - } - return nil, response, fmt.Errorf("error with operation GetCountOfProfilingRules") - } - - result := response.Result().(*ResponsePolicyGetCountOfProfilingRules) - return result, response, err - -} - -//GetDetailsOfASingleProfilingRule Get details of a single profiling rule - 20bc-6a22-4a4b-bead -/* Fetches details of the profiling rule for the given 'ruleId'. - - -@param ruleID ruleId path parameter. Unique rule identifier - -*/ -func (s *PolicyService) GetDetailsOfASingleProfilingRule(ruleID string) (*ResponsePolicyGetDetailsOfASingleProfilingRule, *resty.Response, error) { - path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/{ruleId}" - path = strings.Replace(path, "{ruleId}", fmt.Sprintf("%v", ruleID), -1) - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetResult(&ResponsePolicyGetDetailsOfASingleProfilingRule{}). - SetError(&Error). - Get(path) - - if err != nil { - return nil, nil, err - - } - - if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.GetDetailsOfASingleProfilingRule(ruleID) - } - return nil, response, fmt.Errorf("error with operation GetDetailsOfASingleProfilingRule") - } - - result := response.Result().(*ResponsePolicyGetDetailsOfASingleProfilingRule) - return result, response, err - -} - -//CreateAProfilingRule Create a profiling rule - 6cb9-98bb-47ea-90f6 -/* Creates profiling rule from the request body. - - - */ -func (s *PolicyService) CreateAProfilingRule(requestPolicyCreateAProfilingRule *RequestPolicyCreateAProfilingRule) (*ResponsePolicyCreateAProfilingRule, *resty.Response, error) { - path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules" - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetBody(requestPolicyCreateAProfilingRule). - SetResult(&ResponsePolicyCreateAProfilingRule{}). - SetError(&Error). - Post(path) - - if err != nil { - return nil, nil, err - - } - - if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateAProfilingRule(requestPolicyCreateAProfilingRule) - } - return nil, response, fmt.Errorf("error with operation CreateAProfilingRule") - } - - result := response.Result().(*ResponsePolicyCreateAProfilingRule) - return result, response, err - -} - -//ImportProfilingRulesInBulk Import profiling rules in bulk - 70bf-885f-408a-9c74 -/* This API imports the given list of profiling rules. For each record, 1) If 'ruleType' for a record is not 'Custom Rule', then it is rejected. 2) If 'ruleId' is provided in the input record, - 2a) Record with same 'ruleId' exists in the system, then it is replaced with new data. - 2b) Record with same 'ruleId' does not exist, then it is inserted in the database. -3) If 'ruleId' is not provided in the input record, then new 'ruleId' is generated by the system, and record is inserted. - - -*/ -func (s *PolicyService) ImportProfilingRulesInBulk(requestPolicyImportProfilingRulesInBulk *RequestPolicyImportProfilingRulesInBulk) (*resty.Response, error) { - path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/bulk" - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetBody(requestPolicyImportProfilingRulesInBulk). - SetError(&Error). - Post(path) - - if err != nil { - return nil, err - - } - - if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.ImportProfilingRulesInBulk(requestPolicyImportProfilingRulesInBulk) - } - return response, fmt.Errorf("error with operation ImportProfilingRulesInBulk") - } - - return response, err - -} - -//UpdateAnExistingProfilingRule Update an existing profiling rule - c197-6aa2-4fd9-82d7 -/* Updates the profiling rule for the given 'ruleId'. - - -@param ruleID ruleId path parameter. Unique rule identifier - -*/ -func (s *PolicyService) UpdateAnExistingProfilingRule(ruleID string, requestPolicyUpdateAnExistingProfilingRule *RequestPolicyUpdateAnExistingProfilingRule) (*resty.Response, error) { - path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/{ruleId}" - path = strings.Replace(path, "{ruleId}", fmt.Sprintf("%v", ruleID), -1) - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetBody(requestPolicyUpdateAnExistingProfilingRule). - SetError(&Error). - Put(path) - - if err != nil { - return nil, err - - } - - if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.UpdateAnExistingProfilingRule(ruleID, requestPolicyUpdateAnExistingProfilingRule) - } - return response, fmt.Errorf("error with operation UpdateAnExistingProfilingRule") - } - - return response, err - -} - -//DeleteAnExistingProfilingRule Delete an existing profiling rule - 6f9f-98d4-4b0b-9e7c -/* Deletes the profiling rule for the given 'ruleId'. - - -@param ruleID ruleId path parameter. Unique rule identifier - -*/ -func (s *PolicyService) DeleteAnExistingProfilingRule(ruleID string) (*resty.Response, error) { - path := "/dna/intent/api/v1/endpoint-analytics/profiling-rules/{ruleId}" - path = strings.Replace(path, "{ruleId}", fmt.Sprintf("%v", ruleID), -1) - - response, err := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetError(&Error). - Delete(path) - - if err != nil { - return nil, err - - } - - if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteAnExistingProfilingRule(ruleID) - } - return response, fmt.Errorf("error with operation DeleteAnExistingProfilingRule") - } - - return response, err - -} diff --git a/sdk/reports.go b/sdk/reports.go index 19943c4..91bdafc 100644 --- a/sdk/reports.go +++ b/sdk/reports.go @@ -16,6 +16,48 @@ type GetListOfScheduledReportsQueryParams struct { ViewID string `url:"viewId,omitempty"` //viewId of view for report } +// # Review unknown case +type ResponseReportsExecutingTheFlexibleReport struct { + ExecutionID string `json:"executionId,omitempty"` // Report ExecutionId (Unique UUID) + StartTime *float64 `json:"startTime,omitempty"` // Report execution start time (Represent the specified number of milliseconds since the epoch time) + EndTime *float64 `json:"endTime,omitempty"` // Report execution end time (Represent the specified number of milliseconds since the epoch time) + RequestStatus string `json:"requestStatus,omitempty"` // Report request status + Errors []string `json:"errors,omitempty"` // Errors associated to the report execution + Warnings *[]ResponseReportsExecutingTheFlexibleReportWarnings `json:"warnings,omitempty"` // Warnings associated to the report execution +} +type ResponseReportsExecutingTheFlexibleReportWarnings interface{} +type ResponseReportsGetExecutionIDByReportID struct { + ReportID string `json:"reportId,omitempty"` // Report Id (Unique UUID) + ReportName string `json:"reportName,omitempty"` // Name of the report + Executions *[]ResponseReportsGetExecutionIDByReportIDExecutions `json:"executions,omitempty"` // + ExecutionCount *int `json:"executionCount,omitempty"` // Total number of report executions + ReportWasExecuted *bool `json:"reportWasExecuted,omitempty"` // Report execution status flag (true if execution is started, false if the execution is not started) +} +type ResponseReportsGetExecutionIDByReportIDExecutions struct { + ExecutionID string `json:"executionId,omitempty"` // Report ExecutionId (Unique UUID) + StartTime *int `json:"startTime,omitempty"` // Report execution start time (Represent the specified number of milliseconds since the epoch time) + EndTime *float64 `json:"endTime,omitempty"` // Report execution end time (Represent the specified number of milliseconds since the epoch time) + ProcessStatus string `json:"processStatus,omitempty"` // Report execution status + RequestStatus string `json:"requestStatus,omitempty"` // Report request status + Errors []string `json:"errors,omitempty"` // Errors associated with the report execution + Warnings *[]ResponseReportsGetExecutionIDByReportIDExecutionsWarnings `json:"warnings,omitempty"` // Warnings associated with the report execution +} +type ResponseReportsGetExecutionIDByReportIDExecutionsWarnings interface{} +type ResponseReportsUpdateScheduleOfFlexibleReport struct { + Schedule *ResponseReportsUpdateScheduleOfFlexibleReportSchedule `json:"schedule,omitempty"` // Schedule information +} +type ResponseReportsUpdateScheduleOfFlexibleReportSchedule interface{} +type ResponseReportsGetFlexibleReportScheduleByReportID struct { + Schedule *ResponseReportsGetFlexibleReportScheduleByReportIDSchedule `json:"schedule,omitempty"` // Schedule information +} +type ResponseReportsGetFlexibleReportScheduleByReportIDSchedule interface{} +type ResponseReportsGetAllFlexibleReportSchedules []ResponseItemReportsGetAllFlexibleReportSchedules // Array of ResponseReportsGetAllFlexibleReportSchedules +type ResponseItemReportsGetAllFlexibleReportSchedules struct { + ReportID string `json:"reportId,omitempty"` // Report Id (Unique UUID) + Schedule *ResponseItemReportsGetAllFlexibleReportSchedulesSchedule `json:"schedule,omitempty"` // Schedule information + ReportName string `json:"reportName,omitempty"` // Name of the report +} +type ResponseItemReportsGetAllFlexibleReportSchedulesSchedule interface{} type ResponseReportsCreateOrScheduleAReport struct { Tags []string `json:"tags,omitempty"` // array of tags for report DataCategory string `json:"dataCategory,omitempty"` // data category of the report @@ -221,8 +263,8 @@ type ResponseReportsGetAllExecutionDetailsForAGivenReportView struct { } type ResponseReportsGetAllExecutionDetailsForAGivenReportViewFieldGroups interface{} type ResponseReportsGetAllExecutionDetailsForAGivenReportViewFilters interface{} -type ResponseReportsGetAllExecutionDetailsForAGivenReportViewFormat interface{} -type ResponseReportsGetAllViewGroups []ResponseItemReportsGetAllViewGroups // Array of ResponseReportsGetAllViewGroups +type ResponseReportsGetAllExecutionDetailsForAGivenReportViewFormat interface{} // # Review unknown case +type ResponseReportsGetAllViewGroups []ResponseItemReportsGetAllViewGroups // Array of ResponseReportsGetAllViewGroups type ResponseItemReportsGetAllViewGroups struct { Category string `json:"category,omitempty"` // category of the view group Description string `json:"description,omitempty"` // view group description @@ -302,6 +344,10 @@ type ResponseReportsGetViewDetailsForAGivenViewGroupViewSchedules struct { Type string `json:"type,omitempty"` // schedule type Default *bool `json:"default,omitempty"` // true, if the schedule type is default } +type RequestReportsUpdateScheduleOfFlexibleReport struct { + Schedule *RequestReportsUpdateScheduleOfFlexibleReportSchedule `json:"schedule,omitempty"` // Schedule information +} +type RequestReportsUpdateScheduleOfFlexibleReportSchedule interface{} type RequestReportsCreateOrScheduleAReport struct { Tags []string `json:"tags,omitempty"` // array of tags for report Deliveries *[]RequestReportsCreateOrScheduleAReportDeliveries `json:"deliveries,omitempty"` // Array of available delivery channels @@ -310,6 +356,7 @@ type RequestReportsCreateOrScheduleAReport struct { View *RequestReportsCreateOrScheduleAReportView `json:"view,omitempty"` // ViewGroupID string `json:"viewGroupId,omitempty"` // viewGroupId of the viewgroup for the report ViewGroupVersion string `json:"viewGroupVersion,omitempty"` // version of viewgroup for the report + DataCategory string `json:"dataCategory,omitempty"` // category of viewgroup for the report } type RequestReportsCreateOrScheduleAReportDeliveries interface{} type RequestReportsCreateOrScheduleAReportSchedule interface{} @@ -341,13 +388,159 @@ type RequestReportsCreateOrScheduleAReportViewFormat struct { Name string `json:"name,omitempty"` // format name of report } +//DownloadFlexibleReport Download Flexible Report - a1bc-fba5-4c1b-849d +/* This is used to download the flexible report. The API returns report content. Save the response to a file by converting the response data as a blob and setting the file format available from content-disposition response header. + + +@param reportID reportId path parameter. Id of the report + +@param executionID executionId path parameter. Id of execution + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!download-flexible-report-v1 +*/ +func (s *ReportsService) DownloadFlexibleReport(reportID string, executionID string) (*resty.Response, error) { + path := "/dna/data/api/v1/flexible-report/report/content/{reportId}/{executionId}" + path = strings.Replace(path, "{reportId}", fmt.Sprintf("%v", reportID), -1) + path = strings.Replace(path, "{executionId}", fmt.Sprintf("%v", executionID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetError(&Error). + Get(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DownloadFlexibleReport(reportID, executionID) + } + return response, fmt.Errorf("error with operation DownloadFlexibleReport") + } + + return response, err + +} + +//GetExecutionIDByReportID Get Execution Id by Report Id - 3e91-6aa5-4369-a739 +/* Get Execution Id by Report Id + + +@param reportID reportId path parameter. Id of the report + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-execution-id-by-report-id-v1 +*/ +func (s *ReportsService) GetExecutionIDByReportID(reportID string) (*ResponseReportsGetExecutionIDByReportID, *resty.Response, error) { + path := "/dna/data/api/v1/flexible-report/report/{reportId}/executions" + path = strings.Replace(path, "{reportId}", fmt.Sprintf("%v", reportID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseReportsGetExecutionIDByReportID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetExecutionIDByReportID(reportID) + } + return nil, response, fmt.Errorf("error with operation GetExecutionIdByReportId") + } + + result := response.Result().(*ResponseReportsGetExecutionIDByReportID) + return result, response, err + +} + +//GetFlexibleReportScheduleByReportID Get flexible report schedule by report id - 2a91-ebd9-4949-a73c +/* Get flexible report schedule by report id + + +@param reportID reportId path parameter. Id of the report + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-flexible-report-schedule-by-report-id-v1 +*/ +func (s *ReportsService) GetFlexibleReportScheduleByReportID(reportID string) (*ResponseReportsGetFlexibleReportScheduleByReportID, *resty.Response, error) { + path := "/dna/data/api/v1/flexible-report/schedule/{reportId}" + path = strings.Replace(path, "{reportId}", fmt.Sprintf("%v", reportID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseReportsGetFlexibleReportScheduleByReportID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetFlexibleReportScheduleByReportID(reportID) + } + return nil, response, fmt.Errorf("error with operation GetFlexibleReportScheduleByReportId") + } + + result := response.Result().(*ResponseReportsGetFlexibleReportScheduleByReportID) + return result, response, err + +} + +//GetAllFlexibleReportSchedules Get all flexible report schedules - 7fa5-299b-4d49-8d6f +/* Get all flexible report schedules + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-flexible-report-schedules-v1 +*/ +func (s *ReportsService) GetAllFlexibleReportSchedules() (*ResponseReportsGetAllFlexibleReportSchedules, *resty.Response, error) { + path := "/dna/data/api/v1/flexible-report/schedules" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseReportsGetAllFlexibleReportSchedules{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAllFlexibleReportSchedules() + } + return nil, response, fmt.Errorf("error with operation GetAllFlexibleReportSchedules") + } + + result := response.Result().(*ResponseReportsGetAllFlexibleReportSchedules) + return result, response, err + +} + //GetListOfScheduledReports Get list of scheduled reports - 2ab4-b80d-49ca-ae42 /* Get list of scheduled report configurations. @param GetListOfScheduledReportsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-scheduled-reports +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-list-of-scheduled-reports-v1 */ func (s *ReportsService) GetListOfScheduledReports(GetListOfScheduledReportsQueryParams *GetListOfScheduledReportsQueryParams) (*ResponseReportsGetListOfScheduledReports, *resty.Response, error) { path := "/dna/intent/api/v1/data/reports" @@ -385,7 +578,7 @@ func (s *ReportsService) GetListOfScheduledReports(GetListOfScheduledReportsQuer @param reportID reportId path parameter. reportId of report -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-a-scheduled-report +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-a-scheduled-report-v1 */ func (s *ReportsService) GetAScheduledReport(reportID string) (*ResponseReportsGetAScheduledReport, *resty.Response, error) { path := "/dna/intent/api/v1/data/reports/{reportId}" @@ -422,7 +615,7 @@ func (s *ReportsService) GetAScheduledReport(reportID string) (*ResponseReportsG @param reportID reportId path parameter. reportId of report -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-execution-details-for-a-given-report +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-execution-details-for-a-given-report-v1 */ func (s *ReportsService) GetAllExecutionDetailsForAGivenReport(reportID string) (*ResponseReportsGetAllExecutionDetailsForAGivenReport, *resty.Response, error) { path := "/dna/intent/api/v1/data/reports/{reportId}/executions" @@ -461,7 +654,7 @@ func (s *ReportsService) GetAllExecutionDetailsForAGivenReport(reportID string) @param executionID executionId path parameter. executionId of report execution -Documentation Link: https://developer.cisco.com/docs/dna-center/#!download-report-content +Documentation Link: https://developer.cisco.com/docs/dna-center/#!download-report-content-v1 */ func (s *ReportsService) DownloadReportContent(reportID string, executionID string) (FileDownload, *resty.Response, error) { path := "/dna/intent/api/v1/data/reports/{reportId}/executions/{executionId}" @@ -500,7 +693,7 @@ func (s *ReportsService) DownloadReportContent(reportID string, executionID stri -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-view-groups +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-view-groups-v1 */ func (s *ReportsService) GetAllViewGroups() (*ResponseReportsGetAllViewGroups, *resty.Response, error) { path := "/dna/intent/api/v1/data/view-groups" @@ -536,7 +729,7 @@ func (s *ReportsService) GetAllViewGroups() (*ResponseReportsGetAllViewGroups, * @param viewGroupID viewGroupId path parameter. viewGroupId of viewgroup. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-views-for-a-given-view-group +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-views-for-a-given-view-group-v1 */ func (s *ReportsService) GetViewsForAGivenViewGroup(viewGroupID string) (*ResponseReportsGetViewsForAGivenViewGroup, *resty.Response, error) { path := "/dna/intent/api/v1/data/view-groups/{viewGroupId}" @@ -575,7 +768,7 @@ func (s *ReportsService) GetViewsForAGivenViewGroup(viewGroupID string) (*Respon @param viewID viewId path parameter. view id of view -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-view-details-for-a-given-view-group-view +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-view-details-for-a-given-view-group-view-v1 */ func (s *ReportsService) GetViewDetailsForAGivenViewGroupView(viewGroupID string, viewID string) (*ResponseReportsGetViewDetailsForAGivenViewGroupView, *resty.Response, error) { path := "/dna/intent/api/v1/data/view-groups/{viewGroupId}/views/{viewId}" @@ -606,12 +799,51 @@ func (s *ReportsService) GetViewDetailsForAGivenViewGroupView(viewGroupID string } +//ExecutingTheFlexibleReport Executing the Flexible report - 4886-9a2c-4c5a-b570 +/* This API is used for executing the report + + +@param reportID reportId path parameter. Id of the Report + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!executing-the-flexible-report-v1 +*/ +func (s *ReportsService) ExecutingTheFlexibleReport(reportID string) (*ResponseReportsExecutingTheFlexibleReport, *resty.Response, error) { + path := "/dna/data/api/v1/flexible-report/report/{reportId}/execute" + path = strings.Replace(path, "{reportId}", fmt.Sprintf("%v", reportID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseReportsExecutingTheFlexibleReport{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ExecutingTheFlexibleReport(reportID) + } + + return nil, response, fmt.Errorf("error with operation ExecutingTheFlexibleReport") + } + + result := response.Result().(*ResponseReportsExecutingTheFlexibleReport) + return result, response, err + +} + //CreateOrScheduleAReport Create or Schedule a report - 8abf-291a-42aa-8860 /* Create/Schedule a report configuration. Use "Get view details for a given view group & view" API to get the metadata required to configure a report. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-or-schedule-a-report +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-or-schedule-a-report-v1 */ func (s *ReportsService) CreateOrScheduleAReport(requestReportsCreateOrScheduleAReport *RequestReportsCreateOrScheduleAReport) (*ResponseReportsCreateOrScheduleAReport, *resty.Response, error) { path := "/dna/intent/api/v1/data/reports" @@ -643,6 +875,42 @@ func (s *ReportsService) CreateOrScheduleAReport(requestReportsCreateOrScheduleA } +//UpdateScheduleOfFlexibleReport Update schedule of flexible report - 498f-2b3d-4cd8-bd9d +/* Update schedule of flexible report + + +@param reportID reportId path parameter. Id of the report + +*/ +func (s *ReportsService) UpdateScheduleOfFlexibleReport(reportID string, requestReportsUpdateScheduleOfFlexibleReport *RequestReportsUpdateScheduleOfFlexibleReport) (*ResponseReportsUpdateScheduleOfFlexibleReport, *resty.Response, error) { + path := "/dna/data/api/v1/flexible-report/schedule/{reportId}" + path = strings.Replace(path, "{reportId}", fmt.Sprintf("%v", reportID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestReportsUpdateScheduleOfFlexibleReport). + SetResult(&ResponseReportsUpdateScheduleOfFlexibleReport{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateScheduleOfFlexibleReport(reportID, requestReportsUpdateScheduleOfFlexibleReport) + } + return nil, response, fmt.Errorf("error with operation UpdateScheduleOfFlexibleReport") + } + + result := response.Result().(*ResponseReportsUpdateScheduleOfFlexibleReport) + return result, response, err + +} + //DeleteAScheduledReport Delete a scheduled report - 239c-6921-4f9b-b12e /* Delete a scheduled report configuration. Deletes the report executions also. @@ -650,7 +918,7 @@ func (s *ReportsService) CreateOrScheduleAReport(requestReportsCreateOrScheduleA @param reportID reportId path parameter. reportId of report -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-a-scheduled-report +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-a-scheduled-report-v1 */ func (s *ReportsService) DeleteAScheduledReport(reportID string) (*ResponseReportsDeleteAScheduledReport, *resty.Response, error) { //reportID string diff --git a/sdk/sda.go b/sdk/sda.go index 0b748a9..8ce8c69 100644 --- a/sdk/sda.go +++ b/sdk/sda.go @@ -3,6 +3,7 @@ package dnac import ( "fmt" "net/http" + "strings" "github.com/go-resty/resty/v2" "github.com/google/go-querystring/query" @@ -95,13 +96,234 @@ type GetVirtualNetworkSummaryQueryParams struct { type GetIPPoolFromSdaVirtualNetworkQueryParams struct { SiteNameHierarchy string `url:"siteNameHierarchy,omitempty"` //siteNameHierarchy VirtualNetworkName string `url:"virtualNetworkName,omitempty"` //virtualNetworkName - IPPoolName string `url:"ipPoolName,omitempty"` //ipPoolName + IPPoolName string `url:"ipPoolName,omitempty"` //ipPoolName. Note: Use vlanName as a value for this parameter if same ip pool is assigned to multiple virtual networks (e.g.. ipPoolName=vlan1021) } type DeleteIPPoolFromSdaVirtualNetworkQueryParams struct { SiteNameHierarchy string `url:"siteNameHierarchy,omitempty"` //siteNameHierarchy VirtualNetworkName string `url:"virtualNetworkName,omitempty"` //virtualNetworkName IPPoolName string `url:"ipPoolName,omitempty"` //ipPoolName } +type GetAnycastGatewaysQueryParams struct { + ID string `url:"id,omitempty"` //ID of the anycast gateway. + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the anycast gateway is assigned to. + VirtualNetworkName string `url:"virtualNetworkName,omitempty"` //Name of the virtual network associated with the anycast gateways. + IPPoolName string `url:"ipPoolName,omitempty"` //Name of the IP pool associated with the anycast gateways. + VLANName string `url:"vlanName,omitempty"` //VLAN name of the anycast gateways. + VLANID float64 `url:"vlanId,omitempty"` //VLAN ID of the anycast gateways. The allowed range for vlanId is [2-4093] except for reserved VLANs [1002-1005], 2046, and 4094. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetAnycastGatewayCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the anycast gateway is assigned to. + VirtualNetworkName string `url:"virtualNetworkName,omitempty"` //Name of the virtual network associated with the anycast gateways. + IPPoolName string `url:"ipPoolName,omitempty"` //Name of the IP pool associated with the anycast gateways. + VLANName string `url:"vlanName,omitempty"` //VLAN name of the anycast gateways. + VLANID float64 `url:"vlanId,omitempty"` //VLAN ID of the anycast gateways. The allowed range for vlanId is [2-4093] except for reserved VLANs [1002-1005], 2046, and 4094. +} +type GetAuthenticationProfilesQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the authentication profile is assigned to. + AuthenticationProfileName string `url:"authenticationProfileName,omitempty"` //Return only the authentication profiles with this specified name. Note that 'No Authentication' is not a valid option for this parameter. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type DeleteExtranetPoliciesQueryParams struct { + ExtranetPolicyName string `url:"extranetPolicyName,omitempty"` //Name of the extranet policy. +} +type GetExtranetPoliciesQueryParams struct { + ExtranetPolicyName string `url:"extranetPolicyName,omitempty"` //Name of the extranet policy. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetFabricDevicesQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. + DeviceRoles string `url:"deviceRoles,omitempty"` //Device roles of the fabric device. Allowed values are [CONTROL_PLANE_NODE, EDGE_NODE, BORDER_NODE, WIRELESS_CONTROLLER_NODE, EXTENDED_NODE]. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type DeleteFabricDevicesQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. + DeviceRoles string `url:"deviceRoles,omitempty"` //Device roles of the fabric device. Allowed values are [CONTROL_PLANE_NODE, EDGE_NODE, BORDER_NODE, WIRELESS_CONTROLLER_NODE]. +} +type GetFabricDevicesCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. + DeviceRoles string `url:"deviceRoles,omitempty"` //Device roles of the fabric device. Allowed values are [CONTROL_PLANE_NODE, EDGE_NODE, BORDER_NODE, WIRELESS_CONTROLLER_NODE, EXTENDED_NODE]. +} +type DeleteFabricDeviceLayer2HandoffsQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. +} +type GetFabricDevicesLayer2HandoffsQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetFabricDevicesLayer2HandoffsCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. +} +type DeleteFabricDeviceLayer3HandoffsWithIPTransitQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. +} +type GetFabricDevicesLayer3HandoffsWithIPTransitQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetFabricDevicesLayer3HandoffsWithIPTransitCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. +} +type GetFabricDevicesLayer3HandoffsWithSdaTransitQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type DeleteFabricDeviceLayer3HandoffsWithSdaTransitQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. +} +type GetFabricDevicesLayer3HandoffsWithSdaTransitCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric this device belongs to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the fabric device. +} +type GetFabricSitesQueryParams struct { + ID string `url:"id,omitempty"` //ID of the fabric site. + SiteID string `url:"siteId,omitempty"` //ID of the network hierarchy associated with the fabric site. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetFabricZonesQueryParams struct { + ID string `url:"id,omitempty"` //ID of the fabric zone. + SiteID string `url:"siteId,omitempty"` //ID of the network hierarchy associated with the fabric zone. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type DeleteLayer2VirtualNetworksQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the layer 2 virtual network is assigned to. + VLANName string `url:"vlanName,omitempty"` //The vlan name of the layer 2 virtual network. + VLANID float64 `url:"vlanId,omitempty"` //The vlan ID of the layer 2 virtual network. + TrafficType string `url:"trafficType,omitempty"` //The traffic type of the layer 2 virtual network. + AssociatedLayer3VirtualNetworkName string `url:"associatedLayer3VirtualNetworkName,omitempty"` //Name of the associated layer 3 virtual network. +} +type GetLayer2VirtualNetworksQueryParams struct { + ID string `url:"id,omitempty"` //ID of the layer 2 virtual network. + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the layer 2 virtual network is assigned to. + VLANName string `url:"vlanName,omitempty"` //The vlan name of the layer 2 virtual network. + VLANID float64 `url:"vlanId,omitempty"` //The vlan ID of the layer 2 virtual network. + TrafficType string `url:"trafficType,omitempty"` //The traffic type of the layer 2 virtual network. + AssociatedLayer3VirtualNetworkName string `url:"associatedLayer3VirtualNetworkName,omitempty"` //Name of the associated layer 3 virtual network. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetLayer2VirtualNetworkCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the layer 2 virtual network is assigned to. + VLANName string `url:"vlanName,omitempty"` //The vlan name of the layer 2 virtual network. + VLANID float64 `url:"vlanId,omitempty"` //The vlan ID of the layer 2 virtual network. + TrafficType string `url:"trafficType,omitempty"` //The traffic type of the layer 2 virtual network. + AssociatedLayer3VirtualNetworkName string `url:"associatedLayer3VirtualNetworkName,omitempty"` //Name of the associated layer 3 virtual network. +} +type GetLayer3VirtualNetworksQueryParams struct { + VirtualNetworkName string `url:"virtualNetworkName,omitempty"` //Name of the layer 3 virtual network. + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the layer 3 virtual network is assigned to. + AnchoredSiteID string `url:"anchoredSiteId,omitempty"` //Fabric ID of the fabric site the layer 3 virtual network is anchored at. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type DeleteLayer3VirtualNetworksQueryParams struct { + VirtualNetworkName string `url:"virtualNetworkName,omitempty"` //Name of the layer 3 virtual network. +} +type GetLayer3VirtualNetworksCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the layer 3 virtual network is assigned to. + AnchoredSiteID string `url:"anchoredSiteId,omitempty"` //Fabric ID of the fabric site the layer 3 virtual network is anchored at. +} +type GetMulticastQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric site where multicast is configured. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetMulticastVirtualNetworksQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric site where multicast is configured. + VirtualNetworkName string `url:"virtualNetworkName,omitempty"` //Name of the virtual network associated to the multicast configuration. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetMulticastVirtualNetworkCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric site the multicast configuration is associated with. +} +type GetPortAssignmentsQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the device is assigned to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the port assignment. + InterfaceName string `url:"interfaceName,omitempty"` //Interface name of the port assignment. + DataVLANName string `url:"dataVlanName,omitempty"` //Data VLAN name of the port assignment. + VoiceVLANName string `url:"voiceVlanName,omitempty"` //Voice VLAN name of the port assignment. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type DeletePortAssignmentsQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the device is assigned to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the port assignment. + InterfaceName string `url:"interfaceName,omitempty"` //Interface name of the port assignment. + DataVLANName string `url:"dataVlanName,omitempty"` //Data VLAN name of the port assignment. + VoiceVLANName string `url:"voiceVlanName,omitempty"` //Voice VLAN name of the port assignment. +} +type GetPortAssignmentCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the device is assigned to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device ID of the port assignment. + InterfaceName string `url:"interfaceName,omitempty"` //Interface name of the port assignment. + DataVLANName string `url:"dataVlanName,omitempty"` //Data VLAN name of the port assignment. + VoiceVLANName string `url:"voiceVlanName,omitempty"` //Voice VLAN name of the port assignment. +} +type GetPortChannelsQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the device is assigned to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //ID of the network device. + PortChannelName string `url:"portChannelName,omitempty"` //Name of the port channel. + ConnectedDeviceType string `url:"connectedDeviceType,omitempty"` //Connected device type of the port channel. The allowed values are [TRUNK, EXTENDED_NODE]. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type DeletePortChannelsQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the device is assigned to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //ID of the network device. + PortChannelName string `url:"portChannelName,omitempty"` //Name of the port channel. + ConnectedDeviceType string `url:"connectedDeviceType,omitempty"` //Connected device type of the port channel. The allowed values are [TRUNK, EXTENDED_NODE]. +} +type GetPortChannelCountQueryParams struct { + FabricID string `url:"fabricId,omitempty"` //ID of the fabric the device is assigned to. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //ID of the network device. + PortChannelName string `url:"portChannelName,omitempty"` //Name of the port channel. + ConnectedDeviceType string `url:"connectedDeviceType,omitempty"` //Connected device type of the port channel. The allowed values are [TRUNK, EXTENDED_NODE]. +} +type DeleteProvisionedDevicesQueryParams struct { + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //ID of the network device. + SiteID string `url:"siteId,omitempty"` //ID of the site hierarchy. +} +type GetProvisionedDevicesQueryParams struct { + ID string `url:"id,omitempty"` //ID of the provisioned device. + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //ID of the network device. + SiteID string `url:"siteId,omitempty"` //ID of the site hierarchy. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of devices to return. +} +type GetProvisionedDevicesCountQueryParams struct { + SiteID string `url:"siteId,omitempty"` //ID of the site hierarchy. +} +type GetTransitNetworksQueryParams struct { + ID string `url:"id,omitempty"` //ID of the transit network. + Name string `url:"name,omitempty"` //Name of the transit network. + Type string `url:"type,omitempty"` //Type of the transit network. Allowed values are [IP_BASED_TRANSIT, SDA_LISP_PUB_SUB_TRANSIT, SDA_LISP_BGP_TRANSIT]. + Offset float64 `url:"offset,omitempty"` //Starting record for pagination. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return. +} +type GetTransitNetworksCountQueryParams struct { + Type string `url:"type,omitempty"` //Type of the transit network. Allowed values are [IP_BASED_TRANSIT, SDA_LISP_PUB_SUB_TRANSIT, SDA_LISP_BGP_TRANSIT]. +} type DeleteVirtualNetworkWithScalableGroupsQueryParams struct { VirtualNetworkName string `url:"virtualNetworkName,omitempty"` //virtualNetworkName } @@ -110,19 +332,20 @@ type GetVirtualNetworkWithScalableGroupsQueryParams struct { } type ResponseSdaGetDefaultAuthenticationProfileFromSdaFabric struct { - SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Path of sda Fabric Site - AuthenticateTemplateName string `json:"authenticateTemplateName,omitempty"` // Authenticate Template Name - AuthenticationOrder string `json:"authenticationOrder,omitempty"` // Authentication Order - Dot1XToMabFallbackTimeout string `json:"dot1xToMabFallbackTimeout,omitempty"` // Dot1x To Mab Fallback Timeout - WakeOnLan interface{} `json:"wakeOnLan,omitempty"` // Wake On Lan - NumberOfHosts string `json:"numberOfHosts,omitempty"` // Number Of Hosts - Status string `json:"status,omitempty"` // Status - Description string `json:"description,omitempty"` // Authenticate Template info reterieved successfully in sda fabric site + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Path of sda Fabric Site + AuthenticateTemplateName string `json:"authenticateTemplateName,omitempty"` // Authenticate Template Name + AuthenticationOrder string `json:"authenticationOrder,omitempty"` // Authentication Order + Dot1XToMabFallbackTimeout string `json:"dot1xToMabFallbackTimeout,omitempty"` // Dot1x To Mab Fallback Timeout + WakeOnLan *bool `json:"wakeOnLan,omitempty"` // Wake On Lan + NumberOfHosts string `json:"numberOfHosts,omitempty"` // Number Of Hosts + Status string `json:"status,omitempty"` // Status + Description string `json:"description,omitempty"` // Authenticate Template info reterieved successfully in sda fabric site + ExecutionID string `json:"executionId,omitempty"` // Execution Id } type ResponseSdaAddDefaultAuthenticationTemplateInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -130,7 +353,7 @@ type ResponseSdaAddDefaultAuthenticationTemplateInSdaFabric struct { type ResponseSdaUpdateDefaultAuthenticationProfileInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -138,7 +361,7 @@ type ResponseSdaUpdateDefaultAuthenticationProfileInSdaFabric struct { type ResponseSdaDeleteDefaultAuthenticationProfileFromSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -146,169 +369,166 @@ type ResponseSdaDeleteDefaultAuthenticationProfileFromSdaFabric struct { type ResponseSdaAddBorderDeviceInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status } - -// type ResponseSdaGetBorderDeviceDetailFromSdaFabric struct { -// Status string `json:"status,omitempty"` // Status -// Description string `json:"description,omitempty"` // Description -// *ResponseSdaGetBorderDeviceDetailFromSdaFabric `json:",omitempty"` // -// } type ResponseSdaGetBorderDeviceDetailFromSdaFabric struct { - ID string `json:"id,omitempty"` // Id - InstanceID *int `json:"instanceId,omitempty"` // Instance Id - AuthEntityID *int `json:"authEntityId,omitempty"` // Auth Entity Id - DisplayName string `json:"displayName,omitempty"` // Display Name - AuthEntityClass *int `json:"authEntityClass,omitempty"` // Auth Entity Class - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - DeployPending string `json:"deployPending,omitempty"` // Deploy Pending - InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance Version - CreateTime *int `json:"createTime,omitempty"` // Create Time - Deployed *bool `json:"deployed,omitempty"` // Deployed - IsSeeded *bool `json:"isSeeded,omitempty"` // Is Seeded - IsStale *bool `json:"isStale,omitempty"` // Is Stale - LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time - Name string `json:"name,omitempty"` // Name - Namespace string `json:"namespace,omitempty"` // Namespace - ProvisioningState string `json:"provisioningState,omitempty"` // Provisioning State - ResourceVersion *int `json:"resourceVersion,omitempty"` // Resource Version - TargetIDList *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricTargetIDList `json:"targetIdList,omitempty"` // Target Id List - Type string `json:"type,omitempty"` // Type - CfsChangeInfo *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricCfsChangeInfo `json:"cfsChangeInfo,omitempty"` // Cfs Change Info - CustomProvisions *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricCustomProvisions `json:"customProvisions,omitempty"` // Custom Provisions - Configs *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricConfigs `json:"configs,omitempty"` // Configs - ManagedSites *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricManagedSites `json:"managedSites,omitempty"` // Managed Sites - NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network Device Id - Roles []string `json:"roles,omitempty"` // Roles - SaveWanConnectivityDetailsOnly *bool `json:"saveWanConnectivityDetailsOnly,omitempty"` // Save Wan Connectivity Details Only - SiteID string `json:"siteId,omitempty"` // Site Id - AkcSettingsCfs *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricAkcSettingsCfs `json:"akcSettingsCfs,omitempty"` // Akc Settings Cfs - DeviceInterfaceInfo *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceInterfaceInfo `json:"deviceInterfaceInfo,omitempty"` // Device Interface Info - DeviceSettings *ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettings `json:"deviceSettings,omitempty"` // - NetworkWideSettings *ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettings `json:"networkWideSettings,omitempty"` // - OtherDevice *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricOtherDevice `json:"otherDevice,omitempty"` // Other Device - TransitNetworks *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricTransitNetworks `json:"transitNetworks,omitempty"` // - VirtualNetwork *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricVirtualNetwork `json:"virtualNetwork,omitempty"` // Virtual Network - WLAN *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricWLAN `json:"wlan,omitempty"` // Wlan - Status string `json:"status,omitempty"` // Status - Description string `json:"description,omitempty"` // Description -} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricTargetIDList interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricCfsChangeInfo interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricCustomProvisions interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricConfigs interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricManagedSites interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricAkcSettingsCfs interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceInterfaceInfo interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettings struct { - ID string `json:"id,omitempty"` // Id - InstanceID *int `json:"instanceId,omitempty"` // Instance Id - DisplayName string `json:"displayName,omitempty"` // Display Name - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - DeployPending string `json:"deployPending,omitempty"` // Deploy Pending - InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance Version - ConnectedTo *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsConnectedTo `json:"connectedTo,omitempty"` // Connected To - CPU *float64 `json:"cpu,omitempty"` // Cpu - DhcpEnabled *bool `json:"dhcpEnabled,omitempty"` // Dhcp Enabled - ExternalConnectivityIPPool string `json:"externalConnectivityIpPool,omitempty"` // External Connectivity Ip Pool - ExternalDomainRoutingProtocol string `json:"externalDomainRoutingProtocol,omitempty"` // External Domain Routing Protocol - InternalDomainProtocolNumber string `json:"internalDomainProtocolNumber,omitempty"` // Internal Domain Protocol Number - Memory *float64 `json:"memory,omitempty"` // Memory - NodeType []string `json:"nodeType,omitempty"` // Node Type - Storage *float64 `json:"storage,omitempty"` // Storage - ExtConnectivitySettings *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsExtConnectivitySettings `json:"extConnectivitySettings,omitempty"` // -} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsConnectedTo interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsExtConnectivitySettings struct { - ID string `json:"id,omitempty"` // Id - InstanceID *int `json:"instanceId,omitempty"` // Instance Id - DisplayName string `json:"displayName,omitempty"` // Display Name - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - DeployPending string `json:"deployPending,omitempty"` // Deploy Pending - InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance Version - ExternalDomainProtocolNumber string `json:"externalDomainProtocolNumber,omitempty"` // External Domain Protocol Number - InterfaceUUID string `json:"interfaceUuid,omitempty"` // Interface Uuid - PolicyPropagationEnabled *bool `json:"policyPropagationEnabled,omitempty"` // Policy Propagation Enabled - PolicySgtTag *float64 `json:"policySgtTag,omitempty"` // Policy Sgt Tag - L2Handoff *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsExtConnectivitySettingsL2Handoff `json:"l2Handoff,omitempty"` // L2 Handoff - L3Handoff *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsExtConnectivitySettingsL3Handoff `json:"l3Handoff,omitempty"` // -} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsExtConnectivitySettingsL2Handoff interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsExtConnectivitySettingsL3Handoff struct { - ID string `json:"id,omitempty"` // Id - InstanceID *int `json:"instanceId,omitempty"` // Instance Id - DisplayName string `json:"displayName,omitempty"` // Display Name - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - DeployPending string `json:"deployPending,omitempty"` // Deploy Pending - InstanceVersion *float64 `json:"instanceVersion,omitempty"` // Instance Version - LocalIPAddress string `json:"localIpAddress,omitempty"` // Local Ip Address - RemoteIPAddress string `json:"remoteIpAddress,omitempty"` // Remote Ip Address - VLANID *int `json:"vlanId,omitempty"` // Vlan Id - VirtualNetwork *ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsExtConnectivitySettingsL3HandoffVirtualNetwork `json:"virtualNetwork,omitempty"` // -} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricDeviceSettingsExtConnectivitySettingsL3HandoffVirtualNetwork struct { + Status string `json:"status,omitempty"` // Status + Description string `json:"description,omitempty"` // Description + Payload *ResponseSdaGetBorderDeviceDetailFromSdaFabricPayload `json:"payload,omitempty"` // +} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayload struct { + ID string `json:"id,omitempty"` // Id + InstanceID *int `json:"instanceId,omitempty"` // Instance Id + AuthEntityID *int `json:"authEntityId,omitempty"` // Auth Entity Id + DisplayName string `json:"displayName,omitempty"` // Display Name + AuthEntityClass *int `json:"authEntityClass,omitempty"` // Auth Entity Class + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id + DeployPending string `json:"deployPending,omitempty"` // Deploy Pending + InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance Version + CreateTime *int `json:"createTime,omitempty"` // Create Time + Deployed *bool `json:"deployed,omitempty"` // Deployed + IsSeeded *bool `json:"isSeeded,omitempty"` // Is Seeded + IsStale *bool `json:"isStale,omitempty"` // Is Stale + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last Update Time + Name string `json:"name,omitempty"` // Name + Namespace string `json:"namespace,omitempty"` // Namespace + ProvisioningState string `json:"provisioningState,omitempty"` // Provisioning State + ResourceVersion *int `json:"resourceVersion,omitempty"` // Resource Version + TargetIDList *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadTargetIDList `json:"targetIdList,omitempty"` // Target Id List + Type string `json:"type,omitempty"` // Type + CfsChangeInfo *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadCfsChangeInfo `json:"cfsChangeInfo,omitempty"` // Cfs Change Info + CustomProvisions *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadCustomProvisions `json:"customProvisions,omitempty"` // Custom Provisions + Configs *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadConfigs `json:"configs,omitempty"` // Configs + ManagedSites *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadManagedSites `json:"managedSites,omitempty"` // Managed Sites + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network Device Id + Roles []string `json:"roles,omitempty"` // Roles + SaveWanConnectivityDetailsOnly *bool `json:"saveWanConnectivityDetailsOnly,omitempty"` // Save Wan Connectivity Details Only + SiteID string `json:"siteId,omitempty"` // Site Id + AkcSettingsCfs *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadAkcSettingsCfs `json:"akcSettingsCfs,omitempty"` // Akc Settings Cfs + DeviceInterfaceInfo *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceInterfaceInfo `json:"deviceInterfaceInfo,omitempty"` // Device Interface Info + DeviceSettings *ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettings `json:"deviceSettings,omitempty"` // + NetworkWidesettings *ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettings `json:"networkWideSettings,omitempty"` // + OtherDevice *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadOtherDevice `json:"otherDevice,omitempty"` // Other Device + TransitNetworks *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadTransitNetworks `json:"transitNetworks,omitempty"` // + VirtualNetwork *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadVirtualNetwork `json:"virtualNetwork,omitempty"` // Virtual Network + WLAN *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadWLAN `json:"wlan,omitempty"` // Wlan +} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadTargetIDList interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadCfsChangeInfo interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadCustomProvisions interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadConfigs interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadManagedSites interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadAkcSettingsCfs interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceInterfaceInfo interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettings struct { + ID string `json:"id,omitempty"` // Id + InstanceID *int `json:"instanceId,omitempty"` // Instance Id + DisplayName string `json:"displayName,omitempty"` // Display Name + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id + DeployPending string `json:"deployPending,omitempty"` // Deploy Pending + InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance Version + ConnectedTo *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsConnectedTo `json:"connectedTo,omitempty"` // Connected To + CPU *float64 `json:"cpu,omitempty"` // Cpu + DhcpEnabled *bool `json:"dhcpEnabled,omitempty"` // Dhcp Enabled + ExternalConnectivityIPPool string `json:"externalConnectivityIpPool,omitempty"` // External Connectivity Ip Pool + ExternalDomainRoutingProtocol string `json:"externalDomainRoutingProtocol,omitempty"` // External Domain Routing Protocol + InternalDomainProtocolNumber string `json:"internalDomainProtocolNumber,omitempty"` // Internal Domain Protocol Number + Memory *float64 `json:"memory,omitempty"` // Memory + NodeType []string `json:"nodeType,omitempty"` // Node Type + Storage *float64 `json:"storage,omitempty"` // Storage + ExtConnectivitySettings *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsExtConnectivitySettings `json:"extConnectivitySettings,omitempty"` // +} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsConnectedTo interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsExtConnectivitySettings struct { + ID string `json:"id,omitempty"` // Id + InstanceID *int `json:"instanceId,omitempty"` // Instance Id + DisplayName string `json:"displayName,omitempty"` // Display Name + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id + DeployPending string `json:"deployPending,omitempty"` // Deploy Pending + InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance Version + ExternalDomainProtocolNumber string `json:"externalDomainProtocolNumber,omitempty"` // External Domain Protocol Number + InterfaceUUID string `json:"interfaceUuid,omitempty"` // Interface Uuid + PolicyPropagationEnabled *bool `json:"policyPropagationEnabled,omitempty"` // Policy Propagation Enabled + PolicySgtTag *float64 `json:"policySgtTag,omitempty"` // Policy Sgt Tag + L2Handoff *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsExtConnectivitySettingsL2Handoff `json:"l2Handoff,omitempty"` // L2 Handoff + L3Handoff *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsExtConnectivitySettingsL3Handoff `json:"l3Handoff,omitempty"` // +} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsExtConnectivitySettingsL2Handoff interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsExtConnectivitySettingsL3Handoff struct { + ID string `json:"id,omitempty"` // Id + InstanceID *int `json:"instanceId,omitempty"` // Instance Id + DisplayName string `json:"displayName,omitempty"` // Display Name + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id + DeployPending string `json:"deployPending,omitempty"` // Deploy Pending + InstanceVersion *float64 `json:"instanceVersion,omitempty"` // Instance Version + LocalIPAddress string `json:"localIpAddress,omitempty"` // Local Ip Address + RemoteIPAddress string `json:"remoteIpAddress,omitempty"` // Remote Ip Address + VLANID *int `json:"vlanId,omitempty"` // Vlan Id + VirtualNetwork *ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsExtConnectivitySettingsL3HandoffVirtualNetwork `json:"virtualNetwork,omitempty"` // +} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadDeviceSettingsExtConnectivitySettingsL3HandoffVirtualNetwork struct { IDRef string `json:"idRef,omitempty"` // Id Ref } -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettings struct { - ID string `json:"id,omitempty"` // Id - InstanceID *int `json:"instanceId,omitempty"` // Instance Id - DisplayName string `json:"displayName,omitempty"` // Display Name - InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id - DeployPending string `json:"deployPending,omitempty"` // Deploy Pending - InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance Version - AAA *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsAAA `json:"aaa,omitempty"` // Aaa - Cmx *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsCmx `json:"cmx,omitempty"` // Cmx - Dhcp *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsDhcp `json:"dhcp,omitempty"` // - DNS *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsDNS `json:"dns,omitempty"` // - Ldap *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsLdap `json:"ldap,omitempty"` // Ldap - NativeVLAN *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsNativeVLAN `json:"nativeVlan,omitempty"` // Native Vlan - Netflow *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsNetflow `json:"netflow,omitempty"` // Netflow - Ntp *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsNtp `json:"ntp,omitempty"` // Ntp - SNMP *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsSNMP `json:"snmp,omitempty"` // Snmp - Syslogs *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsSyslogs `json:"syslogs,omitempty"` // Syslogs -} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsAAA interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsCmx interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsDhcp struct { - ID string `json:"id,omitempty"` // Id - IPAddress *ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsDhcpIPAddress `json:"ipAddress,omitempty"` // -} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsDhcpIPAddress struct { +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettings struct { + ID string `json:"id,omitempty"` // Id + InstanceID *int `json:"instanceId,omitempty"` // Instance Id + DisplayName string `json:"displayName,omitempty"` // Display Name + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Instance Tenant Id + DeployPending string `json:"deployPending,omitempty"` // Deploy Pending + InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance Version + AAA *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsAAA `json:"aaa,omitempty"` // Aaa + Cmx *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsCmx `json:"cmx,omitempty"` // Cmx + Dhcp *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsDhcp `json:"dhcp,omitempty"` // + DNS *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsDNS `json:"dns,omitempty"` // + Ldap *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsLdap `json:"ldap,omitempty"` // Ldap + NativeVLAN *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsNativeVLAN `json:"nativeVlan,omitempty"` // Native Vlan + Netflow *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsNetflow `json:"netflow,omitempty"` // Netflow + Ntp *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsNtp `json:"ntp,omitempty"` // Ntp + SNMP *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsSNMP `json:"snmp,omitempty"` // Snmp + Syslogs *[]ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsSyslogs `json:"syslogs,omitempty"` // Syslogs +} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsAAA interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsCmx interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsDhcp struct { + ID string `json:"id,omitempty"` // Id + IPAddress *ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsDhcpIPAddress `json:"ipAddress,omitempty"` // +} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsDhcpIPAddress struct { ID string `json:"id,omitempty"` // Id PaddedAddress string `json:"paddedAddress,omitempty"` // Padded Address AddressType string `json:"addressType,omitempty"` // Address Type Address string `json:"address,omitempty"` // Address } -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsDNS struct { - ID string `json:"id,omitempty"` // Id - DomainName string `json:"domainName,omitempty"` // Domain Name - IP *ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsDNSIP `json:"ip,omitempty"` // +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsDNS struct { + ID string `json:"id,omitempty"` // Id + DomainName string `json:"domainName,omitempty"` // Domain Name + IP *ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsDNSIP `json:"ip,omitempty"` // } -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsDNSIP struct { +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsDNSIP struct { ID string `json:"id,omitempty"` // Id PaddedAddress string `json:"paddedAddress,omitempty"` // Padded Address AddressType string `json:"addressType,omitempty"` // Address Type Address string `json:"address,omitempty"` // Address } -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsLdap interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsNativeVLAN interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsNetflow interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsNtp interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsSNMP interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricNetworkWideSettingsSyslogs interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricOtherDevice interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricTransitNetworks struct { +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsLdap interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsNativeVLAN interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsNetflow interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsNtp interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsSNMP interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadNetworkWidesettingsSyslogs interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadOtherDevice interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadTransitNetworks struct { IDRef string `json:"idRef,omitempty"` // Id Ref } -type ResponseSdaGetBorderDeviceDetailFromSdaFabricVirtualNetwork interface{} -type ResponseSdaGetBorderDeviceDetailFromSdaFabricWLAN interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadVirtualNetwork interface{} +type ResponseSdaGetBorderDeviceDetailFromSdaFabricPayloadWLAN interface{} type ResponseSdaDeleteBorderDeviceFromSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -316,7 +536,7 @@ type ResponseSdaDeleteBorderDeviceFromSdaFabric struct { type ResponseSdaDeleteControlPlaneDeviceInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -333,7 +553,7 @@ type ResponseSdaGetControlPlaneDeviceFromSdaFabric struct { type ResponseSdaAddControlPlaneDeviceInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -347,18 +567,14 @@ type ResponseSdaGetDeviceInfoFromSdaFabric struct { SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy } type ResponseSdaGetDeviceRoleInSdaFabric struct { - Response *ResponseSdaGetDeviceRoleInSdaFabricResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version -} -type ResponseSdaGetDeviceRoleInSdaFabricResponse struct { - Status string `json:"status,omitempty"` // Status - Description string `json:"description,omitempty"` // Description - Roles []string `json:"roles,omitempty"` // Roles + Roles []string `json:"roles,omitempty"` // Assigned device roles. Possible roles are [Edge Node, Control Plane, Border Node, Extended Node, Wireless Controller, Transit Control Plane] + Status string `json:"status,omitempty"` // Status indicates if API failed or passed. + Description string `json:"description,omitempty"` // Device role successfully retrieved from sda fabric. } type ResponseSdaAddEdgeDeviceInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -366,7 +582,7 @@ type ResponseSdaAddEdgeDeviceInSdaFabric struct { type ResponseSdaDeleteEdgeDeviceFromSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -391,7 +607,7 @@ type ResponseSdaGetSiteFromSdaFabric struct { type ResponseSdaDeleteSiteFromSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -399,7 +615,7 @@ type ResponseSdaDeleteSiteFromSdaFabric struct { type ResponseSdaAddSiteInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -407,7 +623,7 @@ type ResponseSdaAddSiteInSdaFabric struct { type ResponseSdaAddPortAssignmentForAccessPointInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -415,7 +631,7 @@ type ResponseSdaAddPortAssignmentForAccessPointInSdaFabric struct { type ResponseSdaDeletePortAssignmentForAccessPointInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -434,7 +650,7 @@ type ResponseSdaGetPortAssignmentForAccessPointInSdaFabric struct { type ResponseSdaDeletePortAssignmentForUserDeviceInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -442,7 +658,7 @@ type ResponseSdaDeletePortAssignmentForUserDeviceInSdaFabric struct { type ResponseSdaAddPortAssignmentForUserDeviceInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -461,7 +677,7 @@ type ResponseSdaGetPortAssignmentForUserDeviceInSdaFabric struct { type ResponseSdaAddMulticastInSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -487,7 +703,7 @@ type ResponseSdaGetMulticastDetailsFromSdaFabricMulticastVnInfoSsmInfo struct { type ResponseSdaDeleteMulticastFromSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -495,7 +711,7 @@ type ResponseSdaDeleteMulticastFromSdaFabric struct { type ResponseSdaDeleteProvisionedWiredDevice struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -503,7 +719,7 @@ type ResponseSdaDeleteProvisionedWiredDevice struct { type ResponseSdaReProvisionWiredDevice struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -511,7 +727,7 @@ type ResponseSdaReProvisionWiredDevice struct { type ResponseSdaProvisionWiredDevice struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -525,7 +741,7 @@ type ResponseSdaGetProvisionedWiredDevice struct { type ResponseSdaDeleteTransitPeerNetwork struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -537,6 +753,7 @@ type ResponseSdaGetTransitPeerNetworkInfo struct { SdaTransitSettings *ResponseSdaGetTransitPeerNetworkInfoSdaTransitSettings `json:"sdaTransitSettings,omitempty"` // Status string `json:"status,omitempty"` // status Description string `json:"description,omitempty"` // Transit Peer network info retrieved successfully + TransitPeerNetworkID string `json:"transitPeerNetworkId,omitempty"` // Transit Peer Network Id } type ResponseSdaGetTransitPeerNetworkInfoIPTransitSettings struct { RoutingProtocolName string `json:"routingProtocolName,omitempty"` // Routing Protocol Name @@ -552,7 +769,7 @@ type ResponseSdaGetTransitPeerNetworkInfoSdaTransitSettingsTransitControlPlaneSe type ResponseSdaAddTransitPeerNetwork struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -560,24 +777,27 @@ type ResponseSdaAddTransitPeerNetwork struct { type ResponseSdaDeleteVnFromSdaFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status } type ResponseSdaGetVnFromSdaFabric struct { - SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Path of sda Fabric Site - VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name - FabricName string `json:"fabricName,omitempty"` // Fabric Name - IsInfraVn *bool `json:"isInfraVN,omitempty"` // Infra VN - IsDefaultVn *bool `json:"isDefaultVN,omitempty"` // Default VN - Status string `json:"status,omitempty"` // Status - Description string `json:"description,omitempty"` // Virtual Network info retrieved successfully from SDA Fabric + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Path of sda Fabric Site + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name + FabricName string `json:"fabricName,omitempty"` // Fabric Name + IsInfraVn *bool `json:"isInfraVN,omitempty"` // Infra VN + IsDefaultVn *bool `json:"isDefaultVN,omitempty"` // Default VN + VirtualNetworkContextID string `json:"virtualNetworkContextId,omitempty"` // Virtual Network Context Id + VirtualNetworkID string `json:"virtualNetworkId,omitempty"` // Virtual Network Id + Status string `json:"status,omitempty"` // Status + Description string `json:"description,omitempty"` // Virtual Network info retrieved successfully from SDA Fabric + ExecutionID string `json:"executionId,omitempty"` // Execution Id } type ResponseSdaAddVnInFabric struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -587,33 +807,31 @@ type ResponseSdaGetVirtualNetworkSummary struct { VirtualNetworkSummary *[]ResponseSdaGetVirtualNetworkSummaryVirtualNetworkSummary `json:"virtualNetworkSummary,omitempty"` // Status string `json:"status,omitempty"` // Status Description string `json:"description,omitempty"` // Virtual Network summary retrieved successfully from SDA Fabric + ExecutionID string `json:"executionId,omitempty"` // Execution Id } type ResponseSdaGetVirtualNetworkSummaryVirtualNetworkSummary struct { - SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Site Name Hierarchy - VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name + VirtualNetworkContextID string `json:"virtualNetworkContextId,omitempty"` // Virtual Network Context Id + VirtualNetworkID string `json:"virtualNetworkId,omitempty"` // Virtual Network Id + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Site Name Hierarchy + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name + Layer3Instance *int `json:"layer3Instance,omitempty"` // layer3 Instance + VirtualNetworkStatus string `json:"virtualNetworkStatus,omitempty"` // Virtual Network Status } type ResponseSdaGetIPPoolFromSdaVirtualNetwork struct { - Status string `json:"status,omitempty"` // Status - Description string `json:"description,omitempty"` // Description - VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name - IPPoolName string `json:"ipPoolName,omitempty"` // Ip Pool Name - AuthenticationPolicyName string `json:"authenticationPolicyName,omitempty"` // Authentication Policy Name - TrafficType string `json:"trafficType,omitempty"` // Traffic Type - ScalableGroupName string `json:"scalableGroupName,omitempty"` // Scalable Group Name - IsL2FloodingEnabled *bool `json:"isL2FloodingEnabled,omitempty"` // Is L2 Flooding Enabled - IsThisCriticalPool *bool `json:"isThisCriticalPool,omitempty"` // Is This Critical Pool - VLANName string `json:"vlanName,omitempty"` // Vlan Name of - IsCommonPool *bool `json:"isCommonPool,omitempty"` // - IsWirelessPool *bool `json:"isWirelessPool,omitempty"` // - IsLayer2OnlyPool *bool `json:"isLayer2OnlyPool,omitempty"` // - IsIpDirectedBroadcast *bool `json:"isIpDirectedBroadcast,omitempty"` // - IsSelectiveFloodingEnabled *bool `json:"isSelectiveFloodingEnabled,omitempty"` // - IsBridgeModeVm *bool `json:"isBridgeModeVm,omitempty"` // + Status string `json:"status,omitempty"` // Status + Description string `json:"description,omitempty"` // Description + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name + IPPoolName string `json:"ipPoolName,omitempty"` // Ip Pool Name + AuthenticationPolicyName string `json:"authenticationPolicyName,omitempty"` // Authentication Policy Name + TrafficType string `json:"trafficType,omitempty"` // Traffic Type + ScalableGroupName string `json:"scalableGroupName,omitempty"` // Scalable Group Name + IsL2FloodingEnabled *bool `json:"isL2FloodingEnabled,omitempty"` // Is L2 Flooding Enabled + IsThisCriticalPool *bool `json:"isThisCriticalPool,omitempty"` // Is This Critical Pool } type ResponseSdaDeleteIPPoolFromSdaVirtualNetwork struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -621,15 +839,805 @@ type ResponseSdaDeleteIPPoolFromSdaVirtualNetwork struct { type ResponseSdaAddIPPoolInSdaVirtualNetwork struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status } +type ResponseSdaUpdateAnycastGateways struct { + Response *ResponseSdaUpdateAnycastGatewaysResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateAnycastGatewaysResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddAnycastGateways struct { + Response *ResponseSdaAddAnycastGatewaysResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddAnycastGatewaysResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetAnycastGateways struct { + Response *[]ResponseSdaGetAnycastGatewaysResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetAnycastGatewaysResponse struct { + ID string `json:"id,omitempty"` // ID of the anycast gateway. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this anycast gateway is assigned to. + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the layer 3 virtual network associated with the anycast gateway. + IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP pool associated with the anycast gateway. + TCPMssAdjustment *int `json:"tcpMssAdjustment,omitempty"` // TCP maximum segment size adjustment. + VLANName string `json:"vlanName,omitempty"` // Name of the VLAN of the anycast gateway. + VLANID *int `json:"vlanId,omitempty"` // ID of the VLAN of the anycast gateway. + TrafficType string `json:"trafficType,omitempty"` // The type of traffic the anycast gateway serves. + PoolType string `json:"poolType,omitempty"` // The pool type of the anycast gateway (applicable only to INFRA_VN). + SecurityGroupName string `json:"securityGroupName,omitempty"` // Name of the associated Security Group (not applicable to INFRA_VN). + IsCriticalPool *bool `json:"isCriticalPool,omitempty"` // Enable/disable critical VLAN (not applicable to INFRA_VN). + IsLayer2FloodingEnabled *bool `json:"isLayer2FloodingEnabled,omitempty"` // Enable/disable layer 2 flooding (not applicable to INFRA_VN). + IsWirelessPool *bool `json:"isWirelessPool,omitempty"` // Enable/disable fabric-enabled wireless (not applicable to INFRA_VN). + IsIPDirectedBroadcast *bool `json:"isIpDirectedBroadcast,omitempty"` // Enable/disable IP-directed broadcast (not applicable to INFRA_VN). + IsIntraSubnetRoutingEnabled *bool `json:"isIntraSubnetRoutingEnabled,omitempty"` // Enable/disable Intra-Subnet Routing (not applicable to INFRA_VN). + IsMultipleIPToMacAddresses *bool `json:"isMultipleIpToMacAddresses,omitempty"` // Enable/disable multiple IP-to-MAC Addresses (Wireless Bridged-Network Virtual Machine; not applicable to INFRA_VN). + IsSupplicantBasedExtendedNodeOnboarding *bool `json:"isSupplicantBasedExtendedNodeOnboarding,omitempty"` // Enable/disable Supplicant-Based Extended Node Onboarding (applicable only to INFRA_VN). + IsGroupBasedPolicyEnforcementEnabled *bool `json:"isGroupBasedPolicyEnforcementEnabled,omitempty"` // Enable/disable Group-Based Policy Enforcement (applicable only to INFRA_VN). +} +type ResponseSdaGetAnycastGatewayCount struct { + Response *ResponseSdaGetAnycastGatewayCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetAnycastGatewayCountResponse struct { + Count *int `json:"count,omitempty"` // The number of anycast gateways. +} +type ResponseSdaDeleteAnycastGatewayByID struct { + Response *ResponseSdaDeleteAnycastGatewayByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteAnycastGatewayByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetAuthenticationProfiles struct { + Response *[]ResponseSdaGetAuthenticationProfilesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetAuthenticationProfilesResponse struct { + ID string `json:"id,omitempty"` // ID of the authentication profile. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this authentication profile is assigned to. + AuthenticationProfileName string `json:"authenticationProfileName,omitempty"` // The default host authentication template. + AuthenticationOrder string `json:"authenticationOrder,omitempty"` // First authentication method. + Dot1XToMabFallbackTimeout *int `json:"dot1xToMabFallbackTimeout,omitempty"` // 802.1x Timeout. + WakeOnLan *bool `json:"wakeOnLan,omitempty"` // Wake on LAN. + NumberOfHosts string `json:"numberOfHosts,omitempty"` // Number of Hosts. + IsBpduGuardEnabled *bool `json:"isBpduGuardEnabled,omitempty"` // Enable/disable BPDU Guard. Only applicable when authenticationProfileName is set to "Closed Authentication". +} +type ResponseSdaUpdateAuthenticationProfile struct { + Response *ResponseSdaUpdateAuthenticationProfileResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateAuthenticationProfileResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaDeleteExtranetPolicies struct { + Response *ResponseSdaDeleteExtranetPoliciesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteExtranetPoliciesResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaUpdateExtranetPolicy struct { + Response *ResponseSdaUpdateExtranetPolicyResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateExtranetPolicyResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddExtranetPolicy struct { + Response *ResponseSdaAddExtranetPolicyResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddExtranetPolicyResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetExtranetPolicies struct { + Response *[]ResponseSdaGetExtranetPoliciesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetExtranetPoliciesResponse struct { + ID string `json:"id,omitempty"` // ID of the extranet policy. + ExtranetPolicyName string `json:"extranetPolicyName,omitempty"` // Name of the extranet policy. + FabricIDs []string `json:"fabricIds,omitempty"` // IDs of the fabric sites associated with this extranet policy. + ProviderVirtualNetworkName string `json:"providerVirtualNetworkName,omitempty"` // Name of the provider virtual network. + SubscriberVirtualNetworkNames []string `json:"subscriberVirtualNetworkNames,omitempty"` // Name of the subscriber virtual network names. +} +type ResponseSdaGetExtranetPolicyCount struct { + Response *ResponseSdaGetExtranetPolicyCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetExtranetPolicyCountResponse struct { + Count *int `json:"count,omitempty"` // Number of extranet policies. +} +type ResponseSdaDeleteExtranetPolicyByID struct { + Response *ResponseSdaDeleteExtranetPolicyByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteExtranetPolicyByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricDevices struct { + Response *[]ResponseSdaGetFabricDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricDevicesResponse struct { + ID string `json:"id,omitempty"` // ID of the fabric device. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric of this fabric device. + DeviceRoles []string `json:"deviceRoles,omitempty"` // List of the roles of the fabric device. Allowed values are [CONTROL_PLANE_NODE, EDGE_NODE, BORDER_NODE, WIRELESS_CONTROLLER_NODE, EXTENDED_NODE]. + BorderDeviceSettings *ResponseSdaGetFabricDevicesResponseBorderDeviceSettings `json:"borderDeviceSettings,omitempty"` // +} +type ResponseSdaGetFabricDevicesResponseBorderDeviceSettings struct { + BorderTypes []string `json:"borderTypes,omitempty"` // List of the border types of the fabric device. Allowed values are [LAYER_2, LAYER_3]. + Layer3Settings *ResponseSdaGetFabricDevicesResponseBorderDeviceSettingsLayer3Settings `json:"layer3Settings,omitempty"` // +} +type ResponseSdaGetFabricDevicesResponseBorderDeviceSettingsLayer3Settings struct { + LocalAutonomousSystemNumber string `json:"localAutonomousSystemNumber,omitempty"` // BGP Local autonomous system number of the fabric border device. + IsDefaultExit *bool `json:"isDefaultExit,omitempty"` // Is default exit value of the fabric border device. + ImportExternalRoutes *bool `json:"importExternalRoutes,omitempty"` // Import external routes value of the fabric border device. + BorderPriority *int `json:"borderPriority,omitempty"` // Border priority of the fabric border device. A lower value indicates higher priority. E.g., a priority of 1 takes precedence over 5. + PrependAutonomousSystemCount *int `json:"prependAutonomousSystemCount,omitempty"` // Prepend autonomous system count of the fabric border device. +} +type ResponseSdaUpdateFabricDevices struct { + Response *ResponseSdaUpdateFabricDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateFabricDevicesResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaDeleteFabricDevices struct { + Response *ResponseSdaDeleteFabricDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricDevicesResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddFabricDevices struct { + Response *ResponseSdaAddFabricDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddFabricDevicesResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricDevicesCount struct { + Response *ResponseSdaGetFabricDevicesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricDevicesCountResponse struct { + Count *int `json:"count,omitempty"` // Number of fabric devices. +} +type ResponseSdaDeleteFabricDeviceLayer2Handoffs struct { + Response *ResponseSdaDeleteFabricDeviceLayer2HandoffsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricDeviceLayer2HandoffsResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricDevicesLayer2Handoffs struct { + Response *[]ResponseSdaGetFabricDevicesLayer2HandoffsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricDevicesLayer2HandoffsResponse struct { + ID string `json:"id,omitempty"` // ID of the layer 2 handoff of a fabric device. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this device is assigned to. + InterfaceName string `json:"interfaceName,omitempty"` // Interface name of the layer 2 handoff. + InternalVLANID *int `json:"internalVlanId,omitempty"` // VLAN number associated with this fabric. + ExternalVLANID *int `json:"externalVlanId,omitempty"` // External VLAN number into which the fabric is extended. +} +type ResponseSdaAddFabricDevicesLayer2Handoffs struct { + Response *ResponseSdaAddFabricDevicesLayer2HandoffsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddFabricDevicesLayer2HandoffsResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricDevicesLayer2HandoffsCount struct { + Response *ResponseSdaGetFabricDevicesLayer2HandoffsCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricDevicesLayer2HandoffsCountResponse struct { + Count *int `json:"count,omitempty"` // Number of fabric device layer 2 handoffs. +} +type ResponseSdaDeleteFabricDeviceLayer2HandoffByID struct { + Response *ResponseSdaDeleteFabricDeviceLayer2HandoffByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricDeviceLayer2HandoffByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddFabricDevicesLayer3HandoffsWithIPTransit struct { + Response *ResponseSdaAddFabricDevicesLayer3HandoffsWithIPTransitResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddFabricDevicesLayer3HandoffsWithIPTransitResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaUpdateFabricDevicesLayer3HandoffsWithIPTransit struct { + Response *ResponseSdaUpdateFabricDevicesLayer3HandoffsWithIPTransitResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateFabricDevicesLayer3HandoffsWithIPTransitResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaDeleteFabricDeviceLayer3HandoffsWithIPTransit struct { + Response *ResponseSdaDeleteFabricDeviceLayer3HandoffsWithIPTransitResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricDeviceLayer3HandoffsWithIPTransitResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransit struct { + Response *[]ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransitResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransitResponse struct { + ID string `json:"id,omitempty"` // ID of the fabric device layer 3 handoff ip transit. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this device is assigned to. + TransitNetworkID string `json:"transitNetworkId,omitempty"` // ID of the transit network of the layer 3 handoff ip transit. + InterfaceName string `json:"interfaceName,omitempty"` // Interface name of the layer 3 handoff ip transit. + ExternalConnectivityIPPoolName string `json:"externalConnectivityIpPoolName,omitempty"` // External connectivity ip pool is used by Catalyst Center to allocate IP address for the connection between the border node and peer. + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the virtual network associated with this fabric site. + VLANID *int `json:"vlanId,omitempty"` // VLAN number for the Switch Virtual Interface (SVI) used to establish BGP peering with the external domain for the virtual network. Allowed VLAN range is 2-4094 except for reserved vlans (1, 1002-1005, 2046, 4094). + TCPMssAdjustment *int `json:"tcpMssAdjustment,omitempty"` // TCP maximum segment size (mss) value for the layer 3 handoff. Allowed range is [500-1440]. TCP MSS Adjustment value is applicable for the TCP sessions over both IPv4 and IPv6. + LocalIPAddress string `json:"localIpAddress,omitempty"` // Local ipv4 address for the selected virtual network. IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). Not applicable if an external connectivity ip pool name is present. + RemoteIPAddress string `json:"remoteIpAddress,omitempty"` // Remote ipv4 address for the selected virtual network. IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). Not applicable if an external connectivity ip pool name is present. + LocalIPv6Address string `json:"localIpv6Address,omitempty"` // Local ipv6 address for the selected virtual network. IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). Not applicable if an external connectivity ip pool name is present. + RemoteIPv6Address string `json:"remoteIpv6Address,omitempty"` // Remote ipv6 address for the selected virtual network. IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). Not applicable if an external connectivity ip pool name is present. +} +type ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransitCount struct { + Response *ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransitCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransitCountResponse struct { + Count *int `json:"count,omitempty"` // Number of fabric device layer 3 handoffs with IP transit. +} +type ResponseSdaDeleteFabricDeviceLayer3HandoffWithIPTransitByID struct { + Response *ResponseSdaDeleteFabricDeviceLayer3HandoffWithIPTransitByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricDeviceLayer3HandoffWithIPTransitByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit struct { + Response *ResponseSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransitResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransitResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransit struct { + Response *[]ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransitResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransitResponse struct { + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this device is assigned to. + TransitNetworkID string `json:"transitNetworkId,omitempty"` // ID of the transit network of the layer 3 handoff sda transit. + AffinityIDPrime *int `json:"affinityIdPrime,omitempty"` // Affinity id prime value of the border node. It supersedes the border priority to determine border node preference. Allowed range is [0-2147483647]. The lower the relative value of affinity id prime, the higher the preference for a destination border node. + AffinityIDDecider *int `json:"affinityIdDecider,omitempty"` // Affinity id decider value of the border node. When the affinity id prime value is the same on multiple devices, the affinity id decider value is used as a tiebreaker. Allowed range is [0-2147483647]. The lower the relative value of affinity id decider, the higher the preference for a destination border node. + ConnectedToInternet *bool `json:"connectedToInternet,omitempty"` // True value for this allows associated site to provide internet access to other sites through sd-access. + IsMulticastOverTransitEnabled *bool `json:"isMulticastOverTransitEnabled,omitempty"` // True value for this configures native multicast over multiple sites that are connected to an sd-access transit. +} +type ResponseSdaDeleteFabricDeviceLayer3HandoffsWithSdaTransit struct { + Response *ResponseSdaDeleteFabricDeviceLayer3HandoffsWithSdaTransitResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricDeviceLayer3HandoffsWithSdaTransitResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddFabricDevicesLayer3HandoffsWithSdaTransit struct { + Response *ResponseSdaAddFabricDevicesLayer3HandoffsWithSdaTransitResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddFabricDevicesLayer3HandoffsWithSdaTransitResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransitCount struct { + Response *ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransitCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransitCountResponse struct { + Count *int `json:"count,omitempty"` // Number of fabric device layer 3 handoffs with sda transit. +} +type ResponseSdaDeleteFabricDeviceByID struct { + Response *ResponseSdaDeleteFabricDeviceByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricDeviceByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricSites struct { + Response *[]ResponseSdaGetFabricSitesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricSitesResponse struct { + ID string `json:"id,omitempty"` // ID of the fabric site. + SiteID string `json:"siteId,omitempty"` // ID of the network hierarchy. + AuthenticationProfileName string `json:"authenticationProfileName,omitempty"` // Authentication profile used for this fabric. + IsPubSubEnabled *bool `json:"isPubSubEnabled,omitempty"` // Specifies whether this fabric site will use pub/sub for control nodes. +} +type ResponseSdaAddFabricSite struct { + Response *ResponseSdaAddFabricSiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddFabricSiteResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaUpdateFabricSite struct { + Response *ResponseSdaUpdateFabricSiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateFabricSiteResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricSiteCount struct { + Response *ResponseSdaGetFabricSiteCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricSiteCountResponse struct { + Count *int `json:"count,omitempty"` // The number of fabric sites. +} +type ResponseSdaDeleteFabricSiteByID struct { + Response *ResponseSdaDeleteFabricSiteByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricSiteByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricZones struct { + Response *[]ResponseSdaGetFabricZonesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricZonesResponse struct { + ID string `json:"id,omitempty"` // ID of the fabric zone. + SiteID string `json:"siteId,omitempty"` // ID of the network hierarchy. + AuthenticationProfileName string `json:"authenticationProfileName,omitempty"` // Authentication profile used for this fabric. +} +type ResponseSdaUpdateFabricZone struct { + Response *ResponseSdaUpdateFabricZoneResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateFabricZoneResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddFabricZone struct { + Response *ResponseSdaAddFabricZoneResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddFabricZoneResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetFabricZoneCount struct { + Response *ResponseSdaGetFabricZoneCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetFabricZoneCountResponse struct { + Count *int `json:"count,omitempty"` // The number of fabric zones. +} +type ResponseSdaDeleteFabricZoneByID struct { + Response *ResponseSdaDeleteFabricZoneByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteFabricZoneByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddLayer2VirtualNetworks struct { + Response *ResponseSdaAddLayer2VirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddLayer2VirtualNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaDeleteLayer2VirtualNetworks struct { + Response *ResponseSdaDeleteLayer2VirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteLayer2VirtualNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetLayer2VirtualNetworks struct { + Response *[]ResponseSdaGetLayer2VirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetLayer2VirtualNetworksResponse struct { + ID string `json:"id,omitempty"` // ID of the layer 2 virtual network. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this layer 2 virtual network is assigned to. + VLANName string `json:"vlanName,omitempty"` // Name of the VLAN of the layer 2 virtual network. + VLANID *int `json:"vlanId,omitempty"` // ID of the VLAN of the layer 2 virtual network. + TrafficType string `json:"trafficType,omitempty"` // The type of traffic that is served. + IsFabricEnabledWireless *bool `json:"isFabricEnabledWireless,omitempty"` // Set to true to enable wireless. + AssociatedLayer3VirtualNetworkName string `json:"associatedLayer3VirtualNetworkName,omitempty"` // Name of the layer 3 virtual network associated with the layer 2 virtual network. This field is provided to support requests related to virtual network anchoring. +} +type ResponseSdaUpdateLayer2VirtualNetworks struct { + Response *ResponseSdaUpdateLayer2VirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateLayer2VirtualNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetLayer2VirtualNetworkCount struct { + Response *ResponseSdaGetLayer2VirtualNetworkCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetLayer2VirtualNetworkCountResponse struct { + Count *int `json:"count,omitempty"` // The number of layer 2 virtual networks +} +type ResponseSdaDeleteLayer2VirtualNetworkByID struct { + Response *ResponseSdaDeleteLayer2VirtualNetworkByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteLayer2VirtualNetworkByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddLayer3VirtualNetworks struct { + Response *ResponseSdaAddLayer3VirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddLayer3VirtualNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetLayer3VirtualNetworks struct { + Response *[]ResponseSdaGetLayer3VirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetLayer3VirtualNetworksResponse struct { + ID string `json:"id,omitempty"` // ID of the layer 3 virtual network. + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the layer 3 virtual network. + FabricIDs []string `json:"fabricIds,omitempty"` // IDs of the fabrics this layer 3 virtual network is assigned to. + AnchoredSiteID string `json:"anchoredSiteId,omitempty"` // Fabric ID of the fabric site this layer 3 virtual network is anchored at. +} +type ResponseSdaDeleteLayer3VirtualNetworks struct { + Response *ResponseSdaDeleteLayer3VirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteLayer3VirtualNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaUpdateLayer3VirtualNetworks struct { + Response *ResponseSdaUpdateLayer3VirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateLayer3VirtualNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetLayer3VirtualNetworksCount struct { + Response *ResponseSdaGetLayer3VirtualNetworksCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetLayer3VirtualNetworksCountResponse struct { + Count *int `json:"count,omitempty"` // Number of layer 3 virtual networks. +} +type ResponseSdaDeleteLayer3VirtualNetworkByID struct { + Response *ResponseSdaDeleteLayer3VirtualNetworkByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteLayer3VirtualNetworkByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaUpdateMulticast struct { + Response *ResponseSdaUpdateMulticastResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateMulticastResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetMulticast struct { + Response *[]ResponseSdaGetMulticastResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetMulticastResponse struct { + FabricID string `json:"fabricId,omitempty"` // ID of the fabric site. + ReplicationMode string `json:"replicationMode,omitempty"` // Replication Mode deployed in the fabric site. +} +type ResponseSdaAddMulticastVirtualNetworks struct { + Response *ResponseSdaAddMulticastVirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddMulticastVirtualNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetMulticastVirtualNetworks struct { + Response *[]ResponseSdaGetMulticastVirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetMulticastVirtualNetworksResponse struct { + ID string `json:"id,omitempty"` // ID of the multicast configuration. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric site. + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the virtual network. + IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP Pool. + IPv4SsmRanges []string `json:"ipv4SsmRanges,omitempty"` // IPv4 Source Specific Multicast (SSM) ranges. Allowed ranges are from 225.0.0.0/8 to 239.0.0.0/8. SSM ranges should not conflict with ranges provided for ASM multicast. + MulticastRPs *[]ResponseSdaGetMulticastVirtualNetworksResponseMulticastRPs `json:"multicastRPs,omitempty"` // +} +type ResponseSdaGetMulticastVirtualNetworksResponseMulticastRPs struct { + RpDeviceLocation string `json:"rpDeviceLocation,omitempty"` // Device location of the RP. + IPv4Address string `json:"ipv4Address,omitempty"` // IPv4 address of the RP. For external RP configuration, exactly one of ipv4Address or ipv6Address must be provided. For fabric RP, this address is allocated by SDA and should not be provided during RP creation request and SDA allocated address should be retained in subsequent requests. + IPv6Address string `json:"ipv6Address,omitempty"` // IPv6 address of the RP. For external RP configuration, exactly one of ipv4Address or ipv6Address must be provided. For fabric RP, this address is allocated by SDA and should not be provided during RP creation request and SDA allocated address should be retained in subsequent requests. ipv6Address can only be provided for virtual networks with dual stack (IPv4 + IPv6) multicast pool. + IsDefaultV4RP *bool `json:"isDefaultV4RP,omitempty"` // Specifies whether it is a default IPv4 RP. + IsDefaultV6RP *bool `json:"isDefaultV6RP,omitempty"` // Specifies whether it is a default IPv6 RP. + NetworkDeviceIDs []string `json:"networkDeviceIds,omitempty"` // IDs of the network devices. This is a required field for fabric RPs. There can be maximum of two fabric RPs for a fabric site and these are shared across all multicast virtual networks. For configuring two fabric RPs in a fabric site both devices must have border roles. Only one RP can be configured in scenarios where a fabric edge device is used as RP or a dual stack multicast pool is used. + IPv4AsmRanges []string `json:"ipv4AsmRanges,omitempty"` // IPv4 Any Source Multicast ranges. Comma seperated list of IPv4 multicast group ranges that will be served by a given Multicast RP. Only IPv4 ranges can be provided. For fabric RP, both IPv4 and IPv6 ranges can be provided together. For external RP, IPv4 ranges should be provided for IPv4 external RP and IPv6 ranges should be provided for IPv6 external RP. + IPv6AsmRanges []string `json:"ipv6AsmRanges,omitempty"` // IPv6 Any Source Multicast ranges. Comma seperated list of IPv6 multicast group ranges that will be served by a given Multicast RP. Only IPv6 ranges can be provided. IPv6 ranges can only be provided for dual stack multicast pool. For fabric RP, both IPv4 and IPv6 ranges can be provided together. For external RP, IPv4 ranges should be provided for IPv4 external RP and IPv6 ranges should be provided for IPv6 external RP. +} +type ResponseSdaUpdateMulticastVirtualNetworks struct { + Response *ResponseSdaUpdateMulticastVirtualNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateMulticastVirtualNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetMulticastVirtualNetworkCount struct { + Response *ResponseSdaGetMulticastVirtualNetworkCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetMulticastVirtualNetworkCountResponse struct { + Count *int `json:"count,omitempty"` // Number of multicast configurations. +} +type ResponseSdaDeleteMulticastVirtualNetworkByID struct { + Response *ResponseSdaDeleteMulticastVirtualNetworkByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteMulticastVirtualNetworkByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaAddPortAssignments struct { + Response *ResponseSdaAddPortAssignmentsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddPortAssignmentsResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetPortAssignments struct { + Response *[]ResponseSdaGetPortAssignmentsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetPortAssignmentsResponse struct { + ID string `json:"id,omitempty"` // ID of the port assignment. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric the device is assigned to. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the port assignment. + InterfaceName string `json:"interfaceName,omitempty"` // Interface name of the port assignment. + ConnectedDeviceType string `json:"connectedDeviceType,omitempty"` // Connected device type of the port assignment. + DataVLANName string `json:"dataVlanName,omitempty"` // Data VLAN name of the port assignment. + VoiceVLANName string `json:"voiceVlanName,omitempty"` // Voice VLAN name of the port assignment. + AuthenticateTemplateName string `json:"authenticateTemplateName,omitempty"` // Authenticate template name of the port assignment. + SecurityGroupName string `json:"securityGroupName,omitempty"` // Security group name of the port assignment. + InterfaceDescription string `json:"interfaceDescription,omitempty"` // Interface description of the port assignment. +} +type ResponseSdaUpdatePortAssignments struct { + Response *ResponseSdaUpdatePortAssignmentsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdatePortAssignmentsResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaDeletePortAssignments struct { + Response *ResponseSdaDeletePortAssignmentsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeletePortAssignmentsResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetPortAssignmentCount struct { + Response *ResponseSdaGetPortAssignmentCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetPortAssignmentCountResponse struct { + Count *int `json:"count,omitempty"` // Number of port assignments. +} +type ResponseSdaDeletePortAssignmentByID struct { + Response *ResponseSdaDeletePortAssignmentByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeletePortAssignmentByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetPortChannels struct { + Response *[]ResponseSdaGetPortChannelsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetPortChannelsResponse struct { + ID string `json:"id,omitempty"` // ID of the port channel. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric the device is assigned to. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // ID of the network device. + PortChannelName string `json:"portChannelName,omitempty"` // Name of the port channel. + InterfaceNames []string `json:"interfaceNames,omitempty"` // Interface names of this port channel. + ConnectedDeviceType string `json:"connectedDeviceType,omitempty"` // Connected device type of the port channel. + Protocol string `json:"protocol,omitempty"` // Protocol of the port channel. + Description string `json:"description,omitempty"` // Description of the port channel. +} +type ResponseSdaAddPortChannels struct { + Response *ResponseSdaAddPortChannelsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddPortChannelsResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaUpdatePortChannels struct { + Response *ResponseSdaUpdatePortChannelsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdatePortChannelsResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaDeletePortChannels struct { + Response *ResponseSdaDeletePortChannelsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeletePortChannelsResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetPortChannelCount struct { + Response *ResponseSdaGetPortChannelCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetPortChannelCountResponse struct { + Count *int `json:"count,omitempty"` // Number of port channels. +} +type ResponseSdaDeletePortChannelByID struct { + Response *ResponseSdaDeletePortChannelByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeletePortChannelByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaDeleteProvisionedDevices struct { + Response *ResponseSdaDeleteProvisionedDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteProvisionedDevicesResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaProvisionDevices struct { + Response *ResponseSdaProvisionDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaProvisionDevicesResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetProvisionedDevices struct { + Response *[]ResponseSdaGetProvisionedDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetProvisionedDevicesResponse struct { + ID string `json:"id,omitempty"` // ID of the provisioned device. + SiteID string `json:"siteId,omitempty"` // ID of the site this device is provisioned to. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // ID of the network device. +} +type ResponseSdaReProvisionDevices struct { + Response *ResponseSdaReProvisionDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaReProvisionDevicesResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetProvisionedDevicesCount struct { + Response *ResponseSdaGetProvisionedDevicesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetProvisionedDevicesCountResponse struct { + Count *int `json:"count,omitempty"` // Number of provisioned devices. +} +type ResponseSdaDeleteProvisionedDeviceByID struct { + Response *ResponseSdaDeleteProvisionedDeviceByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteProvisionedDeviceByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaUpdateTransitNetworks struct { + Response *ResponseSdaUpdateTransitNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaUpdateTransitNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetTransitNetworks struct { + Response *[]ResponseSdaGetTransitNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetTransitNetworksResponse struct { + ID string `json:"id,omitempty"` // ID of the transit network. + Name string `json:"name,omitempty"` // Name of the transit network. + Type string `json:"type,omitempty"` // Type of the transit network. + IPTransitSettings *ResponseSdaGetTransitNetworksResponseIPTransitSettings `json:"ipTransitSettings,omitempty"` // + SdaTransitSettings *ResponseSdaGetTransitNetworksResponseSdaTransitSettings `json:"sdaTransitSettings,omitempty"` // +} +type ResponseSdaGetTransitNetworksResponseIPTransitSettings struct { + RoutingProtocolName string `json:"routingProtocolName,omitempty"` // Routing Protocol Name of the IP transit network. + AutonomousSystemNumber string `json:"autonomousSystemNumber,omitempty"` // Autonomous System Number of the IP transit network. Allowed range is [1 to 4294967295]. +} +type ResponseSdaGetTransitNetworksResponseSdaTransitSettings struct { + IsMulticastOverTransitEnabled *bool `json:"isMulticastOverTransitEnabled,omitempty"` // This indicates that multicast is enabled over SD-Access Transit. This supports Native Multicast over SD-Access Transit. This is only applicable for transit of type SDA_LISP_PUB_SUB_TRANSIT. + ControlPlaneNetworkDeviceIDs []string `json:"controlPlaneNetworkDeviceIds,omitempty"` // List of network device IDs that are used as control plane nodes. +} +type ResponseSdaAddTransitNetworks struct { + Response *ResponseSdaAddTransitNetworksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaAddTransitNetworksResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} +type ResponseSdaGetTransitNetworksCount struct { + Response *ResponseSdaGetTransitNetworksCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaGetTransitNetworksCountResponse struct { + Count *int `json:"count,omitempty"` // Number of transit networks. +} +type ResponseSdaDeleteTransitNetworkByID struct { + Response *ResponseSdaDeleteTransitNetworkByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version number. +} +type ResponseSdaDeleteTransitNetworkByIDResponse struct { + TaskID string `json:"taskId,omitempty"` // ID of the task. + URL string `json:"url,omitempty"` // Task status lookup url. +} type ResponseSdaAddVirtualNetworkWithScalableGroups struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -637,23 +1645,25 @@ type ResponseSdaAddVirtualNetworkWithScalableGroups struct { type ResponseSdaDeleteVirtualNetworkWithScalableGroups struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status } type ResponseSdaGetVirtualNetworkWithScalableGroups struct { - VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name to be assigned at global level - IsGuestVirtualNetwork *bool `json:"isGuestVirtualNetwork,omitempty"` // Guest Virtual Network - ScalableGroupNames []string `json:"scalableGroupNames,omitempty"` // Scalable Group Names - VManageVpnID string `json:"vManageVpnId,omitempty"` // vManage vpn id for SD-WAN - Status string `json:"status,omitempty"` // Status - Description string `json:"description,omitempty"` // Virtual network info retrieved successfully + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name to be assigned at global level + IsGuestVirtualNetwork *bool `json:"isGuestVirtualNetwork,omitempty"` // Guest Virtual Network + ScalableGroupNames []string `json:"scalableGroupNames,omitempty"` // Scalable Group Names + VManageVpnID string `json:"vManageVpnId,omitempty"` // vManage vpn id for SD-WAN + VirtualNetworkContextID string `json:"virtualNetworkContextId,omitempty"` // Virtual Network Context Id for Global Virtual Network + Status string `json:"status,omitempty"` // Status + Description string `json:"description,omitempty"` // Virtual network info retrieved successfully + ExecutionID string `json:"executionId,omitempty"` // Execution Id } type ResponseSdaUpdateVirtualNetworkWithScalableGroups struct { Status string `json:"status,omitempty"` // represents return status of API. status=success when API completed successfully, status=failed when API failed and has not completed the user request, status=pending when API execution is still in progression and user needs to track its further progress via taskId field. Description string `json:"description,omitempty"` // provides detailed information for API success or failure. - TaskID string `json:"taskId,omitempty"` // Cisco DNA Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available + TaskID string `json:"taskId,omitempty"` // Catalyst Center taskId that carried out the API execution. It will be provided if task was generated by API. For failed status, taskId may not be available TaskStatusURL string `json:"taskStatusUrl,omitempty"` // /dna/intent/api/v1/task/ , allows API progression via taskId for async API ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // /dna/intent/api/v1/dnacaap/management/execution-status/ ExecutionID string `json:"executionId,omitempty"` // uuid for API execution status @@ -680,7 +1690,7 @@ type RequestItemSdaAddBorderDeviceInSdaFabric struct { RouteDistributionProtocol string `json:"routeDistributionProtocol,omitempty"` // Route Distribution Protocol for Control Plane Device. Allowed values are "LISP_BGP" or "LISP_PUB_SUB". Default value is "LISP_BGP" ExternalDomainRoutingProtocolName string `json:"externalDomainRoutingProtocolName,omitempty"` // External Domain Routing Protocol Name ExternalConnectivityIPPoolName string `json:"externalConnectivityIpPoolName,omitempty"` // External Connectivity IpPool Name - InternalAutonomouSystemNumber string `json:"internalAutonomouSystemNumber,omitempty"` // Internal Autonomouns System Number (e.g.,1-65535) + InternalAutonomouSystemNumber string `json:"internalAutonomouSystemNumber,omitempty"` // Internal Autonomous System Number BorderPriority string `json:"borderPriority,omitempty"` // Border priority associated with a given device. Allowed range for Border Priority is [1-9]. A lower value indicates higher priority. E.g., a priority of 1 takes precedence over 5. Default priority would be set to 10. BorderSessionType string `json:"borderSessionType,omitempty"` // Border Session Type ConnectedToInternet *bool `json:"connectedToInternet,omitempty"` // Connected to Internet @@ -772,7 +1782,7 @@ type RequestSdaAddTransitPeerNetwork struct { } type RequestSdaAddTransitPeerNetworkIPTransitSettings struct { RoutingProtocolName string `json:"routingProtocolName,omitempty"` // Routing Protocol Name - AutonomousSystemNumber string `json:"autonomousSystemNumber,omitempty"` // Autonomous System Number (e.g.,1-65535) + AutonomousSystemNumber string `json:"autonomousSystemNumber,omitempty"` // Autonomous System Number } type RequestSdaAddTransitPeerNetworkSdaTransitSettings struct { TransitControlPlaneSettings *[]RequestSdaAddTransitPeerNetworkSdaTransitSettingsTransitControlPlaneSettings `json:"transitControlPlaneSettings,omitempty"` // @@ -789,7 +1799,7 @@ type RequestSdaAddIPPoolInSdaVirtualNetwork struct { SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Path of sda Fabric Site VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name, that is associated to Fabric Site IsLayer2Only *bool `json:"isLayer2Only,omitempty"` // Layer2 Only enablement flag and default value is False - IPPoolName string `json:"ipPoolName,omitempty"` // Ip Pool Name, that is reserved to Fabric Site for (applicable for L3 and INFRA_VN) + IPPoolName string `json:"ipPoolName,omitempty"` // Ip Pool Name, that is reserved to Fabric Site (Required for L3 and INFRA_VN) VLANID string `json:"vlanId,omitempty"` // vlan Id(applicable for L3 , L2 and INFRA_VN) VLANName string `json:"vlanName,omitempty"` // Vlan name represent the segment name, if empty, vlanName would be auto generated by API AutoGenerateVLANName *bool `json:"autoGenerateVlanName,omitempty"` // It will auto generate vlanName, if vlanName is empty(applicable for L3 and INFRA_VN) @@ -803,6 +1813,355 @@ type RequestSdaAddIPPoolInSdaVirtualNetwork struct { IsBridgeModeVm *bool `json:"isBridgeModeVm,omitempty"` // Bridge Mode Vm enablement flag (applicable for L3 and L2 and default value is False ) PoolType string `json:"poolType,omitempty"` // Pool Type (applicable for INFRA_VN) } +type RequestSdaUpdateAnycastGateways []RequestItemSdaUpdateAnycastGateways // Array of RequestSdaUpdateAnycastGateways +type RequestItemSdaUpdateAnycastGateways struct { + ID string `json:"id,omitempty"` // ID of the anycast gateway (updating this field is not allowed). + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this anycast gateway is assigned to. Updating anycast gateways on fabric zones is not allowed--instead, update the corresponding anycast gateway on the fabric site and the updates will be applied on all applicable fabric zones (updating this field is not allowed). + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the layer 3 virtual network associated with the anycast gateway (updating this field is not allowed). + IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP pool associated with the anycast gateway (updating this field is not allowed). + TCPMssAdjustment *int `json:"tcpMssAdjustment,omitempty"` // TCP maximum segment size adjustment. + VLANName string `json:"vlanName,omitempty"` // Name of the VLAN of the anycast gateway (updating this field is not allowed). + VLANID *int `json:"vlanId,omitempty"` // ID of the VLAN of the anycast gateway (updating this field is not allowed). + TrafficType string `json:"trafficType,omitempty"` // The type of traffic the anycast gateway serves. + PoolType string `json:"poolType,omitempty"` // The pool type of the anycast gateway (required for & applicable only to INFRA_VN; updating this field is not allowed). + SecurityGroupName string `json:"securityGroupName,omitempty"` // Name of the associated Security Group (not applicable to INFRA_VN). + IsCriticalPool *bool `json:"isCriticalPool,omitempty"` // Enable/disable critical VLAN (not applicable to INFRA_VN; updating this field is not allowed). + IsLayer2FloodingEnabled *bool `json:"isLayer2FloodingEnabled,omitempty"` // Enable/disable layer 2 flooding (not applicable to INFRA_VN). + IsWirelessPool *bool `json:"isWirelessPool,omitempty"` // Enable/disable fabric-enabled wireless (not applicable to INFRA_VN). + IsIPDirectedBroadcast *bool `json:"isIpDirectedBroadcast,omitempty"` // Enable/disable IP-directed broadcast (not applicable to INFRA_VN). + IsIntraSubnetRoutingEnabled *bool `json:"isIntraSubnetRoutingEnabled,omitempty"` // Enable/disable Intra-Subnet Routing (not applicable to INFRA_VN; updating this field is not allowed). + IsMultipleIPToMacAddresses *bool `json:"isMultipleIpToMacAddresses,omitempty"` // Enable/disable multiple IP-to-MAC Addresses (Wireless Bridged-Network Virtual Machine; not applicable to INFRA_VN). + IsSupplicantBasedExtendedNodeOnboarding *bool `json:"isSupplicantBasedExtendedNodeOnboarding,omitempty"` // Enable/disable Supplicant-Based Extended Node Onboarding (applicable only to INFRA_VN requests; must not be null when poolType is EXTENDED_NODE). + IsGroupBasedPolicyEnforcementEnabled *bool `json:"isGroupBasedPolicyEnforcementEnabled,omitempty"` // Enable/disable Group-Based Policy Enforcement (applicable only to INFRA_VN; defaults to false). +} +type RequestSdaAddAnycastGateways []RequestItemSdaAddAnycastGateways // Array of RequestSdaAddAnycastGateways +type RequestItemSdaAddAnycastGateways struct { + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this anycast gateway is to be assigned to. + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the layer 3 virtual network associated with the anycast gateway. the virtual network must have already been added to the site before creating an anycast gateway with it. + IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP pool associated with the anycast gateway. + TCPMssAdjustment *int `json:"tcpMssAdjustment,omitempty"` // TCP maximum segment size adjustment. + VLANName string `json:"vlanName,omitempty"` // Name of the VLAN of the anycast gateway. + VLANID *int `json:"vlanId,omitempty"` // ID of the VLAN of the anycast gateway. allowed VLAN range is 2-4093 except for reserved VLANs 1002-1005, 2046, and 4094. if deploying an anycast gateway on a fabric zone, this vlanId must match the vlanId of the corresponding anycast gateway on the fabric site. + TrafficType string `json:"trafficType,omitempty"` // The type of traffic the anycast gateway serves. + PoolType string `json:"poolType,omitempty"` // The pool type of the anycast gateway (required for & applicable only to INFRA_VN). + SecurityGroupName string `json:"securityGroupName,omitempty"` // Name of the associated Security Group (not applicable to INFRA_VN). + IsCriticalPool *bool `json:"isCriticalPool,omitempty"` // Enable/disable critical VLAN. if true, autoGenerateVlanName must also be true. (isCriticalPool is not applicable to INFRA_VN). + IsLayer2FloodingEnabled *bool `json:"isLayer2FloodingEnabled,omitempty"` // Enable/disable layer 2 flooding (not applicable to INFRA_VN). + IsWirelessPool *bool `json:"isWirelessPool,omitempty"` // Enable/disable fabric-enabled wireless (not applicable to INFRA_VN). + IsIPDirectedBroadcast *bool `json:"isIpDirectedBroadcast,omitempty"` // Enable/disable IP-directed broadcast (not applicable to INFRA_VN). + IsIntraSubnetRoutingEnabled *bool `json:"isIntraSubnetRoutingEnabled,omitempty"` // Enable/disable Intra-Subnet Routing (not applicable to INFRA_VN). + IsMultipleIPToMacAddresses *bool `json:"isMultipleIpToMacAddresses,omitempty"` // Enable/disable multiple IP-to-MAC Addresses (Wireless Bridged-Network Virtual Machine; not applicable to INFRA_VN). + IsSupplicantBasedExtendedNodeOnboarding *bool `json:"isSupplicantBasedExtendedNodeOnboarding,omitempty"` // Enable/disable Supplicant-Based Extended Node Onboarding (applicable only to INFRA_VN). + IsGroupBasedPolicyEnforcementEnabled *bool `json:"isGroupBasedPolicyEnforcementEnabled,omitempty"` // Enable/disable Group-Based Policy Enforcement (applicable only to INFRA_VN; defaults to false). + AutoGenerateVLANName *bool `json:"autoGenerateVlanName,omitempty"` // This field cannot be true when vlanName is provided. the vlanName will be generated as "{ipPoolGroupV4Cidr}-{virtualNetworkName}" for non-critical VLANs. for critical VLANs with DATA trafficType, vlanName will be "CRITICAL_VLAN". for critical VLANs with VOICE trafficType, vlanName will be "VOICE_VLAN". +} +type RequestSdaUpdateAuthenticationProfile []RequestItemSdaUpdateAuthenticationProfile // Array of RequestSdaUpdateAuthenticationProfile +type RequestItemSdaUpdateAuthenticationProfile struct { + ID string `json:"id,omitempty"` // ID of the authentication profile (updating this field is not allowed). + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this authentication profile is assigned to (updating this field is not allowed). + AuthenticationProfileName string `json:"authenticationProfileName,omitempty"` // The default host authentication template (updating this field is not allowed). + AuthenticationOrder string `json:"authenticationOrder,omitempty"` // First authentication method. + Dot1XToMabFallbackTimeout *int `json:"dot1xToMabFallbackTimeout,omitempty"` // 802.1x Timeout. + WakeOnLan *bool `json:"wakeOnLan,omitempty"` // Wake on LAN. + NumberOfHosts string `json:"numberOfHosts,omitempty"` // Number of Hosts. + IsBpduGuardEnabled *bool `json:"isBpduGuardEnabled,omitempty"` // Enable/disable BPDU Guard. Only applicable when authenticationProfileName is set to "Closed Authentication" (defaults to true). +} +type RequestSdaUpdateExtranetPolicy []RequestItemSdaUpdateExtranetPolicy // Array of RequestSdaUpdateExtranetPolicy +type RequestItemSdaUpdateExtranetPolicy struct { + ID string `json:"id,omitempty"` // ID of the existing extranet policy (updating this field is not allowed). + ExtranetPolicyName string `json:"extranetPolicyName,omitempty"` // Name of the existing extranet policy (updating this field is not allowed). + FabricIDs []string `json:"fabricIds,omitempty"` // IDs of the fabric sites associated with this extranet policy. + ProviderVirtualNetworkName string `json:"providerVirtualNetworkName,omitempty"` // Name of the existing provider virtual network (updating this field is not allowed). + SubscriberVirtualNetworkNames []string `json:"subscriberVirtualNetworkNames,omitempty"` // Name of the subscriber virtual networks. +} +type RequestSdaAddExtranetPolicy []RequestItemSdaAddExtranetPolicy // Array of RequestSdaAddExtranetPolicy +type RequestItemSdaAddExtranetPolicy struct { + ExtranetPolicyName string `json:"extranetPolicyName,omitempty"` // Name of the extranet policy to be created. + FabricIDs []string `json:"fabricIds,omitempty"` // IDs of the fabric sites to be associated with this extranet policy. + ProviderVirtualNetworkName string `json:"providerVirtualNetworkName,omitempty"` // Name of the existing provider virtual network. + SubscriberVirtualNetworkNames []string `json:"subscriberVirtualNetworkNames,omitempty"` // Name of the subscriber virtual networks. +} +type RequestSdaUpdateFabricDevices []RequestItemSdaUpdateFabricDevices // Array of RequestSdaUpdateFabricDevices +type RequestItemSdaUpdateFabricDevices struct { + ID string `json:"id,omitempty"` // ID of the fabric device. (updating this field is not allowed). + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. (updating this field is not allowed). + FabricID string `json:"fabricId,omitempty"` // ID of the fabric of this fabric device. (updating this field is not allowed). + DeviceRoles []string `json:"deviceRoles,omitempty"` // List of the roles of the fabric device. Allowed values are [CONTROL_PLANE_NODE, EDGE_NODE, BORDER_NODE, WIRELESS_CONTROLLER_NODE]. (updating this field is not allowed). + BorderDeviceSettings *RequestItemSdaUpdateFabricDevicesBorderDeviceSettings `json:"borderDeviceSettings,omitempty"` // +} +type RequestItemSdaUpdateFabricDevicesBorderDeviceSettings struct { + BorderTypes []string `json:"borderTypes,omitempty"` // List of the border types of the fabric device. Allowed values are [LAYER_2, LAYER_3]. + Layer3Settings *RequestItemSdaUpdateFabricDevicesBorderDeviceSettingsLayer3Settings `json:"layer3Settings,omitempty"` // +} +type RequestItemSdaUpdateFabricDevicesBorderDeviceSettingsLayer3Settings struct { + LocalAutonomousSystemNumber string `json:"localAutonomousSystemNumber,omitempty"` // BGP Local autonomous system number of the fabric border device. Allowed range is [1 to 4294967295]. (updating this field is not allowed). + IsDefaultExit *bool `json:"isDefaultExit,omitempty"` // Set this to make the fabric border device the gateway of last resort for this site. Any unknown traffic will be sent to this fabric border device from edge nodes. (updating this field is not allowed). + ImportExternalRoutes *bool `json:"importExternalRoutes,omitempty"` // Set this to import external routes from other routing protocols (such as BGP) to the fabric control plane. (updating this field is not allowed). + BorderPriority *int `json:"borderPriority,omitempty"` // Border priority of the fabric border device. Allowed range is [1-9]. A lower value indicates higher priority. E.g., a priority of 1 takes precedence over 5. Default priority would be set to 10. + PrependAutonomousSystemCount *int `json:"prependAutonomousSystemCount,omitempty"` // Prepend autonomous system count of the fabric border device. Allowed range is [1 to 10]. +} +type RequestSdaAddFabricDevices []RequestItemSdaAddFabricDevices // Array of RequestSdaAddFabricDevices +type RequestItemSdaAddFabricDevices struct { + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric of this fabric device. + DeviceRoles []string `json:"deviceRoles,omitempty"` // List of the roles of the fabric device. Allowed values are [CONTROL_PLANE_NODE, EDGE_NODE, BORDER_NODE, WIRELESS_CONTROLLER_NODE]. + BorderDeviceSettings *RequestItemSdaAddFabricDevicesBorderDeviceSettings `json:"borderDeviceSettings,omitempty"` // +} +type RequestItemSdaAddFabricDevicesBorderDeviceSettings struct { + BorderTypes []string `json:"borderTypes,omitempty"` // List of the border types of the fabric device. Allowed values are [LAYER_2, LAYER_3]. + Layer3Settings *RequestItemSdaAddFabricDevicesBorderDeviceSettingsLayer3Settings `json:"layer3Settings,omitempty"` // +} +type RequestItemSdaAddFabricDevicesBorderDeviceSettingsLayer3Settings struct { + LocalAutonomousSystemNumber string `json:"localAutonomousSystemNumber,omitempty"` // BGP Local autonomous system number of the fabric border device. Allowed range is [1 to 4294967295]. + IsDefaultExit *bool `json:"isDefaultExit,omitempty"` // Set this to make the fabric border device the gateway of last resort for this site. Any unknown traffic will be sent to this fabric border device from edge nodes. + ImportExternalRoutes *bool `json:"importExternalRoutes,omitempty"` // Set this to import external routes from other routing protocols (such as BGP) to the fabric control plane. + BorderPriority *int `json:"borderPriority,omitempty"` // Border priority of the fabric border device. Allowed range is [1-9]. A lower value indicates higher priority. E.g., a priority of 1 takes precedence over 5. Default priority would be set to 10. + PrependAutonomousSystemCount *int `json:"prependAutonomousSystemCount,omitempty"` // Prepend autonomous system count of the fabric border device. Allowed range is [1 to 10]. +} +type RequestSdaAddFabricDevicesLayer2Handoffs []RequestItemSdaAddFabricDevicesLayer2Handoffs // Array of RequestSdaAddFabricDevicesLayer2Handoffs +type RequestItemSdaAddFabricDevicesLayer2Handoffs struct { + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this device is assigned to. + InterfaceName string `json:"interfaceName,omitempty"` // Interface name of the layer 2 handoff. E.g., GigabitEthernet1/0/4 + InternalVLANID *int `json:"internalVlanId,omitempty"` // VLAN number associated with this fabric. Allowed VLAN range is 2-4094 except for reserved vlans (1, 1002-1005, 2046, 4094). + ExternalVLANID *int `json:"externalVlanId,omitempty"` // External VLAN number into which the fabric must be extended. Allowed VLAN range is 2-4094 except for reserved vlans (1, 1002-1005, 2046, 4094). +} +type RequestSdaAddFabricDevicesLayer3HandoffsWithIPTransit []RequestItemSdaAddFabricDevicesLayer3HandoffsWithIPTransit // Array of RequestSdaAddFabricDevicesLayer3HandoffsWithIpTransit +type RequestItemSdaAddFabricDevicesLayer3HandoffsWithIPTransit struct { + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this device is assigned to. + TransitNetworkID string `json:"transitNetworkId,omitempty"` // ID of the transit network of the layer 3 handoff ip transit. + InterfaceName string `json:"interfaceName,omitempty"` // Interface name of the layer 3 handoff ip transit. + ExternalConnectivityIPPoolName string `json:"externalConnectivityIpPoolName,omitempty"` // External connectivity ip pool will be used by Catalyst Center to allocate IP address for the connection between the border node and peer. + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the virtual network associated with this fabric site. + VLANID *int `json:"vlanId,omitempty"` // VLAN number for the Switch Virtual Interface (SVI) used to establish BGP peering with the external domain for the virtual network. Allowed VLAN range is 2-4094 except for reserved vlans (1, 1002-1005, 2046, 4094). + TCPMssAdjustment *int `json:"tcpMssAdjustment,omitempty"` // TCP maximum segment size (mss) value for the layer 3 handoff. Allowed range is [500-1440]. TCP MSS Adjustment value is applicable for the TCP sessions over both IPv4 and IPv6. + LocalIPAddress string `json:"localIpAddress,omitempty"` // Local ipv4 address for the selected virtual network. Enter the IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). Not applicable if you have already provided an external connectivity ip pool name. + RemoteIPAddress string `json:"remoteIpAddress,omitempty"` // Remote ipv4 address for the selected virtual network. Enter the IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). Not applicable if you have already provided an external connectivity ip pool name. + LocalIPv6Address string `json:"localIpv6Address,omitempty"` // Local ipv6 address for the selected virtual network. Enter the IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). Not applicable if you have already provided an external connectivity ip pool name. + RemoteIPv6Address string `json:"remoteIpv6Address,omitempty"` // Remote ipv6 address for the selected virtual network. Enter the IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). Not applicable if you have already provided an external connectivity ip pool name. +} +type RequestSdaUpdateFabricDevicesLayer3HandoffsWithIPTransit []RequestItemSdaUpdateFabricDevicesLayer3HandoffsWithIPTransit // Array of RequestSdaUpdateFabricDevicesLayer3HandoffsWithIpTransit +type RequestItemSdaUpdateFabricDevicesLayer3HandoffsWithIPTransit struct { + ID string `json:"id,omitempty"` // ID of the fabric device layer 3 handoff ip transit. (updating this field is not allowed). + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. (updating this field is not allowed). + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this device is assigned to. (updating this field is not allowed). + TransitNetworkID string `json:"transitNetworkId,omitempty"` // ID of the transit network of the layer 3 handoff ip transit. (updating this field is not allowed). + InterfaceName string `json:"interfaceName,omitempty"` // Interface name of the layer 3 handoff ip transit. (updating this field is not allowed). + ExternalConnectivityIPPoolName string `json:"externalConnectivityIpPoolName,omitempty"` // External connectivity ip pool will be used by Catalyst Center to allocate IP address for the connection between the border node and peer. (updating this field is not allowed). + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the virtual network associated with this fabric site. (updating this field is not allowed). + VLANID *int `json:"vlanId,omitempty"` // VLAN number for the Switch Virtual Interface (SVI) used to establish BGP peering with the external domain for the virtual network. Allowed VLAN range is 2-4094 except for reserved vlans (1, 1002-1005, 2046, 4094). (updating this field is not allowed). + TCPMssAdjustment *int `json:"tcpMssAdjustment,omitempty"` // TCP maximum segment size (mss) value for the layer 3 handoff. Allowed range is [500-1440]. TCP MSS Adjustment value is applicable for the TCP sessions over both IPv4 and IPv6. + LocalIPAddress string `json:"localIpAddress,omitempty"` // Local ipv4 address for the selected virtual network. Enter the IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). (updating this field is not allowed). + RemoteIPAddress string `json:"remoteIpAddress,omitempty"` // Remote ipv4 address for the selected virtual network. Enter the IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). (updating this field is not allowed). + LocalIPv6Address string `json:"localIpv6Address,omitempty"` // Local ipv6 address for the selected virtual network. Enter the IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). If the value has already been set, it cannot be updated. + RemoteIPv6Address string `json:"remoteIpv6Address,omitempty"` // Remote ipv6 address for the selected virtual network. Enter the IP addresses and subnet mask in the CIDR notation (IP address/prefix-length). If the value has already been set, it cannot be updated. +} +type RequestSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit []RequestItemSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit // Array of RequestSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit +type RequestItemSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit struct { + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. (updating this field is not allowed). + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this device is assigned to. (updating this field is not allowed). + TransitNetworkID string `json:"transitNetworkId,omitempty"` // ID of the transit network of the layer 3 handoff sda transit. (updating this field is not allowed). + AffinityIDPrime *int `json:"affinityIdPrime,omitempty"` // Affinity id prime value of the border node. It supersedes the border priority to determine border node preference. Allowed range is [0-2147483647]. The lower the relative value of affinity id prime, the higher the preference for a destination border node. + AffinityIDDecider *int `json:"affinityIdDecider,omitempty"` // Affinity id decider value of the border node. When the affinity id prime value is the same on multiple devices, the affinity id decider value is used as a tiebreaker. Allowed range is [0-2147483647]. The lower the relative value of affinity id decider, the higher the preference for a destination border node. + ConnectedToInternet *bool `json:"connectedToInternet,omitempty"` // Set this true to allow associated site to provide internet access to other sites through sd-access. + IsMulticastOverTransitEnabled *bool `json:"isMulticastOverTransitEnabled,omitempty"` // Set this true to configure native multicast over multiple sites that are connected to an sd-access transit. +} +type RequestSdaAddFabricDevicesLayer3HandoffsWithSdaTransit []RequestItemSdaAddFabricDevicesLayer3HandoffsWithSdaTransit // Array of RequestSdaAddFabricDevicesLayer3HandoffsWithSdaTransit +type RequestItemSdaAddFabricDevicesLayer3HandoffsWithSdaTransit struct { + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the fabric device. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this device is assigned to. + TransitNetworkID string `json:"transitNetworkId,omitempty"` // ID of the transit network of the layer 3 handoff sda transit. + AffinityIDPrime *int `json:"affinityIdPrime,omitempty"` // Affinity id prime value of the border node. It supersedes the border priority to determine border node preference. Allowed range is [0-2147483647]. The lower the relative value of affinity id prime, the higher the preference for a destination border node. + AffinityIDDecider *int `json:"affinityIdDecider,omitempty"` // Affinity id decider value of the border node. When the affinity id prime value is the same on multiple devices, the affinity id decider value is used as a tiebreaker. Allowed range is [0-2147483647]. The lower the relative value of affinity id decider, the higher the preference for a destination border node. + ConnectedToInternet *bool `json:"connectedToInternet,omitempty"` // Set this true to allow associated site to provide internet access to other sites through sd-access. + IsMulticastOverTransitEnabled *bool `json:"isMulticastOverTransitEnabled,omitempty"` // Set this true to configure native multicast over multiple sites that are connected to an sd-access transit. +} +type RequestSdaAddFabricSite []RequestItemSdaAddFabricSite // Array of RequestSdaAddFabricSite +type RequestItemSdaAddFabricSite struct { + SiteID string `json:"siteId,omitempty"` // ID of the network hierarchy. + AuthenticationProfileName string `json:"authenticationProfileName,omitempty"` // Authentication profile used for this fabric. + IsPubSubEnabled *bool `json:"isPubSubEnabled,omitempty"` // Specifies whether this fabric site will use pub/sub for control nodes. +} +type RequestSdaUpdateFabricSite []RequestItemSdaUpdateFabricSite // Array of RequestSdaUpdateFabricSite +type RequestItemSdaUpdateFabricSite struct { + ID string `json:"id,omitempty"` // ID of the fabric site (updating this field is not allowed). + SiteID string `json:"siteId,omitempty"` // ID of the network hierarchy (updating this field is not allowed). + AuthenticationProfileName string `json:"authenticationProfileName,omitempty"` // Authentication profile used for this fabric. + IsPubSubEnabled *bool `json:"isPubSubEnabled,omitempty"` // Specifies whether this fabric site will use pub/sub for control nodes. +} +type RequestSdaUpdateFabricZone []RequestItemSdaUpdateFabricZone // Array of RequestSdaUpdateFabricZone +type RequestItemSdaUpdateFabricZone struct { + ID string `json:"id,omitempty"` // ID of the fabric zone (updating this field is not allowed). + SiteID string `json:"siteId,omitempty"` // ID of the network hierarchy (updating this field is not allowed). + AuthenticationProfileName string `json:"authenticationProfileName,omitempty"` // Authentication profile used for this fabric. +} +type RequestSdaAddFabricZone []RequestItemSdaAddFabricZone // Array of RequestSdaAddFabricZone +type RequestItemSdaAddFabricZone struct { + SiteID string `json:"siteId,omitempty"` // ID of the network hierarchy. + AuthenticationProfileName string `json:"authenticationProfileName,omitempty"` // Authentication profile used for this fabric. +} +type RequestSdaAddLayer2VirtualNetworks []RequestItemSdaAddLayer2VirtualNetworks // Array of RequestSdaAddLayer2VirtualNetworks +type RequestItemSdaAddLayer2VirtualNetworks struct { + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this layer 2 virtual network is to be assigned to. + VLANName string `json:"vlanName,omitempty"` // Name of the VLAN of the layer 2 virtual network. Must contain only alphanumeric characters, underscores, and hyphens. + VLANID *int `json:"vlanId,omitempty"` // ID of the VLAN of the layer 2 virtual network. Allowed VLAN range is 2-4093 except for reserved VLANs 1002-1005, and 2046. If deploying on a fabric zone, this vlanId must match the vlanId of the corresponding layer 2 virtual network on the fabric site. + TrafficType string `json:"trafficType,omitempty"` // The type of traffic that is served. + IsFabricEnabledWireless *bool `json:"isFabricEnabledWireless,omitempty"` // Set to true to enable wireless. Default is false. + AssociatedLayer3VirtualNetworkName string `json:"associatedLayer3VirtualNetworkName,omitempty"` // Name of the layer 3 virtual network associated with the layer 2 virtual network. This field is provided to support requests related to virtual network anchoring. The layer 3 virtual network must have already been added to the fabric before association. This field must either be present in all payload elements or none. +} +type RequestSdaUpdateLayer2VirtualNetworks []RequestItemSdaUpdateLayer2VirtualNetworks // Array of RequestSdaUpdateLayer2VirtualNetworks +type RequestItemSdaUpdateLayer2VirtualNetworks struct { + ID string `json:"id,omitempty"` // ID of the layer 2 virtual network (updating this field is not allowed). + FabricID string `json:"fabricId,omitempty"` // ID of the fabric this layer 2 virtual network is assigned to (updating this field is not allowed). + VLANName string `json:"vlanName,omitempty"` // Name of the VLAN of the layer 2 virtual network. Must contain only alphanumeric characters, underscores, and hyphens (updating this field is not allowed). + VLANID *int `json:"vlanId,omitempty"` // ID of the VLAN of the layer 2 virtual network (updating this field is not allowed). + TrafficType string `json:"trafficType,omitempty"` // The type of traffic that is served. + IsFabricEnabledWireless *bool `json:"isFabricEnabledWireless,omitempty"` // Set to true to enable wireless. + AssociatedLayer3VirtualNetworkName string `json:"associatedLayer3VirtualNetworkName,omitempty"` // Name of the layer 3 virtual network associated with the layer 2 virtual network. This field is provided to support requests related to virtual network anchoring. This field must either be present in all payload elements or none (updating this field is not allowed). +} +type RequestSdaAddLayer3VirtualNetworks []RequestItemSdaAddLayer3VirtualNetworks // Array of RequestSdaAddLayer3VirtualNetworks +type RequestItemSdaAddLayer3VirtualNetworks struct { + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the layer 3 virtual network. + FabricIDs []string `json:"fabricIds,omitempty"` // IDs of the fabrics this layer 3 virtual network is to be assigned to. + AnchoredSiteID string `json:"anchoredSiteId,omitempty"` // Fabric ID of the fabric site this layer 3 virtual network is to be anchored at. +} +type RequestSdaUpdateLayer3VirtualNetworks []RequestItemSdaUpdateLayer3VirtualNetworks // Array of RequestSdaUpdateLayer3VirtualNetworks +type RequestItemSdaUpdateLayer3VirtualNetworks struct { + ID string `json:"id,omitempty"` // ID of the layer 3 virtual network (updating this field is not allowed). + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the layer 3 virtual network (updating this field is not allowed). + FabricIDs []string `json:"fabricIds,omitempty"` // IDs of the fabrics this layer 3 virtual network is assigned to. + AnchoredSiteID string `json:"anchoredSiteId,omitempty"` // Fabric ID of the fabric site this layer 3 virtual network is anchored at. +} +type RequestSdaUpdateMulticast []RequestItemSdaUpdateMulticast // Array of RequestSdaUpdateMulticast +type RequestItemSdaUpdateMulticast struct { + FabricID string `json:"fabricId,omitempty"` // ID of the fabric site (updating this field is not allowed). + ReplicationMode string `json:"replicationMode,omitempty"` // Replication Mode deployed in the fabric site. +} +type RequestSdaAddMulticastVirtualNetworks []RequestItemSdaAddMulticastVirtualNetworks // Array of RequestSdaAddMulticastVirtualNetworks +type RequestItemSdaAddMulticastVirtualNetworks struct { + FabricID string `json:"fabricId,omitempty"` // ID of the fabric site this multicast configuration is associated with. + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the virtual network associated with the fabric site. + IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP Pool associated with the fabric site. + IPv4SsmRanges []string `json:"ipv4SsmRanges,omitempty"` // IPv4 Source Specific Multicast (SSM) ranges. Allowed ranges are from 225.0.0.0/8 to 239.0.0.0/8. SSM ranges should not conflict with ranges provided for ASM multicast. + MulticastRPs *[]RequestItemSdaAddMulticastVirtualNetworksMulticastRPs `json:"multicastRPs,omitempty"` // +} +type RequestItemSdaAddMulticastVirtualNetworksMulticastRPs struct { + RpDeviceLocation string `json:"rpDeviceLocation,omitempty"` // Device location of the RP. + IPv4Address string `json:"ipv4Address,omitempty"` // IPv4 address of the RP. For external RP configuration, exactly one of ipv4Address or ipv6Address must be provided. For fabric RP, this address is allocated by SDA and should not be provided during RP creation request and SDA allocated address should be retained in subsequent requests. + IPv6Address string `json:"ipv6Address,omitempty"` // IPv6 address of the RP. For external RP configuration, exactly one of ipv4Address or ipv6Address must be provided. For fabric RP, this address is allocated by SDA and should not be provided during RP creation request and SDA allocated address should be retained in subsequent requests. ipv6Address can only be provided for virtual networks with dual stack (IPv4 + IPv6) multicast pool. + IsDefaultV4RP *bool `json:"isDefaultV4RP,omitempty"` // Specifies whether it is a default IPv4 RP. + IsDefaultV6RP *bool `json:"isDefaultV6RP,omitempty"` // Specifies whether it is a default IPv6 RP. + NetworkDeviceIDs []string `json:"networkDeviceIds,omitempty"` // IDs of the network devices. This is a required field for fabric RPs. There can be maximum of two fabric RPs for a fabric site and these are shared across all multicast virtual networks. For configuring two fabric RPs in a fabric site both devices must have border roles. Only one RP can be configured in scenarios where a fabric edge device is used as RP or a dual stack multicast pool is used. + IPv4AsmRanges []string `json:"ipv4AsmRanges,omitempty"` // IPv4 Any Source Multicast ranges. Comma seperated list of IPv4 multicast group ranges that will be served by a given Multicast RP. Only IPv4 ranges can be provided. For fabric RP, both IPv4 and IPv6 ranges can be provided together. For external RP, IPv4 ranges should be provided for IPv4 external RP and IPv6 ranges should be provided for IPv6 external RP. + IPv6AsmRanges []string `json:"ipv6AsmRanges,omitempty"` // IPv6 Any Source Multicast ranges. Comma seperated list of IPv6 multicast group ranges that will be served by a given Multicast RP. Only IPv6 ranges can be provided. IPv6 ranges can only be provided for dual stack multicast pool. For fabric RP, both IPv4 and IPv6 ranges can be provided together. For external RP, IPv4 ranges should be provided for IPv4 external RP and IPv6 ranges should be provided for IPv6 external RP. +} +type RequestSdaUpdateMulticastVirtualNetworks []RequestItemSdaUpdateMulticastVirtualNetworks // Array of RequestSdaUpdateMulticastVirtualNetworks +type RequestItemSdaUpdateMulticastVirtualNetworks struct { + ID string `json:"id,omitempty"` // ID of the multicast configuration (updating this field is not allowed). + FabricID string `json:"fabricId,omitempty"` // ID of the fabric site this multicast configuration is associated with (updating this field is not allowed). + VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Name of the virtual network associated with the fabric site (updating this field is not allowed). + IPPoolName string `json:"ipPoolName,omitempty"` // Name of the IP Pool associated with the fabric site (updating this field is not allowed). + IPv4SsmRanges []string `json:"ipv4SsmRanges,omitempty"` // IPv4 Source Specific Multicast (SSM) ranges. Allowed ranges are from 225.0.0.0/8 to 239.0.0.0/8. SSM ranges should not conflict with ranges provided for ASM multicast. + MulticastRPs *[]RequestItemSdaUpdateMulticastVirtualNetworksMulticastRPs `json:"multicastRPs,omitempty"` // +} +type RequestItemSdaUpdateMulticastVirtualNetworksMulticastRPs struct { + RpDeviceLocation string `json:"rpDeviceLocation,omitempty"` // Device location of the RP. + IPv4Address string `json:"ipv4Address,omitempty"` // IPv4 address of the RP. For external RP configuration, exactly one of ipv4Address or ipv6Address must be provided. For fabric RP, this address is allocated by SDA and should not be provided during RP creation request and SDA allocated address should be retained in subsequent requests. + IPv6Address string `json:"ipv6Address,omitempty"` // IPv6 address of the RP. For external RP configuration, exactly one of ipv4Address or ipv6Address must be provided. For fabric RP, this address is allocated by SDA and should not be provided during RP creation request and SDA allocated address should be retained in subsequent requests. ipv6Address can only be provided for virtual networks with dual stack (IPv4 + IPv6) multicast pool. + IsDefaultV4RP *bool `json:"isDefaultV4RP,omitempty"` // Specifies whether it is a default IPv4 RP. + IsDefaultV6RP *bool `json:"isDefaultV6RP,omitempty"` // Specifies whether it is a default IPv6 RP. + NetworkDeviceIDs []string `json:"networkDeviceIds,omitempty"` // IDs of the network devices. This is a required field for fabric RPs. There can be maximum of two fabric RPs for a fabric site and these are shared across all multicast virtual networks. For configuring two fabric RPs in a fabric site both devices must have border roles. Only one RP can be configured in scenarios where a fabric edge device is used as RP or a dual stack multicast pool is used. + IPv4AsmRanges []string `json:"ipv4AsmRanges,omitempty"` // IPv4 Any Source Multicast ranges. Comma seperated list of IPv4 multicast group ranges that will be served by a given Multicast RP. Only IPv4 ranges can be provided. For fabric RP, both IPv4 and IPv6 ranges can be provided together. For external RP, IPv4 ranges should be provided for IPv4 external RP and IPv6 ranges should be provided for IPv6 external RP. + IPv6AsmRanges []string `json:"ipv6AsmRanges,omitempty"` // IPv6 Any Source Multicast ranges. Comma seperated list of IPv6 multicast group ranges that will be served by a given Multicast RP. Only IPv6 ranges can be provided. IPv6 ranges can only be provided for dual stack multicast pool. For fabric RP, both IPv4 and IPv6 ranges can be provided together. For external RP, IPv4 ranges should be provided for IPv4 external RP and IPv6 ranges should be provided for IPv6 external RP. +} +type RequestSdaAddPortAssignments []RequestItemSdaAddPortAssignments // Array of RequestSdaAddPortAssignments +type RequestItemSdaAddPortAssignments struct { + FabricID string `json:"fabricId,omitempty"` // ID of the fabric the device is assigned to. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the port assignment. + InterfaceName string `json:"interfaceName,omitempty"` // Interface name of the port assignment. + ConnectedDeviceType string `json:"connectedDeviceType,omitempty"` // Connected device type of the port assignment. + DataVLANName string `json:"dataVlanName,omitempty"` // Data VLAN name of the port assignment. + VoiceVLANName string `json:"voiceVlanName,omitempty"` // Voice VLAN name of the port assignment. + AuthenticateTemplateName string `json:"authenticateTemplateName,omitempty"` // Authenticate template name of the port assignment. + SecurityGroupName string `json:"securityGroupName,omitempty"` // Security group name of the port assignment. + InterfaceDescription string `json:"interfaceDescription,omitempty"` // Interface description of the port assignment. +} +type RequestSdaUpdatePortAssignments []RequestItemSdaUpdatePortAssignments // Array of RequestSdaUpdatePortAssignments +type RequestItemSdaUpdatePortAssignments struct { + ID string `json:"id,omitempty"` // ID of the port assignment. + FabricID string `json:"fabricId,omitempty"` // ID of the fabric the device is assigned to (updating this filed is not allowed). + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device ID of the port assignment (updating this field is not allowed). + InterfaceName string `json:"interfaceName,omitempty"` // Interface name of the port assignment (updating this field is not allowed). + ConnectedDeviceType string `json:"connectedDeviceType,omitempty"` // Connected device type of the port assignment (updating this field is not allowed). + DataVLANName string `json:"dataVlanName,omitempty"` // Data VLAN name of the port assignment. + VoiceVLANName string `json:"voiceVlanName,omitempty"` // Voice VLAN name of the port assignment. + AuthenticateTemplateName string `json:"authenticateTemplateName,omitempty"` // Authenticate template name of the port assignment. + ScalableGroupName string `json:"scalableGroupName,omitempty"` // Scalable group name of the port assignment. + InterfaceDescription string `json:"interfaceDescription,omitempty"` // Interface description of the port assignment. +} +type RequestSdaAddPortChannels []RequestItemSdaAddPortChannels // Array of RequestSdaAddPortChannels +type RequestItemSdaAddPortChannels struct { + FabricID string `json:"fabricId,omitempty"` // ID of the fabric the device is assigned to. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // ID of the network device. + InterfaceNames []string `json:"interfaceNames,omitempty"` // Interface names for this port channel (Maximum 16 ports for LACP protocol, Maximum 8 ports for PAGP and ON protocol). + ConnectedDeviceType string `json:"connectedDeviceType,omitempty"` // Connected device type of the port channel. + Protocol string `json:"protocol,omitempty"` // Protocol of the port channel (only PAGP is allowed if connectedDeviceType is EXTENDED_NODE). + Description string `json:"description,omitempty"` // Description of the port channel. +} +type RequestSdaUpdatePortChannels []RequestItemSdaUpdatePortChannels // Array of RequestSdaUpdatePortChannels +type RequestItemSdaUpdatePortChannels struct { + ID string `json:"id,omitempty"` // ID of the port channel (updating this field is not allowed). + FabricID string `json:"fabricId,omitempty"` // ID of the fabric the device is assigned to (updating this field is not allowed). + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // ID of the network device (updating this field is not allowed). + PortChannelName string `json:"portChannelName,omitempty"` // Name of the port channel (updating this field is not allowed). + InterfaceNames []string `json:"interfaceNames,omitempty"` // Interface names for this port channel (Maximum 16 ports for LACP protocol, Maximum 8 ports for PAGP and ON protocol). + ConnectedDeviceType string `json:"connectedDeviceType,omitempty"` // Connected device type of the port channel. + Protocol string `json:"protocol,omitempty"` // Protocol of the port channel (updating this field is not allowed). + Description string `json:"description,omitempty"` // Description of the port channel. +} +type RequestSdaProvisionDevices []RequestItemSdaProvisionDevices // Array of RequestSdaProvisionDevices +type RequestItemSdaProvisionDevices struct { + SiteID string `json:"siteId,omitempty"` // ID of the site this network device needs to be provisioned. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // ID of network device to be provisioned. +} +type RequestSdaReProvisionDevices []RequestItemSdaReProvisionDevices // Array of RequestSdaReProvisionDevices +type RequestItemSdaReProvisionDevices struct { + ID string `json:"id,omitempty"` // ID of the provisioned device. + SiteID string `json:"siteId,omitempty"` // ID of the site this device is already provisioned to. (updating this field is not allowed). + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // ID of the network device to be re-provisioned. (updating this field is not allowed). +} +type RequestSdaUpdateTransitNetworks []RequestItemSdaUpdateTransitNetworks // Array of RequestSdaUpdateTransitNetworks +type RequestItemSdaUpdateTransitNetworks struct { + ID string `json:"id,omitempty"` // ID of the transit network (updating this field is not allowed). + Name string `json:"name,omitempty"` // Name of the transit network (updating this field is not allowed). + Type string `json:"type,omitempty"` // Type of the transit network (updating this field is not allowed). + IPTransitSettings *RequestItemSdaUpdateTransitNetworksIPTransitSettings `json:"ipTransitSettings,omitempty"` // + SdaTransitSettings *RequestItemSdaUpdateTransitNetworksSdaTransitSettings `json:"sdaTransitSettings,omitempty"` // +} +type RequestItemSdaUpdateTransitNetworksIPTransitSettings struct { + RoutingProtocolName string `json:"routingProtocolName,omitempty"` // Routing Protocol Name of the IP transit network (updating this field is not allowed). + AutonomousSystemNumber string `json:"autonomousSystemNumber,omitempty"` // Autonomous System Number of the IP transit network. Allowed range is [1 to 4294967295] (updating this field is not allowed). +} +type RequestItemSdaUpdateTransitNetworksSdaTransitSettings struct { + IsMulticastOverTransitEnabled *bool `json:"isMulticastOverTransitEnabled,omitempty"` // Set this to true to enable multicast over SD-Access transit. This supports Native Multicast over SD-Access Transit. This is only applicable for transit of type SDA_LISP_PUB_SUB_TRANSIT. + ControlPlaneNetworkDeviceIDs []string `json:"controlPlaneNetworkDeviceIds,omitempty"` // List of network device IDs that will be used as control plane nodes. Maximum 2 network device IDs can be provided for transit of type SDA_LISP_BGP_TRANSIT and maximum 4 network device IDs can be provided for transit of type SDA_LISP_PUB_SUB_TRANSIT. +} +type RequestSdaAddTransitNetworks []RequestItemSdaAddTransitNetworks // Array of RequestSdaAddTransitNetworks +type RequestItemSdaAddTransitNetworks struct { + Name string `json:"name,omitempty"` // Name of the transit network. + Type string `json:"type,omitempty"` // Type of the transit network. + IPTransitSettings *RequestItemSdaAddTransitNetworksIPTransitSettings `json:"ipTransitSettings,omitempty"` // + SdaTransitSettings *RequestItemSdaAddTransitNetworksSdaTransitSettings `json:"sdaTransitSettings,omitempty"` // +} +type RequestItemSdaAddTransitNetworksIPTransitSettings struct { + RoutingProtocolName string `json:"routingProtocolName,omitempty"` // Routing protocol name of the IP transit network. + AutonomousSystemNumber string `json:"autonomousSystemNumber,omitempty"` // Autonomous system number of the IP transit network. Allowed range is [1 to 4294967295]. +} +type RequestItemSdaAddTransitNetworksSdaTransitSettings struct { + IsMulticastOverTransitEnabled *bool `json:"isMulticastOverTransitEnabled,omitempty"` // Set this to true to enable multicast over SD-Access transit. This supports Native Multicast over SD-Access Transit. This is only applicable for transit of type SDA_LISP_PUB_SUB_TRANSIT. + ControlPlaneNetworkDeviceIDs []string `json:"controlPlaneNetworkDeviceIds,omitempty"` // List of network device IDs that will be used as control plane nodes. Maximum 2 network device IDs can be provided for transit of type SDA_LISP_BGP_TRANSIT and maximum 4 network device IDs can be provided for transit of type SDA_LISP_PUB_SUB_TRANSIT. +} type RequestSdaAddVirtualNetworkWithScalableGroups struct { VirtualNetworkName string `json:"virtualNetworkName,omitempty"` // Virtual Network Name to be assigned at global level IsGuestVirtualNetwork *bool `json:"isGuestVirtualNetwork,omitempty"` // Guest Virtual Network enablement flag, default value is False. @@ -822,7 +2181,7 @@ type RequestSdaUpdateVirtualNetworkWithScalableGroups struct { @param GetDefaultAuthenticationProfileFromSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-default-authentication-profile-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-default-authentication-profile-from-sda-fabric-v1 */ func (s *SdaService) GetDefaultAuthenticationProfileFromSdaFabric(GetDefaultAuthenticationProfileFromSDAFabricQueryParams *GetDefaultAuthenticationProfileFromSdaFabricQueryParams) (*ResponseSdaGetDefaultAuthenticationProfileFromSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/authentication-profile" @@ -859,7 +2218,7 @@ func (s *SdaService) GetDefaultAuthenticationProfileFromSdaFabric(GetDefaultAuth @param GetBorderDeviceDetailFromSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-border-device-detail-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-border-device-detail-from-sda-fabric-v1 */ func (s *SdaService) GetBorderDeviceDetailFromSdaFabric(GetBorderDeviceDetailFromSDAFabricQueryParams *GetBorderDeviceDetailFromSdaFabricQueryParams) (*ResponseSdaGetBorderDeviceDetailFromSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/border-device" @@ -896,7 +2255,7 @@ func (s *SdaService) GetBorderDeviceDetailFromSdaFabric(GetBorderDeviceDetailFro @param GetControlPlaneDeviceFromSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-control-plane-device-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-control-plane-device-from-sda-fabric-v1 */ func (s *SdaService) GetControlPlaneDeviceFromSdaFabric(GetControlPlaneDeviceFromSDAFabricQueryParams *GetControlPlaneDeviceFromSdaFabricQueryParams) (*ResponseSdaGetControlPlaneDeviceFromSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/control-plane-device" @@ -933,7 +2292,7 @@ func (s *SdaService) GetControlPlaneDeviceFromSdaFabric(GetControlPlaneDeviceFro @param GetDeviceInfoFromSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-info-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-info-from-sda-fabric-v1 */ func (s *SdaService) GetDeviceInfoFromSdaFabric(GetDeviceInfoFromSDAFabricQueryParams *GetDeviceInfoFromSdaFabricQueryParams) (*ResponseSdaGetDeviceInfoFromSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/device" @@ -970,7 +2329,7 @@ func (s *SdaService) GetDeviceInfoFromSdaFabric(GetDeviceInfoFromSDAFabricQueryP @param GetDeviceRoleInSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-role-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-role-in-sda-fabric-v1 */ func (s *SdaService) GetDeviceRoleInSdaFabric(GetDeviceRoleInSDAFabricQueryParams *GetDeviceRoleInSdaFabricQueryParams) (*ResponseSdaGetDeviceRoleInSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/device/role" @@ -1007,7 +2366,7 @@ func (s *SdaService) GetDeviceRoleInSdaFabric(GetDeviceRoleInSDAFabricQueryParam @param GetEdgeDeviceFromSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-edge-device-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-edge-device-from-sda-fabric-v1 */ func (s *SdaService) GetEdgeDeviceFromSdaFabric(GetEdgeDeviceFromSDAFabricQueryParams *GetEdgeDeviceFromSdaFabricQueryParams) (*ResponseSdaGetEdgeDeviceFromSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/edge-device" @@ -1044,7 +2403,7 @@ func (s *SdaService) GetEdgeDeviceFromSdaFabric(GetEdgeDeviceFromSDAFabricQueryP @param GetSiteFromSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-from-sda-fabric-v1 */ func (s *SdaService) GetSiteFromSdaFabric(GetSiteFromSDAFabricQueryParams *GetSiteFromSdaFabricQueryParams) (*ResponseSdaGetSiteFromSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/fabric-site" @@ -1081,7 +2440,7 @@ func (s *SdaService) GetSiteFromSdaFabric(GetSiteFromSDAFabricQueryParams *GetSi @param GetPortAssignmentForAccessPointInSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-port-assignment-for-access-point-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-port-assignment-for-access-point-in-sda-fabric-v1 */ func (s *SdaService) GetPortAssignmentForAccessPointInSdaFabric(GetPortAssignmentForAccessPointInSDAFabricQueryParams *GetPortAssignmentForAccessPointInSdaFabricQueryParams) (*ResponseSdaGetPortAssignmentForAccessPointInSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/hostonboarding/access-point" @@ -1118,7 +2477,7 @@ func (s *SdaService) GetPortAssignmentForAccessPointInSdaFabric(GetPortAssignmen @param GetPortAssignmentForUserDeviceInSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-port-assignment-for-user-device-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-port-assignment-for-user-device-in-sda-fabric-v1 */ func (s *SdaService) GetPortAssignmentForUserDeviceInSdaFabric(GetPortAssignmentForUserDeviceInSDAFabricQueryParams *GetPortAssignmentForUserDeviceInSdaFabricQueryParams) (*ResponseSdaGetPortAssignmentForUserDeviceInSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/hostonboarding/user-device" @@ -1155,7 +2514,7 @@ func (s *SdaService) GetPortAssignmentForUserDeviceInSdaFabric(GetPortAssignment @param GetMulticastDetailsFromSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-multicast-details-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-multicast-details-from-sda-fabric-v1 */ func (s *SdaService) GetMulticastDetailsFromSdaFabric(GetMulticastDetailsFromSDAFabricQueryParams *GetMulticastDetailsFromSdaFabricQueryParams) (*ResponseSdaGetMulticastDetailsFromSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/multicast" @@ -1192,7 +2551,7 @@ func (s *SdaService) GetMulticastDetailsFromSdaFabric(GetMulticastDetailsFromSDA @param GetProvisionedWiredDeviceQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-provisioned-wired-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-provisioned-wired-device-v1 */ func (s *SdaService) GetProvisionedWiredDevice(GetProvisionedWiredDeviceQueryParams *GetProvisionedWiredDeviceQueryParams) (*ResponseSdaGetProvisionedWiredDevice, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/provision-device" @@ -1229,7 +2588,7 @@ func (s *SdaService) GetProvisionedWiredDevice(GetProvisionedWiredDeviceQueryPar @param GetTransitPeerNetworkInfoQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-transit-peer-network-info +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-transit-peer-network-info-v1 */ func (s *SdaService) GetTransitPeerNetworkInfo(GetTransitPeerNetworkInfoQueryParams *GetTransitPeerNetworkInfoQueryParams) (*ResponseSdaGetTransitPeerNetworkInfo, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/transit-peer-network" @@ -1266,7 +2625,7 @@ func (s *SdaService) GetTransitPeerNetworkInfo(GetTransitPeerNetworkInfoQueryPar @param GetVNFromSDAFabricQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-vn-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-vn-from-sda-fabric-v1 */ func (s *SdaService) GetVnFromSdaFabric(GetVNFromSDAFabricQueryParams *GetVnFromSdaFabricQueryParams) (*ResponseSdaGetVnFromSdaFabric, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/virtual-network" @@ -1303,7 +2662,7 @@ func (s *SdaService) GetVnFromSdaFabric(GetVNFromSDAFabricQueryParams *GetVnFrom @param GetVirtualNetworkSummaryQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-virtual-network-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-virtual-network-summary-v1 */ func (s *SdaService) GetVirtualNetworkSummary(GetVirtualNetworkSummaryQueryParams *GetVirtualNetworkSummaryQueryParams) (*ResponseSdaGetVirtualNetworkSummary, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/virtual-network/summary" @@ -1340,7 +2699,7 @@ func (s *SdaService) GetVirtualNetworkSummary(GetVirtualNetworkSummaryQueryParam @param GetIPPoolFromSDAVirtualNetworkQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ip-pool-from-sda-virtual-network +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ip-pool-from-sda-virtual-network-v1 */ func (s *SdaService) GetIPPoolFromSdaVirtualNetwork(GetIPPoolFromSDAVirtualNetworkQueryParams *GetIPPoolFromSdaVirtualNetworkQueryParams) (*ResponseSdaGetIPPoolFromSdaVirtualNetwork, *resty.Response, error) { path := "/dna/intent/api/v1/business/sda/virtualnetwork/ippool" @@ -1371,23 +2730,23 @@ func (s *SdaService) GetIPPoolFromSdaVirtualNetwork(GetIPPoolFromSDAVirtualNetwo } -//GetVirtualNetworkWithScalableGroups Get virtual network with scalable groups - ec8a-1ab5-4eba-bca7 -/* Get virtual network with scalable groups +//GetAnycastGateways Get anycast gateways - 5cb3-f980-670e-770a +/* Returns a list of anycast gateways that match the provided query parameters. -@param GetVirtualNetworkWithScalableGroupsQueryParams Filtering parameter +@param GetAnycastGatewaysQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-virtual-network-with-scalable-groups +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-anycast-gateways-v1 */ -func (s *SdaService) GetVirtualNetworkWithScalableGroups(GetVirtualNetworkWithScalableGroupsQueryParams *GetVirtualNetworkWithScalableGroupsQueryParams) (*ResponseSdaGetVirtualNetworkWithScalableGroups, *resty.Response, error) { - path := "/dna/intent/api/v1/virtual-network" +func (s *SdaService) GetAnycastGateways(GetAnycastGatewaysQueryParams *GetAnycastGatewaysQueryParams) (*ResponseSdaGetAnycastGateways, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/anycastGateways" - queryString, _ := query.Values(GetVirtualNetworkWithScalableGroupsQueryParams) + queryString, _ := query.Values(GetAnycastGatewaysQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetVirtualNetworkWithScalableGroups{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetAnycastGateways{}). SetError(&Error). Get(path) @@ -1398,33 +2757,35 @@ func (s *SdaService) GetVirtualNetworkWithScalableGroups(GetVirtualNetworkWithSc if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetVirtualNetworkWithScalableGroups(GetVirtualNetworkWithScalableGroupsQueryParams) + return s.GetAnycastGateways(GetAnycastGatewaysQueryParams) } - return nil, response, fmt.Errorf("error with operation GetVirtualNetworkWithScalableGroups") + return nil, response, fmt.Errorf("error with operation GetAnycastGateways") } - result := response.Result().(*ResponseSdaGetVirtualNetworkWithScalableGroups) + result := response.Result().(*ResponseSdaGetAnycastGateways) return result, response, err } -//AddDefaultAuthenticationTemplateInSdaFabric Add default authentication template in SDA Fabric - bca3-39d8-44c8-a3c0 -/* Add default authentication template in SDA Fabric +//GetAnycastGatewayCount Get anycast gateway count - e504-152d-3f53-4d07 +/* Returns the count of anycast gateways that match the provided query parameters. +@param GetAnycastGatewayCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-default-authentication-template-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-anycast-gateway-count-v1 */ -func (s *SdaService) AddDefaultAuthenticationTemplateInSdaFabric(requestSdaAddDefaultAuthenticationTemplateInSDAFabric *RequestSdaAddDefaultAuthenticationTemplateInSdaFabric) (*ResponseSdaAddDefaultAuthenticationTemplateInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/authentication-profile" +func (s *SdaService) GetAnycastGatewayCount(GetAnycastGatewayCountQueryParams *GetAnycastGatewayCountQueryParams) (*ResponseSdaGetAnycastGatewayCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/anycastGateways/count" + + queryString, _ := query.Values(GetAnycastGatewayCountQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddDefaultAuthenticationTemplateInSDAFabric). - SetResult(&ResponseSdaAddDefaultAuthenticationTemplateInSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetAnycastGatewayCount{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1432,36 +2793,36 @@ func (s *SdaService) AddDefaultAuthenticationTemplateInSdaFabric(requestSdaAddDe } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddDefaultAuthenticationTemplateInSdaFabric(requestSdaAddDefaultAuthenticationTemplateInSDAFabric) + return s.GetAnycastGatewayCount(GetAnycastGatewayCountQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddDefaultAuthenticationTemplateInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetAnycastGatewayCount") } - result := response.Result().(*ResponseSdaAddDefaultAuthenticationTemplateInSdaFabric) + result := response.Result().(*ResponseSdaGetAnycastGatewayCount) return result, response, err } -//AddBorderDeviceInSdaFabric Add border device in SDA Fabric - bead-7b34-43b9-96a7 -/* Add border device in SDA Fabric +//GetAuthenticationProfiles Get authentication profiles - 9eb7-1a2d-44c8-82aa +/* Returns a list of authentication profiles that match the provided query parameters. +@param GetAuthenticationProfilesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-border-device-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-authentication-profiles-v1 */ -func (s *SdaService) AddBorderDeviceInSdaFabric(requestSdaAddBorderDeviceInSDAFabric *RequestSdaAddBorderDeviceInSdaFabric) (*ResponseSdaAddBorderDeviceInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/border-device" +func (s *SdaService) GetAuthenticationProfiles(GetAuthenticationProfilesQueryParams *GetAuthenticationProfilesQueryParams) (*ResponseSdaGetAuthenticationProfiles, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/authenticationProfiles" + + queryString, _ := query.Values(GetAuthenticationProfilesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddBorderDeviceInSDAFabric). - SetResult(&ResponseSdaAddBorderDeviceInSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetAuthenticationProfiles{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1469,36 +2830,36 @@ func (s *SdaService) AddBorderDeviceInSdaFabric(requestSdaAddBorderDeviceInSDAFa } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddBorderDeviceInSdaFabric(requestSdaAddBorderDeviceInSDAFabric) + return s.GetAuthenticationProfiles(GetAuthenticationProfilesQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddBorderDeviceInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetAuthenticationProfiles") } - result := response.Result().(*ResponseSdaAddBorderDeviceInSdaFabric) + result := response.Result().(*ResponseSdaGetAuthenticationProfiles) return result, response, err } -//AddControlPlaneDeviceInSdaFabric Add control plane device in SDA Fabric - dd85-c910-4248-9a3f -/* Add control plane device in SDA Fabric +//GetExtranetPolicies Get extranet policies - 3f85-3834-4b1b-bbcb +/* Returns a list of extranet policies that match the provided query parameters. +@param GetExtranetPoliciesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-control-plane-device-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-extranet-policies-v1 */ -func (s *SdaService) AddControlPlaneDeviceInSdaFabric(requestSdaAddControlPlaneDeviceInSDAFabric *RequestSdaAddControlPlaneDeviceInSdaFabric) (*ResponseSdaAddControlPlaneDeviceInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/control-plane-device" +func (s *SdaService) GetExtranetPolicies(GetExtranetPoliciesQueryParams *GetExtranetPoliciesQueryParams) (*ResponseSdaGetExtranetPolicies, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/extranetPolicies" + + queryString, _ := query.Values(GetExtranetPoliciesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddControlPlaneDeviceInSDAFabric). - SetResult(&ResponseSdaAddControlPlaneDeviceInSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetExtranetPolicies{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1506,36 +2867,33 @@ func (s *SdaService) AddControlPlaneDeviceInSdaFabric(requestSdaAddControlPlaneD } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddControlPlaneDeviceInSdaFabric(requestSdaAddControlPlaneDeviceInSDAFabric) + return s.GetExtranetPolicies(GetExtranetPoliciesQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddControlPlaneDeviceInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetExtranetPolicies") } - result := response.Result().(*ResponseSdaAddControlPlaneDeviceInSdaFabric) + result := response.Result().(*ResponseSdaGetExtranetPolicies) return result, response, err } -//AddEdgeDeviceInSdaFabric Add edge device in SDA Fabric - 87a8-ba44-4ce9-bc59 -/* Add edge device in SDA Fabric +//GetExtranetPolicyCount Get extranet policy count - 35a7-4975-447a-a6b8 +/* Returns the count of extranet policies that match the provided query parameters. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-edge-device-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-extranet-policy-count-v1 */ -func (s *SdaService) AddEdgeDeviceInSdaFabric(requestSdaAddEdgeDeviceInSDAFabric *RequestSdaAddEdgeDeviceInSdaFabric) (*ResponseSdaAddEdgeDeviceInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/edge-device" +func (s *SdaService) GetExtranetPolicyCount() (*ResponseSdaGetExtranetPolicyCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/extranetPolicies/count" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddEdgeDeviceInSDAFabric). - SetResult(&ResponseSdaAddEdgeDeviceInSdaFabric{}). + SetResult(&ResponseSdaGetExtranetPolicyCount{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1543,36 +2901,36 @@ func (s *SdaService) AddEdgeDeviceInSdaFabric(requestSdaAddEdgeDeviceInSDAFabric } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddEdgeDeviceInSdaFabric(requestSdaAddEdgeDeviceInSDAFabric) + return s.GetExtranetPolicyCount() } - - return nil, response, fmt.Errorf("error with operation AddEdgeDeviceInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetExtranetPolicyCount") } - result := response.Result().(*ResponseSdaAddEdgeDeviceInSdaFabric) + result := response.Result().(*ResponseSdaGetExtranetPolicyCount) return result, response, err } -//AddSiteInSdaFabric Add Site in SDA Fabric - d2b4-d9d0-4a4b-884c -/* Add Site in SDA Fabric +//GetFabricDevices Get fabric devices - e680-7a97-47db-99e5 +/* Returns a list of fabric devices that match the provided query parameters. +@param GetFabricDevicesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-site-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-devices-v1 */ -func (s *SdaService) AddSiteInSdaFabric(requestSdaAddSiteInSDAFabric *RequestSdaAddSiteInSdaFabric) (*ResponseSdaAddSiteInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/fabric-site" +func (s *SdaService) GetFabricDevices(GetFabricDevicesQueryParams *GetFabricDevicesQueryParams) (*ResponseSdaGetFabricDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices" + + queryString, _ := query.Values(GetFabricDevicesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddSiteInSDAFabric). - SetResult(&ResponseSdaAddSiteInSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricDevices{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1580,36 +2938,36 @@ func (s *SdaService) AddSiteInSdaFabric(requestSdaAddSiteInSDAFabric *RequestSda } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddSiteInSdaFabric(requestSdaAddSiteInSDAFabric) + return s.GetFabricDevices(GetFabricDevicesQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddSiteInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetFabricDevices") } - result := response.Result().(*ResponseSdaAddSiteInSdaFabric) + result := response.Result().(*ResponseSdaGetFabricDevices) return result, response, err } -//AddPortAssignmentForAccessPointInSdaFabric Add Port assignment for access point in SDA Fabric - c2a4-3ad2-4098-baa7 -/* Add Port assignment for access point in SDA Fabric +//GetFabricDevicesCount Get fabric devices count - 9ba6-7b73-44b9-bb42 +/* Returns the count of fabric devices that match the provided query parameters. +@param GetFabricDevicesCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-port-assignment-for-access-point-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-devices-count-v1 */ -func (s *SdaService) AddPortAssignmentForAccessPointInSdaFabric(requestSdaAddPortAssignmentForAccessPointInSDAFabric *RequestSdaAddPortAssignmentForAccessPointInSdaFabric) (*ResponseSdaAddPortAssignmentForAccessPointInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/hostonboarding/access-point" +func (s *SdaService) GetFabricDevicesCount(GetFabricDevicesCountQueryParams *GetFabricDevicesCountQueryParams) (*ResponseSdaGetFabricDevicesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/count" + + queryString, _ := query.Values(GetFabricDevicesCountQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddPortAssignmentForAccessPointInSDAFabric). - SetResult(&ResponseSdaAddPortAssignmentForAccessPointInSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricDevicesCount{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1617,36 +2975,36 @@ func (s *SdaService) AddPortAssignmentForAccessPointInSdaFabric(requestSdaAddPor } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddPortAssignmentForAccessPointInSdaFabric(requestSdaAddPortAssignmentForAccessPointInSDAFabric) + return s.GetFabricDevicesCount(GetFabricDevicesCountQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddPortAssignmentForAccessPointInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetFabricDevicesCount") } - result := response.Result().(*ResponseSdaAddPortAssignmentForAccessPointInSdaFabric) + result := response.Result().(*ResponseSdaGetFabricDevicesCount) return result, response, err } -//AddPortAssignmentForUserDeviceInSdaFabric Add Port assignment for user device in SDA Fabric - 9582-ab82-4ce8-b29d -/* Add Port assignment for user device in SDA Fabric. +//GetFabricDevicesLayer2Handoffs Get fabric devices layer 2 handoffs - b7af-eb15-4409-86a4 +/* Returns a list of layer 2 handoffs of fabric devices that match the provided query parameters. +@param GetFabricDevicesLayer2HandoffsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-port-assignment-for-user-device-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-devices-layer2-handoffs-v1 */ -func (s *SdaService) AddPortAssignmentForUserDeviceInSdaFabric(requestSdaAddPortAssignmentForUserDeviceInSDAFabric *RequestSdaAddPortAssignmentForUserDeviceInSdaFabric) (*ResponseSdaAddPortAssignmentForUserDeviceInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/hostonboarding/user-device" +func (s *SdaService) GetFabricDevicesLayer2Handoffs(GetFabricDevicesLayer2HandoffsQueryParams *GetFabricDevicesLayer2HandoffsQueryParams) (*ResponseSdaGetFabricDevicesLayer2Handoffs, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer2Handoffs" + + queryString, _ := query.Values(GetFabricDevicesLayer2HandoffsQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddPortAssignmentForUserDeviceInSDAFabric). - SetResult(&ResponseSdaAddPortAssignmentForUserDeviceInSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricDevicesLayer2Handoffs{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1654,36 +3012,36 @@ func (s *SdaService) AddPortAssignmentForUserDeviceInSdaFabric(requestSdaAddPort } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddPortAssignmentForUserDeviceInSdaFabric(requestSdaAddPortAssignmentForUserDeviceInSDAFabric) + return s.GetFabricDevicesLayer2Handoffs(GetFabricDevicesLayer2HandoffsQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddPortAssignmentForUserDeviceInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetFabricDevicesLayer2Handoffs") } - result := response.Result().(*ResponseSdaAddPortAssignmentForUserDeviceInSdaFabric) + result := response.Result().(*ResponseSdaGetFabricDevicesLayer2Handoffs) return result, response, err } -//AddMulticastInSdaFabric Add multicast in SDA fabric - ff85-3826-472a-98fb -/* Add multicast in SDA fabric +//GetFabricDevicesLayer2HandoffsCount Get fabric devices layer 2 handoffs count - 019c-791b-48f9-b1d9 +/* Returns the count of layer 2 handoffs of fabric devices that match the provided query parameters. +@param GetFabricDevicesLayer2HandoffsCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-multicast-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-devices-layer2-handoffs-count-v1 */ -func (s *SdaService) AddMulticastInSdaFabric(requestSdaAddMulticastInSDAFabric *RequestSdaAddMulticastInSdaFabric) (*ResponseSdaAddMulticastInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/multicast" +func (s *SdaService) GetFabricDevicesLayer2HandoffsCount(GetFabricDevicesLayer2HandoffsCountQueryParams *GetFabricDevicesLayer2HandoffsCountQueryParams) (*ResponseSdaGetFabricDevicesLayer2HandoffsCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer2Handoffs/count" + + queryString, _ := query.Values(GetFabricDevicesLayer2HandoffsCountQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddMulticastInSDAFabric). - SetResult(&ResponseSdaAddMulticastInSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricDevicesLayer2HandoffsCount{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1691,36 +3049,36 @@ func (s *SdaService) AddMulticastInSdaFabric(requestSdaAddMulticastInSDAFabric * } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddMulticastInSdaFabric(requestSdaAddMulticastInSDAFabric) + return s.GetFabricDevicesLayer2HandoffsCount(GetFabricDevicesLayer2HandoffsCountQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddMulticastInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetFabricDevicesLayer2HandoffsCount") } - result := response.Result().(*ResponseSdaAddMulticastInSdaFabric) + result := response.Result().(*ResponseSdaGetFabricDevicesLayer2HandoffsCount) return result, response, err } -//ProvisionWiredDevice Provision Wired Device - cf9a-5843-45fa-9399 -/* Provision Wired Device +//GetFabricDevicesLayer3HandoffsWithIPTransit Get fabric devices layer 3 handoffs with ip transit - cbb9-daa0-43a9-913b +/* Returns a list of layer 3 handoffs with ip transit of fabric devices that match the provided query parameters. +@param GetFabricDevicesLayer3HandoffsWithIpTransitQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!provision-wired-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-devices-layer3-handoffs-with-ip-transit-v1 */ -func (s *SdaService) ProvisionWiredDevice(requestSdaProvisionWiredDevice *RequestSdaProvisionWiredDevice) (*ResponseSdaProvisionWiredDevice, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/provision-device" +func (s *SdaService) GetFabricDevicesLayer3HandoffsWithIPTransit(GetFabricDevicesLayer3HandoffsWithIpTransitQueryParams *GetFabricDevicesLayer3HandoffsWithIPTransitQueryParams) (*ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransit, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits" + + queryString, _ := query.Values(GetFabricDevicesLayer3HandoffsWithIpTransitQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaProvisionWiredDevice). - SetResult(&ResponseSdaProvisionWiredDevice{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransit{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1728,36 +3086,36 @@ func (s *SdaService) ProvisionWiredDevice(requestSdaProvisionWiredDevice *Reques } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.ProvisionWiredDevice(requestSdaProvisionWiredDevice) + return s.GetFabricDevicesLayer3HandoffsWithIPTransit(GetFabricDevicesLayer3HandoffsWithIpTransitQueryParams) } - - return nil, response, fmt.Errorf("error with operation ProvisionWiredDevice") + return nil, response, fmt.Errorf("error with operation GetFabricDevicesLayer3HandoffsWithIpTransit") } - result := response.Result().(*ResponseSdaProvisionWiredDevice) + result := response.Result().(*ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransit) return result, response, err } -//AddTransitPeerNetwork Add Transit Peer Network - 6db9-292d-4f28-a26b -/* Add Transit Peer Network in SD-Access +//GetFabricDevicesLayer3HandoffsWithIPTransitCount Get fabric devices layer 3 handoffs with ip transit count - bb90-4a31-4378-9125 +/* Returns the count of layer 3 handoffs with ip transit of fabric devices that match the provided query parameters. +@param GetFabricDevicesLayer3HandoffsWithIpTransitCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-transit-peer-network +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-devices-layer3-handoffs-with-ip-transit-count-v1 */ -func (s *SdaService) AddTransitPeerNetwork(requestSdaAddTransitPeerNetwork *RequestSdaAddTransitPeerNetwork) (*ResponseSdaAddTransitPeerNetwork, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/transit-peer-network" +func (s *SdaService) GetFabricDevicesLayer3HandoffsWithIPTransitCount(GetFabricDevicesLayer3HandoffsWithIpTransitCountQueryParams *GetFabricDevicesLayer3HandoffsWithIPTransitCountQueryParams) (*ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransitCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits/count" + + queryString, _ := query.Values(GetFabricDevicesLayer3HandoffsWithIpTransitCountQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddTransitPeerNetwork). - SetResult(&ResponseSdaAddTransitPeerNetwork{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransitCount{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1765,36 +3123,36 @@ func (s *SdaService) AddTransitPeerNetwork(requestSdaAddTransitPeerNetwork *Requ } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddTransitPeerNetwork(requestSdaAddTransitPeerNetwork) + return s.GetFabricDevicesLayer3HandoffsWithIPTransitCount(GetFabricDevicesLayer3HandoffsWithIpTransitCountQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddTransitPeerNetwork") + return nil, response, fmt.Errorf("error with operation GetFabricDevicesLayer3HandoffsWithIpTransitCount") } - result := response.Result().(*ResponseSdaAddTransitPeerNetwork) + result := response.Result().(*ResponseSdaGetFabricDevicesLayer3HandoffsWithIPTransitCount) return result, response, err } -//AddVnInFabric Add VN in fabric - 518c-59cd-441a-a9fc -/* Add virtual network (VN) in SDA Fabric +//GetFabricDevicesLayer3HandoffsWithSdaTransit Get fabric devices layer 3 handoffs with sda transit - 0d8e-d8dd-458b-9dc1 +/* Returns a list of layer 3 handoffs with sda transit of fabric devices that match the provided query parameters. +@param GetFabricDevicesLayer3HandoffsWithSdaTransitQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-vn-in-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-devices-layer3-handoffs-with-sda-transit-v1 */ -func (s *SdaService) AddVnInFabric(requestSdaAddVNInFabric *RequestSdaAddVnInFabric) (*ResponseSdaAddVnInFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/virtual-network" +func (s *SdaService) GetFabricDevicesLayer3HandoffsWithSdaTransit(GetFabricDevicesLayer3HandoffsWithSdaTransitQueryParams *GetFabricDevicesLayer3HandoffsWithSdaTransitQueryParams) (*ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransit, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits" + + queryString, _ := query.Values(GetFabricDevicesLayer3HandoffsWithSdaTransitQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddVNInFabric). - SetResult(&ResponseSdaAddVnInFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransit{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1802,36 +3160,36 @@ func (s *SdaService) AddVnInFabric(requestSdaAddVNInFabric *RequestSdaAddVnInFab } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddVnInFabric(requestSdaAddVNInFabric) + return s.GetFabricDevicesLayer3HandoffsWithSdaTransit(GetFabricDevicesLayer3HandoffsWithSdaTransitQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddVnInFabric") + return nil, response, fmt.Errorf("error with operation GetFabricDevicesLayer3HandoffsWithSdaTransit") } - result := response.Result().(*ResponseSdaAddVnInFabric) + result := response.Result().(*ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransit) return result, response, err } -//AddIPPoolInSdaVirtualNetwork Add IP Pool in SDA Virtual Network - 2085-79ea-4ed9-8f4f -/* Add IP Pool in SDA Virtual Network +//GetFabricDevicesLayer3HandoffsWithSdaTransitCount Get fabric devices layer 3 handoffs with sda transit count - bd89-6aca-46cb-8f65 +/* Returns the count of layer 3 handoffs with sda transit of fabric devices that match the provided query parameters. +@param GetFabricDevicesLayer3HandoffsWithSdaTransitCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-ip-pool-in-sda-virtual-network +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-devices-layer3-handoffs-with-sda-transit-count-v1 */ -func (s *SdaService) AddIPPoolInSdaVirtualNetwork(requestSdaAddIPPoolInSDAVirtualNetwork *RequestSdaAddIPPoolInSdaVirtualNetwork) (*ResponseSdaAddIPPoolInSdaVirtualNetwork, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/virtualnetwork/ippool" +func (s *SdaService) GetFabricDevicesLayer3HandoffsWithSdaTransitCount(GetFabricDevicesLayer3HandoffsWithSdaTransitCountQueryParams *GetFabricDevicesLayer3HandoffsWithSdaTransitCountQueryParams) (*ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransitCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits/count" + + queryString, _ := query.Values(GetFabricDevicesLayer3HandoffsWithSdaTransitCountQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddIPPoolInSDAVirtualNetwork). - SetResult(&ResponseSdaAddIPPoolInSdaVirtualNetwork{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransitCount{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1839,36 +3197,36 @@ func (s *SdaService) AddIPPoolInSdaVirtualNetwork(requestSdaAddIPPoolInSDAVirtua } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddIPPoolInSdaVirtualNetwork(requestSdaAddIPPoolInSDAVirtualNetwork) + return s.GetFabricDevicesLayer3HandoffsWithSdaTransitCount(GetFabricDevicesLayer3HandoffsWithSdaTransitCountQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddIpPoolInSdaVirtualNetwork") + return nil, response, fmt.Errorf("error with operation GetFabricDevicesLayer3HandoffsWithSdaTransitCount") } - result := response.Result().(*ResponseSdaAddIPPoolInSdaVirtualNetwork) + result := response.Result().(*ResponseSdaGetFabricDevicesLayer3HandoffsWithSdaTransitCount) return result, response, err } -//AddVirtualNetworkWithScalableGroups Add virtual network with scalable groups - e3a8-5b19-406a-9f4e -/* Add virtual network with scalable groups at global level +//GetFabricSites Get fabric sites - b78b-fa87-49a9-b804 +/* Returns a list of fabric sites that match the provided query parameters. +@param GetFabricSitesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-virtual-network-with-scalable-groups +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-sites-v1 */ -func (s *SdaService) AddVirtualNetworkWithScalableGroups(requestSdaAddVirtualNetworkWithScalableGroups *RequestSdaAddVirtualNetworkWithScalableGroups) (*ResponseSdaAddVirtualNetworkWithScalableGroups, *resty.Response, error) { - path := "/dna/intent/api/v1/virtual-network" +func (s *SdaService) GetFabricSites(GetFabricSitesQueryParams *GetFabricSitesQueryParams) (*ResponseSdaGetFabricSites, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricSites" + + queryString, _ := query.Values(GetFabricSitesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaAddVirtualNetworkWithScalableGroups). - SetResult(&ResponseSdaAddVirtualNetworkWithScalableGroups{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricSites{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1876,34 +3234,33 @@ func (s *SdaService) AddVirtualNetworkWithScalableGroups(requestSdaAddVirtualNet } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.AddVirtualNetworkWithScalableGroups(requestSdaAddVirtualNetworkWithScalableGroups) + return s.GetFabricSites(GetFabricSitesQueryParams) } - - return nil, response, fmt.Errorf("error with operation AddVirtualNetworkWithScalableGroups") + return nil, response, fmt.Errorf("error with operation GetFabricSites") } - result := response.Result().(*ResponseSdaAddVirtualNetworkWithScalableGroups) + result := response.Result().(*ResponseSdaGetFabricSites) return result, response, err } -//UpdateDefaultAuthenticationProfileInSdaFabric Update default authentication profile in SDA Fabric - 8984-ea77-44d9-8a54 -/* Update default authentication profile in SDA Fabric +//GetFabricSiteCount Get fabric site count - 109a-0907-4a9b-82ef +/* Returns the count of fabric sites that match the provided query parameters. - */ -func (s *SdaService) UpdateDefaultAuthenticationProfileInSdaFabric(requestSdaUpdateDefaultAuthenticationProfileInSDAFabric *RequestSdaUpdateDefaultAuthenticationProfileInSdaFabric) (*ResponseSdaUpdateDefaultAuthenticationProfileInSdaFabric, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/authentication-profile" + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-site-count-v1 +*/ +func (s *SdaService) GetFabricSiteCount() (*ResponseSdaGetFabricSiteCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricSites/count" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaUpdateDefaultAuthenticationProfileInSDAFabric). - SetResult(&ResponseSdaUpdateDefaultAuthenticationProfileInSdaFabric{}). + SetResult(&ResponseSdaGetFabricSiteCount{}). SetError(&Error). - Put(path) + Get(path) if err != nil { return nil, nil, err @@ -1912,31 +3269,35 @@ func (s *SdaService) UpdateDefaultAuthenticationProfileInSdaFabric(requestSdaUpd if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.UpdateDefaultAuthenticationProfileInSdaFabric(requestSdaUpdateDefaultAuthenticationProfileInSDAFabric) + return s.GetFabricSiteCount() } - return nil, response, fmt.Errorf("error with operation UpdateDefaultAuthenticationProfileInSdaFabric") + return nil, response, fmt.Errorf("error with operation GetFabricSiteCount") } - result := response.Result().(*ResponseSdaUpdateDefaultAuthenticationProfileInSdaFabric) + result := response.Result().(*ResponseSdaGetFabricSiteCount) return result, response, err } -//ReProvisionWiredDevice Re-Provision Wired Device - 4e95-c9a2-41ab-8889 -/* Re-Provision Wired Device +//GetFabricZones Get fabric zones - d0bc-0b5c-4fdb-839a +/* Returns a list of fabric zones that match the provided query parameters. - */ -func (s *SdaService) ReProvisionWiredDevice(requestSdaReProvisionWiredDevice *RequestSdaReProvisionWiredDevice) (*ResponseSdaReProvisionWiredDevice, *resty.Response, error) { - path := "/dna/intent/api/v1/business/sda/provision-device" +@param GetFabricZonesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-zones-v1 +*/ +func (s *SdaService) GetFabricZones(GetFabricZonesQueryParams *GetFabricZonesQueryParams) (*ResponseSdaGetFabricZones, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricZones" + + queryString, _ := query.Values(GetFabricZonesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSdaReProvisionWiredDevice). - SetResult(&ResponseSdaReProvisionWiredDevice{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetFabricZones{}). SetError(&Error). - Put(path) + Get(path) if err != nil { return nil, nil, err @@ -1945,23 +3306,2279 @@ func (s *SdaService) ReProvisionWiredDevice(requestSdaReProvisionWiredDevice *Re if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.ReProvisionWiredDevice(requestSdaReProvisionWiredDevice) + return s.GetFabricZones(GetFabricZonesQueryParams) } - return nil, response, fmt.Errorf("error with operation ReProvisionWiredDevice") + return nil, response, fmt.Errorf("error with operation GetFabricZones") } - result := response.Result().(*ResponseSdaReProvisionWiredDevice) + result := response.Result().(*ResponseSdaGetFabricZones) return result, response, err } -//UpdateVirtualNetworkWithScalableGroups Update virtual network with scalable groups - c48b-2904-49bb-875f -/* Update virtual network with scalable groups +//GetFabricZoneCount Get fabric zone count - 15a2-da20-4758-bc78 +/* Returns the count of fabric zones that match the provided query parameters. - */ -func (s *SdaService) UpdateVirtualNetworkWithScalableGroups(requestSdaUpdateVirtualNetworkWithScalableGroups *RequestSdaUpdateVirtualNetworkWithScalableGroups) (*ResponseSdaUpdateVirtualNetworkWithScalableGroups, *resty.Response, error) { - path := "/dna/intent/api/v1/virtual-network" + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-fabric-zone-count-v1 +*/ +func (s *SdaService) GetFabricZoneCount() (*ResponseSdaGetFabricZoneCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricZones/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaGetFabricZoneCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetFabricZoneCount() + } + return nil, response, fmt.Errorf("error with operation GetFabricZoneCount") + } + + result := response.Result().(*ResponseSdaGetFabricZoneCount) + return result, response, err + +} + +//GetLayer2VirtualNetworks Get layer 2 virtual networks - 659a-ab00-4c69-a663 +/* Returns a list of layer 2 virtual networks that match the provided query parameters. + + +@param GetLayer2VirtualNetworksQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-layer2-virtual-networks-v1 +*/ +func (s *SdaService) GetLayer2VirtualNetworks(GetLayer2VirtualNetworksQueryParams *GetLayer2VirtualNetworksQueryParams) (*ResponseSdaGetLayer2VirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/layer2VirtualNetworks" + + queryString, _ := query.Values(GetLayer2VirtualNetworksQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetLayer2VirtualNetworks{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetLayer2VirtualNetworks(GetLayer2VirtualNetworksQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetLayer2VirtualNetworks") + } + + result := response.Result().(*ResponseSdaGetLayer2VirtualNetworks) + return result, response, err + +} + +//GetLayer2VirtualNetworkCount Get layer 2 virtual network count - 5c9f-0a6e-445b-b743 +/* Returns the count of layer 2 virtual networks that match the provided query parameters. + + +@param GetLayer2VirtualNetworkCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-layer2-virtual-network-count-v1 +*/ +func (s *SdaService) GetLayer2VirtualNetworkCount(GetLayer2VirtualNetworkCountQueryParams *GetLayer2VirtualNetworkCountQueryParams) (*ResponseSdaGetLayer2VirtualNetworkCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/layer2VirtualNetworks/count" + + queryString, _ := query.Values(GetLayer2VirtualNetworkCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetLayer2VirtualNetworkCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetLayer2VirtualNetworkCount(GetLayer2VirtualNetworkCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetLayer2VirtualNetworkCount") + } + + result := response.Result().(*ResponseSdaGetLayer2VirtualNetworkCount) + return result, response, err + +} + +//GetLayer3VirtualNetworks Get layer 3 virtual networks - 2892-e9d4-4b68-b538 +/* Returns a list of layer 3 virtual networks that match the provided query parameters. + + +@param GetLayer3VirtualNetworksQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-layer3-virtual-networks-v1 +*/ +func (s *SdaService) GetLayer3VirtualNetworks(GetLayer3VirtualNetworksQueryParams *GetLayer3VirtualNetworksQueryParams) (*ResponseSdaGetLayer3VirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/layer3VirtualNetworks" + + queryString, _ := query.Values(GetLayer3VirtualNetworksQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetLayer3VirtualNetworks{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetLayer3VirtualNetworks(GetLayer3VirtualNetworksQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetLayer3VirtualNetworks") + } + + result := response.Result().(*ResponseSdaGetLayer3VirtualNetworks) + return result, response, err + +} + +//GetLayer3VirtualNetworksCount Get layer 3 virtual networks count - 87af-99e9-493b-9f3d +/* Returns the count of layer 3 virtual networks that match the provided query parameters. + + +@param GetLayer3VirtualNetworksCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-layer3-virtual-networks-count-v1 +*/ +func (s *SdaService) GetLayer3VirtualNetworksCount(GetLayer3VirtualNetworksCountQueryParams *GetLayer3VirtualNetworksCountQueryParams) (*ResponseSdaGetLayer3VirtualNetworksCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/layer3VirtualNetworks/count" + + queryString, _ := query.Values(GetLayer3VirtualNetworksCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetLayer3VirtualNetworksCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetLayer3VirtualNetworksCount(GetLayer3VirtualNetworksCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetLayer3VirtualNetworksCount") + } + + result := response.Result().(*ResponseSdaGetLayer3VirtualNetworksCount) + return result, response, err + +} + +//GetMulticast Get multicast - b48d-e933-4e5b-988a +/* Returns a list of multicast configurations at a fabric site level that match the provided query parameters. + + +@param GetMulticastQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-multicast-v1 +*/ +func (s *SdaService) GetMulticast(GetMulticastQueryParams *GetMulticastQueryParams) (*ResponseSdaGetMulticast, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/multicast" + + queryString, _ := query.Values(GetMulticastQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetMulticast{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetMulticast(GetMulticastQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetMulticast") + } + + result := response.Result().(*ResponseSdaGetMulticast) + return result, response, err + +} + +//GetMulticastVirtualNetworks Get multicast virtual networks - 048b-698b-4048-b3aa +/* Returns a list of multicast configurations for virtual networks that match the provided query parameters. + + +@param GetMulticastVirtualNetworksQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-multicast-virtual-networks-v1 +*/ +func (s *SdaService) GetMulticastVirtualNetworks(GetMulticastVirtualNetworksQueryParams *GetMulticastVirtualNetworksQueryParams) (*ResponseSdaGetMulticastVirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/multicast/virtualNetworks" + + queryString, _ := query.Values(GetMulticastVirtualNetworksQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetMulticastVirtualNetworks{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetMulticastVirtualNetworks(GetMulticastVirtualNetworksQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetMulticastVirtualNetworks") + } + + result := response.Result().(*ResponseSdaGetMulticastVirtualNetworks) + return result, response, err + +} + +//GetMulticastVirtualNetworkCount Get multicast virtual network count - 7cbb-0b86-4a39-98ab +/* Returns the count of multicast configurations associated to virtual networks that match the provided query parameters. + + +@param GetMulticastVirtualNetworkCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-multicast-virtual-network-count-v1 +*/ +func (s *SdaService) GetMulticastVirtualNetworkCount(GetMulticastVirtualNetworkCountQueryParams *GetMulticastVirtualNetworkCountQueryParams) (*ResponseSdaGetMulticastVirtualNetworkCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/multicast/virtualNetworks/count" + + queryString, _ := query.Values(GetMulticastVirtualNetworkCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetMulticastVirtualNetworkCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetMulticastVirtualNetworkCount(GetMulticastVirtualNetworkCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetMulticastVirtualNetworkCount") + } + + result := response.Result().(*ResponseSdaGetMulticastVirtualNetworkCount) + return result, response, err + +} + +//GetPortAssignments Get port assignments - c199-09a2-4619-a140 +/* Returns a list of port assignments that match the provided query parameters. + + +@param GetPortAssignmentsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-port-assignments-v1 +*/ +func (s *SdaService) GetPortAssignments(GetPortAssignmentsQueryParams *GetPortAssignmentsQueryParams) (*ResponseSdaGetPortAssignments, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/portAssignments" + + queryString, _ := query.Values(GetPortAssignmentsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetPortAssignments{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetPortAssignments(GetPortAssignmentsQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetPortAssignments") + } + + result := response.Result().(*ResponseSdaGetPortAssignments) + return result, response, err + +} + +//GetPortAssignmentCount Get port assignment count - 4587-0827-4f1b-a2d4 +/* Returns the count of port assignments that match the provided query parameters. + + +@param GetPortAssignmentCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-port-assignment-count-v1 +*/ +func (s *SdaService) GetPortAssignmentCount(GetPortAssignmentCountQueryParams *GetPortAssignmentCountQueryParams) (*ResponseSdaGetPortAssignmentCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/portAssignments/count" + + queryString, _ := query.Values(GetPortAssignmentCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetPortAssignmentCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetPortAssignmentCount(GetPortAssignmentCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetPortAssignmentCount") + } + + result := response.Result().(*ResponseSdaGetPortAssignmentCount) + return result, response, err + +} + +//GetPortChannels Get port channels - dea6-fbe3-4469-8d79 +/* Returns a list of port channels that match the provided query parameters. + + +@param GetPortChannelsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-port-channels-v1 +*/ +func (s *SdaService) GetPortChannels(GetPortChannelsQueryParams *GetPortChannelsQueryParams) (*ResponseSdaGetPortChannels, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/portChannels" + + queryString, _ := query.Values(GetPortChannelsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetPortChannels{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetPortChannels(GetPortChannelsQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetPortChannels") + } + + result := response.Result().(*ResponseSdaGetPortChannels) + return result, response, err + +} + +//GetPortChannelCount Get port channel count - 7ebb-88ff-4c2b-989c +/* Returns the count of port channels that match the provided query parameters. + + +@param GetPortChannelCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-port-channel-count-v1 +*/ +func (s *SdaService) GetPortChannelCount(GetPortChannelCountQueryParams *GetPortChannelCountQueryParams) (*ResponseSdaGetPortChannelCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/portChannels/count" + + queryString, _ := query.Values(GetPortChannelCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetPortChannelCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetPortChannelCount(GetPortChannelCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetPortChannelCount") + } + + result := response.Result().(*ResponseSdaGetPortChannelCount) + return result, response, err + +} + +//GetProvisionedDevices Get provisioned devices - 99b3-ba27-4fe9-9e6b +/* Returns the list of provisioned devices based on query parameters. + + +@param GetProvisionedDevicesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-provisioned-devices-v1 +*/ +func (s *SdaService) GetProvisionedDevices(GetProvisionedDevicesQueryParams *GetProvisionedDevicesQueryParams) (*ResponseSdaGetProvisionedDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/provisionDevices" + + queryString, _ := query.Values(GetProvisionedDevicesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetProvisionedDevices{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetProvisionedDevices(GetProvisionedDevicesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetProvisionedDevices") + } + + result := response.Result().(*ResponseSdaGetProvisionedDevices) + return result, response, err + +} + +//GetProvisionedDevicesCount Get Provisioned Devices count - e0b3-195e-4678-aeb4 +/* Returns the count of provisioned devices based on query parameters. + + +@param GetProvisionedDevicesCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-provisioned-devices-count-v1 +*/ +func (s *SdaService) GetProvisionedDevicesCount(GetProvisionedDevicesCountQueryParams *GetProvisionedDevicesCountQueryParams) (*ResponseSdaGetProvisionedDevicesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/provisionDevices/count" + + queryString, _ := query.Values(GetProvisionedDevicesCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetProvisionedDevicesCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetProvisionedDevicesCount(GetProvisionedDevicesCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetProvisionedDevicesCount") + } + + result := response.Result().(*ResponseSdaGetProvisionedDevicesCount) + return result, response, err + +} + +//GetTransitNetworks Get transit networks - e395-fae2-4f0a-b11e +/* Returns a list of transit networks that match the provided query parameters. + + +@param GetTransitNetworksQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-transit-networks-v1 +*/ +func (s *SdaService) GetTransitNetworks(GetTransitNetworksQueryParams *GetTransitNetworksQueryParams) (*ResponseSdaGetTransitNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/transitNetworks" + + queryString, _ := query.Values(GetTransitNetworksQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetTransitNetworks{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTransitNetworks(GetTransitNetworksQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetTransitNetworks") + } + + result := response.Result().(*ResponseSdaGetTransitNetworks) + return result, response, err + +} + +//GetTransitNetworksCount Get transit networks count - 9397-d838-446b-b716 +/* Returns the count of transit networks that match the provided query parameters. + + +@param GetTransitNetworksCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-transit-networks-count-v1 +*/ +func (s *SdaService) GetTransitNetworksCount(GetTransitNetworksCountQueryParams *GetTransitNetworksCountQueryParams) (*ResponseSdaGetTransitNetworksCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/transitNetworks/count" + + queryString, _ := query.Values(GetTransitNetworksCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetTransitNetworksCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTransitNetworksCount(GetTransitNetworksCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetTransitNetworksCount") + } + + result := response.Result().(*ResponseSdaGetTransitNetworksCount) + return result, response, err + +} + +//GetVirtualNetworkWithScalableGroups Get virtual network with scalable groups - ec8a-1ab5-4eba-bca7 +/* Get virtual network with scalable groups + + +@param GetVirtualNetworkWithScalableGroupsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-virtual-network-with-scalable-groups-v1 +*/ +func (s *SdaService) GetVirtualNetworkWithScalableGroups(GetVirtualNetworkWithScalableGroupsQueryParams *GetVirtualNetworkWithScalableGroupsQueryParams) (*ResponseSdaGetVirtualNetworkWithScalableGroups, *resty.Response, error) { + path := "/dna/intent/api/v1/virtual-network" + + queryString, _ := query.Values(GetVirtualNetworkWithScalableGroupsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaGetVirtualNetworkWithScalableGroups{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetVirtualNetworkWithScalableGroups(GetVirtualNetworkWithScalableGroupsQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetVirtualNetworkWithScalableGroups") + } + + result := response.Result().(*ResponseSdaGetVirtualNetworkWithScalableGroups) + return result, response, err + +} + +//AddDefaultAuthenticationTemplateInSdaFabric Add default authentication template in SDA Fabric - bca3-39d8-44c8-a3c0 +/* Add default authentication template in SDA Fabric + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-default-authentication-template-in-sda-fabric-v1 +*/ +func (s *SdaService) AddDefaultAuthenticationTemplateInSdaFabric(requestSdaAddDefaultAuthenticationTemplateInSDAFabric *RequestSdaAddDefaultAuthenticationTemplateInSdaFabric) (*ResponseSdaAddDefaultAuthenticationTemplateInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/authentication-profile" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddDefaultAuthenticationTemplateInSDAFabric). + SetResult(&ResponseSdaAddDefaultAuthenticationTemplateInSdaFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddDefaultAuthenticationTemplateInSdaFabric(requestSdaAddDefaultAuthenticationTemplateInSDAFabric) + } + + return nil, response, fmt.Errorf("error with operation AddDefaultAuthenticationTemplateInSdaFabric") + } + + result := response.Result().(*ResponseSdaAddDefaultAuthenticationTemplateInSdaFabric) + return result, response, err + +} + +//AddBorderDeviceInSdaFabric Add border device in SDA Fabric - bead-7b34-43b9-96a7 +/* Add border device in SDA Fabric + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-border-device-in-sda-fabric-v1 +*/ +func (s *SdaService) AddBorderDeviceInSdaFabric(requestSdaAddBorderDeviceInSDAFabric *RequestSdaAddBorderDeviceInSdaFabric) (*ResponseSdaAddBorderDeviceInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/border-device" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddBorderDeviceInSDAFabric). + SetResult(&ResponseSdaAddBorderDeviceInSdaFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddBorderDeviceInSdaFabric(requestSdaAddBorderDeviceInSDAFabric) + } + + return nil, response, fmt.Errorf("error with operation AddBorderDeviceInSdaFabric") + } + + result := response.Result().(*ResponseSdaAddBorderDeviceInSdaFabric) + return result, response, err + +} + +//AddControlPlaneDeviceInSdaFabric Add control plane device in SDA Fabric - dd85-c910-4248-9a3f +/* Add control plane device in SDA Fabric + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-control-plane-device-in-sda-fabric-v1 +*/ +func (s *SdaService) AddControlPlaneDeviceInSdaFabric(requestSdaAddControlPlaneDeviceInSDAFabric *RequestSdaAddControlPlaneDeviceInSdaFabric) (*ResponseSdaAddControlPlaneDeviceInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/control-plane-device" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddControlPlaneDeviceInSDAFabric). + SetResult(&ResponseSdaAddControlPlaneDeviceInSdaFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddControlPlaneDeviceInSdaFabric(requestSdaAddControlPlaneDeviceInSDAFabric) + } + + return nil, response, fmt.Errorf("error with operation AddControlPlaneDeviceInSdaFabric") + } + + result := response.Result().(*ResponseSdaAddControlPlaneDeviceInSdaFabric) + return result, response, err + +} + +//AddEdgeDeviceInSdaFabric Add edge device in SDA Fabric - 87a8-ba44-4ce9-bc59 +/* Add edge device in SDA Fabric + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-edge-device-in-sda-fabric-v1 +*/ +func (s *SdaService) AddEdgeDeviceInSdaFabric(requestSdaAddEdgeDeviceInSDAFabric *RequestSdaAddEdgeDeviceInSdaFabric) (*ResponseSdaAddEdgeDeviceInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/edge-device" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddEdgeDeviceInSDAFabric). + SetResult(&ResponseSdaAddEdgeDeviceInSdaFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddEdgeDeviceInSdaFabric(requestSdaAddEdgeDeviceInSDAFabric) + } + + return nil, response, fmt.Errorf("error with operation AddEdgeDeviceInSdaFabric") + } + + result := response.Result().(*ResponseSdaAddEdgeDeviceInSdaFabric) + return result, response, err + +} + +//AddSiteInSdaFabric Add Site in SDA Fabric - d2b4-d9d0-4a4b-884c +/* Add Site in SDA Fabric + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-site-in-sda-fabric-v1 +*/ +func (s *SdaService) AddSiteInSdaFabric(requestSdaAddSiteInSDAFabric *RequestSdaAddSiteInSdaFabric) (*ResponseSdaAddSiteInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/fabric-site" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddSiteInSDAFabric). + SetResult(&ResponseSdaAddSiteInSdaFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddSiteInSdaFabric(requestSdaAddSiteInSDAFabric) + } + + return nil, response, fmt.Errorf("error with operation AddSiteInSdaFabric") + } + + result := response.Result().(*ResponseSdaAddSiteInSdaFabric) + return result, response, err + +} + +//AddPortAssignmentForAccessPointInSdaFabric Add Port assignment for access point in SDA Fabric - c2a4-3ad2-4098-baa7 +/* Add Port assignment for access point in SDA Fabric + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-port-assignment-for-access-point-in-sda-fabric-v1 +*/ +func (s *SdaService) AddPortAssignmentForAccessPointInSdaFabric(requestSdaAddPortAssignmentForAccessPointInSDAFabric *RequestSdaAddPortAssignmentForAccessPointInSdaFabric) (*ResponseSdaAddPortAssignmentForAccessPointInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/hostonboarding/access-point" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddPortAssignmentForAccessPointInSDAFabric). + SetResult(&ResponseSdaAddPortAssignmentForAccessPointInSdaFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddPortAssignmentForAccessPointInSdaFabric(requestSdaAddPortAssignmentForAccessPointInSDAFabric) + } + + return nil, response, fmt.Errorf("error with operation AddPortAssignmentForAccessPointInSdaFabric") + } + + result := response.Result().(*ResponseSdaAddPortAssignmentForAccessPointInSdaFabric) + return result, response, err + +} + +//AddPortAssignmentForUserDeviceInSdaFabric Add Port assignment for user device in SDA Fabric - 9582-ab82-4ce8-b29d +/* Add Port assignment for user device in SDA Fabric. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-port-assignment-for-user-device-in-sda-fabric-v1 +*/ +func (s *SdaService) AddPortAssignmentForUserDeviceInSdaFabric(requestSdaAddPortAssignmentForUserDeviceInSDAFabric *RequestSdaAddPortAssignmentForUserDeviceInSdaFabric) (*ResponseSdaAddPortAssignmentForUserDeviceInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/hostonboarding/user-device" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddPortAssignmentForUserDeviceInSDAFabric). + SetResult(&ResponseSdaAddPortAssignmentForUserDeviceInSdaFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddPortAssignmentForUserDeviceInSdaFabric(requestSdaAddPortAssignmentForUserDeviceInSDAFabric) + } + + return nil, response, fmt.Errorf("error with operation AddPortAssignmentForUserDeviceInSdaFabric") + } + + result := response.Result().(*ResponseSdaAddPortAssignmentForUserDeviceInSdaFabric) + return result, response, err + +} + +//AddMulticastInSdaFabric Add multicast in SDA fabric - ff85-3826-472a-98fb +/* Add multicast in SDA fabric + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-multicast-in-sda-fabric-v1 +*/ +func (s *SdaService) AddMulticastInSdaFabric(requestSdaAddMulticastInSDAFabric *RequestSdaAddMulticastInSdaFabric) (*ResponseSdaAddMulticastInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/multicast" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddMulticastInSDAFabric). + SetResult(&ResponseSdaAddMulticastInSdaFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddMulticastInSdaFabric(requestSdaAddMulticastInSDAFabric) + } + + return nil, response, fmt.Errorf("error with operation AddMulticastInSdaFabric") + } + + result := response.Result().(*ResponseSdaAddMulticastInSdaFabric) + return result, response, err + +} + +//ProvisionWiredDevice Provision Wired Device - cf9a-5843-45fa-9399 +/* Provision Wired Device + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!provision-wired-device-v1 +*/ +func (s *SdaService) ProvisionWiredDevice(requestSdaProvisionWiredDevice *RequestSdaProvisionWiredDevice) (*ResponseSdaProvisionWiredDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/provision-device" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaProvisionWiredDevice). + SetResult(&ResponseSdaProvisionWiredDevice{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ProvisionWiredDevice(requestSdaProvisionWiredDevice) + } + + return nil, response, fmt.Errorf("error with operation ProvisionWiredDevice") + } + + result := response.Result().(*ResponseSdaProvisionWiredDevice) + return result, response, err + +} + +//AddTransitPeerNetwork Add Transit Peer Network - 6db9-292d-4f28-a26b +/* Add Transit Peer Network in SD-Access + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-transit-peer-network-v1 +*/ +func (s *SdaService) AddTransitPeerNetwork(requestSdaAddTransitPeerNetwork *RequestSdaAddTransitPeerNetwork) (*ResponseSdaAddTransitPeerNetwork, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/transit-peer-network" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddTransitPeerNetwork). + SetResult(&ResponseSdaAddTransitPeerNetwork{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddTransitPeerNetwork(requestSdaAddTransitPeerNetwork) + } + + return nil, response, fmt.Errorf("error with operation AddTransitPeerNetwork") + } + + result := response.Result().(*ResponseSdaAddTransitPeerNetwork) + return result, response, err + +} + +//AddVnInFabric Add VN in fabric - 518c-59cd-441a-a9fc +/* Add virtual network (VN) in SDA Fabric + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-vn-in-fabric-v1 +*/ +func (s *SdaService) AddVnInFabric(requestSdaAddVNInFabric *RequestSdaAddVnInFabric) (*ResponseSdaAddVnInFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/virtual-network" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddVNInFabric). + SetResult(&ResponseSdaAddVnInFabric{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddVnInFabric(requestSdaAddVNInFabric) + } + + return nil, response, fmt.Errorf("error with operation AddVnInFabric") + } + + result := response.Result().(*ResponseSdaAddVnInFabric) + return result, response, err + +} + +//AddIPPoolInSdaVirtualNetwork Add IP Pool in SDA Virtual Network - 2085-79ea-4ed9-8f4f +/* Add IP Pool in SDA Virtual Network + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-ip-pool-in-sda-virtual-network-v1 +*/ +func (s *SdaService) AddIPPoolInSdaVirtualNetwork(requestSdaAddIPPoolInSDAVirtualNetwork *RequestSdaAddIPPoolInSdaVirtualNetwork) (*ResponseSdaAddIPPoolInSdaVirtualNetwork, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/virtualnetwork/ippool" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddIPPoolInSDAVirtualNetwork). + SetResult(&ResponseSdaAddIPPoolInSdaVirtualNetwork{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddIPPoolInSdaVirtualNetwork(requestSdaAddIPPoolInSDAVirtualNetwork) + } + + return nil, response, fmt.Errorf("error with operation AddIpPoolInSdaVirtualNetwork") + } + + result := response.Result().(*ResponseSdaAddIPPoolInSdaVirtualNetwork) + return result, response, err + +} + +//AddAnycastGateways Add anycast gateways - a6fa-2ce6-46ac-7ac5 +/* Adds anycast gateways based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-anycast-gateways-v1 +*/ +func (s *SdaService) AddAnycastGateways(requestSdaAddAnycastGateways *RequestSdaAddAnycastGateways) (*ResponseSdaAddAnycastGateways, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/anycastGateways" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddAnycastGateways). + SetResult(&ResponseSdaAddAnycastGateways{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddAnycastGateways(requestSdaAddAnycastGateways) + } + + return nil, response, fmt.Errorf("error with operation AddAnycastGateways") + } + + result := response.Result().(*ResponseSdaAddAnycastGateways) + return result, response, err + +} + +//AddExtranetPolicy Add extranet policy - 1282-78e3-45e8-aae7 +/* Adds an extranet policy based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-extranet-policy-v1 +*/ +func (s *SdaService) AddExtranetPolicy(requestSdaAddExtranetPolicy *RequestSdaAddExtranetPolicy) (*ResponseSdaAddExtranetPolicy, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/extranetPolicies" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddExtranetPolicy). + SetResult(&ResponseSdaAddExtranetPolicy{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddExtranetPolicy(requestSdaAddExtranetPolicy) + } + + return nil, response, fmt.Errorf("error with operation AddExtranetPolicy") + } + + result := response.Result().(*ResponseSdaAddExtranetPolicy) + return result, response, err + +} + +//AddFabricDevices Add fabric devices - 698a-f8d2-4fd8-b091 +/* Adds fabric devices based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-fabric-devices-v1 +*/ +func (s *SdaService) AddFabricDevices(requestSdaAddFabricDevices *RequestSdaAddFabricDevices) (*ResponseSdaAddFabricDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddFabricDevices). + SetResult(&ResponseSdaAddFabricDevices{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddFabricDevices(requestSdaAddFabricDevices) + } + + return nil, response, fmt.Errorf("error with operation AddFabricDevices") + } + + result := response.Result().(*ResponseSdaAddFabricDevices) + return result, response, err + +} + +//AddFabricDevicesLayer2Handoffs Add fabric devices layer 2 handoffs - 60ae-1ba0-4ebb-9ae1 +/* Adds layer 2 handoffs in fabric devices based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-fabric-devices-layer2-handoffs-v1 +*/ +func (s *SdaService) AddFabricDevicesLayer2Handoffs(requestSdaAddFabricDevicesLayer2Handoffs *RequestSdaAddFabricDevicesLayer2Handoffs) (*ResponseSdaAddFabricDevicesLayer2Handoffs, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer2Handoffs" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddFabricDevicesLayer2Handoffs). + SetResult(&ResponseSdaAddFabricDevicesLayer2Handoffs{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddFabricDevicesLayer2Handoffs(requestSdaAddFabricDevicesLayer2Handoffs) + } + + return nil, response, fmt.Errorf("error with operation AddFabricDevicesLayer2Handoffs") + } + + result := response.Result().(*ResponseSdaAddFabricDevicesLayer2Handoffs) + return result, response, err + +} + +//AddFabricDevicesLayer3HandoffsWithIPTransit Add fabric devices layer 3 handoffs with ip transit - 248b-d8b2-4c69-b397 +/* Adds layer 3 handoffs with ip transit in fabric devices based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-fabric-devices-layer3-handoffs-with-ip-transit-v1 +*/ +func (s *SdaService) AddFabricDevicesLayer3HandoffsWithIPTransit(requestSdaAddFabricDevicesLayer3HandoffsWithIpTransit *RequestSdaAddFabricDevicesLayer3HandoffsWithIPTransit) (*ResponseSdaAddFabricDevicesLayer3HandoffsWithIPTransit, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddFabricDevicesLayer3HandoffsWithIpTransit). + SetResult(&ResponseSdaAddFabricDevicesLayer3HandoffsWithIPTransit{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddFabricDevicesLayer3HandoffsWithIPTransit(requestSdaAddFabricDevicesLayer3HandoffsWithIpTransit) + } + + return nil, response, fmt.Errorf("error with operation AddFabricDevicesLayer3HandoffsWithIpTransit") + } + + result := response.Result().(*ResponseSdaAddFabricDevicesLayer3HandoffsWithIPTransit) + return result, response, err + +} + +//AddFabricDevicesLayer3HandoffsWithSdaTransit Add fabric devices layer 3 handoffs with sda transit - 61a1-aa25-40fa-8312 +/* Adds layer 3 handoffs with sda transit in fabric devices based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-fabric-devices-layer3-handoffs-with-sda-transit-v1 +*/ +func (s *SdaService) AddFabricDevicesLayer3HandoffsWithSdaTransit(requestSdaAddFabricDevicesLayer3HandoffsWithSdaTransit *RequestSdaAddFabricDevicesLayer3HandoffsWithSdaTransit) (*ResponseSdaAddFabricDevicesLayer3HandoffsWithSdaTransit, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddFabricDevicesLayer3HandoffsWithSdaTransit). + SetResult(&ResponseSdaAddFabricDevicesLayer3HandoffsWithSdaTransit{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddFabricDevicesLayer3HandoffsWithSdaTransit(requestSdaAddFabricDevicesLayer3HandoffsWithSdaTransit) + } + + return nil, response, fmt.Errorf("error with operation AddFabricDevicesLayer3HandoffsWithSdaTransit") + } + + result := response.Result().(*ResponseSdaAddFabricDevicesLayer3HandoffsWithSdaTransit) + return result, response, err + +} + +//AddFabricSite Add fabric site - 83af-8a6c-4b58-8f99 +/* Adds a fabric site based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-fabric-site-v1 +*/ +func (s *SdaService) AddFabricSite(requestSdaAddFabricSite *RequestSdaAddFabricSite) (*ResponseSdaAddFabricSite, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricSites" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddFabricSite). + SetResult(&ResponseSdaAddFabricSite{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddFabricSite(requestSdaAddFabricSite) + } + + return nil, response, fmt.Errorf("error with operation AddFabricSite") + } + + result := response.Result().(*ResponseSdaAddFabricSite) + return result, response, err + +} + +//AddFabricZone Add fabric zone - 658c-083b-4cb9-92aa +/* Adds a fabric zone based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-fabric-zone-v1 +*/ +func (s *SdaService) AddFabricZone(requestSdaAddFabricZone *RequestSdaAddFabricZone) (*ResponseSdaAddFabricZone, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricZones" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddFabricZone). + SetResult(&ResponseSdaAddFabricZone{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddFabricZone(requestSdaAddFabricZone) + } + + return nil, response, fmt.Errorf("error with operation AddFabricZone") + } + + result := response.Result().(*ResponseSdaAddFabricZone) + return result, response, err + +} + +//AddLayer2VirtualNetworks Add layer 2 virtual networks - f8bd-49ed-4f5a-9aec +/* Adds layer 2 virtual networks based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-layer2-virtual-networks-v1 +*/ +func (s *SdaService) AddLayer2VirtualNetworks(requestSdaAddLayer2VirtualNetworks *RequestSdaAddLayer2VirtualNetworks) (*ResponseSdaAddLayer2VirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/layer2VirtualNetworks" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddLayer2VirtualNetworks). + SetResult(&ResponseSdaAddLayer2VirtualNetworks{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddLayer2VirtualNetworks(requestSdaAddLayer2VirtualNetworks) + } + + return nil, response, fmt.Errorf("error with operation AddLayer2VirtualNetworks") + } + + result := response.Result().(*ResponseSdaAddLayer2VirtualNetworks) + return result, response, err + +} + +//AddLayer3VirtualNetworks Add layer 3 virtual networks - aba8-d8b2-482a-8b53 +/* Adds layer 3 virtual networks based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-layer3-virtual-networks-v1 +*/ +func (s *SdaService) AddLayer3VirtualNetworks(requestSdaAddLayer3VirtualNetworks *RequestSdaAddLayer3VirtualNetworks) (*ResponseSdaAddLayer3VirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/layer3VirtualNetworks" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddLayer3VirtualNetworks). + SetResult(&ResponseSdaAddLayer3VirtualNetworks{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddLayer3VirtualNetworks(requestSdaAddLayer3VirtualNetworks) + } + + return nil, response, fmt.Errorf("error with operation AddLayer3VirtualNetworks") + } + + result := response.Result().(*ResponseSdaAddLayer3VirtualNetworks) + return result, response, err + +} + +//AddMulticastVirtualNetworks Add multicast virtual networks - 0284-eac5-4a3b-abfd +/* Adds multicast for virtual networks based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-multicast-virtual-networks-v1 +*/ +func (s *SdaService) AddMulticastVirtualNetworks(requestSdaAddMulticastVirtualNetworks *RequestSdaAddMulticastVirtualNetworks) (*ResponseSdaAddMulticastVirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/multicast/virtualNetworks" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddMulticastVirtualNetworks). + SetResult(&ResponseSdaAddMulticastVirtualNetworks{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddMulticastVirtualNetworks(requestSdaAddMulticastVirtualNetworks) + } + + return nil, response, fmt.Errorf("error with operation AddMulticastVirtualNetworks") + } + + result := response.Result().(*ResponseSdaAddMulticastVirtualNetworks) + return result, response, err + +} + +//AddPortAssignments Add port assignments - d8bb-0923-498a-9f63 +/* Adds port assignments based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-port-assignments-v1 +*/ +func (s *SdaService) AddPortAssignments(requestSdaAddPortAssignments *RequestSdaAddPortAssignments) (*ResponseSdaAddPortAssignments, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/portAssignments" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddPortAssignments). + SetResult(&ResponseSdaAddPortAssignments{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddPortAssignments(requestSdaAddPortAssignments) + } + + return nil, response, fmt.Errorf("error with operation AddPortAssignments") + } + + result := response.Result().(*ResponseSdaAddPortAssignments) + return result, response, err + +} + +//AddPortChannels Add port channels - 2ba0-7a63-43db-843c +/* Adds port channels based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-port-channels-v1 +*/ +func (s *SdaService) AddPortChannels(requestSdaAddPortChannels *RequestSdaAddPortChannels) (*ResponseSdaAddPortChannels, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/portChannels" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddPortChannels). + SetResult(&ResponseSdaAddPortChannels{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddPortChannels(requestSdaAddPortChannels) + } + + return nil, response, fmt.Errorf("error with operation AddPortChannels") + } + + result := response.Result().(*ResponseSdaAddPortChannels) + return result, response, err + +} + +//ProvisionDevices Provision devices - 9c83-f9d6-4bda-b655 +/* Provisions network devices to respective Sites based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!provision-devices-v1 +*/ +func (s *SdaService) ProvisionDevices(requestSdaProvisionDevices *RequestSdaProvisionDevices) (*ResponseSdaProvisionDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/provisionDevices" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaProvisionDevices). + SetResult(&ResponseSdaProvisionDevices{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ProvisionDevices(requestSdaProvisionDevices) + } + + return nil, response, fmt.Errorf("error with operation ProvisionDevices") + } + + result := response.Result().(*ResponseSdaProvisionDevices) + return result, response, err + +} + +//AddTransitNetworks Add transit networks - bd82-db95-41fb-83b9 +/* Adds transit networks based on user input. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-transit-networks-v1 +*/ +func (s *SdaService) AddTransitNetworks(requestSdaAddTransitNetworks *RequestSdaAddTransitNetworks) (*ResponseSdaAddTransitNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/transitNetworks" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddTransitNetworks). + SetResult(&ResponseSdaAddTransitNetworks{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddTransitNetworks(requestSdaAddTransitNetworks) + } + + return nil, response, fmt.Errorf("error with operation AddTransitNetworks") + } + + result := response.Result().(*ResponseSdaAddTransitNetworks) + return result, response, err + +} + +//AddVirtualNetworkWithScalableGroups Add virtual network with scalable groups - e3a8-5b19-406a-9f4e +/* Add virtual network with scalable groups at global level + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-virtual-network-with-scalable-groups-v1 +*/ +func (s *SdaService) AddVirtualNetworkWithScalableGroups(requestSdaAddVirtualNetworkWithScalableGroups *RequestSdaAddVirtualNetworkWithScalableGroups) (*ResponseSdaAddVirtualNetworkWithScalableGroups, *resty.Response, error) { + path := "/dna/intent/api/v1/virtual-network" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaAddVirtualNetworkWithScalableGroups). + SetResult(&ResponseSdaAddVirtualNetworkWithScalableGroups{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddVirtualNetworkWithScalableGroups(requestSdaAddVirtualNetworkWithScalableGroups) + } + + return nil, response, fmt.Errorf("error with operation AddVirtualNetworkWithScalableGroups") + } + + result := response.Result().(*ResponseSdaAddVirtualNetworkWithScalableGroups) + return result, response, err + +} + +//UpdateDefaultAuthenticationProfileInSdaFabric Update default authentication profile in SDA Fabric - 8984-ea77-44d9-8a54 +/* Update default authentication profile in SDA Fabric + + + */ +func (s *SdaService) UpdateDefaultAuthenticationProfileInSdaFabric(requestSdaUpdateDefaultAuthenticationProfileInSDAFabric *RequestSdaUpdateDefaultAuthenticationProfileInSdaFabric) (*ResponseSdaUpdateDefaultAuthenticationProfileInSdaFabric, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/authentication-profile" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateDefaultAuthenticationProfileInSDAFabric). + SetResult(&ResponseSdaUpdateDefaultAuthenticationProfileInSdaFabric{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateDefaultAuthenticationProfileInSdaFabric(requestSdaUpdateDefaultAuthenticationProfileInSDAFabric) + } + return nil, response, fmt.Errorf("error with operation UpdateDefaultAuthenticationProfileInSdaFabric") + } + + result := response.Result().(*ResponseSdaUpdateDefaultAuthenticationProfileInSdaFabric) + return result, response, err + +} + +//ReProvisionWiredDevice Re-Provision Wired Device - 4e95-c9a2-41ab-8889 +/* Re-Provision Wired Device + + + */ +func (s *SdaService) ReProvisionWiredDevice(requestSdaReProvisionWiredDevice *RequestSdaReProvisionWiredDevice) (*ResponseSdaReProvisionWiredDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/business/sda/provision-device" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaReProvisionWiredDevice). + SetResult(&ResponseSdaReProvisionWiredDevice{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReProvisionWiredDevice(requestSdaReProvisionWiredDevice) + } + return nil, response, fmt.Errorf("error with operation ReProvisionWiredDevice") + } + + result := response.Result().(*ResponseSdaReProvisionWiredDevice) + return result, response, err + +} + +//UpdateAnycastGateways Update anycast gateways - 0dde-2905-a7b5-4e8d +/* Updates anycast gateways based on user input. + + + */ +func (s *SdaService) UpdateAnycastGateways(requestSdaUpdateAnycastGateways *RequestSdaUpdateAnycastGateways) (*ResponseSdaUpdateAnycastGateways, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/anycastGateways" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateAnycastGateways). + SetResult(&ResponseSdaUpdateAnycastGateways{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateAnycastGateways(requestSdaUpdateAnycastGateways) + } + return nil, response, fmt.Errorf("error with operation UpdateAnycastGateways") + } + + result := response.Result().(*ResponseSdaUpdateAnycastGateways) + return result, response, err + +} + +//UpdateAuthenticationProfile Update authentication profile - 8296-3890-4978-bda1 +/* Updates an authentication profile based on user input. + + + */ +func (s *SdaService) UpdateAuthenticationProfile(requestSdaUpdateAuthenticationProfile *RequestSdaUpdateAuthenticationProfile) (*ResponseSdaUpdateAuthenticationProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/authenticationProfiles" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateAuthenticationProfile). + SetResult(&ResponseSdaUpdateAuthenticationProfile{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateAuthenticationProfile(requestSdaUpdateAuthenticationProfile) + } + return nil, response, fmt.Errorf("error with operation UpdateAuthenticationProfile") + } + + result := response.Result().(*ResponseSdaUpdateAuthenticationProfile) + return result, response, err + +} + +//UpdateExtranetPolicy Update extranet policy - 899d-9aab-4b0a-8d5a +/* Updates an extranet policy based on user input. + + + */ +func (s *SdaService) UpdateExtranetPolicy(requestSdaUpdateExtranetPolicy *RequestSdaUpdateExtranetPolicy) (*ResponseSdaUpdateExtranetPolicy, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/extranetPolicies" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateExtranetPolicy). + SetResult(&ResponseSdaUpdateExtranetPolicy{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateExtranetPolicy(requestSdaUpdateExtranetPolicy) + } + return nil, response, fmt.Errorf("error with operation UpdateExtranetPolicy") + } + + result := response.Result().(*ResponseSdaUpdateExtranetPolicy) + return result, response, err + +} + +//UpdateFabricDevices Update fabric devices - ceb9-2a9a-409b-8066 +/* Updates fabric devices based on user input. + + + */ +func (s *SdaService) UpdateFabricDevices(requestSdaUpdateFabricDevices *RequestSdaUpdateFabricDevices) (*ResponseSdaUpdateFabricDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateFabricDevices). + SetResult(&ResponseSdaUpdateFabricDevices{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateFabricDevices(requestSdaUpdateFabricDevices) + } + return nil, response, fmt.Errorf("error with operation UpdateFabricDevices") + } + + result := response.Result().(*ResponseSdaUpdateFabricDevices) + return result, response, err + +} + +//UpdateFabricDevicesLayer3HandoffsWithIPTransit Update fabric devices layer 3 handoffs with ip transit - ff8b-cba9-4829-8ca6 +/* Updates layer 3 handoffs with ip transit of fabric devices based on user input. + + + */ +func (s *SdaService) UpdateFabricDevicesLayer3HandoffsWithIPTransit(requestSdaUpdateFabricDevicesLayer3HandoffsWithIpTransit *RequestSdaUpdateFabricDevicesLayer3HandoffsWithIPTransit) (*ResponseSdaUpdateFabricDevicesLayer3HandoffsWithIPTransit, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateFabricDevicesLayer3HandoffsWithIpTransit). + SetResult(&ResponseSdaUpdateFabricDevicesLayer3HandoffsWithIPTransit{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateFabricDevicesLayer3HandoffsWithIPTransit(requestSdaUpdateFabricDevicesLayer3HandoffsWithIpTransit) + } + return nil, response, fmt.Errorf("error with operation UpdateFabricDevicesLayer3HandoffsWithIpTransit") + } + + result := response.Result().(*ResponseSdaUpdateFabricDevicesLayer3HandoffsWithIPTransit) + return result, response, err + +} + +//UpdateFabricDevicesLayer3HandoffsWithSdaTransit Update fabric devices layer 3 handoffs with sda transit - b6a1-3a87-435a-a5ed +/* Updates layer 3 handoffs with sda transit of fabric devices based on user input. + + + */ +func (s *SdaService) UpdateFabricDevicesLayer3HandoffsWithSdaTransit(requestSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit *RequestSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit) (*ResponseSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit). + SetResult(&ResponseSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateFabricDevicesLayer3HandoffsWithSdaTransit(requestSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit) + } + return nil, response, fmt.Errorf("error with operation UpdateFabricDevicesLayer3HandoffsWithSdaTransit") + } + + result := response.Result().(*ResponseSdaUpdateFabricDevicesLayer3HandoffsWithSdaTransit) + return result, response, err + +} + +//UpdateFabricSite Update fabric site - b683-b984-430b-8c74 +/* Updates a fabric site based on user input. + + + */ +func (s *SdaService) UpdateFabricSite(requestSdaUpdateFabricSite *RequestSdaUpdateFabricSite) (*ResponseSdaUpdateFabricSite, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricSites" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateFabricSite). + SetResult(&ResponseSdaUpdateFabricSite{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateFabricSite(requestSdaUpdateFabricSite) + } + return nil, response, fmt.Errorf("error with operation UpdateFabricSite") + } + + result := response.Result().(*ResponseSdaUpdateFabricSite) + return result, response, err + +} + +//UpdateFabricZone Update fabric zone - f39c-1a54-4c2a-a790 +/* Updates a fabric zone based on user input. + + + */ +func (s *SdaService) UpdateFabricZone(requestSdaUpdateFabricZone *RequestSdaUpdateFabricZone) (*ResponseSdaUpdateFabricZone, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/fabricZones" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateFabricZone). + SetResult(&ResponseSdaUpdateFabricZone{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateFabricZone(requestSdaUpdateFabricZone) + } + return nil, response, fmt.Errorf("error with operation UpdateFabricZone") + } + + result := response.Result().(*ResponseSdaUpdateFabricZone) + return result, response, err + +} + +//UpdateLayer2VirtualNetworks Update layer 2 virtual networks - 18ba-d85c-4dcb-bc31 +/* Updates layer 2 virtual networks based on user input. + + + */ +func (s *SdaService) UpdateLayer2VirtualNetworks(requestSdaUpdateLayer2VirtualNetworks *RequestSdaUpdateLayer2VirtualNetworks) (*ResponseSdaUpdateLayer2VirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/layer2VirtualNetworks" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateLayer2VirtualNetworks). + SetResult(&ResponseSdaUpdateLayer2VirtualNetworks{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateLayer2VirtualNetworks(requestSdaUpdateLayer2VirtualNetworks) + } + return nil, response, fmt.Errorf("error with operation UpdateLayer2VirtualNetworks") + } + + result := response.Result().(*ResponseSdaUpdateLayer2VirtualNetworks) + return result, response, err + +} + +//UpdateLayer3VirtualNetworks Update layer 3 virtual networks - c995-fbe5-465b-be45 +/* Updates layer 3 virtual networks based on user input. + + + */ +func (s *SdaService) UpdateLayer3VirtualNetworks(requestSdaUpdateLayer3VirtualNetworks *RequestSdaUpdateLayer3VirtualNetworks) (*ResponseSdaUpdateLayer3VirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/layer3VirtualNetworks" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateLayer3VirtualNetworks). + SetResult(&ResponseSdaUpdateLayer3VirtualNetworks{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateLayer3VirtualNetworks(requestSdaUpdateLayer3VirtualNetworks) + } + return nil, response, fmt.Errorf("error with operation UpdateLayer3VirtualNetworks") + } + + result := response.Result().(*ResponseSdaUpdateLayer3VirtualNetworks) + return result, response, err + +} + +//UpdateMulticast Update multicast - 9cb0-68b9-4e6b-8c0c +/* Updates a multicast configuration at a fabric level based on user input. + + + */ +func (s *SdaService) UpdateMulticast(requestSdaUpdateMulticast *RequestSdaUpdateMulticast) (*ResponseSdaUpdateMulticast, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/multicast" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateMulticast). + SetResult(&ResponseSdaUpdateMulticast{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateMulticast(requestSdaUpdateMulticast) + } + return nil, response, fmt.Errorf("error with operation UpdateMulticast") + } + + result := response.Result().(*ResponseSdaUpdateMulticast) + return result, response, err + +} + +//UpdateMulticastVirtualNetworks Update multicast virtual networks - 6c8a-cbbf-4a19-b48b +/* Updates multicast configurations for virtual networks based on user input. + + + */ +func (s *SdaService) UpdateMulticastVirtualNetworks(requestSdaUpdateMulticastVirtualNetworks *RequestSdaUpdateMulticastVirtualNetworks) (*ResponseSdaUpdateMulticastVirtualNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/multicast/virtualNetworks" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateMulticastVirtualNetworks). + SetResult(&ResponseSdaUpdateMulticastVirtualNetworks{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateMulticastVirtualNetworks(requestSdaUpdateMulticastVirtualNetworks) + } + return nil, response, fmt.Errorf("error with operation UpdateMulticastVirtualNetworks") + } + + result := response.Result().(*ResponseSdaUpdateMulticastVirtualNetworks) + return result, response, err + +} + +//UpdatePortAssignments Update port assignments - eab7-6a0e-469a-b21a +/* Updates port assignments based on user input. + + + */ +func (s *SdaService) UpdatePortAssignments(requestSdaUpdatePortAssignments *RequestSdaUpdatePortAssignments) (*ResponseSdaUpdatePortAssignments, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/portAssignments" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdatePortAssignments). + SetResult(&ResponseSdaUpdatePortAssignments{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdatePortAssignments(requestSdaUpdatePortAssignments) + } + return nil, response, fmt.Errorf("error with operation UpdatePortAssignments") + } + + result := response.Result().(*ResponseSdaUpdatePortAssignments) + return result, response, err + +} + +//UpdatePortChannels Update port channels - fc9d-7a51-472b-ba5e +/* Updates port channels based on user input. + + + */ +func (s *SdaService) UpdatePortChannels(requestSdaUpdatePortChannels *RequestSdaUpdatePortChannels) (*ResponseSdaUpdatePortChannels, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/portChannels" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdatePortChannels). + SetResult(&ResponseSdaUpdatePortChannels{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdatePortChannels(requestSdaUpdatePortChannels) + } + return nil, response, fmt.Errorf("error with operation UpdatePortChannels") + } + + result := response.Result().(*ResponseSdaUpdatePortChannels) + return result, response, err + +} + +//ReProvisionDevices Re-provision devices - 898a-c9a2-4ee8-8e7f +/* Re-provisions network devices to the site based on the user input. + + + */ +func (s *SdaService) ReProvisionDevices(requestSdaReProvisionDevices *RequestSdaReProvisionDevices) (*ResponseSdaReProvisionDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/provisionDevices" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaReProvisionDevices). + SetResult(&ResponseSdaReProvisionDevices{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReProvisionDevices(requestSdaReProvisionDevices) + } + return nil, response, fmt.Errorf("error with operation ReProvisionDevices") + } + + result := response.Result().(*ResponseSdaReProvisionDevices) + return result, response, err + +} + +//UpdateTransitNetworks Update transit networks - 6fa2-3824-49f8-a0d7 +/* Updates transit networks based on user input. + + + */ +func (s *SdaService) UpdateTransitNetworks(requestSdaUpdateTransitNetworks *RequestSdaUpdateTransitNetworks) (*ResponseSdaUpdateTransitNetworks, *resty.Response, error) { + path := "/dna/intent/api/v1/sda/transitNetworks" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSdaUpdateTransitNetworks). + SetResult(&ResponseSdaUpdateTransitNetworks{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateTransitNetworks(requestSdaUpdateTransitNetworks) + } + return nil, response, fmt.Errorf("error with operation UpdateTransitNetworks") + } + + result := response.Result().(*ResponseSdaUpdateTransitNetworks) + return result, response, err + +} + +//UpdateVirtualNetworkWithScalableGroups Update virtual network with scalable groups - c48b-2904-49bb-875f +/* Update virtual network with scalable groups + + + */ +func (s *SdaService) UpdateVirtualNetworkWithScalableGroups(requestSdaUpdateVirtualNetworkWithScalableGroups *RequestSdaUpdateVirtualNetworkWithScalableGroups) (*ResponseSdaUpdateVirtualNetworkWithScalableGroups, *resty.Response, error) { + path := "/dna/intent/api/v1/virtual-network" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). @@ -1969,7 +5586,767 @@ func (s *SdaService) UpdateVirtualNetworkWithScalableGroups(requestSdaUpdateVirt SetBody(requestSdaUpdateVirtualNetworkWithScalableGroups). SetResult(&ResponseSdaUpdateVirtualNetworkWithScalableGroups{}). SetError(&Error). - Put(path) + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateVirtualNetworkWithScalableGroups(requestSdaUpdateVirtualNetworkWithScalableGroups) + } + return nil, response, fmt.Errorf("error with operation UpdateVirtualNetworkWithScalableGroups") + } + + result := response.Result().(*ResponseSdaUpdateVirtualNetworkWithScalableGroups) + return result, response, err + +} + +//DeleteDefaultAuthenticationProfileFromSdaFabric Delete default authentication profile from SDA Fabric - 3ebc-da3e-4acb-afb7 +/* Delete default authentication profile in SDA Fabric + + +@param DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-default-authentication-profile-from-sda-fabric-v1 +*/ +func (s *SdaService) DeleteDefaultAuthenticationProfileFromSdaFabric(DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams *DeleteDefaultAuthenticationProfileFromSdaFabricQueryParams) (*ResponseSdaDeleteDefaultAuthenticationProfileFromSdaFabric, *resty.Response, error) { + //DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams *DeleteDefaultAuthenticationProfileFromSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/authentication-profile" + + queryString, _ := query.Values(DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteDefaultAuthenticationProfileFromSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteDefaultAuthenticationProfileFromSdaFabric(DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteDefaultAuthenticationProfileFromSdaFabric") + } + + result := response.Result().(*ResponseSdaDeleteDefaultAuthenticationProfileFromSdaFabric) + return result, response, err + +} + +//DeleteBorderDeviceFromSdaFabric Delete border device from SDA Fabric - cb81-b935-40ba-aab0 +/* Delete border device from SDA Fabric + + +@param DeleteBorderDeviceFromSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-border-device-from-sda-fabric-v1 +*/ +func (s *SdaService) DeleteBorderDeviceFromSdaFabric(DeleteBorderDeviceFromSDAFabricQueryParams *DeleteBorderDeviceFromSdaFabricQueryParams) (*ResponseSdaDeleteBorderDeviceFromSdaFabric, *resty.Response, error) { + //DeleteBorderDeviceFromSDAFabricQueryParams *DeleteBorderDeviceFromSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/border-device" + + queryString, _ := query.Values(DeleteBorderDeviceFromSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteBorderDeviceFromSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteBorderDeviceFromSdaFabric(DeleteBorderDeviceFromSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteBorderDeviceFromSdaFabric") + } + + result := response.Result().(*ResponseSdaDeleteBorderDeviceFromSdaFabric) + return result, response, err + +} + +//DeleteControlPlaneDeviceInSdaFabric Delete control plane device in SDA Fabric - f6bd-6bf6-4e68-90be +/* Delete control plane device in SDA Fabric + + +@param DeleteControlPlaneDeviceInSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-control-plane-device-in-sda-fabric-v1 +*/ +func (s *SdaService) DeleteControlPlaneDeviceInSdaFabric(DeleteControlPlaneDeviceInSDAFabricQueryParams *DeleteControlPlaneDeviceInSdaFabricQueryParams) (*ResponseSdaDeleteControlPlaneDeviceInSdaFabric, *resty.Response, error) { + //DeleteControlPlaneDeviceInSDAFabricQueryParams *DeleteControlPlaneDeviceInSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/control-plane-device" + + queryString, _ := query.Values(DeleteControlPlaneDeviceInSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteControlPlaneDeviceInSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteControlPlaneDeviceInSdaFabric(DeleteControlPlaneDeviceInSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteControlPlaneDeviceInSdaFabric") + } + + result := response.Result().(*ResponseSdaDeleteControlPlaneDeviceInSdaFabric) + return result, response, err + +} + +//DeleteEdgeDeviceFromSdaFabric Delete edge device from SDA Fabric - 1fb8-f9f2-4c99-8133 +/* Delete edge device from SDA Fabric. + + +@param DeleteEdgeDeviceFromSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-edge-device-from-sda-fabric-v1 +*/ +func (s *SdaService) DeleteEdgeDeviceFromSdaFabric(DeleteEdgeDeviceFromSDAFabricQueryParams *DeleteEdgeDeviceFromSdaFabricQueryParams) (*ResponseSdaDeleteEdgeDeviceFromSdaFabric, *resty.Response, error) { + //DeleteEdgeDeviceFromSDAFabricQueryParams *DeleteEdgeDeviceFromSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/edge-device" + + queryString, _ := query.Values(DeleteEdgeDeviceFromSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteEdgeDeviceFromSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteEdgeDeviceFromSdaFabric(DeleteEdgeDeviceFromSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteEdgeDeviceFromSdaFabric") + } + + result := response.Result().(*ResponseSdaDeleteEdgeDeviceFromSdaFabric) + return result, response, err + +} + +//DeleteSiteFromSdaFabric Delete Site from SDA Fabric - 5086-4acf-4ad8-b54d +/* Delete Site from SDA Fabric + + +@param DeleteSiteFromSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-site-from-sda-fabric-v1 +*/ +func (s *SdaService) DeleteSiteFromSdaFabric(DeleteSiteFromSDAFabricQueryParams *DeleteSiteFromSdaFabricQueryParams) (*ResponseSdaDeleteSiteFromSdaFabric, *resty.Response, error) { + //DeleteSiteFromSDAFabricQueryParams *DeleteSiteFromSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/fabric-site" + + queryString, _ := query.Values(DeleteSiteFromSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteSiteFromSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteSiteFromSdaFabric(DeleteSiteFromSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteSiteFromSdaFabric") + } + + result := response.Result().(*ResponseSdaDeleteSiteFromSdaFabric) + return result, response, err + +} + +//DeletePortAssignmentForAccessPointInSdaFabric Delete Port assignment for access point in SDA Fabric - 0787-4a4c-4c9a-abd9 +/* Delete Port assignment for access point in SDA Fabric + + +@param DeletePortAssignmentForAccessPointInSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-port-assignment-for-access-point-in-sda-fabric-v1 +*/ +func (s *SdaService) DeletePortAssignmentForAccessPointInSdaFabric(DeletePortAssignmentForAccessPointInSDAFabricQueryParams *DeletePortAssignmentForAccessPointInSdaFabricQueryParams) (*ResponseSdaDeletePortAssignmentForAccessPointInSdaFabric, *resty.Response, error) { + //DeletePortAssignmentForAccessPointInSDAFabricQueryParams *DeletePortAssignmentForAccessPointInSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/hostonboarding/access-point" + + queryString, _ := query.Values(DeletePortAssignmentForAccessPointInSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeletePortAssignmentForAccessPointInSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletePortAssignmentForAccessPointInSdaFabric(DeletePortAssignmentForAccessPointInSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeletePortAssignmentForAccessPointInSdaFabric") + } + + result := response.Result().(*ResponseSdaDeletePortAssignmentForAccessPointInSdaFabric) + return result, response, err + +} + +//DeletePortAssignmentForUserDeviceInSdaFabric Delete Port assignment for user device in SDA Fabric - cba5-b8b1-4edb-81f4 +/* Delete Port assignment for user device in SDA Fabric. + + +@param DeletePortAssignmentForUserDeviceInSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-port-assignment-for-user-device-in-sda-fabric-v1 +*/ +func (s *SdaService) DeletePortAssignmentForUserDeviceInSdaFabric(DeletePortAssignmentForUserDeviceInSDAFabricQueryParams *DeletePortAssignmentForUserDeviceInSdaFabricQueryParams) (*ResponseSdaDeletePortAssignmentForUserDeviceInSdaFabric, *resty.Response, error) { + //DeletePortAssignmentForUserDeviceInSDAFabricQueryParams *DeletePortAssignmentForUserDeviceInSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/hostonboarding/user-device" + + queryString, _ := query.Values(DeletePortAssignmentForUserDeviceInSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeletePortAssignmentForUserDeviceInSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletePortAssignmentForUserDeviceInSdaFabric(DeletePortAssignmentForUserDeviceInSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeletePortAssignmentForUserDeviceInSdaFabric") + } + + result := response.Result().(*ResponseSdaDeletePortAssignmentForUserDeviceInSdaFabric) + return result, response, err + +} + +//DeleteMulticastFromSdaFabric Delete multicast from SDA fabric - 2bb0-0be5-45cb-bc99 +/* Delete multicast from SDA fabric + + +@param DeleteMulticastFromSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-multicast-from-sda-fabric-v1 +*/ +func (s *SdaService) DeleteMulticastFromSdaFabric(DeleteMulticastFromSDAFabricQueryParams *DeleteMulticastFromSdaFabricQueryParams) (*ResponseSdaDeleteMulticastFromSdaFabric, *resty.Response, error) { + //DeleteMulticastFromSDAFabricQueryParams *DeleteMulticastFromSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/multicast" + + queryString, _ := query.Values(DeleteMulticastFromSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteMulticastFromSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteMulticastFromSdaFabric(DeleteMulticastFromSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteMulticastFromSdaFabric") + } + + result := response.Result().(*ResponseSdaDeleteMulticastFromSdaFabric) + return result, response, err + +} + +//DeleteProvisionedWiredDevice Delete provisioned Wired Device - e495-b94e-463b-ae04 +/* Delete provisioned Wired Device + + +@param DeleteProvisionedWiredDeviceQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-provisioned-wired-device-v1 +*/ +func (s *SdaService) DeleteProvisionedWiredDevice(DeleteProvisionedWiredDeviceQueryParams *DeleteProvisionedWiredDeviceQueryParams) (*ResponseSdaDeleteProvisionedWiredDevice, *resty.Response, error) { + //DeleteProvisionedWiredDeviceQueryParams *DeleteProvisionedWiredDeviceQueryParams + path := "/dna/intent/api/v1/business/sda/provision-device" + + queryString, _ := query.Values(DeleteProvisionedWiredDeviceQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteProvisionedWiredDevice{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteProvisionedWiredDevice(DeleteProvisionedWiredDeviceQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteProvisionedWiredDevice") + } + + result := response.Result().(*ResponseSdaDeleteProvisionedWiredDevice) + return result, response, err + +} + +//DeleteTransitPeerNetwork Delete Transit Peer Network - d0aa-fa69-4f4b-9d7b +/* Delete Transit Peer Network from SD-Access + + +@param DeleteTransitPeerNetworkQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-transit-peer-network-v1 +*/ +func (s *SdaService) DeleteTransitPeerNetwork(DeleteTransitPeerNetworkQueryParams *DeleteTransitPeerNetworkQueryParams) (*ResponseSdaDeleteTransitPeerNetwork, *resty.Response, error) { + //DeleteTransitPeerNetworkQueryParams *DeleteTransitPeerNetworkQueryParams + path := "/dna/intent/api/v1/business/sda/transit-peer-network" + + queryString, _ := query.Values(DeleteTransitPeerNetworkQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteTransitPeerNetwork{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteTransitPeerNetwork(DeleteTransitPeerNetworkQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteTransitPeerNetwork") + } + + result := response.Result().(*ResponseSdaDeleteTransitPeerNetwork) + return result, response, err + +} + +//DeleteVnFromSdaFabric Delete VN from SDA Fabric - c78c-9ad2-45bb-9657 +/* Delete virtual network (VN) from SDA Fabric + + +@param DeleteVNFromSDAFabricQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-vn-from-sda-fabric-v1 +*/ +func (s *SdaService) DeleteVnFromSdaFabric(DeleteVNFromSDAFabricQueryParams *DeleteVnFromSdaFabricQueryParams) (*ResponseSdaDeleteVnFromSdaFabric, *resty.Response, error) { + //DeleteVNFromSDAFabricQueryParams *DeleteVnFromSdaFabricQueryParams + path := "/dna/intent/api/v1/business/sda/virtual-network" + + queryString, _ := query.Values(DeleteVNFromSDAFabricQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteVnFromSdaFabric{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteVnFromSdaFabric(DeleteVNFromSDAFabricQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteVnFromSdaFabric") + } + + result := response.Result().(*ResponseSdaDeleteVnFromSdaFabric) + return result, response, err + +} + +//DeleteIPPoolFromSdaVirtualNetwork Delete IP Pool from SDA Virtual Network - 549e-4aff-42bb-b52a +/* Delete IP Pool from SDA Virtual Network + + +@param DeleteIPPoolFromSDAVirtualNetworkQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-ip-pool-from-sda-virtual-network-v1 +*/ +func (s *SdaService) DeleteIPPoolFromSdaVirtualNetwork(DeleteIPPoolFromSDAVirtualNetworkQueryParams *DeleteIPPoolFromSdaVirtualNetworkQueryParams) (*ResponseSdaDeleteIPPoolFromSdaVirtualNetwork, *resty.Response, error) { + //DeleteIPPoolFromSDAVirtualNetworkQueryParams *DeleteIPPoolFromSdaVirtualNetworkQueryParams + path := "/dna/intent/api/v1/business/sda/virtualnetwork/ippool" + + queryString, _ := query.Values(DeleteIPPoolFromSDAVirtualNetworkQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteIPPoolFromSdaVirtualNetwork{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteIPPoolFromSdaVirtualNetwork(DeleteIPPoolFromSDAVirtualNetworkQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteIpPoolFromSdaVirtualNetwork") + } + + result := response.Result().(*ResponseSdaDeleteIPPoolFromSdaVirtualNetwork) + return result, response, err + +} + +//DeleteAnycastGatewayByID Delete anycast gateway by id - 4bfa-d25a-ce07-99f3 +/* Deletes an anycast gateway based on id. + + +@param id id path parameter. ID of the anycast gateway. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-anycast-gateway-by-id-v1 +*/ +func (s *SdaService) DeleteAnycastGatewayByID(id string) (*ResponseSdaDeleteAnycastGatewayByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/anycastGateways/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaDeleteAnycastGatewayByID{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteAnycastGatewayByID(id) + } + return nil, response, fmt.Errorf("error with operation DeleteAnycastGatewayById") + } + + result := response.Result().(*ResponseSdaDeleteAnycastGatewayByID) + return result, response, err + +} + +//DeleteExtranetPolicies Delete extranet policies - 908a-8bbf-4aeb-9382 +/* Deletes extranet policies based on user input. + + +@param DeleteExtranetPoliciesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-extranet-policies-v1 +*/ +func (s *SdaService) DeleteExtranetPolicies(DeleteExtranetPoliciesQueryParams *DeleteExtranetPoliciesQueryParams) (*ResponseSdaDeleteExtranetPolicies, *resty.Response, error) { + //DeleteExtranetPoliciesQueryParams *DeleteExtranetPoliciesQueryParams + path := "/dna/intent/api/v1/sda/extranetPolicies" + + queryString, _ := query.Values(DeleteExtranetPoliciesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteExtranetPolicies{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteExtranetPolicies(DeleteExtranetPoliciesQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteExtranetPolicies") + } + + result := response.Result().(*ResponseSdaDeleteExtranetPolicies) + return result, response, err + +} + +//DeleteExtranetPolicyByID Delete extranet policy by id - 45a7-eb82-446a-b812 +/* Deletes an extranet policy based on id. + + +@param id id path parameter. ID of the extranet policy. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-extranet-policy-by-id-v1 +*/ +func (s *SdaService) DeleteExtranetPolicyByID(id string) (*ResponseSdaDeleteExtranetPolicyByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/extranetPolicies/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaDeleteExtranetPolicyByID{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteExtranetPolicyByID(id) + } + return nil, response, fmt.Errorf("error with operation DeleteExtranetPolicyById") + } + + result := response.Result().(*ResponseSdaDeleteExtranetPolicyByID) + return result, response, err + +} + +//DeleteFabricDevices Delete fabric devices - 8db3-88ed-4018-810a +/* Deletes fabric devices based on user input. + + +@param DeleteFabricDevicesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-devices-v1 +*/ +func (s *SdaService) DeleteFabricDevices(DeleteFabricDevicesQueryParams *DeleteFabricDevicesQueryParams) (*ResponseSdaDeleteFabricDevices, *resty.Response, error) { + //DeleteFabricDevicesQueryParams *DeleteFabricDevicesQueryParams + path := "/dna/intent/api/v1/sda/fabricDevices" + + queryString, _ := query.Values(DeleteFabricDevicesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteFabricDevices{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteFabricDevices(DeleteFabricDevicesQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteFabricDevices") + } + + result := response.Result().(*ResponseSdaDeleteFabricDevices) + return result, response, err + +} + +//DeleteFabricDeviceLayer2Handoffs Delete fabric device layer 2 handoffs - aea7-8b07-48a9-955d +/* Deletes layer 2 handoffs of a fabric device based on user input. + + +@param DeleteFabricDeviceLayer2HandoffsQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-device-layer2-handoffs-v1 +*/ +func (s *SdaService) DeleteFabricDeviceLayer2Handoffs(DeleteFabricDeviceLayer2HandoffsQueryParams *DeleteFabricDeviceLayer2HandoffsQueryParams) (*ResponseSdaDeleteFabricDeviceLayer2Handoffs, *resty.Response, error) { + //DeleteFabricDeviceLayer2HandoffsQueryParams *DeleteFabricDeviceLayer2HandoffsQueryParams + path := "/dna/intent/api/v1/sda/fabricDevices/layer2Handoffs" + + queryString, _ := query.Values(DeleteFabricDeviceLayer2HandoffsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteFabricDeviceLayer2Handoffs{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteFabricDeviceLayer2Handoffs(DeleteFabricDeviceLayer2HandoffsQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteFabricDeviceLayer2Handoffs") + } + + result := response.Result().(*ResponseSdaDeleteFabricDeviceLayer2Handoffs) + return result, response, err + +} + +//DeleteFabricDeviceLayer2HandoffByID Delete fabric device layer 2 handoff by id - 61ab-38c3-4948-b928 +/* Deletes a layer 2 handoff of a fabric device based on id. + + +@param id id path parameter. ID of the layer 2 handoff of a fabric device. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-device-layer2-handoff-by-id-v1 +*/ +func (s *SdaService) DeleteFabricDeviceLayer2HandoffByID(id string) (*ResponseSdaDeleteFabricDeviceLayer2HandoffByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/fabricDevices/layer2Handoffs/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaDeleteFabricDeviceLayer2HandoffByID{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteFabricDeviceLayer2HandoffByID(id) + } + return nil, response, fmt.Errorf("error with operation DeleteFabricDeviceLayer2HandoffById") + } + + result := response.Result().(*ResponseSdaDeleteFabricDeviceLayer2HandoffByID) + return result, response, err + +} + +//DeleteFabricDeviceLayer3HandoffsWithIPTransit Delete fabric device layer 3 handoffs with ip transit - 8a87-9bad-45db-8f8f +/* Deletes layer 3 handoffs with ip transit of a fabric device based on user input. + + +@param DeleteFabricDeviceLayer3HandoffsWithIpTransitQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-device-layer3-handoffs-with-ip-transit-v1 +*/ +func (s *SdaService) DeleteFabricDeviceLayer3HandoffsWithIPTransit(DeleteFabricDeviceLayer3HandoffsWithIpTransitQueryParams *DeleteFabricDeviceLayer3HandoffsWithIPTransitQueryParams) (*ResponseSdaDeleteFabricDeviceLayer3HandoffsWithIPTransit, *resty.Response, error) { + //DeleteFabricDeviceLayer3HandoffsWithIpTransitQueryParams *DeleteFabricDeviceLayer3HandoffsWithIPTransitQueryParams + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits" + + queryString, _ := query.Values(DeleteFabricDeviceLayer3HandoffsWithIpTransitQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteFabricDeviceLayer3HandoffsWithIPTransit{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteFabricDeviceLayer3HandoffsWithIPTransit(DeleteFabricDeviceLayer3HandoffsWithIpTransitQueryParams) + } + return nil, response, fmt.Errorf("error with operation DeleteFabricDeviceLayer3HandoffsWithIpTransit") + } + + result := response.Result().(*ResponseSdaDeleteFabricDeviceLayer3HandoffsWithIPTransit) + return result, response, err + +} + +//DeleteFabricDeviceLayer3HandoffWithIPTransitByID Delete fabric device layer 3 handoff with ip transit by id - d396-7b01-4d1b-845b +/* Deletes a layer 3 handoff with ip transit of a fabric device by id. + + +@param id id path parameter. ID of the layer 3 handoff with ip transit of a fabric device. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-device-layer3-handoff-with-ip-transit-by-id-v1 +*/ +func (s *SdaService) DeleteFabricDeviceLayer3HandoffWithIPTransitByID(id string) (*ResponseSdaDeleteFabricDeviceLayer3HandoffWithIPTransitByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaDeleteFabricDeviceLayer3HandoffWithIPTransitByID{}). + SetError(&Error). + Delete(path) if err != nil { return nil, nil, err @@ -1978,34 +6355,34 @@ func (s *SdaService) UpdateVirtualNetworkWithScalableGroups(requestSdaUpdateVirt if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.UpdateVirtualNetworkWithScalableGroups(requestSdaUpdateVirtualNetworkWithScalableGroups) + return s.DeleteFabricDeviceLayer3HandoffWithIPTransitByID(id) } - return nil, response, fmt.Errorf("error with operation UpdateVirtualNetworkWithScalableGroups") + return nil, response, fmt.Errorf("error with operation DeleteFabricDeviceLayer3HandoffWithIpTransitById") } - result := response.Result().(*ResponseSdaUpdateVirtualNetworkWithScalableGroups) + result := response.Result().(*ResponseSdaDeleteFabricDeviceLayer3HandoffWithIPTransitByID) return result, response, err } -//DeleteDefaultAuthenticationProfileFromSdaFabric Delete default authentication profile from SDA Fabric - 3ebc-da3e-4acb-afb7 -/* Delete default authentication profile in SDA Fabric +//DeleteFabricDeviceLayer3HandoffsWithSdaTransit Delete fabric device layer 3 handoffs with sda transit - 8d8c-b8b6-4e9a-a432 +/* Deletes layer 3 handoffs with sda transit of a fabric device based on user input. -@param DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams Filtering parameter +@param DeleteFabricDeviceLayer3HandoffsWithSdaTransitQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-default-authentication-profile-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-device-layer3-handoffs-with-sda-transit-v1 */ -func (s *SdaService) DeleteDefaultAuthenticationProfileFromSdaFabric(DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams *DeleteDefaultAuthenticationProfileFromSdaFabricQueryParams) (*ResponseSdaDeleteDefaultAuthenticationProfileFromSdaFabric, *resty.Response, error) { - //DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams *DeleteDefaultAuthenticationProfileFromSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/authentication-profile" +func (s *SdaService) DeleteFabricDeviceLayer3HandoffsWithSdaTransit(DeleteFabricDeviceLayer3HandoffsWithSdaTransitQueryParams *DeleteFabricDeviceLayer3HandoffsWithSdaTransitQueryParams) (*ResponseSdaDeleteFabricDeviceLayer3HandoffsWithSdaTransit, *resty.Response, error) { + //DeleteFabricDeviceLayer3HandoffsWithSdaTransitQueryParams *DeleteFabricDeviceLayer3HandoffsWithSdaTransitQueryParams + path := "/dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits" - queryString, _ := query.Values(DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams) + queryString, _ := query.Values(DeleteFabricDeviceLayer3HandoffsWithSdaTransitQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteDefaultAuthenticationProfileFromSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteFabricDeviceLayer3HandoffsWithSdaTransit{}). SetError(&Error). Delete(path) @@ -2016,34 +6393,35 @@ func (s *SdaService) DeleteDefaultAuthenticationProfileFromSdaFabric(DeleteDefau if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteDefaultAuthenticationProfileFromSdaFabric(DeleteDefaultAuthenticationProfileFromSDAFabricQueryParams) + return s.DeleteFabricDeviceLayer3HandoffsWithSdaTransit( + DeleteFabricDeviceLayer3HandoffsWithSdaTransitQueryParams) } - return nil, response, fmt.Errorf("error with operation DeleteDefaultAuthenticationProfileFromSdaFabric") + return nil, response, fmt.Errorf("error with operation DeleteFabricDeviceLayer3HandoffsWithSdaTransit") } - result := response.Result().(*ResponseSdaDeleteDefaultAuthenticationProfileFromSdaFabric) + result := response.Result().(*ResponseSdaDeleteFabricDeviceLayer3HandoffsWithSdaTransit) return result, response, err } -//DeleteBorderDeviceFromSdaFabric Delete border device from SDA Fabric - cb81-b935-40ba-aab0 -/* Delete border device from SDA Fabric +//DeleteFabricDeviceByID Delete fabric device by id - 7593-7bef-4a68-b011 +/* Deletes a fabric device based on id. -@param DeleteBorderDeviceFromSDAFabricQueryParams Filtering parameter +@param id id path parameter. ID of the fabric device. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-border-device-from-sda-fabric -*/ -func (s *SdaService) DeleteBorderDeviceFromSdaFabric(DeleteBorderDeviceFromSDAFabricQueryParams *DeleteBorderDeviceFromSdaFabricQueryParams) (*ResponseSdaDeleteBorderDeviceFromSdaFabric, *resty.Response, error) { - //DeleteBorderDeviceFromSDAFabricQueryParams *DeleteBorderDeviceFromSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/border-device" - queryString, _ := query.Values(DeleteBorderDeviceFromSDAFabricQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-device-by-id-v1 +*/ +func (s *SdaService) DeleteFabricDeviceByID(id string) (*ResponseSdaDeleteFabricDeviceByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/fabricDevices/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteBorderDeviceFromSdaFabric{}). + SetResult(&ResponseSdaDeleteFabricDeviceByID{}). SetError(&Error). Delete(path) @@ -2054,34 +6432,72 @@ func (s *SdaService) DeleteBorderDeviceFromSdaFabric(DeleteBorderDeviceFromSDAFa if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteBorderDeviceFromSdaFabric(DeleteBorderDeviceFromSDAFabricQueryParams) + return s.DeleteFabricDeviceByID(id) } - return nil, response, fmt.Errorf("error with operation DeleteBorderDeviceFromSdaFabric") + return nil, response, fmt.Errorf("error with operation DeleteFabricDeviceById") } - result := response.Result().(*ResponseSdaDeleteBorderDeviceFromSdaFabric) + result := response.Result().(*ResponseSdaDeleteFabricDeviceByID) return result, response, err } -//DeleteControlPlaneDeviceInSdaFabric Delete control plane device in SDA Fabric - f6bd-6bf6-4e68-90be -/* Delete control plane device in SDA Fabric +//DeleteFabricSiteByID Delete fabric site by id - aea4-2a3c-4799-8f73 +/* Deletes a fabric site based on id. -@param DeleteControlPlaneDeviceInSDAFabricQueryParams Filtering parameter +@param id id path parameter. ID of the fabric site. + -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-control-plane-device-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-site-by-id-v1 */ -func (s *SdaService) DeleteControlPlaneDeviceInSdaFabric(DeleteControlPlaneDeviceInSDAFabricQueryParams *DeleteControlPlaneDeviceInSdaFabricQueryParams) (*ResponseSdaDeleteControlPlaneDeviceInSdaFabric, *resty.Response, error) { - //DeleteControlPlaneDeviceInSDAFabricQueryParams *DeleteControlPlaneDeviceInSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/control-plane-device" +func (s *SdaService) DeleteFabricSiteByID(id string) (*ResponseSdaDeleteFabricSiteByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/fabricSites/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - queryString, _ := query.Values(DeleteControlPlaneDeviceInSDAFabricQueryParams) + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaDeleteFabricSiteByID{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteFabricSiteByID(id) + } + return nil, response, fmt.Errorf("error with operation DeleteFabricSiteById") + } + + result := response.Result().(*ResponseSdaDeleteFabricSiteByID) + return result, response, err + +} + +//DeleteFabricZoneByID Delete fabric zone by id - 78be-d947-4eb8-8fc3 +/* Deletes a fabric zone based on id. + + +@param id id path parameter. ID of the fabric zone. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-fabric-zone-by-id-v1 +*/ +func (s *SdaService) DeleteFabricZoneByID(id string) (*ResponseSdaDeleteFabricZoneByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/fabricZones/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteControlPlaneDeviceInSdaFabric{}). + SetResult(&ResponseSdaDeleteFabricZoneByID{}). SetError(&Error). Delete(path) @@ -2092,34 +6508,34 @@ func (s *SdaService) DeleteControlPlaneDeviceInSdaFabric(DeleteControlPlaneDevic if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteControlPlaneDeviceInSdaFabric(DeleteControlPlaneDeviceInSDAFabricQueryParams) + return s.DeleteFabricZoneByID(id) } - return nil, response, fmt.Errorf("error with operation DeleteControlPlaneDeviceInSdaFabric") + return nil, response, fmt.Errorf("error with operation DeleteFabricZoneById") } - result := response.Result().(*ResponseSdaDeleteControlPlaneDeviceInSdaFabric) + result := response.Result().(*ResponseSdaDeleteFabricZoneByID) return result, response, err } -//DeleteEdgeDeviceFromSdaFabric Delete edge device from SDA Fabric - 1fb8-f9f2-4c99-8133 -/* Delete edge device from SDA Fabric. +//DeleteLayer2VirtualNetworks Delete layer 2 virtual networks - d9a4-09cb-4b08-be45 +/* Deletes layer 2 virtual networks based on user input. -@param DeleteEdgeDeviceFromSDAFabricQueryParams Filtering parameter +@param DeleteLayer2VirtualNetworksQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-edge-device-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-layer2-virtual-networks-v1 */ -func (s *SdaService) DeleteEdgeDeviceFromSdaFabric(DeleteEdgeDeviceFromSDAFabricQueryParams *DeleteEdgeDeviceFromSdaFabricQueryParams) (*ResponseSdaDeleteEdgeDeviceFromSdaFabric, *resty.Response, error) { - //DeleteEdgeDeviceFromSDAFabricQueryParams *DeleteEdgeDeviceFromSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/edge-device" +func (s *SdaService) DeleteLayer2VirtualNetworks(DeleteLayer2VirtualNetworksQueryParams *DeleteLayer2VirtualNetworksQueryParams) (*ResponseSdaDeleteLayer2VirtualNetworks, *resty.Response, error) { + //DeleteLayer2VirtualNetworksQueryParams *DeleteLayer2VirtualNetworksQueryParams + path := "/dna/intent/api/v1/sda/layer2VirtualNetworks" - queryString, _ := query.Values(DeleteEdgeDeviceFromSDAFabricQueryParams) + queryString, _ := query.Values(DeleteLayer2VirtualNetworksQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteEdgeDeviceFromSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteLayer2VirtualNetworks{}). SetError(&Error). Delete(path) @@ -2130,34 +6546,34 @@ func (s *SdaService) DeleteEdgeDeviceFromSdaFabric(DeleteEdgeDeviceFromSDAFabric if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteEdgeDeviceFromSdaFabric(DeleteEdgeDeviceFromSDAFabricQueryParams) + return s.DeleteLayer2VirtualNetworks(DeleteLayer2VirtualNetworksQueryParams) } - return nil, response, fmt.Errorf("error with operation DeleteEdgeDeviceFromSdaFabric") + return nil, response, fmt.Errorf("error with operation DeleteLayer2VirtualNetworks") } - result := response.Result().(*ResponseSdaDeleteEdgeDeviceFromSdaFabric) + result := response.Result().(*ResponseSdaDeleteLayer2VirtualNetworks) return result, response, err } -//DeleteSiteFromSdaFabric Delete Site from SDA Fabric - 5086-4acf-4ad8-b54d -/* Delete Site from SDA Fabric +//DeleteLayer2VirtualNetworkByID Delete layer 2 virtual network by id - b081-c850-4ab9-86f6 +/* Deletes a layer 2 virtual network based on id. -@param DeleteSiteFromSDAFabricQueryParams Filtering parameter +@param id id path parameter. ID of the layer 2 virtual network. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-site-from-sda-fabric -*/ -func (s *SdaService) DeleteSiteFromSdaFabric(DeleteSiteFromSDAFabricQueryParams *DeleteSiteFromSdaFabricQueryParams) (*ResponseSdaDeleteSiteFromSdaFabric, *resty.Response, error) { - //DeleteSiteFromSDAFabricQueryParams *DeleteSiteFromSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/fabric-site" - queryString, _ := query.Values(DeleteSiteFromSDAFabricQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-layer2-virtual-network-by-id-v1 +*/ +func (s *SdaService) DeleteLayer2VirtualNetworkByID(id string) (*ResponseSdaDeleteLayer2VirtualNetworkByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/layer2VirtualNetworks/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteSiteFromSdaFabric{}). + SetResult(&ResponseSdaDeleteLayer2VirtualNetworkByID{}). SetError(&Error). Delete(path) @@ -2168,34 +6584,34 @@ func (s *SdaService) DeleteSiteFromSdaFabric(DeleteSiteFromSDAFabricQueryParams if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteSiteFromSdaFabric(DeleteSiteFromSDAFabricQueryParams) + return s.DeleteLayer2VirtualNetworkByID(id) } - return nil, response, fmt.Errorf("error with operation DeleteSiteFromSdaFabric") + return nil, response, fmt.Errorf("error with operation DeleteLayer2VirtualNetworkById") } - result := response.Result().(*ResponseSdaDeleteSiteFromSdaFabric) + result := response.Result().(*ResponseSdaDeleteLayer2VirtualNetworkByID) return result, response, err } -//DeletePortAssignmentForAccessPointInSdaFabric Delete Port assignment for access point in SDA Fabric - 0787-4a4c-4c9a-abd9 -/* Delete Port assignment for access point in SDA Fabric +//DeleteLayer3VirtualNetworks Delete layer 3 virtual networks - 49bf-69ec-4a8a-a473 +/* Deletes layer 3 virtual networks based on user input. -@param DeletePortAssignmentForAccessPointInSDAFabricQueryParams Filtering parameter +@param DeleteLayer3VirtualNetworksQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-port-assignment-for-access-point-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-layer3-virtual-networks-v1 */ -func (s *SdaService) DeletePortAssignmentForAccessPointInSdaFabric(DeletePortAssignmentForAccessPointInSDAFabricQueryParams *DeletePortAssignmentForAccessPointInSdaFabricQueryParams) (*ResponseSdaDeletePortAssignmentForAccessPointInSdaFabric, *resty.Response, error) { - //DeletePortAssignmentForAccessPointInSDAFabricQueryParams *DeletePortAssignmentForAccessPointInSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/hostonboarding/access-point" +func (s *SdaService) DeleteLayer3VirtualNetworks(DeleteLayer3VirtualNetworksQueryParams *DeleteLayer3VirtualNetworksQueryParams) (*ResponseSdaDeleteLayer3VirtualNetworks, *resty.Response, error) { + //DeleteLayer3VirtualNetworksQueryParams *DeleteLayer3VirtualNetworksQueryParams + path := "/dna/intent/api/v1/sda/layer3VirtualNetworks" - queryString, _ := query.Values(DeletePortAssignmentForAccessPointInSDAFabricQueryParams) + queryString, _ := query.Values(DeleteLayer3VirtualNetworksQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeletePortAssignmentForAccessPointInSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteLayer3VirtualNetworks{}). SetError(&Error). Delete(path) @@ -2206,34 +6622,72 @@ func (s *SdaService) DeletePortAssignmentForAccessPointInSdaFabric(DeletePortAss if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeletePortAssignmentForAccessPointInSdaFabric(DeletePortAssignmentForAccessPointInSDAFabricQueryParams) + return s.DeleteLayer3VirtualNetworks(DeleteLayer3VirtualNetworksQueryParams) } - return nil, response, fmt.Errorf("error with operation DeletePortAssignmentForAccessPointInSdaFabric") + return nil, response, fmt.Errorf("error with operation DeleteLayer3VirtualNetworks") } - result := response.Result().(*ResponseSdaDeletePortAssignmentForAccessPointInSdaFabric) + result := response.Result().(*ResponseSdaDeleteLayer3VirtualNetworks) return result, response, err } -//DeletePortAssignmentForUserDeviceInSdaFabric Delete Port assignment for user device in SDA Fabric - cba5-b8b1-4edb-81f4 -/* Delete Port assignment for user device in SDA Fabric. +//DeleteLayer3VirtualNetworkByID Delete layer 3 virtual network by id - 4cb3-2a8c-4e38-b2ea +/* Deletes a layer 3 virtual network based on id. -@param DeletePortAssignmentForUserDeviceInSDAFabricQueryParams Filtering parameter +@param id id path parameter. ID of the layer 3 virtual network. + -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-port-assignment-for-user-device-in-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-layer3-virtual-network-by-id-v1 */ -func (s *SdaService) DeletePortAssignmentForUserDeviceInSdaFabric(DeletePortAssignmentForUserDeviceInSDAFabricQueryParams *DeletePortAssignmentForUserDeviceInSdaFabricQueryParams) (*ResponseSdaDeletePortAssignmentForUserDeviceInSdaFabric, *resty.Response, error) { - //DeletePortAssignmentForUserDeviceInSDAFabricQueryParams *DeletePortAssignmentForUserDeviceInSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/hostonboarding/user-device" +func (s *SdaService) DeleteLayer3VirtualNetworkByID(id string) (*ResponseSdaDeleteLayer3VirtualNetworkByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/layer3VirtualNetworks/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - queryString, _ := query.Values(DeletePortAssignmentForUserDeviceInSDAFabricQueryParams) + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaDeleteLayer3VirtualNetworkByID{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteLayer3VirtualNetworkByID(id) + } + return nil, response, fmt.Errorf("error with operation DeleteLayer3VirtualNetworkById") + } + + result := response.Result().(*ResponseSdaDeleteLayer3VirtualNetworkByID) + return result, response, err + +} + +//DeleteMulticastVirtualNetworkByID Delete multicast virtual network by id - 0b91-0b73-4649-a1d2 +/* Deletes a multicast configuration for a virtual network based on id. + + +@param id id path parameter. ID of the multicast configuration. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-multicast-virtual-network-by-id-v1 +*/ +func (s *SdaService) DeleteMulticastVirtualNetworkByID(id string) (*ResponseSdaDeleteMulticastVirtualNetworkByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/multicast/virtualNetworks/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeletePortAssignmentForUserDeviceInSdaFabric{}). + SetResult(&ResponseSdaDeleteMulticastVirtualNetworkByID{}). SetError(&Error). Delete(path) @@ -2244,34 +6698,34 @@ func (s *SdaService) DeletePortAssignmentForUserDeviceInSdaFabric(DeletePortAssi if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeletePortAssignmentForUserDeviceInSdaFabric(DeletePortAssignmentForUserDeviceInSDAFabricQueryParams) + return s.DeleteMulticastVirtualNetworkByID(id) } - return nil, response, fmt.Errorf("error with operation DeletePortAssignmentForUserDeviceInSdaFabric") + return nil, response, fmt.Errorf("error with operation DeleteMulticastVirtualNetworkById") } - result := response.Result().(*ResponseSdaDeletePortAssignmentForUserDeviceInSdaFabric) + result := response.Result().(*ResponseSdaDeleteMulticastVirtualNetworkByID) return result, response, err } -//DeleteMulticastFromSdaFabric Delete multicast from SDA fabric - 2bb0-0be5-45cb-bc99 -/* Delete multicast from SDA fabric +//DeletePortAssignments Delete port assignments - bd9b-8a54-494b-a3f1 +/* Deletes port assignments based on user input. -@param DeleteMulticastFromSDAFabricQueryParams Filtering parameter +@param DeletePortAssignmentsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-multicast-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-port-assignments-v1 */ -func (s *SdaService) DeleteMulticastFromSdaFabric(DeleteMulticastFromSDAFabricQueryParams *DeleteMulticastFromSdaFabricQueryParams) (*ResponseSdaDeleteMulticastFromSdaFabric, *resty.Response, error) { - //DeleteMulticastFromSDAFabricQueryParams *DeleteMulticastFromSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/multicast" +func (s *SdaService) DeletePortAssignments(DeletePortAssignmentsQueryParams *DeletePortAssignmentsQueryParams) (*ResponseSdaDeletePortAssignments, *resty.Response, error) { + //DeletePortAssignmentsQueryParams *DeletePortAssignmentsQueryParams + path := "/dna/intent/api/v1/sda/portAssignments" - queryString, _ := query.Values(DeleteMulticastFromSDAFabricQueryParams) + queryString, _ := query.Values(DeletePortAssignmentsQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteMulticastFromSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeletePortAssignments{}). SetError(&Error). Delete(path) @@ -2282,34 +6736,34 @@ func (s *SdaService) DeleteMulticastFromSdaFabric(DeleteMulticastFromSDAFabricQu if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteMulticastFromSdaFabric(DeleteMulticastFromSDAFabricQueryParams) + return s.DeletePortAssignments(DeletePortAssignmentsQueryParams) } - return nil, response, fmt.Errorf("error with operation DeleteMulticastFromSdaFabric") + return nil, response, fmt.Errorf("error with operation DeletePortAssignments") } - result := response.Result().(*ResponseSdaDeleteMulticastFromSdaFabric) + result := response.Result().(*ResponseSdaDeletePortAssignments) return result, response, err } -//DeleteProvisionedWiredDevice Delete provisioned Wired Device - e495-b94e-463b-ae04 -/* Delete provisioned Wired Device +//DeletePortAssignmentByID Delete port assignment by id - fdbe-aa08-422b-9fa1 +/* Deletes a port assignment based on id. -@param DeleteProvisionedWiredDeviceQueryParams Filtering parameter +@param id id path parameter. ID of the port assignment. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-provisioned-wired-device -*/ -func (s *SdaService) DeleteProvisionedWiredDevice(DeleteProvisionedWiredDeviceQueryParams *DeleteProvisionedWiredDeviceQueryParams) (*ResponseSdaDeleteProvisionedWiredDevice, *resty.Response, error) { - //DeleteProvisionedWiredDeviceQueryParams *DeleteProvisionedWiredDeviceQueryParams - path := "/dna/intent/api/v1/business/sda/provision-device" - queryString, _ := query.Values(DeleteProvisionedWiredDeviceQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-port-assignment-by-id-v1 +*/ +func (s *SdaService) DeletePortAssignmentByID(id string) (*ResponseSdaDeletePortAssignmentByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/portAssignments/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteProvisionedWiredDevice{}). + SetResult(&ResponseSdaDeletePortAssignmentByID{}). SetError(&Error). Delete(path) @@ -2320,34 +6774,34 @@ func (s *SdaService) DeleteProvisionedWiredDevice(DeleteProvisionedWiredDeviceQu if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteProvisionedWiredDevice(DeleteProvisionedWiredDeviceQueryParams) + return s.DeletePortAssignmentByID(id) } - return nil, response, fmt.Errorf("error with operation DeleteProvisionedWiredDevice") + return nil, response, fmt.Errorf("error with operation DeletePortAssignmentById") } - result := response.Result().(*ResponseSdaDeleteProvisionedWiredDevice) + result := response.Result().(*ResponseSdaDeletePortAssignmentByID) return result, response, err } -//DeleteTransitPeerNetwork Delete Transit Peer Network - d0aa-fa69-4f4b-9d7b -/* Delete Transit Peer Network from SD-Access +//DeletePortChannels Delete port channels - ffb2-e803-4c7b-94ad +/* Deletes port channels based on user input. -@param DeleteTransitPeerNetworkQueryParams Filtering parameter +@param DeletePortChannelsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-transit-peer-network +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-port-channels-v1 */ -func (s *SdaService) DeleteTransitPeerNetwork(DeleteTransitPeerNetworkQueryParams *DeleteTransitPeerNetworkQueryParams) (*ResponseSdaDeleteTransitPeerNetwork, *resty.Response, error) { - //DeleteTransitPeerNetworkQueryParams *DeleteTransitPeerNetworkQueryParams - path := "/dna/intent/api/v1/business/sda/transit-peer-network" +func (s *SdaService) DeletePortChannels(DeletePortChannelsQueryParams *DeletePortChannelsQueryParams) (*ResponseSdaDeletePortChannels, *resty.Response, error) { + //DeletePortChannelsQueryParams *DeletePortChannelsQueryParams + path := "/dna/intent/api/v1/sda/portChannels" - queryString, _ := query.Values(DeleteTransitPeerNetworkQueryParams) + queryString, _ := query.Values(DeletePortChannelsQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteTransitPeerNetwork{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeletePortChannels{}). SetError(&Error). Delete(path) @@ -2358,34 +6812,72 @@ func (s *SdaService) DeleteTransitPeerNetwork(DeleteTransitPeerNetworkQueryParam if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteTransitPeerNetwork(DeleteTransitPeerNetworkQueryParams) + return s.DeletePortChannels(DeletePortChannelsQueryParams) } - return nil, response, fmt.Errorf("error with operation DeleteTransitPeerNetwork") + return nil, response, fmt.Errorf("error with operation DeletePortChannels") } - result := response.Result().(*ResponseSdaDeleteTransitPeerNetwork) + result := response.Result().(*ResponseSdaDeletePortChannels) return result, response, err } -//DeleteVnFromSdaFabric Delete VN from SDA Fabric - c78c-9ad2-45bb-9657 -/* Delete virtual network (VN) from SDA Fabric +//DeletePortChannelByID Delete port channel by id - 55ab-6978-47fa-b9d8 +/* Deletes a port channel based on id. -@param DeleteVNFromSDAFabricQueryParams Filtering parameter +@param id id path parameter. ID of the port channel. + -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-vn-from-sda-fabric +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-port-channel-by-id-v1 */ -func (s *SdaService) DeleteVnFromSdaFabric(DeleteVNFromSDAFabricQueryParams *DeleteVnFromSdaFabricQueryParams) (*ResponseSdaDeleteVnFromSdaFabric, *resty.Response, error) { - //DeleteVNFromSDAFabricQueryParams *DeleteVnFromSdaFabricQueryParams - path := "/dna/intent/api/v1/business/sda/virtual-network" +func (s *SdaService) DeletePortChannelByID(id string) (*ResponseSdaDeletePortChannelByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/portChannels/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - queryString, _ := query.Values(DeleteVNFromSDAFabricQueryParams) + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaDeletePortChannelByID{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletePortChannelByID(id) + } + return nil, response, fmt.Errorf("error with operation DeletePortChannelById") + } + + result := response.Result().(*ResponseSdaDeletePortChannelByID) + return result, response, err + +} + +//DeleteProvisionedDevices Delete provisioned devices - 559a-8ac2-4729-a509 +/* Delete provisioned devices based on query parameters. + + +@param DeleteProvisionedDevicesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-provisioned-devices-v1 +*/ +func (s *SdaService) DeleteProvisionedDevices(DeleteProvisionedDevicesQueryParams *DeleteProvisionedDevicesQueryParams) (*ResponseSdaDeleteProvisionedDevices, *resty.Response, error) { + //DeleteProvisionedDevicesQueryParams *DeleteProvisionedDevicesQueryParams + path := "/dna/intent/api/v1/sda/provisionDevices" + + queryString, _ := query.Values(DeleteProvisionedDevicesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteVnFromSdaFabric{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteProvisionedDevices{}). SetError(&Error). Delete(path) @@ -2396,34 +6888,72 @@ func (s *SdaService) DeleteVnFromSdaFabric(DeleteVNFromSDAFabricQueryParams *Del if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteVnFromSdaFabric(DeleteVNFromSDAFabricQueryParams) + return s.DeleteProvisionedDevices(DeleteProvisionedDevicesQueryParams) } - return nil, response, fmt.Errorf("error with operation DeleteVnFromSdaFabric") + return nil, response, fmt.Errorf("error with operation DeleteProvisionedDevices") } - result := response.Result().(*ResponseSdaDeleteVnFromSdaFabric) + result := response.Result().(*ResponseSdaDeleteProvisionedDevices) return result, response, err } -//DeleteIPPoolFromSdaVirtualNetwork Delete IP Pool from SDA Virtual Network - 549e-4aff-42bb-b52a -/* Delete IP Pool from SDA Virtual Network +//DeleteProvisionedDeviceByID Delete provisioned device by Id - 8bb4-88f0-4f58-9856 +/* Deletes provisioned device based on Id. -@param DeleteIPPoolFromSDAVirtualNetworkQueryParams Filtering parameter +@param id id path parameter. ID of the provisioned device. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-ip-pool-from-sda-virtual-network + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-provisioned-device-by-id-v1 */ -func (s *SdaService) DeleteIPPoolFromSdaVirtualNetwork(DeleteIPPoolFromSDAVirtualNetworkQueryParams *DeleteIPPoolFromSdaVirtualNetworkQueryParams) (*ResponseSdaDeleteIPPoolFromSdaVirtualNetwork, *resty.Response, error) { - //DeleteIPPoolFromSDAVirtualNetworkQueryParams *DeleteIPPoolFromSdaVirtualNetworkQueryParams - path := "/dna/intent/api/v1/business/sda/virtualnetwork/ippool" +func (s *SdaService) DeleteProvisionedDeviceByID(id string) (*ResponseSdaDeleteProvisionedDeviceByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/provisionDevices/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSdaDeleteProvisionedDeviceByID{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteProvisionedDeviceByID(id) + } + return nil, response, fmt.Errorf("error with operation DeleteProvisionedDeviceById") + } + + result := response.Result().(*ResponseSdaDeleteProvisionedDeviceByID) + return result, response, err + +} + +//DeleteTransitNetworkByID Delete transit network by id - 91bd-2956-4359-a935 +/* Deletes a transit network based on id. - queryString, _ := query.Values(DeleteIPPoolFromSDAVirtualNetworkQueryParams) + +@param id id path parameter. ID of the transit network. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-transit-network-by-id-v1 +*/ +func (s *SdaService) DeleteTransitNetworkByID(id string) (*ResponseSdaDeleteTransitNetworkByID, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/sda/transitNetworks/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSdaDeleteIPPoolFromSdaVirtualNetwork{}). + SetResult(&ResponseSdaDeleteTransitNetworkByID{}). SetError(&Error). Delete(path) @@ -2434,12 +6964,12 @@ func (s *SdaService) DeleteIPPoolFromSdaVirtualNetwork(DeleteIPPoolFromSDAVirtua if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteIPPoolFromSdaVirtualNetwork(DeleteIPPoolFromSDAVirtualNetworkQueryParams) + return s.DeleteTransitNetworkByID(id) } - return nil, response, fmt.Errorf("error with operation DeleteIpPoolFromSdaVirtualNetwork") + return nil, response, fmt.Errorf("error with operation DeleteTransitNetworkById") } - result := response.Result().(*ResponseSdaDeleteIPPoolFromSdaVirtualNetwork) + result := response.Result().(*ResponseSdaDeleteTransitNetworkByID) return result, response, err } @@ -2450,7 +6980,7 @@ func (s *SdaService) DeleteIPPoolFromSdaVirtualNetwork(DeleteIPPoolFromSDAVirtua @param DeleteVirtualNetworkWithScalableGroupsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-virtual-network-with-scalable-groups +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-virtual-network-with-scalable-groups-v1 */ func (s *SdaService) DeleteVirtualNetworkWithScalableGroups(DeleteVirtualNetworkWithScalableGroupsQueryParams *DeleteVirtualNetworkWithScalableGroupsQueryParams) (*ResponseSdaDeleteVirtualNetworkWithScalableGroups, *resty.Response, error) { //DeleteVirtualNetworkWithScalableGroupsQueryParams *DeleteVirtualNetworkWithScalableGroupsQueryParams diff --git a/sdk/security_advisories.go b/sdk/security_advisories.go index 684b160..f5041fb 100644 --- a/sdk/security_advisories.go +++ b/sdk/security_advisories.go @@ -11,96 +11,111 @@ import ( type SecurityAdvisoriesService service type ResponseSecurityAdvisoriesGetAdvisoriesList struct { - Response *[]ResponseSecurityAdvisoriesGetAdvisoriesListResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version + Response *ResponseSecurityAdvisoriesGetAdvisoriesListResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the response } type ResponseSecurityAdvisoriesGetAdvisoriesListResponse struct { - AdvisoryID string `json:"advisoryId,omitempty"` // Advisory Id - DeviceCount *int `json:"deviceCount,omitempty"` // Device Count - HiddenDeviceCount *float64 `json:"hiddenDeviceCount,omitempty"` // Hidden Device Count - Cves []string `json:"cves,omitempty"` // Cves - PublicationURL string `json:"publicationUrl,omitempty"` // Publication Url - Sir string `json:"sir,omitempty"` // Sir - DetectionType string `json:"detectionType,omitempty"` // Detection Type - DefaultDetectionType string `json:"defaultDetectionType,omitempty"` // Default Detection Type - DefaultConfigMatchPattern string `json:"defaultConfigMatchPattern,omitempty"` // Default Config Match Pattern + AdvisoryID string `json:"advisoryId,omitempty"` // Id of the advisory + DeviceCount *int `json:"deviceCount,omitempty"` // Number of devices vulnerable to the advisory + HiddenDeviceCount *int `json:"hiddenDeviceCount,omitempty"` // Number of devices vulnerable to the advisory but were suppressed by the user + Cves []string `json:"cves,omitempty"` // CVE (Common Vulnerabilities and Exposures) IDs of the advisory + PublicationURL string `json:"publicationUrl,omitempty"` // CISCO publication URL for the advisory + Sir string `json:"sir,omitempty"` // Security Impact Rating of the advisory + DetectionType string `json:"detectionType,omitempty"` // Criteria for advisory detection + DefaultDetectionType string `json:"defaultDetectionType,omitempty"` // Original criteria for advisory detection + DefaultConfigMatchPattern string `json:"defaultConfigMatchPattern,omitempty"` // Regular expression used by the system to detect the advisory + FixedVersions *ResponseSecurityAdvisoriesGetAdvisoriesListResponseFixedVersions `json:"fixedVersions,omitempty"` // Map where each key is a vulnerable version and the value is a list of versions in which the advisory has been fixed } +type ResponseSecurityAdvisoriesGetAdvisoriesListResponseFixedVersions interface{} type ResponseSecurityAdvisoriesGetAdvisoriesSummary struct { Response *ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version of the response } type ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponse struct { - NA *ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseNA `json:"NA,omitempty"` // INFORMATIONAL *ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseINFORMATIONAL `json:"INFORMATIONAL,omitempty"` // LOW *ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseLOW `json:"LOW,omitempty"` // MEDIUM *ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseMEDIUM `json:"MEDIUM,omitempty"` // HIGH *ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseHIGH `json:"HIGH,omitempty"` // CRITICaL *ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseCRITICaL `json:"CRITICAL,omitempty"` // -} -type ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseNA struct { - CONFIG *float64 `json:"CONFIG,omitempty"` // C O N F I G - VERSION *float64 `json:"VERSION,omitempty"` // V E R S I O N - TOTAL *float64 `json:"TOTAL,omitempty"` // T O T A L + NA *ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseNA `json:"NA,omitempty"` // } type ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseINFORMATIONAL struct { - CONFIG *float64 `json:"CONFIG,omitempty"` // C O N F I G - VERSION *float64 `json:"VERSION,omitempty"` // V E R S I O N - TOTAL *float64 `json:"TOTAL,omitempty"` // T O T A L + CONFIG *int `json:"CONFIG,omitempty"` // Number of advisories matched using default config + CUSTOMCONFIG *int `json:"CUSTOM_CONFIG,omitempty"` // Number of advisories matched using user provided config + VERSION *int `json:"VERSION,omitempty"` // Number of advisories matched using software version + TOTAL *int `json:"TOTAL,omitempty"` // Sum of Config, Custom Config and Version } type ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseLOW struct { - CONFIG *float64 `json:"CONFIG,omitempty"` // C O N F I G - VERSION *float64 `json:"VERSION,omitempty"` // V E R S I O N - TOTAL *float64 `json:"TOTAL,omitempty"` // T O T A L + CONFIG *int `json:"CONFIG,omitempty"` // Number of advisories matched using default config + CUSTOMCONFIG *int `json:"CUSTOM_CONFIG,omitempty"` // Number of advisories matched using user provided config + VERSION *int `json:"VERSION,omitempty"` // Number of advisories matched using software version + TOTAL *int `json:"TOTAL,omitempty"` // Sum of Config, Custom Config and Version } type ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseMEDIUM struct { - CONFIG *float64 `json:"CONFIG,omitempty"` // C O N F I G - VERSION *int `json:"VERSION,omitempty"` // V E R S I O N - TOTAL *int `json:"TOTAL,omitempty"` // T O T A L + CONFIG *int `json:"CONFIG,omitempty"` // Number of advisories matched using default config + CUSTOMCONFIG *int `json:"CUSTOM_CONFIG,omitempty"` // Number of advisories matched using user provided config + VERSION *int `json:"VERSION,omitempty"` // Number of advisories matched using software version + TOTAL *int `json:"TOTAL,omitempty"` // Sum of Config, Custom Config and Version } type ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseHIGH struct { - CONFIG *float64 `json:"CONFIG,omitempty"` // C O N F I G - VERSION *int `json:"VERSION,omitempty"` // V E R S I O N - TOTAL *int `json:"TOTAL,omitempty"` // T O T A L + CONFIG *int `json:"CONFIG,omitempty"` // Number of advisories matched using default config + CUSTOMCONFIG *int `json:"CUSTOM_CONFIG,omitempty"` // Number of advisories matched using user provided config + VERSION *int `json:"VERSION,omitempty"` // Number of advisories matched using software version + TOTAL *int `json:"TOTAL,omitempty"` // Sum of Config, Custom Config and Version } type ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseCRITICaL struct { - CONFIG *float64 `json:"CONFIG,omitempty"` // C O N F I G - VERSION *int `json:"VERSION,omitempty"` // V E R S I O N - TOTAL *int `json:"TOTAL,omitempty"` // T O T A L + CONFIG *int `json:"CONFIG,omitempty"` // Number of advisories matched using default config + CUSTOMCONFIG *int `json:"CUSTOM_CONFIG,omitempty"` // Number of advisories matched using user provided config + VERSION *int `json:"VERSION,omitempty"` // Number of advisories matched using software version + TOTAL *int `json:"TOTAL,omitempty"` // Sum of Config, Custom Config and Version +} +type ResponseSecurityAdvisoriesGetAdvisoriesSummaryResponseNA struct { + CONFIG *int `json:"CONFIG,omitempty"` // Number of advisories matched using default config + CUSTOMCONFIG *int `json:"CUSTOM_CONFIG,omitempty"` // Number of advisories matched using user provided config + VERSION *int `json:"VERSION,omitempty"` // Number of advisories matched using software version + TOTAL *int `json:"TOTAL,omitempty"` // Sum of Config, Custom Config and Version } type ResponseSecurityAdvisoriesGetDevicesPerAdvisory struct { - Response []string `json:"response,omitempty"` // Response - Version string `json:"version,omitempty"` // Version + Response []string `json:"response,omitempty"` // List of device IDs vulnerable to the advisory + Version string `json:"version,omitempty"` // Version of the response } -type ResponseSecurityAdvisoriesGetAdvisoryIDsPerDevice struct { - Response *[]ResponseSecurityAdvisoriesGetAdvisoryIDsPerDeviceResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version +type ResponseSecurityAdvisoriesGetAdvisoryDeviceDetail struct { + Response *ResponseSecurityAdvisoriesGetAdvisoryDeviceDetailResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the response } -type ResponseSecurityAdvisoriesGetAdvisoryIDsPerDeviceResponse struct { - DeviceID string `json:"deviceId,omitempty"` // Device Id - AdvisoryIDs []string `json:"advisoryIds,omitempty"` // Advisory Ids +type ResponseSecurityAdvisoriesGetAdvisoryDeviceDetailResponse struct { + DeviceID string `json:"deviceId,omitempty"` // Network device ID + AdvisoryIDs []string `json:"advisoryIds,omitempty"` // Advisories detected on the network device + HiddenAdvisoryCount *int `json:"hiddenAdvisoryCount,omitempty"` // Number of advisories detected on the network device that were suppressed by the user + ScanMode string `json:"scanMode,omitempty"` // Criteria on which the network device was scanned + ScanStatus string `json:"scanStatus,omitempty"` // Status of the scan performed on the network device + Comments string `json:"comments,omitempty"` // More details about the scan status. Ie:- if the scan status is failed, comments will give the reason for failure + LastScanTime *int `json:"lastScanTime,omitempty"` // Time at which the network device was scanned. The representation is unix time. } type ResponseSecurityAdvisoriesGetAdvisoriesPerDevice struct { - Response *[]ResponseSecurityAdvisoriesGetAdvisoriesPerDeviceResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // Version + Response *ResponseSecurityAdvisoriesGetAdvisoriesPerDeviceResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the response } type ResponseSecurityAdvisoriesGetAdvisoriesPerDeviceResponse struct { - AdvisoryID string `json:"advisoryId,omitempty"` // Advisory Id - DeviceCount *int `json:"deviceCount,omitempty"` // Device Count - HiddenDeviceCount *float64 `json:"hiddenDeviceCount,omitempty"` // Hidden Device Count - Cves []string `json:"cves,omitempty"` // Cves - PublicationURL string `json:"publicationUrl,omitempty"` // Publication Url - Sir string `json:"sir,omitempty"` // Sir - DetectionType string `json:"detectionType,omitempty"` // Detection Type - DefaultDetectionType string `json:"defaultDetectionType,omitempty"` // Default Detection Type - DefaultConfigMatchPattern string `json:"defaultConfigMatchPattern,omitempty"` // Default Config Match Pattern + AdvisoryID string `json:"advisoryId,omitempty"` // Id of the advisory + DeviceCount *int `json:"deviceCount,omitempty"` // Number of devices vulnerable to the advisory + HiddenDeviceCount *int `json:"hiddenDeviceCount,omitempty"` // Number of devices vulnerable to the advisory but were suppressed by the user + Cves []string `json:"cves,omitempty"` // CVE (Common Vulnerabilities and Exposures) IDs of the advisory + PublicationURL string `json:"publicationUrl,omitempty"` // CISCO publication URL for the advisory + Sir string `json:"sir,omitempty"` // Security Impact Rating of the advisory + DetectionType string `json:"detectionType,omitempty"` // Criteria for advisory detection + DefaultDetectionType string `json:"defaultDetectionType,omitempty"` // Original criteria for advisory detection + DefaultConfigMatchPattern string `json:"defaultConfigMatchPattern,omitempty"` // Regular expression used by the system to detect the advisory + FixedVersions *ResponseSecurityAdvisoriesGetAdvisoriesPerDeviceResponseFixedVersions `json:"fixedVersions,omitempty"` // Map where each key is a vulnerable version and the value is a list of versions in which the advisory has been fixed } +type ResponseSecurityAdvisoriesGetAdvisoriesPerDeviceResponseFixedVersions interface{} //GetAdvisoriesList Get Advisories List - 4295-0bf8-4939-ac35 /* Retrieves list of advisories on the network -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-advisories-list +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-advisories-list-v1 */ func (s *SecurityAdvisoriesService) GetAdvisoriesList() (*ResponseSecurityAdvisoriesGetAdvisoriesList, *resty.Response, error) { path := "/dna/intent/api/v1/security-advisory/advisory" @@ -134,7 +149,7 @@ func (s *SecurityAdvisoriesService) GetAdvisoriesList() (*ResponseSecurityAdviso -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-advisories-summary +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-advisories-summary-v1 */ func (s *SecurityAdvisoriesService) GetAdvisoriesSummary() (*ResponseSecurityAdvisoriesGetAdvisoriesSummary, *resty.Response, error) { path := "/dna/intent/api/v1/security-advisory/advisory/aggregate" @@ -170,7 +185,7 @@ func (s *SecurityAdvisoriesService) GetAdvisoriesSummary() (*ResponseSecurityAdv @param advisoryID advisoryId path parameter. Advisory ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-devices-per-advisory +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-devices-per-advisory-v1 */ func (s *SecurityAdvisoriesService) GetDevicesPerAdvisory(advisoryID string) (*ResponseSecurityAdvisoriesGetDevicesPerAdvisory, *resty.Response, error) { path := "/dna/intent/api/v1/security-advisory/advisory/{advisoryId}/device" @@ -200,23 +215,23 @@ func (s *SecurityAdvisoriesService) GetDevicesPerAdvisory(advisoryID string) (*R } -//GetAdvisoryIDsPerDevice Get Advisory IDs Per Device - e295-09d0-420b-8cc4 -/* Retrieves list of advisory IDs for a device +//GetAdvisoryDeviceDetail Get Advisory Device Detail - e295-09d0-420b-8cc4 +/* Retrieves advisory device details for a device @param deviceID deviceId path parameter. Device instance UUID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-advisory-ids-per-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-advisory-device-detail-v1 */ -func (s *SecurityAdvisoriesService) GetAdvisoryIDsPerDevice(deviceID string) (*ResponseSecurityAdvisoriesGetAdvisoryIDsPerDevice, *resty.Response, error) { +func (s *SecurityAdvisoriesService) GetAdvisoryDeviceDetail(deviceID string) (*ResponseSecurityAdvisoriesGetAdvisoryDeviceDetail, *resty.Response, error) { path := "/dna/intent/api/v1/security-advisory/device/{deviceId}" path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseSecurityAdvisoriesGetAdvisoryIDsPerDevice{}). + SetResult(&ResponseSecurityAdvisoriesGetAdvisoryDeviceDetail{}). SetError(&Error). Get(path) @@ -227,12 +242,12 @@ func (s *SecurityAdvisoriesService) GetAdvisoryIDsPerDevice(deviceID string) (*R if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetAdvisoryIDsPerDevice(deviceID) + return s.GetAdvisoryDeviceDetail(deviceID) } - return nil, response, fmt.Errorf("error with operation GetAdvisoryIdsPerDevice") + return nil, response, fmt.Errorf("error with operation GetAdvisoryDeviceDetail") } - result := response.Result().(*ResponseSecurityAdvisoriesGetAdvisoryIDsPerDevice) + result := response.Result().(*ResponseSecurityAdvisoriesGetAdvisoryDeviceDetail) return result, response, err } @@ -244,7 +259,7 @@ func (s *SecurityAdvisoriesService) GetAdvisoryIDsPerDevice(deviceID string) (*R @param deviceID deviceId path parameter. Device instance UUID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-advisories-per-device +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-advisories-per-device-v1 */ func (s *SecurityAdvisoriesService) GetAdvisoriesPerDevice(deviceID string) (*ResponseSecurityAdvisoriesGetAdvisoriesPerDevice, *resty.Response, error) { path := "/dna/intent/api/v1/security-advisory/device/{deviceId}/advisory" diff --git a/sdk/sensors.go b/sdk/sensors.go index 7e0e734..b68ac73 100644 --- a/sdk/sensors.go +++ b/sdk/sensors.go @@ -22,508 +22,1192 @@ type ResponseSensorsEditSensorTestTemplate struct { Response *ResponseSensorsEditSensorTestTemplateResponse `json:"response,omitempty"` // } type ResponseSensorsEditSensorTestTemplateResponse struct { - TypeID string `json:"_id,omitempty"` // Id - Name string `json:"name,omitempty"` // Name - Version *float64 `json:"version,omitempty"` // Version - ModelVersion *int `json:"modelVersion,omitempty"` // Model Version - StartTime *float64 `json:"startTime,omitempty"` // Start Time - LastModifiedTime *float64 `json:"lastModifiedTime,omitempty"` // Last Modified Time - NumAssociatedSensor *float64 `json:"numAssociatedSensor,omitempty"` // Num Associated Sensor - Location *ResponseSensorsEditSensorTestTemplateResponseLocation `json:"location,omitempty"` // Location - SiteHierarchy *ResponseSensorsEditSensorTestTemplateResponseSiteHierarchy `json:"siteHierarchy,omitempty"` // Site Hierarchy - Status string `json:"status,omitempty"` // Status - Connection string `json:"connection,omitempty"` // Connection - Frequency *ResponseSensorsEditSensorTestTemplateResponseFrequency `json:"frequency,omitempty"` // Frequency - RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold - NumNeighborApThreshold *int `json:"numNeighborAPThreshold,omitempty"` // Num Neighbor A P Threshold - ScheduleInDays *float64 `json:"scheduleInDays,omitempty"` // Schedule In Days - WLANs *[]ResponseSensorsEditSensorTestTemplateResponseWLANs `json:"wlans,omitempty"` // Wlans + Name string `json:"name,omitempty"` // The sensor test template name + TypeID string `json:"_id,omitempty"` // The sensor test template unique identifier + Version *int `json:"version,omitempty"` // The sensor test template version (must be 2) + ModelVersion *int `json:"modelVersion,omitempty"` // Test template object model version (must be 2) + StartTime *int `json:"startTime,omitempty"` // Start time + LastModifiedTime *int `json:"lastModifiedTime,omitempty"` // Last modify time + NumAssociatedSensor *int `json:"numAssociatedSensor,omitempty"` // Number of associated sensor + Location string `json:"location,omitempty"` // Location string + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site hierarchy + Status string `json:"status,omitempty"` // Status of the test (RUNNING, NOTRUNNING) + Connection string `json:"connection,omitempty"` // connection type of test: WIRED, WIRELESS, BOTH + ActionInProgress string `json:"actionInProgress,omitempty"` // Indication of inprogress action + Frequency *ResponseSensorsEditSensorTestTemplateResponseFrequency `json:"frequency,omitempty"` // + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold + NumNeighborApThreshold *int `json:"numNeighborAPThreshold,omitempty"` // Number of neighboring AP threshold + ScheduleInDays *int `json:"scheduleInDays,omitempty"` // Bit-wise value of scheduled test days + WLANs []string `json:"wlans,omitempty"` // WLANs list SSIDs *[]ResponseSensorsEditSensorTestTemplateResponseSSIDs `json:"ssids,omitempty"` // - TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test Schedule Mode - ShowWlcUpgradeBanner *bool `json:"showWlcUpgradeBanner,omitempty"` // Show Wlc Upgrade Banner - RadioAsSensorRemoved *bool `json:"radioAsSensorRemoved,omitempty"` // Radio As Sensor Removed - EncryptionMode string `json:"encryptionMode,omitempty"` // Encryption Mode - RunNow string `json:"runNow,omitempty"` // Run Now + Profiles *[]ResponseSensorsEditSensorTestTemplateResponseProfiles `json:"profiles,omitempty"` // + TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test schedule mode (ONDEMAND, DEDICATED, SCHEDULED, CONTINUOUS, RUNNOW) + ShowWlcUpgradeBanner *bool `json:"showWlcUpgradeBanner,omitempty"` // Show WLC upgrade banner + RadioAsSensorRemoved *bool `json:"radioAsSensorRemoved,omitempty"` // Radio as sensor removed + EncryptionMode string `json:"encryptionMode,omitempty"` // Encryption mode + RunNow string `json:"runNow,omitempty"` // Run now (YES, NO) LocationInfoList *[]ResponseSensorsEditSensorTestTemplateResponseLocationInfoList `json:"locationInfoList,omitempty"` // - Schedule *ResponseSensorsEditSensorTestTemplateResponseSchedule `json:"schedule,omitempty"` // - Tests *ResponseSensorsEditSensorTestTemplateResponseTests `json:"tests,omitempty"` // Tests - Sensors *[]ResponseSensorsEditSensorTestTemplateResponseSensors `json:"sensors,omitempty"` // Sensors + Sensors *[]ResponseSensorsEditSensorTestTemplateResponseSensors `json:"sensors,omitempty"` // ApCoverage *[]ResponseSensorsEditSensorTestTemplateResponseApCoverage `json:"apCoverage,omitempty"` // - TestDurationEstimate *int `json:"testDurationEstimate,omitempty"` // Test Duration Estimate - TestTemplate *bool `json:"testTemplate,omitempty"` // Test Template - LegacyTestSuite *bool `json:"legacyTestSuite,omitempty"` // Legacy Test Suite - TenantID string `json:"tenantId,omitempty"` // Tenant Id -} -type ResponseSensorsEditSensorTestTemplateResponseLocation interface{} -type ResponseSensorsEditSensorTestTemplateResponseSiteHierarchy interface{} -type ResponseSensorsEditSensorTestTemplateResponseFrequency interface{} -type ResponseSensorsEditSensorTestTemplateResponseWLANs interface{} +} +type ResponseSensorsEditSensorTestTemplateResponseFrequency struct { + Value *int `json:"value,omitempty"` // Value of the unit + Unit string `json:"unit,omitempty"` // Unit of the time value (NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS) +} type ResponseSensorsEditSensorTestTemplateResponseSSIDs struct { - Bands *ResponseSensorsEditSensorTestTemplateResponseSSIDsBands `json:"bands,omitempty"` // Bands - SSID string `json:"ssid,omitempty"` // Ssid - ProfileName string `json:"profileName,omitempty"` // Profile Name - AuthType string `json:"authType,omitempty"` // Auth Type - AuthTypeRcvd *ResponseSensorsEditSensorTestTemplateResponseSSIDsAuthTypeRcvd `json:"authTypeRcvd,omitempty"` // Auth Type Rcvd - Psk string `json:"psk,omitempty"` // Psk - Username *ResponseSensorsEditSensorTestTemplateResponseSSIDsUsername `json:"username,omitempty"` // Username - Password *ResponseSensorsEditSensorTestTemplateResponseSSIDsPassword `json:"password,omitempty"` // Password - EapMethod *ResponseSensorsEditSensorTestTemplateResponseSSIDsEapMethod `json:"eapMethod,omitempty"` // Eap Method - Scep *bool `json:"scep,omitempty"` // Scep - AuthProtocol *ResponseSensorsEditSensorTestTemplateResponseSSIDsAuthProtocol `json:"authProtocol,omitempty"` // Auth Protocol - Certfilename *ResponseSensorsEditSensorTestTemplateResponseSSIDsCertfilename `json:"certfilename,omitempty"` // Certfilename - Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certxferprotocol - Certstatus string `json:"certstatus,omitempty"` // Certstatus - Certpassphrase *ResponseSensorsEditSensorTestTemplateResponseSSIDsCertpassphrase `json:"certpassphrase,omitempty"` // Certpassphrase - Certdownloadurl *ResponseSensorsEditSensorTestTemplateResponseSSIDsCertdownloadurl `json:"certdownloadurl,omitempty"` // Certdownloadurl - NumAps *float64 `json:"numAps,omitempty"` // Num Aps - NumSensors *float64 `json:"numSensors,omitempty"` // Num Sensors - Layer3WebAuthsecurity *ResponseSensorsEditSensorTestTemplateResponseSSIDsLayer3WebAuthsecurity `json:"layer3webAuthsecurity,omitempty"` // Layer3web Authsecurity - Layer3WebAuthuserName *ResponseSensorsEditSensorTestTemplateResponseSSIDsLayer3WebAuthuserName `json:"layer3webAuthuserName,omitempty"` // Layer3web Authuser Name - Layer3WebAuthpassword *ResponseSensorsEditSensorTestTemplateResponseSSIDsLayer3WebAuthpassword `json:"layer3webAuthpassword,omitempty"` // Layer3web Authpassword - ExtWebAuthVirtualIP *ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthVirtualIP `json:"extWebAuthVirtualIp,omitempty"` // Ext Web Auth Virtual Ip - Layer3WebAuthEmailAddress *ResponseSensorsEditSensorTestTemplateResponseSSIDsLayer3WebAuthEmailAddress `json:"layer3webAuthEmailAddress,omitempty"` // Layer3web Auth Email Address - QosPolicy string `json:"qosPolicy,omitempty"` // Qos Policy - ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Ext Web Auth - WhiteList *bool `json:"whiteList,omitempty"` // White List - ExtWebAuthPortal *ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthPortal `json:"extWebAuthPortal,omitempty"` // Ext Web Auth Portal - ExtWebAuthAccessURL *ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthAccessURL `json:"extWebAuthAccessUrl,omitempty"` // Ext Web Auth Access Url - ExtWebAuthHTMLTag *[]ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // Ext Web Auth Html Tag - ThirdParty *ResponseSensorsEditSensorTestTemplateResponseSSIDsThirdParty `json:"thirdParty,omitempty"` // - ID *float64 `json:"id,omitempty"` // Id - WLANID *float64 `json:"wlanId,omitempty"` // Wlan Id - Wlc *ResponseSensorsEditSensorTestTemplateResponseSSIDsWlc `json:"wlc,omitempty"` // Wlc - ValidFrom *float64 `json:"validFrom,omitempty"` // Valid From - ValidTo *float64 `json:"validTo,omitempty"` // Valid To - Status string `json:"status,omitempty"` // Status - Tests *[]ResponseSensorsEditSensorTestTemplateResponseSSIDsTests `json:"tests,omitempty"` // -} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsBands interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsAuthTypeRcvd interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsUsername interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsPassword interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsEapMethod interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsAuthProtocol interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsCertfilename interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsCertpassphrase interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsCertdownloadurl interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsLayer3WebAuthsecurity interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsLayer3WebAuthuserName interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsLayer3WebAuthpassword interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthVirtualIP interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsLayer3WebAuthEmailAddress interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthPortal interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthAccessURL interface{} -type ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag interface{} + Bands string `json:"bands,omitempty"` // WIFI bands: 2.4GHz or 5GHz + SSID string `json:"ssid,omitempty"` // The SSID string + ProfileName string `json:"profileName,omitempty"` // The SSID profile name string + NumAps *int `json:"numAps,omitempty"` // Number of APs in the test + NumSensors *int `json:"numSensors,omitempty"` // Number of Sensors in the test + Layer3WebAuthsecurity string `json:"layer3webAuthsecurity,omitempty"` // Layer 3 WEB Auth security + Layer3WebAuthuserName string `json:"layer3webAuthuserName,omitempty"` // Layer 3 WEB Auth user name + Layer3WebAuthpassword string `json:"layer3webAuthpassword,omitempty"` // Layer 3 WEB Auth password + Layer3WebAuthEmailAddress string `json:"layer3webAuthEmailAddress,omitempty"` // Layer 3 WEB Auth email address + ThirdParty *ResponseSensorsEditSensorTestTemplateResponseSSIDsThirdParty `json:"thirdParty,omitempty"` // + ID *int `json:"id,omitempty"` // Identification number + WLANID *int `json:"wlanId,omitempty"` // WLAN ID + Wlc string `json:"wlc,omitempty"` // WLC IP addres + ValidFrom *int `json:"validFrom,omitempty"` // Valid From UTC timestamp + ValidTo *int `json:"validTo,omitempty"` // Valid To UTC timestamp + Status string `json:"status,omitempty"` // WLAN status: ENABLED or DISABLED + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server for onboarding SSID + ProxyPort string `json:"proxyPort,omitempty"` // Proxy server port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy server user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy server password + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EAP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]ResponseSensorsEditSensorTestTemplateResponseSSIDsTests `json:"tests,omitempty"` // +} type ResponseSensorsEditSensorTestTemplateResponseSSIDsThirdParty struct { - Selected *bool `json:"selected,omitempty"` // Selected + Selected *bool `json:"selected,omitempty"` // true: the SSID is third party +} +type ResponseSensorsEditSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value } -type ResponseSensorsEditSensorTestTemplateResponseSSIDsWlc interface{} type ResponseSensorsEditSensorTestTemplateResponseSSIDsTests struct { - Name string `json:"name,omitempty"` // Name - Config *[]ResponseSensorsEditSensorTestTemplateResponseSSIDsTestsConfig `json:"config,omitempty"` // Config + Name string `json:"name,omitempty"` // Name of the test + Config *[]ResponseSensorsEditSensorTestTemplateResponseSSIDsTestsConfig `json:"config,omitempty"` // +} +type ResponseSensorsEditSensorTestTemplateResponseSSIDsTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type ResponseSensorsEditSensorTestTemplateResponseProfiles struct { + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EAP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]ResponseSensorsEditSensorTestTemplateResponseProfilesExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]ResponseSensorsEditSensorTestTemplateResponseProfilesTests `json:"tests,omitempty"` // + ProfileName string `json:"profileName,omitempty"` // Profile name + DeviceType string `json:"deviceType,omitempty"` // Device Type + VLAN string `json:"vlan,omitempty"` // VLAN + LocationVLANList *[]ResponseSensorsEditSensorTestTemplateResponseProfilesLocationVLANList `json:"locationVlanList,omitempty"` // +} +type ResponseSensorsEditSensorTestTemplateResponseProfilesExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value +} +type ResponseSensorsEditSensorTestTemplateResponseProfilesTests struct { + Name string `json:"name,omitempty"` // Name of the test + Config *[]ResponseSensorsEditSensorTestTemplateResponseProfilesTestsConfig `json:"config,omitempty"` // +} +type ResponseSensorsEditSensorTestTemplateResponseProfilesTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type ResponseSensorsEditSensorTestTemplateResponseProfilesLocationVLANList struct { + LocationID string `json:"locationId,omitempty"` // Site UUID + VLANs []string `json:"vlans,omitempty"` // Array of VLANs } -type ResponseSensorsEditSensorTestTemplateResponseSSIDsTestsConfig interface{} type ResponseSensorsEditSensorTestTemplateResponseLocationInfoList struct { - LocationID string `json:"locationId,omitempty"` // Location Id - LocationType string `json:"locationType,omitempty"` // Location Type - AllSensors *bool `json:"allSensors,omitempty"` // All Sensors - SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy - MacAddressList *[]ResponseSensorsEditSensorTestTemplateResponseLocationInfoListMacAddressList `json:"macAddressList,omitempty"` // Mac Address List -} -type ResponseSensorsEditSensorTestTemplateResponseLocationInfoListMacAddressList interface{} -type ResponseSensorsEditSensorTestTemplateResponseSchedule struct { - TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test Schedule Mode - ScheduleRange *[]ResponseSensorsEditSensorTestTemplateResponseScheduleScheduleRange `json:"scheduleRange,omitempty"` // - StartTime *float64 `json:"startTime,omitempty"` // Start Time - Frequency *ResponseSensorsEditSensorTestTemplateResponseScheduleFrequency `json:"frequency,omitempty"` // -} -type ResponseSensorsEditSensorTestTemplateResponseScheduleScheduleRange struct { - TimeRange *[]ResponseSensorsEditSensorTestTemplateResponseScheduleScheduleRangeTimeRange `json:"timeRange,omitempty"` // - Day string `json:"day,omitempty"` // Day -} -type ResponseSensorsEditSensorTestTemplateResponseScheduleScheduleRangeTimeRange struct { - From string `json:"from,omitempty"` // From - To string `json:"to,omitempty"` // To - Frequency *ResponseSensorsEditSensorTestTemplateResponseScheduleScheduleRangeTimeRangeFrequency `json:"frequency,omitempty"` // -} -type ResponseSensorsEditSensorTestTemplateResponseScheduleScheduleRangeTimeRangeFrequency struct { - Value *int `json:"value,omitempty"` // Value - Unit string `json:"unit,omitempty"` // Unit -} -type ResponseSensorsEditSensorTestTemplateResponseScheduleFrequency struct { - Value *int `json:"value,omitempty"` // Value - Unit string `json:"unit,omitempty"` // Unit -} -type ResponseSensorsEditSensorTestTemplateResponseTests interface{} -type ResponseSensorsEditSensorTestTemplateResponseSensors interface{} + LocationID string `json:"locationId,omitempty"` // Site UUID + LocationType string `json:"locationType,omitempty"` // Site type + AllSensors *bool `json:"allSensors,omitempty"` // Use all sensors in the site for test + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site name hierarhy + MacAddressList []string `json:"macAddressList,omitempty"` // MAC addresses + ManagementVLAN string `json:"managementVlan,omitempty"` // Management VLAN + CustomManagementVLAN *bool `json:"customManagementVlan,omitempty"` // Custom Management VLAN +} +type ResponseSensorsEditSensorTestTemplateResponseSensors struct { + Name string `json:"name,omitempty"` // Sensor name + MacAddress string `json:"macAddress,omitempty"` // MAC address + SwitchMac string `json:"switchMac,omitempty"` // Switch MAC address + SwitchUUID string `json:"switchUuid,omitempty"` // Switch device UUID + SwitchSerialNumber string `json:"switchSerialNumber,omitempty"` // Switch serial number + MarkedForUninstall *bool `json:"markedForUninstall,omitempty"` // Is marked for uninstall + IPAddress string `json:"ipAddress,omitempty"` // IP address + HostName string `json:"hostName,omitempty"` // Host name + WiredApplicationStatus string `json:"wiredApplicationStatus,omitempty"` // Wired application status + WiredApplicationMessage string `json:"wiredApplicationMessage,omitempty"` // Wired application message + Assigned *bool `json:"assigned,omitempty"` // Is assigned + Status string `json:"status,omitempty"` // Sensor device status: UP, DOWN, REBOOT + XorSensor *bool `json:"xorSensor,omitempty"` // Is XOR sensor + TargetAPs []string `json:"targetAPs,omitempty"` // Array of target APs + RunNow string `json:"runNow,omitempty"` // Run now: YES, NO + LocationID string `json:"locationId,omitempty"` // Site UUID + AllSensorAddition *bool `json:"allSensorAddition,omitempty"` // Is all sensor addition + ConfigUpdated string `json:"configUpdated,omitempty"` // Configuration updated: YES, NO + SensorType string `json:"sensorType,omitempty"` // Sensor type + TestMacAddresses *ResponseSensorsEditSensorTestTemplateResponseSensorsTestMacAddresses `json:"testMacAddresses,omitempty"` // A string-string test MAC address + ID string `json:"id,omitempty"` // Sensor ID + ServicePolicy string `json:"servicePolicy,omitempty"` // Service policy + IPerfInfo *ResponseSensorsEditSensorTestTemplateResponseSensorsIPerfInfo `json:"iPerfInfo,omitempty"` // A string-stringList iPerf information +} +type ResponseSensorsEditSensorTestTemplateResponseSensorsTestMacAddresses interface{} +type ResponseSensorsEditSensorTestTemplateResponseSensorsIPerfInfo interface{} type ResponseSensorsEditSensorTestTemplateResponseApCoverage struct { - Bands string `json:"bands,omitempty"` // Bands - NumberOfApsToTest *int `json:"numberOfApsToTest,omitempty"` // Number Of Aps To Test - RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold + Bands string `json:"bands,omitempty"` // The WIFI bands + NumberOfApsToTest *int `json:"numberOfApsToTest,omitempty"` // Number of APs to test + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold } type ResponseSensorsCreateSensorTestTemplate struct { Version string `json:"version,omitempty"` // Version Response *ResponseSensorsCreateSensorTestTemplateResponse `json:"response,omitempty"` // } type ResponseSensorsCreateSensorTestTemplateResponse struct { - TypeID string `json:"_id,omitempty"` // Id - Name string `json:"name,omitempty"` // Name - Version *float64 `json:"version,omitempty"` // Version - ModelVersion *int `json:"modelVersion,omitempty"` // Model Version - StartTime *float64 `json:"startTime,omitempty"` // Start Time - LastModifiedTime *float64 `json:"lastModifiedTime,omitempty"` // Last Modified Time - NumAssociatedSensor *float64 `json:"numAssociatedSensor,omitempty"` // Num Associated Sensor - Location *ResponseSensorsCreateSensorTestTemplateResponseLocation `json:"location,omitempty"` // Location - SiteHierarchy *ResponseSensorsCreateSensorTestTemplateResponseSiteHierarchy `json:"siteHierarchy,omitempty"` // Site Hierarchy - Status string `json:"status,omitempty"` // Status - Connection string `json:"connection,omitempty"` // Connection - Frequency *ResponseSensorsCreateSensorTestTemplateResponseFrequency `json:"frequency,omitempty"` // Frequency - RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold - NumNeighborApThreshold *int `json:"numNeighborAPThreshold,omitempty"` // Num Neighbor A P Threshold - ScheduleInDays *float64 `json:"scheduleInDays,omitempty"` // Schedule In Days - WLANs *[]ResponseSensorsCreateSensorTestTemplateResponseWLANs `json:"wlans,omitempty"` // Wlans + Name string `json:"name,omitempty"` // The sensor test template name + TypeID string `json:"_id,omitempty"` // (Used in edit only) The sensor test template unique identifier + Version *int `json:"version,omitempty"` // The sensor test template version (must be 2) + ModelVersion *int `json:"modelVersion,omitempty"` // Test template object model version (must be 2) + StartTime *int `json:"startTime,omitempty"` // Start time + LastModifiedTime *int `json:"lastModifiedTime,omitempty"` // Last modify time + NumAssociatedSensor *int `json:"numAssociatedSensor,omitempty"` // Number of associated sensor + Location string `json:"location,omitempty"` // Location string + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site hierarchy + Status string `json:"status,omitempty"` // Status of the test (RUNNING, NOTRUNNING) + Connection string `json:"connection,omitempty"` // connection type of test: WIRED, WIRELESS, BOTH + ActionInProgress string `json:"actionInProgress,omitempty"` // Indication of inprogress action + Frequency *ResponseSensorsCreateSensorTestTemplateResponseFrequency `json:"frequency,omitempty"` // + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold + NumNeighborApThreshold *int `json:"numNeighborAPThreshold,omitempty"` // Number of neighboring AP threshold + ScheduleInDays *int `json:"scheduleInDays,omitempty"` // Bit-wise value of scheduled test days + WLANs []string `json:"wlans,omitempty"` // WLANs list SSIDs *[]ResponseSensorsCreateSensorTestTemplateResponseSSIDs `json:"ssids,omitempty"` // - TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test Schedule Mode - ShowWlcUpgradeBanner *bool `json:"showWlcUpgradeBanner,omitempty"` // Show Wlc Upgrade Banner - RadioAsSensorRemoved *bool `json:"radioAsSensorRemoved,omitempty"` // Radio As Sensor Removed - EncryptionMode string `json:"encryptionMode,omitempty"` // Encryption Mode - RunNow string `json:"runNow,omitempty"` // Run Now - LocationInfoList *[]ResponseSensorsCreateSensorTestTemplateResponseLocationInfoList `json:"locationInfoList,omitempty"` // Location Info List - Schedule *ResponseSensorsCreateSensorTestTemplateResponseSchedule `json:"schedule,omitempty"` // Schedule - Tests *ResponseSensorsCreateSensorTestTemplateResponseTests `json:"tests,omitempty"` // Tests - Sensors *[]ResponseSensorsCreateSensorTestTemplateResponseSensors `json:"sensors,omitempty"` // Sensors + Profiles *[]ResponseSensorsCreateSensorTestTemplateResponseProfiles `json:"profiles,omitempty"` // + TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test schedule mode (ONDEMAND, DEDICATED, SCHEDULED, CONTINUOUS, RUNNOW) + ShowWlcUpgradeBanner *bool `json:"showWlcUpgradeBanner,omitempty"` // Show WLC upgrade banner + RadioAsSensorRemoved *bool `json:"radioAsSensorRemoved,omitempty"` // Radio as sensor removed + EncryptionMode string `json:"encryptionMode,omitempty"` // Encryption mode + RunNow string `json:"runNow,omitempty"` // Run now (YES, NO) + LocationInfoList *[]ResponseSensorsCreateSensorTestTemplateResponseLocationInfoList `json:"locationInfoList,omitempty"` // + Sensors *[]ResponseSensorsCreateSensorTestTemplateResponseSensors `json:"sensors,omitempty"` // ApCoverage *[]ResponseSensorsCreateSensorTestTemplateResponseApCoverage `json:"apCoverage,omitempty"` // - TestDurationEstimate *int `json:"testDurationEstimate,omitempty"` // Test Duration Estimate - TestTemplate *bool `json:"testTemplate,omitempty"` // Test Template - LegacyTestSuite *bool `json:"legacyTestSuite,omitempty"` // Legacy Test Suite - TenantID *ResponseSensorsCreateSensorTestTemplateResponseTenantID `json:"tenantId,omitempty"` // Tenant Id -} -type ResponseSensorsCreateSensorTestTemplateResponseLocation interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSiteHierarchy interface{} -type ResponseSensorsCreateSensorTestTemplateResponseFrequency interface{} -type ResponseSensorsCreateSensorTestTemplateResponseWLANs interface{} +} +type ResponseSensorsCreateSensorTestTemplateResponseFrequency struct { + Value *int `json:"value,omitempty"` // Value of the unit + Unit string `json:"unit,omitempty"` // Unit of the time value (NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS) +} type ResponseSensorsCreateSensorTestTemplateResponseSSIDs struct { - Bands *ResponseSensorsCreateSensorTestTemplateResponseSSIDsBands `json:"bands,omitempty"` // Bands - SSID string `json:"ssid,omitempty"` // Ssid - ProfileName string `json:"profileName,omitempty"` // Profile Name - AuthType string `json:"authType,omitempty"` // Auth Type - AuthTypeRcvd *ResponseSensorsCreateSensorTestTemplateResponseSSIDsAuthTypeRcvd `json:"authTypeRcvd,omitempty"` // Auth Type Rcvd - Psk string `json:"psk,omitempty"` // Psk - Username *ResponseSensorsCreateSensorTestTemplateResponseSSIDsUsername `json:"username,omitempty"` // Username - Password *ResponseSensorsCreateSensorTestTemplateResponseSSIDsPassword `json:"password,omitempty"` // Password - EapMethod *ResponseSensorsCreateSensorTestTemplateResponseSSIDsEapMethod `json:"eapMethod,omitempty"` // Eap Method - Scep *bool `json:"scep,omitempty"` // Scep - AuthProtocol *ResponseSensorsCreateSensorTestTemplateResponseSSIDsAuthProtocol `json:"authProtocol,omitempty"` // Auth Protocol - Certfilename *ResponseSensorsCreateSensorTestTemplateResponseSSIDsCertfilename `json:"certfilename,omitempty"` // Certfilename - Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certxferprotocol - Certstatus string `json:"certstatus,omitempty"` // Certstatus - Certpassphrase *ResponseSensorsCreateSensorTestTemplateResponseSSIDsCertpassphrase `json:"certpassphrase,omitempty"` // Certpassphrase - Certdownloadurl *ResponseSensorsCreateSensorTestTemplateResponseSSIDsCertdownloadurl `json:"certdownloadurl,omitempty"` // Certdownloadurl - NumAps *float64 `json:"numAps,omitempty"` // Num Aps - NumSensors *float64 `json:"numSensors,omitempty"` // Num Sensors - Layer3WebAuthsecurity *ResponseSensorsCreateSensorTestTemplateResponseSSIDsLayer3WebAuthsecurity `json:"layer3webAuthsecurity,omitempty"` // Layer3web Authsecurity - Layer3WebAuthuserName *ResponseSensorsCreateSensorTestTemplateResponseSSIDsLayer3WebAuthuserName `json:"layer3webAuthuserName,omitempty"` // Layer3web Authuser Name - Layer3WebAuthpassword *ResponseSensorsCreateSensorTestTemplateResponseSSIDsLayer3WebAuthpassword `json:"layer3webAuthpassword,omitempty"` // Layer3web Authpassword - ExtWebAuthVirtualIP *ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthVirtualIP `json:"extWebAuthVirtualIp,omitempty"` // Ext Web Auth Virtual Ip - Layer3WebAuthEmailAddress *ResponseSensorsCreateSensorTestTemplateResponseSSIDsLayer3WebAuthEmailAddress `json:"layer3webAuthEmailAddress,omitempty"` // Layer3web Auth Email Address - QosPolicy string `json:"qosPolicy,omitempty"` // Qos Policy - ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Ext Web Auth - WhiteList *bool `json:"whiteList,omitempty"` // White List - ExtWebAuthPortal *ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthPortal `json:"extWebAuthPortal,omitempty"` // Ext Web Auth Portal - ExtWebAuthAccessURL *ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthAccessURL `json:"extWebAuthAccessUrl,omitempty"` // Ext Web Auth Access Url - ExtWebAuthHTMLTag *[]ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // Ext Web Auth Html Tag - ThirdParty *ResponseSensorsCreateSensorTestTemplateResponseSSIDsThirdParty `json:"thirdParty,omitempty"` // - ID *float64 `json:"id,omitempty"` // Id - WLANID *float64 `json:"wlanId,omitempty"` // Wlan Id - Wlc *ResponseSensorsCreateSensorTestTemplateResponseSSIDsWlc `json:"wlc,omitempty"` // Wlc - ValidFrom *float64 `json:"validFrom,omitempty"` // Valid From - ValidTo *float64 `json:"validTo,omitempty"` // Valid To - Status string `json:"status,omitempty"` // Status - Tests *[]ResponseSensorsCreateSensorTestTemplateResponseSSIDsTests `json:"tests,omitempty"` // -} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsBands interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsAuthTypeRcvd interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsUsername interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsPassword interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsEapMethod interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsAuthProtocol interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsCertfilename interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsCertpassphrase interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsCertdownloadurl interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsLayer3WebAuthsecurity interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsLayer3WebAuthuserName interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsLayer3WebAuthpassword interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthVirtualIP interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsLayer3WebAuthEmailAddress interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthPortal interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthAccessURL interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag interface{} + Bands string `json:"bands,omitempty"` // WIFI bands: 2.4GHz or 5GHz + SSID string `json:"ssid,omitempty"` // The SSID string + ProfileName string `json:"profileName,omitempty"` // The SSID profile name string + NumAps *int `json:"numAps,omitempty"` // Number of APs in the test + NumSensors *int `json:"numSensors,omitempty"` // Number of Sensors in the test + Layer3WebAuthsecurity string `json:"layer3webAuthsecurity,omitempty"` // Layer 3 WEB Auth security + Layer3WebAuthuserName string `json:"layer3webAuthuserName,omitempty"` // Layer 3 WEB Auth user name + Layer3WebAuthpassword string `json:"layer3webAuthpassword,omitempty"` // Layer 3 WEB Auth password + Layer3WebAuthEmailAddress string `json:"layer3webAuthEmailAddress,omitempty"` // Layer 3 WEB Auth email address + ThirdParty *ResponseSensorsCreateSensorTestTemplateResponseSSIDsThirdParty `json:"thirdParty,omitempty"` // + ID *int `json:"id,omitempty"` // Identification number + WLANID *int `json:"wlanId,omitempty"` // WLAN ID + Wlc string `json:"wlc,omitempty"` // WLC IP addres + ValidFrom *int `json:"validFrom,omitempty"` // Valid From UTC timestamp + ValidTo *int `json:"validTo,omitempty"` // Valid To UTC timestamp + Status string `json:"status,omitempty"` // WLAN status: ENABLED or DISABLED + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server for onboarding SSID + ProxyPort string `json:"proxyPort,omitempty"` // Proxy server port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy server user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy server password + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EaP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]ResponseSensorsCreateSensorTestTemplateResponseSSIDsTests `json:"tests,omitempty"` // +} type ResponseSensorsCreateSensorTestTemplateResponseSSIDsThirdParty struct { - Selected *bool `json:"selected,omitempty"` // Selected + Selected *bool `json:"selected,omitempty"` // true: the SSID is third party +} +type ResponseSensorsCreateSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value } -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsWlc interface{} type ResponseSensorsCreateSensorTestTemplateResponseSSIDsTests struct { - Name string `json:"name,omitempty"` // Name - Config *[]ResponseSensorsCreateSensorTestTemplateResponseSSIDsTestsConfig `json:"config,omitempty"` // Config -} -type ResponseSensorsCreateSensorTestTemplateResponseSSIDsTestsConfig interface{} -type ResponseSensorsCreateSensorTestTemplateResponseLocationInfoList interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSchedule interface{} -type ResponseSensorsCreateSensorTestTemplateResponseTests interface{} -type ResponseSensorsCreateSensorTestTemplateResponseSensors interface{} + Name string `json:"name,omitempty"` // Name of the test + Config *[]ResponseSensorsCreateSensorTestTemplateResponseSSIDsTestsConfig `json:"config,omitempty"` // +} +type ResponseSensorsCreateSensorTestTemplateResponseSSIDsTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type ResponseSensorsCreateSensorTestTemplateResponseProfiles struct { + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EaP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]ResponseSensorsCreateSensorTestTemplateResponseProfilesExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]ResponseSensorsCreateSensorTestTemplateResponseProfilesTests `json:"tests,omitempty"` // + ProfileName string `json:"profileName,omitempty"` // Profile name + DeviceType string `json:"deviceType,omitempty"` // Device Type + VLAN string `json:"vlan,omitempty"` // VLAN + LocationVLANList *[]ResponseSensorsCreateSensorTestTemplateResponseProfilesLocationVLANList `json:"locationVlanList,omitempty"` // +} +type ResponseSensorsCreateSensorTestTemplateResponseProfilesExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value +} +type ResponseSensorsCreateSensorTestTemplateResponseProfilesTests struct { + Name string `json:"name,omitempty"` // Name of the test + Config *[]ResponseSensorsCreateSensorTestTemplateResponseProfilesTestsConfig `json:"config,omitempty"` // +} +type ResponseSensorsCreateSensorTestTemplateResponseProfilesTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type ResponseSensorsCreateSensorTestTemplateResponseProfilesLocationVLANList struct { + LocationID string `json:"locationId,omitempty"` // Site UUID + VLANs []string `json:"vlans,omitempty"` // Array of VLANs +} +type ResponseSensorsCreateSensorTestTemplateResponseLocationInfoList struct { + LocationID string `json:"locationId,omitempty"` // Site UUID + LocationType string `json:"locationType,omitempty"` // Site type + AllSensors *bool `json:"allSensors,omitempty"` // Use all sensors in the site for test + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site name hierarhy + MacAddressList []string `json:"macAddressList,omitempty"` // MAC addresses + ManagementVLAN string `json:"managementVlan,omitempty"` // Management VLAN + CustomManagementVLAN *bool `json:"customManagementVlan,omitempty"` // Custom Management VLAN +} +type ResponseSensorsCreateSensorTestTemplateResponseSensors struct { + Name string `json:"name,omitempty"` // Sensor name + MacAddress string `json:"macAddress,omitempty"` // MAC address + SwitchMac string `json:"switchMac,omitempty"` // Switch MAC address + SwitchUUID string `json:"switchUuid,omitempty"` // Switch device UUID + SwitchSerialNumber string `json:"switchSerialNumber,omitempty"` // Switch serial number + MarkedForUninstall *bool `json:"markedForUninstall,omitempty"` // Is marked for uninstall + IPAddress string `json:"ipAddress,omitempty"` // IP address + HostName string `json:"hostName,omitempty"` // Host name + WiredApplicationStatus string `json:"wiredApplicationStatus,omitempty"` // Wired application status + WiredApplicationMessage string `json:"wiredApplicationMessage,omitempty"` // Wired application message + Assigned *bool `json:"assigned,omitempty"` // Is assigned + Status string `json:"status,omitempty"` // Sensor device status: UP, DOWN, REBOOT + XorSensor *bool `json:"xorSensor,omitempty"` // Is XOR sensor + TargetAPs []string `json:"targetAPs,omitempty"` // Array of target APs + RunNow string `json:"runNow,omitempty"` // Run now: YES, NO + LocationID string `json:"locationId,omitempty"` // Site UUID + AllSensorAddition *bool `json:"allSensorAddition,omitempty"` // Is all sensor addition + ConfigUpdated string `json:"configUpdated,omitempty"` // Configuration updated: YES, NO + SensorType string `json:"sensorType,omitempty"` // Sensor type + TestMacAddresses *ResponseSensorsCreateSensorTestTemplateResponseSensorsTestMacAddresses `json:"testMacAddresses,omitempty"` // A string-string test MAC address + ID string `json:"id,omitempty"` // Sensor ID + ServicePolicy string `json:"servicePolicy,omitempty"` // Service policy + IPerfInfo *ResponseSensorsCreateSensorTestTemplateResponseSensorsIPerfInfo `json:"iPerfInfo,omitempty"` // A string-stringList iPerf information +} +type ResponseSensorsCreateSensorTestTemplateResponseSensorsTestMacAddresses interface{} +type ResponseSensorsCreateSensorTestTemplateResponseSensorsIPerfInfo interface{} type ResponseSensorsCreateSensorTestTemplateResponseApCoverage struct { - Bands string `json:"bands,omitempty"` // Bands - NumberOfApsToTest *int `json:"numberOfApsToTest,omitempty"` // Number Of Aps To Test - RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold + Bands string `json:"bands,omitempty"` // The WIFI bands + NumberOfApsToTest *int `json:"numberOfApsToTest,omitempty"` // Number of APs to test + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold } -type ResponseSensorsCreateSensorTestTemplateResponseTenantID interface{} type ResponseSensorsDeleteSensorTest struct { Version string `json:"version,omitempty"` // Version Response *ResponseSensorsDeleteSensorTestResponse `json:"response,omitempty"` // } type ResponseSensorsDeleteSensorTestResponse struct { - TemplateName string `json:"templateName,omitempty"` // Template Name - Status string `json:"status,omitempty"` // Status + TemplateName string `json:"templateName,omitempty"` // Test template name to be delete + Status string `json:"status,omitempty"` // Status of the DELETE action } type ResponseSensorsSensors struct { - Version string `json:"version,omitempty"` // Version + Version string `json:"version,omitempty"` // Version string of this API Response *[]ResponseSensorsSensorsResponse `json:"response,omitempty"` // } type ResponseSensorsSensorsResponse struct { - Name string `json:"name,omitempty"` // Name - Status string `json:"status,omitempty"` // Status - RadioMacAddress string `json:"radioMacAddress,omitempty"` // Radio Mac Address - EthernetMacAddress string `json:"ethernetMacAddress,omitempty"` // Ethernet Mac Address - Location string `json:"location,omitempty"` // Location - BackhaulType string `json:"backhaulType,omitempty"` // Backhaul Type - SerialNumber string `json:"serialNumber,omitempty"` // Serial Number - IPAddress string `json:"ipAddress,omitempty"` // Ip Address - Version string `json:"version,omitempty"` // Version - LastSeen *int `json:"lastSeen,omitempty"` // Last Seen - Type string `json:"type,omitempty"` // Type - SSHConfig *ResponseSensorsSensorsResponseSSHConfig `json:"sshConfig,omitempty"` // - IsLEDEnabled *bool `json:"isLEDEnabled,omitempty"` // Is L E D Enabled -} -type ResponseSensorsSensorsResponseSSHConfig struct { - SSHState string `json:"sshState,omitempty"` // Ssh State - SSHUserName string `json:"sshUserName,omitempty"` // Ssh User Name - SSHPassword string `json:"sshPassword,omitempty"` // Ssh Password - EnablePassword string `json:"enablePassword,omitempty"` // Enable Password + Name string `json:"name,omitempty"` // The sensor device name + Status string `json:"status,omitempty"` // Status of sensor device (REACHABLE, UNREACHABLE, DELETED, RUNNING, IDLE, UCLAIMED) + RadioMacAddress string `json:"radioMacAddress,omitempty"` // Sensor device's radio MAC address + EthernetMacAddress string `json:"ethernetMacAddress,omitempty"` // Sensor device's ethernet MAC address + Location string `json:"location,omitempty"` // Site name in hierarchy form + BackhaulType string `json:"backhaulType,omitempty"` // Backhall type: WIRED, WIRELESS + SerialNumber string `json:"serialNumber,omitempty"` // Serial number + IPAddress string `json:"ipAddress,omitempty"` // IP Address + Version string `json:"version,omitempty"` // Sensor version + LastSeen *int `json:"lastSeen,omitempty"` // Last seen timestamp + Type string `json:"type,omitempty"` // Type + SSH *ResponseSensorsSensorsResponseSSH `json:"ssh,omitempty"` // + Led *bool `json:"led,omitempty"` // Is LED Enabled +} +type ResponseSensorsSensorsResponseSSH struct { + SSHState string `json:"sshState,omitempty"` // SSH state + SSHUserName string `json:"sshUserName,omitempty"` // SSH user name + SSHPassword string `json:"sshPassword,omitempty"` // SSH password + EnablePassword string `json:"enablePassword,omitempty"` // Enable password } type ResponseSensorsDuplicateSensorTestTemplate struct { Version string `json:"version,omitempty"` // Version Response *ResponseSensorsDuplicateSensorTestTemplateResponse `json:"response,omitempty"` // } type ResponseSensorsDuplicateSensorTestTemplateResponse struct { - TypeID string `json:"_id,omitempty"` // Id - Name string `json:"name,omitempty"` // Name - Version *float64 `json:"version,omitempty"` // Version - ModelVersion *int `json:"modelVersion,omitempty"` // Model Version - StartTime *float64 `json:"startTime,omitempty"` // Start Time - LastModifiedTime *float64 `json:"lastModifiedTime,omitempty"` // Last Modified Time - NumAssociatedSensor *float64 `json:"numAssociatedSensor,omitempty"` // Num Associated Sensor - Location *ResponseSensorsDuplicateSensorTestTemplateResponseLocation `json:"location,omitempty"` // Location - SiteHierarchy *ResponseSensorsDuplicateSensorTestTemplateResponseSiteHierarchy `json:"siteHierarchy,omitempty"` // Site Hierarchy - Status string `json:"status,omitempty"` // Status - Connection string `json:"connection,omitempty"` // Connection - Frequency *ResponseSensorsDuplicateSensorTestTemplateResponseFrequency `json:"frequency,omitempty"` // Frequency - RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold - NumNeighborApThreshold *int `json:"numNeighborAPThreshold,omitempty"` // Num Neighbor A P Threshold - ScheduleInDays *float64 `json:"scheduleInDays,omitempty"` // Schedule In Days - WLANs *[]ResponseSensorsDuplicateSensorTestTemplateResponseWLANs `json:"wlans,omitempty"` // Wlans + Name string `json:"name,omitempty"` // The sensor test template name + TypeID string `json:"_id,omitempty"` // The sensor test template unique identifier + Version *int `json:"version,omitempty"` // The sensor test template version (must be 2) + ModelVersion *int `json:"modelVersion,omitempty"` // Test template object model version (must be 2) + StartTime *int `json:"startTime,omitempty"` // Start time + LastModifiedTime *int `json:"lastModifiedTime,omitempty"` // Last modify time + NumAssociatedSensor *int `json:"numAssociatedSensor,omitempty"` // Number of associated sensor + Location string `json:"location,omitempty"` // Location string + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site hierarchy + Status string `json:"status,omitempty"` // Status of the test (RUNNING, NOTRUNNING) + Connection string `json:"connection,omitempty"` // connection type of test: WIRED, WIRELESS, BOTH + ActionInProgress string `json:"actionInProgress,omitempty"` // Indication of inprogress action + Frequency *ResponseSensorsDuplicateSensorTestTemplateResponseFrequency `json:"frequency,omitempty"` // + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold + NumNeighborApThreshold *int `json:"numNeighborAPThreshold,omitempty"` // Number of neighboring AP threshold + ScheduleInDays *int `json:"scheduleInDays,omitempty"` // Bit-wise value of scheduled test days + WLANs []string `json:"wlans,omitempty"` // WLANs list SSIDs *[]ResponseSensorsDuplicateSensorTestTemplateResponseSSIDs `json:"ssids,omitempty"` // - TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test Schedule Mode - ShowWlcUpgradeBanner *bool `json:"showWlcUpgradeBanner,omitempty"` // Show Wlc Upgrade Banner - RadioAsSensorRemoved *bool `json:"radioAsSensorRemoved,omitempty"` // Radio As Sensor Removed - EncryptionMode string `json:"encryptionMode,omitempty"` // Encryption Mode - RunNow string `json:"runNow,omitempty"` // Run Now + Profiles *[]ResponseSensorsDuplicateSensorTestTemplateResponseProfiles `json:"profiles,omitempty"` // + TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test schedule mode (ONDEMAND, DEDICATED, SCHEDULED, CONTINUOUS, RUNNOW) + ShowWlcUpgradeBanner *bool `json:"showWlcUpgradeBanner,omitempty"` // Show WLC upgrade banner + RadioAsSensorRemoved *bool `json:"radioAsSensorRemoved,omitempty"` // Radio as sensor removed + EncryptionMode string `json:"encryptionMode,omitempty"` // Encryption mode + RunNow string `json:"runNow,omitempty"` // Run now (YES, NO) LocationInfoList *[]ResponseSensorsDuplicateSensorTestTemplateResponseLocationInfoList `json:"locationInfoList,omitempty"` // - Schedule *ResponseSensorsDuplicateSensorTestTemplateResponseSchedule `json:"schedule,omitempty"` // - Tests *ResponseSensorsDuplicateSensorTestTemplateResponseTests `json:"tests,omitempty"` // Tests - Sensors *[]ResponseSensorsDuplicateSensorTestTemplateResponseSensors `json:"sensors,omitempty"` // Sensors + Sensors *[]ResponseSensorsDuplicateSensorTestTemplateResponseSensors `json:"sensors,omitempty"` // ApCoverage *[]ResponseSensorsDuplicateSensorTestTemplateResponseApCoverage `json:"apCoverage,omitempty"` // - TestDurationEstimate *int `json:"testDurationEstimate,omitempty"` // Test Duration Estimate - TestTemplate *bool `json:"testTemplate,omitempty"` // Test Template - LegacyTestSuite *bool `json:"legacyTestSuite,omitempty"` // Legacy Test Suite - TenantID *ResponseSensorsDuplicateSensorTestTemplateResponseTenantID `json:"tenantId,omitempty"` // Tenant Id -} -type ResponseSensorsDuplicateSensorTestTemplateResponseLocation interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSiteHierarchy interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseFrequency interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseWLANs interface{} +} +type ResponseSensorsDuplicateSensorTestTemplateResponseFrequency struct { + Value *int `json:"value,omitempty"` // Value of the unit + Unit string `json:"unit,omitempty"` // Unit of the time value (NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS) +} type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDs struct { - Bands *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsBands `json:"bands,omitempty"` // Bands - SSID string `json:"ssid,omitempty"` // Ssid - ProfileName string `json:"profileName,omitempty"` // Profile Name - AuthType string `json:"authType,omitempty"` // Auth Type - AuthTypeRcvd *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsAuthTypeRcvd `json:"authTypeRcvd,omitempty"` // Auth Type Rcvd - Psk string `json:"psk,omitempty"` // Psk - Username *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsUsername `json:"username,omitempty"` // Username - Password *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsPassword `json:"password,omitempty"` // Password - EapMethod *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsEapMethod `json:"eapMethod,omitempty"` // Eap Method - Scep *bool `json:"scep,omitempty"` // Scep - AuthProtocol *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsAuthProtocol `json:"authProtocol,omitempty"` // Auth Protocol - Certfilename *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsCertfilename `json:"certfilename,omitempty"` // Certfilename - Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certxferprotocol - Certstatus string `json:"certstatus,omitempty"` // Certstatus - Certpassphrase *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsCertpassphrase `json:"certpassphrase,omitempty"` // Certpassphrase - Certdownloadurl *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsCertdownloadurl `json:"certdownloadurl,omitempty"` // Certdownloadurl - NumAps *float64 `json:"numAps,omitempty"` // Num Aps - NumSensors *float64 `json:"numSensors,omitempty"` // Num Sensors - Layer3WebAuthsecurity *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsLayer3WebAuthsecurity `json:"layer3webAuthsecurity,omitempty"` // Layer3web Authsecurity - Layer3WebAuthuserName *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsLayer3WebAuthuserName `json:"layer3webAuthuserName,omitempty"` // Layer3web Authuser Name - Layer3WebAuthpassword *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsLayer3WebAuthpassword `json:"layer3webAuthpassword,omitempty"` // Layer3web Authpassword - ExtWebAuthVirtualIP *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthVirtualIP `json:"extWebAuthVirtualIp,omitempty"` // Ext Web Auth Virtual Ip - Layer3WebAuthEmailAddress *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsLayer3WebAuthEmailAddress `json:"layer3webAuthEmailAddress,omitempty"` // Layer3web Auth Email Address - QosPolicy string `json:"qosPolicy,omitempty"` // Qos Policy - ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Ext Web Auth - WhiteList *bool `json:"whiteList,omitempty"` // White List - ExtWebAuthPortal *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthPortal `json:"extWebAuthPortal,omitempty"` // Ext Web Auth Portal - ExtWebAuthAccessURL *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthAccessURL `json:"extWebAuthAccessUrl,omitempty"` // Ext Web Auth Access Url - ExtWebAuthHTMLTag *[]ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // Ext Web Auth Html Tag - ThirdParty *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsThirdParty `json:"thirdParty,omitempty"` // - ID *float64 `json:"id,omitempty"` // Id - WLANID *float64 `json:"wlanId,omitempty"` // Wlan Id - Wlc *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsWlc `json:"wlc,omitempty"` // Wlc - ValidFrom *float64 `json:"validFrom,omitempty"` // Valid From - ValidTo *float64 `json:"validTo,omitempty"` // Valid To - Status string `json:"status,omitempty"` // Status - Tests *[]ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsTests `json:"tests,omitempty"` // -} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsBands interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsAuthTypeRcvd interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsUsername interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsPassword interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsEapMethod interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsAuthProtocol interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsCertfilename interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsCertpassphrase interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsCertdownloadurl interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsLayer3WebAuthsecurity interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsLayer3WebAuthuserName interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsLayer3WebAuthpassword interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthVirtualIP interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsLayer3WebAuthEmailAddress interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthPortal interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthAccessURL interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag interface{} + Bands string `json:"bands,omitempty"` // WIFI bands: 2.4GHz or 5GHz + SSID string `json:"ssid,omitempty"` // The SSID string + ProfileName string `json:"profileName,omitempty"` // The SSID profile name string + NumAps *int `json:"numAps,omitempty"` // Number of APs in the test + NumSensors *int `json:"numSensors,omitempty"` // Number of Sensors in the test + Layer3WebAuthsecurity string `json:"layer3webAuthsecurity,omitempty"` // Layer 3 WEB Auth security + Layer3WebAuthuserName string `json:"layer3webAuthuserName,omitempty"` // Layer 3 WEB Auth user name + Layer3WebAuthpassword string `json:"layer3webAuthpassword,omitempty"` // Layer 3 WEB Auth password + Layer3WebAuthEmailAddress string `json:"layer3webAuthEmailAddress,omitempty"` // Layer 3 WEB Auth email address + ThirdParty *ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsThirdParty `json:"thirdParty,omitempty"` // + ID *int `json:"id,omitempty"` // Identification number + WLANID *int `json:"wlanId,omitempty"` // WLAN ID + Wlc string `json:"wlc,omitempty"` // WLC IP addres + ValidFrom *int `json:"validFrom,omitempty"` // Valid From UTC timestamp + ValidTo *int `json:"validTo,omitempty"` // Valid To UTC timestamp + Status string `json:"status,omitempty"` // WLAN status: ENABLED or DISABLED + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server for onboarding SSID + ProxyPort string `json:"proxyPort,omitempty"` // Proxy server port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy server user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy server password + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EaP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsTests `json:"tests,omitempty"` // +} type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsThirdParty struct { - Selected *bool `json:"selected,omitempty"` // Selected + Selected *bool `json:"selected,omitempty"` // true: the SSID is third party +} +type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value } -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsWlc interface{} type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsTests struct { - Name string `json:"name,omitempty"` // Name - Config *[]ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsTestsConfig `json:"config,omitempty"` // Config + Name string `json:"name,omitempty"` // Name of the test + Config *[]ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsTestsConfig `json:"config,omitempty"` // +} +type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type ResponseSensorsDuplicateSensorTestTemplateResponseProfiles struct { + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EaP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]ResponseSensorsDuplicateSensorTestTemplateResponseProfilesExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]ResponseSensorsDuplicateSensorTestTemplateResponseProfilesTests `json:"tests,omitempty"` // + ProfileName string `json:"profileName,omitempty"` // Profile name + DeviceType string `json:"deviceType,omitempty"` // Device Type + VLAN string `json:"vlan,omitempty"` // VLAN + LocationVLANList *[]ResponseSensorsDuplicateSensorTestTemplateResponseProfilesLocationVLANList `json:"locationVlanList,omitempty"` // +} +type ResponseSensorsDuplicateSensorTestTemplateResponseProfilesExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value +} +type ResponseSensorsDuplicateSensorTestTemplateResponseProfilesTests struct { + Name string `json:"name,omitempty"` // Name of the test + Config *[]ResponseSensorsDuplicateSensorTestTemplateResponseProfilesTestsConfig `json:"config,omitempty"` // +} +type ResponseSensorsDuplicateSensorTestTemplateResponseProfilesTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type ResponseSensorsDuplicateSensorTestTemplateResponseProfilesLocationVLANList struct { + LocationID string `json:"locationId,omitempty"` // Site UUID + VLANs []string `json:"vlans,omitempty"` // Array of VLANs } -type ResponseSensorsDuplicateSensorTestTemplateResponseSSIDsTestsConfig interface{} type ResponseSensorsDuplicateSensorTestTemplateResponseLocationInfoList struct { - LocationID string `json:"locationId,omitempty"` // Location Id - LocationType string `json:"locationType,omitempty"` // Location Type - AllSensors *bool `json:"allSensors,omitempty"` // All Sensors - SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy - MacAddressList *[]ResponseSensorsDuplicateSensorTestTemplateResponseLocationInfoListMacAddressList `json:"macAddressList,omitempty"` // Mac Address List -} -type ResponseSensorsDuplicateSensorTestTemplateResponseLocationInfoListMacAddressList interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSchedule struct { - TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test Schedule Mode - ScheduleRange *[]ResponseSensorsDuplicateSensorTestTemplateResponseScheduleScheduleRange `json:"scheduleRange,omitempty"` // - StartTime *float64 `json:"startTime,omitempty"` // Start Time - Frequency *ResponseSensorsDuplicateSensorTestTemplateResponseScheduleFrequency `json:"frequency,omitempty"` // -} -type ResponseSensorsDuplicateSensorTestTemplateResponseScheduleScheduleRange struct { - TimeRange *[]ResponseSensorsDuplicateSensorTestTemplateResponseScheduleScheduleRangeTimeRange `json:"timeRange,omitempty"` // - Day string `json:"day,omitempty"` // Day -} -type ResponseSensorsDuplicateSensorTestTemplateResponseScheduleScheduleRangeTimeRange struct { - From string `json:"from,omitempty"` // From - To string `json:"to,omitempty"` // To - Frequency *ResponseSensorsDuplicateSensorTestTemplateResponseScheduleScheduleRangeTimeRangeFrequency `json:"frequency,omitempty"` // -} -type ResponseSensorsDuplicateSensorTestTemplateResponseScheduleScheduleRangeTimeRangeFrequency struct { - Value *int `json:"value,omitempty"` // Value - Unit string `json:"unit,omitempty"` // Unit -} -type ResponseSensorsDuplicateSensorTestTemplateResponseScheduleFrequency struct { - Value *int `json:"value,omitempty"` // Value - Unit string `json:"unit,omitempty"` // Unit -} -type ResponseSensorsDuplicateSensorTestTemplateResponseTests interface{} -type ResponseSensorsDuplicateSensorTestTemplateResponseSensors interface{} + LocationID string `json:"locationId,omitempty"` // Site UUID + LocationType string `json:"locationType,omitempty"` // Site type + AllSensors *bool `json:"allSensors,omitempty"` // Use all sensors in the site for test + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site name hierarhy + MacAddressList []string `json:"macAddressList,omitempty"` // MAC addresses + ManagementVLAN string `json:"managementVlan,omitempty"` // Management VLAN + CustomManagementVLAN *bool `json:"customManagementVlan,omitempty"` // Custom Management VLAN +} +type ResponseSensorsDuplicateSensorTestTemplateResponseSensors struct { + Name string `json:"name,omitempty"` // Sensor name + MacAddress string `json:"macAddress,omitempty"` // MAC address + SwitchMac string `json:"switchMac,omitempty"` // Switch MAC address + SwitchUUID string `json:"switchUuid,omitempty"` // Switch device UUID + SwitchSerialNumber string `json:"switchSerialNumber,omitempty"` // Switch serial number + MarkedForUninstall *bool `json:"markedForUninstall,omitempty"` // Is marked for uninstall + IPAddress string `json:"ipAddress,omitempty"` // IP address + HostName string `json:"hostName,omitempty"` // Host name + WiredApplicationStatus string `json:"wiredApplicationStatus,omitempty"` // Wired application status + WiredApplicationMessage string `json:"wiredApplicationMessage,omitempty"` // Wired application message + Assigned *bool `json:"assigned,omitempty"` // Is assigned + Status string `json:"status,omitempty"` // Sensor device status: UP, DOWN, REBOOT + XorSensor *bool `json:"xorSensor,omitempty"` // Is XOR sensor + TargetAPs []string `json:"targetAPs,omitempty"` // Array of target APs + RunNow string `json:"runNow,omitempty"` // Run now: YES, NO + LocationID string `json:"locationId,omitempty"` // Site UUID + AllSensorAddition *bool `json:"allSensorAddition,omitempty"` // Is all sensor addition + ConfigUpdated string `json:"configUpdated,omitempty"` // Configuration updated: YES, NO + SensorType string `json:"sensorType,omitempty"` // Sensor type + TestMacAddresses *ResponseSensorsDuplicateSensorTestTemplateResponseSensorsTestMacAddresses `json:"testMacAddresses,omitempty"` // A string-string test MAC address + ID string `json:"id,omitempty"` // Sensor ID + ServicePolicy string `json:"servicePolicy,omitempty"` // Service policy + IPerfInfo *ResponseSensorsDuplicateSensorTestTemplateResponseSensorsIPerfInfo `json:"iPerfInfo,omitempty"` // A string-stringList iPerf information +} +type ResponseSensorsDuplicateSensorTestTemplateResponseSensorsTestMacAddresses interface{} +type ResponseSensorsDuplicateSensorTestTemplateResponseSensorsIPerfInfo interface{} type ResponseSensorsDuplicateSensorTestTemplateResponseApCoverage struct { - Bands string `json:"bands,omitempty"` // Bands - NumberOfApsToTest *int `json:"numberOfApsToTest,omitempty"` // Number Of Aps To Test - RssiThreshold *int `json:"rssiThreshold,omitempty"` // Rssi Threshold + Bands string `json:"bands,omitempty"` // The WIFI bands + NumberOfApsToTest *int `json:"numberOfApsToTest,omitempty"` // Number of APs to test + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold } -type ResponseSensorsDuplicateSensorTestTemplateResponseTenantID interface{} type RequestSensorsEditSensorTestTemplate struct { - TemplateName string `json:"templateName,omitempty"` // Template Name - LocationInfoList *[]RequestSensorsEditSensorTestTemplateLocationInfoList `json:"locationInfoList,omitempty"` // - Schedule *RequestSensorsEditSensorTestTemplateSchedule `json:"schedule,omitempty"` // + TemplateName string `json:"templateName,omitempty"` // The test template name that is to be edited + Name string `json:"name,omitempty"` // The sensor test template name, which is the same as in 'templateName' + TypeID string `json:"_id,omitempty"` // The sensor test template unique identifier, generated at test creation time + Version *int `json:"version,omitempty"` // The sensor test template version (must be 2) + ModelVersion *int `json:"modelVersion,omitempty"` // Test template object model version (must be 2) + StartTime *int `json:"startTime,omitempty"` // Start time + LastModifiedTime *int `json:"lastModifiedTime,omitempty"` // Last modify time + NumAssociatedSensor *int `json:"numAssociatedSensor,omitempty"` // Number of associated sensor + Location string `json:"location,omitempty"` // Location string + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site hierarchy + Status string `json:"status,omitempty"` // Status of the test (RUNNING, NOTRUNNING) + Connection string `json:"connection,omitempty"` // connection type of test: WIRED, WIRELESS, BOTH + ActionInProgress string `json:"actionInProgress,omitempty"` // Indication of inprogress action + Frequency *RequestSensorsEditSensorTestTemplateFrequency `json:"frequency,omitempty"` // + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold + NumNeighborApThreshold *int `json:"numNeighborAPThreshold,omitempty"` // Number of neighboring AP threshold + ScheduleInDays *int `json:"scheduleInDays,omitempty"` // Bit-wise value of scheduled test days + WLANs []string `json:"wlans,omitempty"` // WLANs list + SSIDs *[]RequestSensorsEditSensorTestTemplateSSIDs `json:"ssids,omitempty"` // + Profiles *[]RequestSensorsEditSensorTestTemplateProfiles `json:"profiles,omitempty"` // + TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test schedule mode (ONDEMAND, DEDICATED, SCHEDULED, CONTINUOUS, RUNNOW) + ShowWlcUpgradeBanner *bool `json:"showWlcUpgradeBanner,omitempty"` // Show WLC upgrade banner + RadioAsSensorRemoved *bool `json:"radioAsSensorRemoved,omitempty"` // Radio as sensor removed + EncryptionMode string `json:"encryptionMode,omitempty"` // Encryption mode + RunNow string `json:"runNow,omitempty"` // Run now (YES, NO) + LocationInfoList *[]RequestSensorsEditSensorTestTemplateLocationInfoList `json:"locationInfoList,omitempty"` // + Sensors *[]RequestSensorsEditSensorTestTemplateSensors `json:"sensors,omitempty"` // + ApCoverage *[]RequestSensorsEditSensorTestTemplateApCoverage `json:"apCoverage,omitempty"` // } -type RequestSensorsEditSensorTestTemplateLocationInfoList struct { - LocationID string `json:"locationId,omitempty"` // Location Id - LocationType string `json:"locationType,omitempty"` // Location Type - SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy - AllSensors *bool `json:"allSensors,omitempty"` // All Sensors +type RequestSensorsEditSensorTestTemplateFrequency struct { + Value *int `json:"value,omitempty"` // Value of the unit + Unit string `json:"unit,omitempty"` // Unit of the time value (NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS) +} +type RequestSensorsEditSensorTestTemplateSSIDs struct { + Bands string `json:"bands,omitempty"` // WIFI bands: 2.4GHz or 5GHz + SSID string `json:"ssid,omitempty"` // The SSID string + ProfileName string `json:"profileName,omitempty"` // The SSID profile name string + NumAps *int `json:"numAps,omitempty"` // Number of APs in the test + NumSensors *int `json:"numSensors,omitempty"` // Number of Sensors in the test + Layer3WebAuthsecurity string `json:"layer3webAuthsecurity,omitempty"` // Layer 3 WEB Auth security + Layer3WebAuthuserName string `json:"layer3webAuthuserName,omitempty"` // Layer 3 WEB Auth user name + Layer3WebAuthpassword string `json:"layer3webAuthpassword,omitempty"` // Layer 3 WEB Auth password + Layer3WebAuthEmailAddress string `json:"layer3webAuthEmailAddress,omitempty"` // Layer 3 WEB Auth email address + ThirdParty *RequestSensorsEditSensorTestTemplateSSIDsThirdParty `json:"thirdParty,omitempty"` // + ID *int `json:"id,omitempty"` // Identification number + WLANID *int `json:"wlanId,omitempty"` // WLAN ID + Wlc string `json:"wlc,omitempty"` // WLC IP addres + ValidFrom *int `json:"validFrom,omitempty"` // Valid From UTC timestamp + ValidTo *int `json:"validTo,omitempty"` // Valid To UTC timestamp + Status string `json:"status,omitempty"` // WLAN status: ENABLED or DISABLED + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server for onboarding SSID + ProxyPort string `json:"proxyPort,omitempty"` // Proxy server port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy server user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy server password + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EAP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]RequestSensorsEditSensorTestTemplateSSIDsExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]RequestSensorsEditSensorTestTemplateSSIDsTests `json:"tests,omitempty"` // +} +type RequestSensorsEditSensorTestTemplateSSIDsThirdParty struct { + Selected *bool `json:"selected,omitempty"` // true: the SSID is third party +} +type RequestSensorsEditSensorTestTemplateSSIDsExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value +} +type RequestSensorsEditSensorTestTemplateSSIDsTests struct { + Name string `json:"name,omitempty"` // Name of the test + Config *[]RequestSensorsEditSensorTestTemplateSSIDsTestsConfig `json:"config,omitempty"` // } -type RequestSensorsEditSensorTestTemplateSchedule struct { - TestScheduleMode string `json:"testScheduleMode,omitempty"` // Test Schedule Mode - Frequency *RequestSensorsEditSensorTestTemplateScheduleFrequency `json:"frequency,omitempty"` // - ScheduleRange *[]RequestSensorsEditSensorTestTemplateScheduleScheduleRange `json:"scheduleRange,omitempty"` // +type RequestSensorsEditSensorTestTemplateSSIDsTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt } -type RequestSensorsEditSensorTestTemplateScheduleFrequency struct { - Unit string `json:"unit,omitempty"` // Unit - Value *int `json:"value,omitempty"` // Value +type RequestSensorsEditSensorTestTemplateProfiles struct { + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EAP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]RequestSensorsEditSensorTestTemplateProfilesExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]RequestSensorsEditSensorTestTemplateProfilesTests `json:"tests,omitempty"` // + ProfileName string `json:"profileName,omitempty"` // Profile name + DeviceType string `json:"deviceType,omitempty"` // Device Type + VLAN string `json:"vlan,omitempty"` // VLAN + LocationVLANList *[]RequestSensorsEditSensorTestTemplateProfilesLocationVLANList `json:"locationVlanList,omitempty"` // } -type RequestSensorsEditSensorTestTemplateScheduleScheduleRange struct { - Day string `json:"day,omitempty"` // Day - TimeRange *[]RequestSensorsEditSensorTestTemplateScheduleScheduleRangeTimeRange `json:"timeRange,omitempty"` // +type RequestSensorsEditSensorTestTemplateProfilesExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value } -type RequestSensorsEditSensorTestTemplateScheduleScheduleRangeTimeRange struct { - From string `json:"from,omitempty"` // From - To string `json:"to,omitempty"` // To - Frequency *RequestSensorsEditSensorTestTemplateScheduleScheduleRangeTimeRangeFrequency `json:"frequency,omitempty"` // +type RequestSensorsEditSensorTestTemplateProfilesTests struct { + Name string `json:"name,omitempty"` // Name of the test + Config *[]RequestSensorsEditSensorTestTemplateProfilesTestsConfig `json:"config,omitempty"` // } -type RequestSensorsEditSensorTestTemplateScheduleScheduleRangeTimeRangeFrequency struct { - Unit string `json:"unit,omitempty"` // Unit - Value *int `json:"value,omitempty"` // Value +type RequestSensorsEditSensorTestTemplateProfilesTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type RequestSensorsEditSensorTestTemplateProfilesLocationVLANList struct { + LocationID string `json:"locationId,omitempty"` // Site UUID + VLANs []string `json:"vlans,omitempty"` // Array of VLANs +} +type RequestSensorsEditSensorTestTemplateLocationInfoList struct { + LocationID string `json:"locationId,omitempty"` // Site UUID + LocationType string `json:"locationType,omitempty"` // Site type + AllSensors *bool `json:"allSensors,omitempty"` // Use all sensors in the site for test + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site name hierarhy + MacAddressList []string `json:"macAddressList,omitempty"` // MAC addresses + ManagementVLAN string `json:"managementVlan,omitempty"` // Management VLAN + CustomManagementVLAN *bool `json:"customManagementVlan,omitempty"` // Custom Management VLAN +} +type RequestSensorsEditSensorTestTemplateSensors struct { + Name string `json:"name,omitempty"` // Sensor name + MacAddress string `json:"macAddress,omitempty"` // MAC address + SwitchMac string `json:"switchMac,omitempty"` // Switch MAC address + SwitchUUID string `json:"switchUuid,omitempty"` // Switch device UUID + SwitchSerialNumber string `json:"switchSerialNumber,omitempty"` // Switch serial number + MarkedForUninstall *bool `json:"markedForUninstall,omitempty"` // Is marked for uninstall + IPAddress string `json:"ipAddress,omitempty"` // IP address + HostName string `json:"hostName,omitempty"` // Host name + WiredApplicationStatus string `json:"wiredApplicationStatus,omitempty"` // Wired application status + WiredApplicationMessage string `json:"wiredApplicationMessage,omitempty"` // Wired application message + Assigned *bool `json:"assigned,omitempty"` // Is assigned + Status string `json:"status,omitempty"` // Sensor device status: UP, DOWN, REBOOT + XorSensor *bool `json:"xorSensor,omitempty"` // Is XOR sensor + TargetAPs []string `json:"targetAPs,omitempty"` // Array of target APs + RunNow string `json:"runNow,omitempty"` // Run now: YES, NO + LocationID string `json:"locationId,omitempty"` // Site UUID + AllSensorAddition *bool `json:"allSensorAddition,omitempty"` // Is all sensor addition + ConfigUpdated string `json:"configUpdated,omitempty"` // Configuration updated: YES, NO + SensorType string `json:"sensorType,omitempty"` // Sensor type + TestMacAddresses *RequestSensorsEditSensorTestTemplateSensorsTestMacAddresses `json:"testMacAddresses,omitempty"` // A string-string test MAC address + ID string `json:"id,omitempty"` // Sensor ID + ServicePolicy string `json:"servicePolicy,omitempty"` // Service policy + IPerfInfo *RequestSensorsEditSensorTestTemplateSensorsIPerfInfo `json:"iPerfInfo,omitempty"` // A string-stringList iPerf information +} +type RequestSensorsEditSensorTestTemplateSensorsTestMacAddresses interface{} +type RequestSensorsEditSensorTestTemplateSensorsIPerfInfo interface{} +type RequestSensorsEditSensorTestTemplateApCoverage struct { + Bands string `json:"bands,omitempty"` // The WIFI bands + NumberOfApsToTest *int `json:"numberOfApsToTest,omitempty"` // Number of APs to test + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold } type RequestSensorsCreateSensorTestTemplate struct { - SSIDs *[]RequestSensorsCreateSensorTestTemplateSSIDs `json:"ssids,omitempty"` // - Name string `json:"name,omitempty"` // Name - Connection string `json:"connection,omitempty"` // Connection - ApCoverage *[]RequestSensorsCreateSensorTestTemplateApCoverage `json:"apCoverage,omitempty"` // - ModelVersion *int `json:"modelVersion,omitempty"` // Model Version + Name string `json:"name,omitempty"` // The sensor test template name + Version *int `json:"version,omitempty"` // The sensor test template version (must be 2) + ModelVersion *int `json:"modelVersion,omitempty"` // Test template object model version (must be 2) + Connection string `json:"connection,omitempty"` // connection type of test: WIRED, WIRELESS, BOTH + SSIDs *[]RequestSensorsCreateSensorTestTemplateSSIDs `json:"ssids,omitempty"` // + Profiles *[]RequestSensorsCreateSensorTestTemplateProfiles `json:"profiles,omitempty"` // + EncryptionMode string `json:"encryptionMode,omitempty"` // Encryption mode + RunNow string `json:"runNow,omitempty"` // Run now (YES, NO) + LocationInfoList *[]RequestSensorsCreateSensorTestTemplateLocationInfoList `json:"locationInfoList,omitempty"` // + Sensors *[]RequestSensorsCreateSensorTestTemplateSensors `json:"sensors,omitempty"` // + ApCoverage *[]RequestSensorsCreateSensorTestTemplateApCoverage `json:"apCoverage,omitempty"` // } type RequestSensorsCreateSensorTestTemplateSSIDs struct { - SSID string `json:"ssid,omitempty"` // Ssid - ProfileName string `json:"profileName,omitempty"` // Profile Name - AuthType string `json:"authType,omitempty"` // Auth Type - ThirdParty *RequestSensorsCreateSensorTestTemplateSSIDsThirdParty `json:"thirdParty,omitempty"` // - Psk string `json:"psk,omitempty"` // Psk - Tests *[]RequestSensorsCreateSensorTestTemplateSSIDsTests `json:"tests,omitempty"` // - Categories []string `json:"categories,omitempty"` // Categories - QosPolicy string `json:"qosPolicy,omitempty"` // Qos Policy + Bands string `json:"bands,omitempty"` // WIFI bands: 2.4GHz or 5GHz + SSID string `json:"ssid,omitempty"` // The SSID string + ProfileName string `json:"profileName,omitempty"` // The SSID profile name string + Layer3WebAuthsecurity string `json:"layer3webAuthsecurity,omitempty"` // Layer 3 WEB Auth security + Layer3WebAuthuserName string `json:"layer3webAuthuserName,omitempty"` // Layer 3 WEB Auth user name + Layer3WebAuthpassword string `json:"layer3webAuthpassword,omitempty"` // Layer 3 WEB Auth password + Layer3WebAuthEmailAddress string `json:"layer3webAuthEmailAddress,omitempty"` // Layer 3 WEB Auth email address + ThirdParty *RequestSensorsCreateSensorTestTemplateSSIDsThirdParty `json:"thirdParty,omitempty"` // + WLANID *int `json:"wlanId,omitempty"` // WLAN ID + Wlc string `json:"wlc,omitempty"` // WLC IP addres + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server for onboarding SSID + ProxyPort string `json:"proxyPort,omitempty"` // Proxy server port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy server user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy server password + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EaP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]RequestSensorsCreateSensorTestTemplateSSIDsExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]RequestSensorsCreateSensorTestTemplateSSIDsTests `json:"tests,omitempty"` // } type RequestSensorsCreateSensorTestTemplateSSIDsThirdParty struct { - Selected *bool `json:"selected,omitempty"` // Selected + Selected *bool `json:"selected,omitempty"` // true: the SSID is third party +} +type RequestSensorsCreateSensorTestTemplateSSIDsExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value } type RequestSensorsCreateSensorTestTemplateSSIDsTests struct { - Name string `json:"name,omitempty"` // Name - Config *[]RequestSensorsCreateSensorTestTemplateSSIDsTestsConfig `json:"config,omitempty"` // Config + Name string `json:"name,omitempty"` // Name of the test + Config *[]RequestSensorsCreateSensorTestTemplateSSIDsTestsConfig `json:"config,omitempty"` // +} +type RequestSensorsCreateSensorTestTemplateSSIDsTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type RequestSensorsCreateSensorTestTemplateProfiles struct { + AuthType string `json:"authType,omitempty"` // Authentication type: OPEN, WPA2_PSK, WPA2_EaP, WEB_AUTH, MAB, DOT1X, OTHER + Psk string `json:"psk,omitempty"` // Password of SSID when passwordType is ASCII + Username string `json:"username,omitempty"` // User name string for onboarding SSID + Password string `json:"password,omitempty"` // Password string for onboarding SSID + PasswordType string `json:"passwordType,omitempty"` // SSID password type: ASCII or HEX + EapMethod string `json:"eapMethod,omitempty"` // WPA2_EAP methods: EAP-FAST, PEAP-MSCHAPv2, EAP-TLS, PEAP-TLS, EAP-TTLS-MSCHAPv2, EAP-TTLS-PAP, EAP-TTLS-CHAP, EAP-FAST-GTC, EAP-PEAP-GTC + Scep *bool `json:"scep,omitempty"` // Secure certificate enrollment protocol: true or false or null for not applicable + AuthProtocol string `json:"authProtocol,omitempty"` // Auth protocol + Certfilename string `json:"certfilename,omitempty"` // Auth certificate file name + Certxferprotocol string `json:"certxferprotocol,omitempty"` // Certificate transfering protocol: HTTP or HTTPS + Certstatus string `json:"certstatus,omitempty"` // Certificate status: INACTIVE or ACTIVE + Certpassphrase string `json:"certpassphrase,omitempty"` // Certificate password phrase + Certdownloadurl string `json:"certdownloadurl,omitempty"` // Certificate download URL + ExtWebAuthVirtualIP string `json:"extWebAuthVirtualIp,omitempty"` // External WEB Auth virtual IP + ExtWebAuth *bool `json:"extWebAuth,omitempty"` // Indication of using external WEB Auth + WhiteList *bool `json:"whiteList,omitempty"` // Indication of being on allowed list + ExtWebAuthPortal string `json:"extWebAuthPortal,omitempty"` // External authentication portal + ExtWebAuthAccessURL string `json:"extWebAuthAccessUrl,omitempty"` // External WEB Auth access URL + ExtWebAuthHTMLTag *[]RequestSensorsCreateSensorTestTemplateProfilesExtWebAuthHTMLTag `json:"extWebAuthHtmlTag,omitempty"` // + QosPolicy string `json:"qosPolicy,omitempty"` // QoS policy: PlATINUM, GOLD, SILVER, BRONZE + Tests *[]RequestSensorsCreateSensorTestTemplateProfilesTests `json:"tests,omitempty"` // + ProfileName string `json:"profileName,omitempty"` // Profile name + DeviceType string `json:"deviceType,omitempty"` // Device Type + VLAN string `json:"vlan,omitempty"` // VLAN + LocationVLANList *[]RequestSensorsCreateSensorTestTemplateProfilesLocationVLANList `json:"locationVlanList,omitempty"` // +} +type RequestSensorsCreateSensorTestTemplateProfilesExtWebAuthHTMLTag struct { + Label string `json:"label,omitempty"` // Label + Tag string `json:"tag,omitempty"` // Tag + Value string `json:"value,omitempty"` // Value +} +type RequestSensorsCreateSensorTestTemplateProfilesTests struct { + Name string `json:"name,omitempty"` // Name of the test + Config *[]RequestSensorsCreateSensorTestTemplateProfilesTestsConfig `json:"config,omitempty"` // +} +type RequestSensorsCreateSensorTestTemplateProfilesTestsConfig struct { + Domains []string `json:"domains,omitempty"` // DNS domain name + Server string `json:"server,omitempty"` // Ping, file transfer, mail, radius, ssh, or telnet server + UserName string `json:"userName,omitempty"` // User name + Password string `json:"password,omitempty"` // Password + URL string `json:"url,omitempty"` // URL + Port *int `json:"port,omitempty"` // Radius or WEB server port + Protocol string `json:"protocol,omitempty"` // Protocol used by file transfer, IPerf, mail server, and radius (TCP, UDP, FTP, POP3, IMAP, CHAP, PAP) + Servers []string `json:"servers,omitempty"` // IPerf server list + Direction string `json:"direction,omitempty"` // IPerf direction (UPLOAD, DOWNLOAD, BOTH) + StartPort *int `json:"startPort,omitempty"` // IPerf start port + EndPort *int `json:"endPort,omitempty"` // IPerf end port + UDPBandwidth *int `json:"udpBandwidth,omitempty"` // IPerf UDP bandwidth + ProbeType string `json:"probeType,omitempty"` // Probe type + NumPackets *int `json:"numPackets,omitempty"` // Number of packets + PathToDownload string `json:"pathToDownload,omitempty"` // File path for file transfer + TransferType string `json:"transferType,omitempty"` // File transfer type (UPLOAD, DOWNLOAD, BOTH) + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret + NdtServer string `json:"ndtServer,omitempty"` // NDT server + NdtServerPort string `json:"ndtServerPort,omitempty"` // NDT server port + NdtServerPath string `json:"ndtServerPath,omitempty"` // NDT server path + UplinkTest *bool `json:"uplinkTest,omitempty"` // Uplink test + DownlinkTest *bool `json:"downlinkTest,omitempty"` // Downlink test + ProxyServer string `json:"proxyServer,omitempty"` // Proxy server + ProxyPort string `json:"proxyPort,omitempty"` // Proxy port + ProxyUserName string `json:"proxyUserName,omitempty"` // Proxy user name + ProxyPassword string `json:"proxyPassword,omitempty"` // Proxy password + UserNamePrompt string `json:"userNamePrompt,omitempty"` // User name prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password prompt + ExitCommand string `json:"exitCommand,omitempty"` // Exit command + FinalPrompt string `json:"finalPrompt,omitempty"` // Final prompt +} +type RequestSensorsCreateSensorTestTemplateProfilesLocationVLANList struct { + LocationID string `json:"locationId,omitempty"` // Site UUID + VLANs []string `json:"vlans,omitempty"` // Array of VLANs +} +type RequestSensorsCreateSensorTestTemplateLocationInfoList struct { + LocationID string `json:"locationId,omitempty"` // Site UUID + LocationType string `json:"locationType,omitempty"` // Site type + AllSensors *bool `json:"allSensors,omitempty"` // Use all sensors in the site for test + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site name hierarhy + MacAddressList []string `json:"macAddressList,omitempty"` // MAC addresses + ManagementVLAN string `json:"managementVlan,omitempty"` // Management VLAN + CustomManagementVLAN *bool `json:"customManagementVlan,omitempty"` // Custom Management VLAN +} +type RequestSensorsCreateSensorTestTemplateSensors struct { + Name string `json:"name,omitempty"` // Sensor name + MacAddress string `json:"macAddress,omitempty"` // MAC address + SwitchMac string `json:"switchMac,omitempty"` // Switch MAC address + SwitchUUID string `json:"switchUuid,omitempty"` // Switch device UUID + SwitchSerialNumber string `json:"switchSerialNumber,omitempty"` // Switch serial number + MarkedForUninstall *bool `json:"markedForUninstall,omitempty"` // Is marked for uninstall + IPAddress string `json:"ipAddress,omitempty"` // IP address + HostName string `json:"hostName,omitempty"` // Host name + WiredApplicationStatus string `json:"wiredApplicationStatus,omitempty"` // Wired application status + WiredApplicationMessage string `json:"wiredApplicationMessage,omitempty"` // Wired application message + Assigned *bool `json:"assigned,omitempty"` // Is assigned + Status string `json:"status,omitempty"` // Sensor device status: UP, DOWN, REBOOT + XorSensor *bool `json:"xorSensor,omitempty"` // Is XOR sensor + TargetAPs []string `json:"targetAPs,omitempty"` // Array of target APs + RunNow string `json:"runNow,omitempty"` // Run now: YES, NO + LocationID string `json:"locationId,omitempty"` // Site UUID + AllSensorAddition *bool `json:"allSensorAddition,omitempty"` // Is all sensor addition + ConfigUpdated string `json:"configUpdated,omitempty"` // Configuration updated: YES, NO + SensorType string `json:"sensorType,omitempty"` // Sensor type + TestMacAddresses *RequestSensorsCreateSensorTestTemplateSensorsTestMacAddresses `json:"testMacAddresses,omitempty"` // A string-string test MAC address + ID string `json:"id,omitempty"` // Sensor ID + ServicePolicy string `json:"servicePolicy,omitempty"` // Service policy + IPerfInfo *RequestSensorsCreateSensorTestTemplateSensorsIPerfInfo `json:"iPerfInfo,omitempty"` // A string-stringList iPerf information } -type RequestSensorsCreateSensorTestTemplateSSIDsTestsConfig interface{} +type RequestSensorsCreateSensorTestTemplateSensorsTestMacAddresses interface{} +type RequestSensorsCreateSensorTestTemplateSensorsIPerfInfo interface{} type RequestSensorsCreateSensorTestTemplateApCoverage struct { - Bands string `json:"bands,omitempty"` // Bands - NumberOfApsToTest string `json:"numberOfApsToTest,omitempty"` // Number Of Aps To Test - RssiThreshold string `json:"rssiThreshold,omitempty"` // Rssi Threshold + Bands string `json:"bands,omitempty"` // The WIFI bands + NumberOfApsToTest *int `json:"numberOfApsToTest,omitempty"` // Number of APs to test + RssiThreshold *int `json:"rssiThreshold,omitempty"` // RSSI threshold } type RequestSensorsRunNowSensorTest struct { TemplateName string `json:"templateName,omitempty"` // Template Name } type RequestSensorsDuplicateSensorTestTemplate struct { - TemplateName string `json:"templateName,omitempty"` // Template Name - NewTemplateName string `json:"newTemplateName,omitempty"` // New Template Name + TemplateName string `json:"templateName,omitempty"` // Source test template name + NewTemplateName string `json:"newTemplateName,omitempty"` // Destination test template name } //Sensors Sensors - 71a1-2bb7-4569-9cc5 @@ -532,7 +1216,7 @@ type RequestSensorsDuplicateSensorTestTemplate struct { @param SensorsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!sensors +Documentation Link: https://developer.cisco.com/docs/dna-center/#!sensors-v1 */ func (s *SensorsService) Sensors(SensorsQueryParams *SensorsQueryParams) (*ResponseSensorsSensors, *resty.Response, error) { path := "/dna/intent/api/v1/sensor" @@ -568,7 +1252,7 @@ func (s *SensorsService) Sensors(SensorsQueryParams *SensorsQueryParams) (*Respo -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-sensor-test-template +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-sensor-test-template-v1 */ func (s *SensorsService) CreateSensorTestTemplate(requestSensorsCreateSensorTestTemplate *RequestSensorsCreateSensorTestTemplate) (*ResponseSensorsCreateSensorTestTemplate, *resty.Response, error) { path := "/dna/intent/api/v1/sensor" @@ -703,7 +1387,7 @@ func (s *SensorsService) DuplicateSensorTestTemplate(requestSensorsDuplicateSens @param DeleteSensorTestQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-sensor-test +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-sensor-test-v1 */ func (s *SensorsService) DeleteSensorTest(DeleteSensorTestQueryParams *DeleteSensorTestQueryParams) (*ResponseSensorsDeleteSensorTest, *resty.Response, error) { //DeleteSensorTestQueryParams *DeleteSensorTestQueryParams diff --git a/sdk/site_design.go b/sdk/site_design.go index faf5730..402fbb1 100644 --- a/sdk/site_design.go +++ b/sdk/site_design.go @@ -11,69 +11,240 @@ import ( type SiteDesignService service -type ProvisionNfvHeaderParams struct { - Runsync string `url:"__runsync,omitempty"` //Expects type bool. Enable this parameter to execute the API and return a response synchronously - Timeout string `url:"__timeout,omitempty"` //Expects type float64. During synchronous execution, this defines the maximum time to wait for a response, before the API execution is terminated - Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. Persist bapi sync response -} -type GetDeviceDetailsByIPQueryParams struct { - DeviceIP string `url:"deviceIp,omitempty"` //Device to which the provisioning detail has to be retrieved -} -type NfvProvisioningDetailHeaderParams struct { - Runsync string `url:"__runsync,omitempty"` //Expects type bool. Enable this parameter to execute the API and return a response synchronously - Runsynctimeout string `url:"__runsynctimeout,omitempty"` //Expects type float64. During synchronous execution, this defines the maximum time to wait for a response, before the API execution is terminated - Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. Persist bapi sync response -} -type UpdateNfvProfileQueryParams struct { - Name string `url:"name,omitempty"` //Name of the profile to be updated -} -type GetNfvProfileQueryParams struct { - Offset int `url:"offset,omitempty"` //offset/starting row - Limit int `url:"limit,omitempty"` //Number of profile to be retrieved - Name string `url:"name,omitempty"` //Name of network profile to be retrieved -} -type DeleteNfvProfileQueryParams struct { - Name string `url:"name,omitempty"` //Nameof nfv network profile to delete. -} - -type ResponseSiteDesignProvisionNfv struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url - Message string `json:"message,omitempty"` // Message -} -type ResponseSiteDesignGetDeviceDetailsByIP struct { - ProvisionDetails *ResponseSiteDesignGetDeviceDetailsByIPProvisionDetails `json:"provisionDetails,omitempty"` // -} -type ResponseSiteDesignGetDeviceDetailsByIPProvisionDetails struct { - StartTime string `json:"startTime,omitempty"` // Start Time - EndTime string `json:"endTime,omitempty"` // End Time - Duration string `json:"duration,omitempty"` // Duration - StatusMessage string `json:"statusMessage,omitempty"` // Status Message - Status string `json:"status,omitempty"` // Status - TaskNodes *[]ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodes `json:"taskNodes,omitempty"` // - Topology string `json:"topology,omitempty"` // Topology - BeginStep string `json:"beginStep,omitempty"` // Begin Step -} -type ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodes struct { - StartTime string `json:"startTime,omitempty"` // Start Time - EndTime string `json:"endTime,omitempty"` // End Time - Duration string `json:"duration,omitempty"` // Duration - Status string `json:"status,omitempty"` // Status - NextTask string `json:"nextTask,omitempty"` // Next Task - Name string `json:"name,omitempty"` // Name - Target string `json:"target,omitempty"` // Target - StatusMessage string `json:"statusMessage,omitempty"` // Status Message - Payload string `json:"payload,omitempty"` // Payload - ProvisionedNames *ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodesProvisionedNames `json:"provisionedNames,omitempty"` // Provisioned Names - ErrorPayload *ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodesErrorPayload `json:"errorPayload,omitempty"` // Error Payload - ParentTask *ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodesParentTask `json:"parentTask,omitempty"` // Parent Task - CliTemplateUserMessageDTO *ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodesCliTemplateUserMessageDTO `json:"cliTemplateUserMessageDTO,omitempty"` // Cli Template User Message D T O - StepRan string `json:"stepRan,omitempty"` // Step Ran -} -type ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodesProvisionedNames interface{} -type ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodesErrorPayload interface{} -type ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodesParentTask interface{} -type ResponseSiteDesignGetDeviceDetailsByIPProvisionDetailsTaskNodesCliTemplateUserMessageDTO interface{} +type GetSiteAssignedNetworkDevicesQueryParams struct { + SiteID string `url:"siteId,omitempty"` //Site Id. It must be area Id or building Id or floor Id. + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. +} +type GetSiteAssignedNetworkDevicesCountQueryParams struct { + SiteID string `url:"siteId,omitempty"` //Site Id. It must be area Id or building Id or floor Id. +} +type GetSiteNotAssignedNetworkDevicesQueryParams struct { + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. +} +type RetrievesTheListOfNetworkProfilesForSitesQueryParams struct { + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. + SortBy string `url:"sortBy,omitempty"` //A property within the response to sort by. + Order string `url:"order,omitempty"` //Whether ascending or descending order should be used to sort the response. + Type string `url:"type,omitempty"` //Filter responses to only include profiles of a given type +} +type RetrievesTheCountOfNetworkProfilesForSitesQueryParams struct { + Type string `url:"type,omitempty"` //Filter the response to only count profiles of a given type +} +type RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToQueryParams struct { + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. +} +type UnassignsANetworkProfileForSitesFromMultipleSitesQueryParams struct { + SiteID string `url:"siteId,omitempty"` //The `id` of the site, retrievable from `GET /intent/api/v1/sites` +} +type GetSitesQueryParams struct { + Name string `url:"name,omitempty"` //Site name. + NameHierarchy string `url:"nameHierarchy,omitempty"` //Site name hierarchy. + Type string `url:"type,omitempty"` //Site type. + UnitsOfMeasure string `url:"_unitsOfMeasure,omitempty"` //Floor units of measure + Offset int `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit int `url:"limit,omitempty"` //The number of records to show for this page. +} +type GetSitesCountQueryParams struct { + Name string `url:"name,omitempty"` //Site name. +} +type RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssignedQueryParams struct { + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. +} +type GetsAFloorV2QueryParams struct { + UnitsOfMeasure string `url:"_unitsOfMeasure,omitempty"` //Floor units of measure +} + +type ResponseSiteDesignCreatesAnArea struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignCreatesAnAreaResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignCreatesAnAreaResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignUpdatesAnArea struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignUpdatesAnAreaResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignUpdatesAnAreaResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignDeletesAnArea struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignDeletesAnAreaResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignDeletesAnAreaResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignGetsAnArea struct { + Response *ResponseSiteDesignGetsAnAreaResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseSiteDesignGetsAnAreaResponse struct { + ID string `json:"id,omitempty"` // Aread Id. Read only. + Name string `json:"name,omitempty"` // Area name + NameHierarchy string `json:"nameHierarchy,omitempty"` // Area hierarchical name. Read only. + ParentID string `json:"parentId,omitempty"` // Parent Id + Type string `json:"type,omitempty"` // Site Type. +} +type ResponseSiteDesignAssignNetworkDevicesToASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignAssignNetworkDevicesToASiteResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignAssignNetworkDevicesToASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignGetSiteAssignedNetworkDevices struct { + Response *[]ResponseSiteDesignGetSiteAssignedNetworkDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseSiteDesignGetSiteAssignedNetworkDevicesResponse struct { + DeviceID string `json:"deviceId,omitempty"` // Site assigned network device Id. + SiteID string `json:"siteId,omitempty"` // Site Id where device has been assigned. + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Site name hierarchy + SiteType string `json:"siteType,omitempty"` // Type of the site where device has been assigned. +} +type ResponseSiteDesignGetSiteAssignedNetworkDevicesCount struct { + Response *ResponseSiteDesignGetSiteAssignedNetworkDevicesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseSiteDesignGetSiteAssignedNetworkDevicesCountResponse struct { + Count *int `json:"count,omitempty"` // The total number of records related to the resource +} +type ResponseSiteDesignGetDeviceControllabilitySettings struct { + Response *ResponseSiteDesignGetDeviceControllabilitySettingsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseSiteDesignGetDeviceControllabilitySettingsResponse struct { + AutocorrectTelemetryConfig *bool `json:"autocorrectTelemetryConfig,omitempty"` // If it is true, autocorrect telemetry config is enabled. If it is false, autocorrect telemetry config is disabled. The autocorrect telemetry config feature is supported only when device controllability is enabled. + DeviceControllability *bool `json:"deviceControllability,omitempty"` // If it is true, device controllability is enabled. If it is false, device controllability is disabled. +} +type ResponseSiteDesignUpdateDeviceControllabilitySettings struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignUpdateDeviceControllabilitySettingsResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignUpdateDeviceControllabilitySettingsResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignGetSiteNotAssignedNetworkDevices struct { + Response *ResponseSiteDesignGetSiteNotAssignedNetworkDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseSiteDesignGetSiteNotAssignedNetworkDevicesResponse struct { + DeviceIDs []string `json:"deviceIds,omitempty"` // Network device Ids. +} +type ResponseSiteDesignGetSiteNotAssignedNetworkDevicesCount struct { + Response *ResponseSiteDesignGetSiteNotAssignedNetworkDevicesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseSiteDesignGetSiteNotAssignedNetworkDevicesCountResponse struct { + Count *int `json:"count,omitempty"` // The total number of records related to the resource +} +type ResponseSiteDesignUnassignNetworkDevicesFromSites struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignUnassignNetworkDevicesFromSitesResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignUnassignNetworkDevicesFromSitesResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignGetSiteAssignedNetworkDevice struct { + Response *ResponseSiteDesignGetSiteAssignedNetworkDeviceResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseSiteDesignGetSiteAssignedNetworkDeviceResponse struct { + DeviceID string `json:"deviceId,omitempty"` // Site assigned network device Id. + SiteID string `json:"siteId,omitempty"` // Site Id where device has been assigned. + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // Site name hierarchy + SiteType string `json:"siteType,omitempty"` // Type of the site where device has been assigned. +} +type ResponseSiteDesignRetrievesTheListOfNetworkProfilesForSites struct { + Response *[]ResponseSiteDesignRetrievesTheListOfNetworkProfilesForSitesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSiteDesignRetrievesTheListOfNetworkProfilesForSitesResponse struct { + ID string `json:"id,omitempty"` // The ID of this network profile. + Name string `json:"name,omitempty"` // The name of the network profile. + Type string `json:"type,omitempty"` // Type +} +type ResponseSiteDesignRetrievesTheCountOfNetworkProfilesForSites struct { + Response *ResponseSiteDesignRetrievesTheCountOfNetworkProfilesForSitesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSiteDesignRetrievesTheCountOfNetworkProfilesForSitesResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseSiteDesignDeletesANetworkProfileForSites struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignDeletesANetworkProfileForSitesResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignDeletesANetworkProfileForSitesResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignRetrieveANetworkProfileForSitesByID struct { + Response *ResponseSiteDesignRetrieveANetworkProfileForSitesByIDResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignRetrieveANetworkProfileForSitesByIDResponse struct { + ID string `json:"id,omitempty"` // The ID of this network profile. + Name string `json:"name,omitempty"` // The name of the network profile. + Type string `json:"type,omitempty"` // Type +} +type ResponseSiteDesignAssignANetworkProfileForSitesToTheGivenSite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignAssignANetworkProfileForSitesToTheGivenSiteResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignAssignANetworkProfileForSitesToTheGivenSiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignRetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo struct { + Response *[]ResponseSiteDesignRetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSiteDesignRetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToResponse struct { + ID string `json:"id,omitempty"` // Id +} +type ResponseSiteDesignAssignANetworkProfileForSitesToAListOfSites struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignAssignANetworkProfileForSitesToAListOfSitesResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignAssignANetworkProfileForSitesToAListOfSitesResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignUnassignsANetworkProfileForSitesFromMultipleSites struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignUnassignsANetworkProfileForSitesFromMultipleSitesResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignUnassignsANetworkProfileForSitesFromMultipleSitesResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignRetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo struct { + Response *ResponseSiteDesignRetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSiteDesignRetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseSiteDesignUnassignsANetworkProfileForSitesFromASite struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignUnassignsANetworkProfileForSitesFromASiteResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignUnassignsANetworkProfileForSitesFromASiteResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} type ResponseSiteDesignAssociate struct { Version string `json:"version,omitempty"` // Version Response *ResponseSiteDesignAssociateResponse `json:"response,omitempty"` // @@ -90,358 +261,1148 @@ type ResponseSiteDesignDisassociateResponse struct { TaskID string `json:"taskId,omitempty"` // Task Id URL string `json:"url,omitempty"` // Url } -type ResponseSiteDesignNfvProvisioningDetail struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url - Message string `json:"message,omitempty"` // Message -} -type ResponseSiteDesignCreateNfvProfile struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url - Message string `json:"message,omitempty"` // Message -} -type ResponseSiteDesignUpdateNfvProfile struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url - Message string `json:"message,omitempty"` // Message -} -type ResponseSiteDesignGetNfvProfile struct { - Response *[]ResponseSiteDesignGetNfvProfileResponse `json:"response,omitempty"` // -} -type ResponseSiteDesignGetNfvProfileResponse struct { - ProfileName string `json:"profileName,omitempty"` // Name of the profile to create NFV profile( eg: Nfvis_profile) - ID string `json:"id,omitempty"` // Id of nfv created nfv profile - Device *[]ResponseSiteDesignGetNfvProfileResponseDevice `json:"device,omitempty"` // -} -type ResponseSiteDesignGetNfvProfileResponseDevice struct { - DeviceType string `json:"deviceType,omitempty"` // Name of the device used in creating nfv profile(eg: Cisco 5400 Enterprise Network Compute System) - DeviceTag string `json:"deviceTag,omitempty"` // Device Tag name(eg: dev1) - ServiceProviderProfile *[]ResponseSiteDesignGetNfvProfileResponseDeviceServiceProviderProfile `json:"serviceProviderProfile,omitempty"` // - DirectInternetAccessForFirewall *bool `json:"directInternetAccessForFirewall,omitempty"` // Direct internet access value should be boolean (eg: false) - Services *[]ResponseSiteDesignGetNfvProfileResponseDeviceServices `json:"services,omitempty"` // - CustomNetworks *[]ResponseSiteDesignGetNfvProfileResponseDeviceCustomNetworks `json:"customNetworks,omitempty"` // - VLANForL2 *[]ResponseSiteDesignGetNfvProfileResponseDeviceVLANForL2 `json:"vlanForL2,omitempty"` // - CustomTemplate *[]ResponseSiteDesignGetNfvProfileResponseDeviceCustomTemplate `json:"customTemplate,omitempty"` // -} -type ResponseSiteDesignGetNfvProfileResponseDeviceServiceProviderProfile struct { - LinkType string `json:"linkType,omitempty"` // Name of connection type(eg: GigabitEthernet) - Connect *bool `json:"connect,omitempty"` // Connection of service provider and device value should be boolean (eg: true) - ConnectDefaultGatewayOnWan *bool `json:"connectDefaultGatewayOnWan,omitempty"` // Default gateway connect value as boolean (eg: true) - ServiceProvider string `json:"serviceProvider,omitempty"` // Name of the service provider(eg: Airtel) -} -type ResponseSiteDesignGetNfvProfileResponseDeviceServices struct { - ServiceType string `json:"serviceType,omitempty"` // Service type (eg: ISRV) - ProfileType string `json:"profileType,omitempty"` // Profile type of service (eg: ISRv-mini) - ServiceName string `json:"serviceName,omitempty"` // Name of service (eg: router-1) - ImageName string `json:"imageName,omitempty"` // Service image name (eg: isrv-universalk9.16.12.01a.tar.gz) - VNicMapping *[]ResponseSiteDesignGetNfvProfileResponseDeviceServicesVnicMapping `json:"vNicMapping,omitempty"` // - FirewallMode string `json:"firewallMode,omitempty"` // Mode of firewall (eg: routed, transparent) -} -type ResponseSiteDesignGetNfvProfileResponseDeviceServicesVnicMapping struct { - NetworkType string `json:"networkType,omitempty"` // Type of connection (eg: wan, lan or internal) - AssignIPAddressToNetwork *bool `json:"assignIpAddressToNetwork,omitempty"` // Assign ip address to network (eg: true) -} -type ResponseSiteDesignGetNfvProfileResponseDeviceCustomNetworks struct { - NetworkName string `json:"networkName,omitempty"` // name of custom network (eg: cust-1) - ServicesToConnect *[]ResponseSiteDesignGetNfvProfileResponseDeviceCustomNetworksServicesToConnect `json:"servicesToConnect,omitempty"` // - ConnectionType string `json:"connectionType,omitempty"` // Type of network connection from custom network (eg: lan) - VLANMode string `json:"vlanMode,omitempty"` // Vlan network mode (eg Access or Trunk) - VLANID string `json:"vlanId,omitempty"` // Vlan id for the custom network(eg: 4000) -} -type ResponseSiteDesignGetNfvProfileResponseDeviceCustomNetworksServicesToConnect struct { - ServiceName string `json:"serviceName,omitempty"` // Name of service to be connected to the custom network (eg: router-1) -} -type ResponseSiteDesignGetNfvProfileResponseDeviceVLANForL2 struct { - VLANType string `json:"vlanType,omitempty"` // Vlan type(eg. Access or Trunk) - VLANID string `json:"vlanId,omitempty"` // Vlan id(eg.4018) - VLANDescription string `json:"vlanDescription,omitempty"` // Vlan description(eg. Access 4018) -} -type ResponseSiteDesignGetNfvProfileResponseDeviceCustomTemplate struct { - DeviceType string `json:"deviceType,omitempty"` // Type of the device(eg: Cisco 5400 Enterprise Network Compute System) - Template string `json:"template,omitempty"` // Name of the template(eg NFVIS template) - TemplateType string `json:"templateType,omitempty"` // Name of the template to which template is associated (eg: Cloud DayN Templates) -} -type ResponseSiteDesignDeleteNfvProfile struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url - Message string `json:"message,omitempty"` // Message -} -type RequestSiteDesignProvisionNfv struct { - SiteProfile *[]RequestSiteDesignProvisionNfvSiteProfile `json:"siteProfile,omitempty"` // - Provisioning *[]RequestSiteDesignProvisionNfvProvisioning `json:"provisioning,omitempty"` // -} -type RequestSiteDesignProvisionNfvSiteProfile struct { - SiteProfileName string `json:"siteProfileName,omitempty"` // Name of the profile to create site profile profile( eg: profile-1) - Device *[]RequestSiteDesignProvisionNfvSiteProfileDevice `json:"device,omitempty"` // -} -type RequestSiteDesignProvisionNfvSiteProfileDevice struct { - DeviceType string `json:"deviceType,omitempty"` // Name of the device used in creating nfv profile(eg: ENCS5400) - TagName string `json:"tagName,omitempty"` // Device Tag name(eg: dev1) - ServiceProviders *[]RequestSiteDesignProvisionNfvSiteProfileDeviceServiceProviders `json:"serviceProviders,omitempty"` // - Dia *bool `json:"dia,omitempty"` // Direct internet access value should be boolean (eg: false) - Services *[]RequestSiteDesignProvisionNfvSiteProfileDeviceServices `json:"services,omitempty"` // - CustomServices *[]RequestSiteDesignProvisionNfvSiteProfileDeviceCustomServices `json:"customServices,omitempty"` // - CustomNetworks *[]RequestSiteDesignProvisionNfvSiteProfileDeviceCustomNetworks `json:"customNetworks,omitempty"` // - VLAN *[]RequestSiteDesignProvisionNfvSiteProfileDeviceVLAN `json:"vlan,omitempty"` // - CustomTemplate *[]RequestSiteDesignProvisionNfvSiteProfileDeviceCustomTemplate `json:"customTemplate,omitempty"` // -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceServiceProviders struct { - ServiceProvider string `json:"serviceProvider,omitempty"` // Name of the service provider(eg: Airtel) - LinkType string `json:"linkType,omitempty"` // Name of connection type(eg: GigabitEthernet) - Connect *bool `json:"connect,omitempty"` // Connection of service provider and device value should be boolean (eg: true) - DefaultGateway *bool `json:"defaultGateway,omitempty"` // Default gateway connect value as boolean (eg: true) -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceServices struct { - Type string `json:"type,omitempty"` // Service type (eg: ISRV) - Profile string `json:"profile,omitempty"` // Profile type of service (eg: ISRv-mini) - Mode string `json:"mode,omitempty"` // Mode of firewall (eg: routed, transparent) - Name string `json:"name,omitempty"` // Name of the service (eg: isrv) - ImageName string `json:"imageName,omitempty"` // Name of image (eg: isrv-universalk9.16.06.02.tar.gz) - Topology *RequestSiteDesignProvisionNfvSiteProfileDeviceServicesTopology `json:"topology,omitempty"` // -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceServicesTopology struct { - Type string `json:"type,omitempty"` // Type of connection (eg: wan, lan or internal) - Name string `json:"name,omitempty"` // Name of connection (eg: wan-net) - AssignIP string `json:"assignIp,omitempty"` // Assign ip address to network (eg: true) -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceCustomServices struct { - Name string `json:"name,omitempty"` // Name of custom service (eg: LINUX-1) - ApplicationType string `json:"applicationType,omitempty"` // Application type of custom service (eg: LINUX) - Profile string `json:"profile,omitempty"` // Profile type of service (eg: rhel7-medium) - Topology *RequestSiteDesignProvisionNfvSiteProfileDeviceCustomServicesTopology `json:"topology,omitempty"` // - ImageName string `json:"imageName,omitempty"` // Image name of custom service (eg: redhat7.tar.gz.tar.gz) -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceCustomServicesTopology struct { - Type string `json:"type,omitempty"` // Type of connection from custom service (eg: wan, lan or internal) - Name string `json:"name,omitempty"` // Name of connection from custom service(eg: wan-net) - AssignIP string `json:"assignIp,omitempty"` // Assign ip to network (eg: true) -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceCustomNetworks struct { - Name string `json:"name,omitempty"` // Name of custom network (eg: cust-1) - ServicesToConnect *[]RequestSiteDesignProvisionNfvSiteProfileDeviceCustomNetworksServicesToConnect `json:"servicesToConnect,omitempty"` // - ConnectionType string `json:"connectionType,omitempty"` // Type of network connection from custom network (eg: lan) - NetworkMode string `json:"networkMode,omitempty"` // Network mode (eg Access or Trunk) - VLAN string `json:"vlan,omitempty"` // Vlan id for the custom network(eg: 4000) -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceCustomNetworksServicesToConnect struct { - Service string `json:"service,omitempty"` // Name of service to be connected to the custom network (eg: router-1) -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceVLAN struct { - Type string `json:"type,omitempty"` // Vlan type(eg. Access or Trunk) - ID string `json:"id,omitempty"` // Vlan id(eg.4018) -} -type RequestSiteDesignProvisionNfvSiteProfileDeviceCustomTemplate struct { - DeviceType string `json:"deviceType,omitempty"` // Type of the device(eg: NFVIS) - Template string `json:"template,omitempty"` // Name of the template(eg NFVIS template) -} -type RequestSiteDesignProvisionNfvProvisioning struct { - Site *RequestSiteDesignProvisionNfvProvisioningSite `json:"site,omitempty"` // - Device *[]RequestSiteDesignProvisionNfvProvisioningDevice `json:"device,omitempty"` // -} -type RequestSiteDesignProvisionNfvProvisioningSite struct { - SiteProfileName string `json:"siteProfileName,omitempty"` // Name of site profile to be provision with device - Area *RequestSiteDesignProvisionNfvProvisioningSiteArea `json:"area,omitempty"` // - Building *RequestSiteDesignProvisionNfvProvisioningSiteBuilding `json:"building,omitempty"` // - Floor *RequestSiteDesignProvisionNfvProvisioningSiteFloor `json:"floor,omitempty"` // -} -type RequestSiteDesignProvisionNfvProvisioningSiteArea struct { - Name string `json:"name,omitempty"` // Name of the area (eg: Area1) - ParentName string `json:"parentName,omitempty"` // Parent name of the area to be created -} -type RequestSiteDesignProvisionNfvProvisioningSiteBuilding struct { - Name string `json:"name,omitempty"` // Name of the building (eg: building1) - Address string `json:"address,omitempty"` // Address of the building to be created - Latitude *float64 `json:"latitude,omitempty"` // Latitude coordinate of the building (eg:37.338) - Longitude *float64 `json:"longitude,omitempty"` // Longitude coordinate of the building (eg:-121.832) - ParentName string `json:"parentName,omitempty"` // Address of the building to be created -} -type RequestSiteDesignProvisionNfvProvisioningSiteFloor struct { - Name string `json:"name,omitempty"` // Name of the floor (eg:floor-1) - ParentName string `json:"parentName,omitempty"` // Parent name of the floor to be created - RfModel string `json:"rfModel,omitempty"` // Type of floor (eg: Cubes And Walled Offices) - Width *float64 `json:"width,omitempty"` // Width of the floor (eg:100) - Length *float64 `json:"length,omitempty"` // Length of the floor (eg: 100) - Height *float64 `json:"height,omitempty"` // Height of the floor (eg: 15) -} -type RequestSiteDesignProvisionNfvProvisioningDevice struct { - IP string `json:"ip,omitempty"` // IP address of the device (eg: 172.20.126.90) - DeviceSerialNumber string `json:"deviceSerialNumber,omitempty"` // Serial number of device (eg: FGL210710QY) - TagName string `json:"tagName,omitempty"` // Name of device tag (eg: dev1) - ServiceProviders *[]RequestSiteDesignProvisionNfvProvisioningDeviceServiceProviders `json:"serviceProviders,omitempty"` // - Services *[]RequestSiteDesignProvisionNfvProvisioningDeviceServices `json:"services,omitempty"` // - VLAN *[]RequestSiteDesignProvisionNfvProvisioningDeviceVLAN `json:"vlan,omitempty"` // - SubPools *[]RequestSiteDesignProvisionNfvProvisioningDeviceSubPools `json:"subPools,omitempty"` // - CustomNetworks *[]RequestSiteDesignProvisionNfvProvisioningDeviceCustomNetworks `json:"customNetworks,omitempty"` // - TemplateParam *RequestSiteDesignProvisionNfvProvisioningDeviceTemplateParam `json:"templateParam,omitempty"` // -} -type RequestSiteDesignProvisionNfvProvisioningDeviceServiceProviders struct { - ServiceProvider string `json:"serviceProvider,omitempty"` // Name of the service provider (eg: Airtel) - WanInterface *RequestSiteDesignProvisionNfvProvisioningDeviceServiceProvidersWanInterface `json:"wanInterface,omitempty"` // -} -type RequestSiteDesignProvisionNfvProvisioningDeviceServiceProvidersWanInterface struct { - IPAddress string `json:"ipAddress,omitempty"` // IP address (eg: 175.175.190.205) - InterfaceName string `json:"interfaceName,omitempty"` // Name of the interface (eg: GE0-0) - Subnetmask string `json:"subnetmask,omitempty"` // Subnet mask (eg: 255.255.255.0) - Bandwidth string `json:"bandwidth,omitempty"` // Bandwidth limit (eg: 100) - Gateway string `json:"gateway,omitempty"` // Gateway (eg: 175.175.190.1) -} -type RequestSiteDesignProvisionNfvProvisioningDeviceServices struct { - Type string `json:"type,omitempty"` // Type of service (eg: ISR) - Mode string `json:"mode,omitempty"` // Mode of firewall (eg: transparent) - SystemIP string `json:"systemIp,omitempty"` // System IP - CentralManagerIP string `json:"centralManagerIP,omitempty"` // WAAS Package needs to be installed to populate Central Manager IP automatically. - CentralRegistrationKey string `json:"centralRegistrationKey,omitempty"` // Central registration key - CommonKey string `json:"commonKey,omitempty"` // Common key - AdminPasswordHash string `json:"adminPasswordHash,omitempty"` // Admin password hash - Disk string `json:"disk,omitempty"` // Name of disk type (eg: internal) -} -type RequestSiteDesignProvisionNfvProvisioningDeviceVLAN struct { - Type string `json:"type,omitempty"` // Vlan type(eg. Access or Trunk) - ID string `json:"id,omitempty"` // Vlan id(e: .4018) - Interfaces string `json:"interfaces,omitempty"` // Interface (eg: GigabitEathernet1/0) - Network string `json:"network,omitempty"` // Network name to connect (eg: lan-net) -} -type RequestSiteDesignProvisionNfvProvisioningDeviceSubPools struct { - Type string `json:"type,omitempty"` // Tyep of ip sub pool (eg: Lan) - Name string `json:"name,omitempty"` // Name of the ip sub pool (eg; Lan-65) - IPSubnet string `json:"ipSubnet,omitempty"` // IP pool cidir (eg: 175.175.140.0) - Gateway string `json:"gateway,omitempty"` // IP address for gate way (eg: 175.175.140.1) - ParentPoolName string `json:"parentPoolName,omitempty"` // Name of parent pool (global pool name) -} -type RequestSiteDesignProvisionNfvProvisioningDeviceCustomNetworks struct { - Name string `json:"name,omitempty"` // Name of custom network (eg: cust-1) - Port string `json:"port,omitempty"` // Port for custom network (eg: 443) - IPAddressPool string `json:"ipAddressPool,omitempty"` // IP address pool of sub pool (eg: 175.175.140.1) -} -type RequestSiteDesignProvisionNfvProvisioningDeviceTemplateParam struct { - Nfvis *RequestSiteDesignProvisionNfvProvisioningDeviceTemplateParamNfvis `json:"nfvis,omitempty"` // - Asav *RequestSiteDesignProvisionNfvProvisioningDeviceTemplateParamAsav `json:"asav,omitempty"` // -} -type RequestSiteDesignProvisionNfvProvisioningDeviceTemplateParamNfvis struct { - Var1 string `json:"var1,omitempty"` // Variable for nfvis template (eg: "test":"Hello nfvis") -} -type RequestSiteDesignProvisionNfvProvisioningDeviceTemplateParamAsav struct { - Var1 string `json:"var1,omitempty"` // Variable for asav template (eg: "test":"Hello asav") -} -type RequestSiteDesignNfvProvisioningDetail struct { - DeviceIP string `json:"device_ip,omitempty"` // Device Ip -} -type RequestSiteDesignCreateNfvProfile struct { - ProfileName string `json:"profileName,omitempty"` // Name of the profile to create NFV profile - Device *[]RequestSiteDesignCreateNfvProfileDevice `json:"device,omitempty"` // -} -type RequestSiteDesignCreateNfvProfileDevice struct { - DeviceType string `json:"deviceType,omitempty"` // Name of the device used in creating nfv profile - DeviceTag string `json:"deviceTag,omitempty"` // Device Tag name(eg: dev1) - ServiceProviderProfile *[]RequestSiteDesignCreateNfvProfileDeviceServiceProviderProfile `json:"serviceProviderProfile,omitempty"` // - DirectInternetAccessForFirewall *bool `json:"directInternetAccessForFirewall,omitempty"` // Direct internet access value should be boolean (eg: false or true) - Services *[]RequestSiteDesignCreateNfvProfileDeviceServices `json:"services,omitempty"` // - CustomNetworks *[]RequestSiteDesignCreateNfvProfileDeviceCustomNetworks `json:"customNetworks,omitempty"` // - VLANForL2 *[]RequestSiteDesignCreateNfvProfileDeviceVLANForL2 `json:"vlanForL2,omitempty"` // - CustomTemplate *[]RequestSiteDesignCreateNfvProfileDeviceCustomTemplate `json:"customTemplate,omitempty"` // -} -type RequestSiteDesignCreateNfvProfileDeviceServiceProviderProfile struct { - ServiceProvider string `json:"serviceProvider,omitempty"` // Name of the service provider(eg: Airtel) - LinkType string `json:"linkType,omitempty"` // Name of connection type(eg: GigabitEthernet) - Connect *bool `json:"connect,omitempty"` // Connection of service provider and device value should be boolean (eg: true) - ConnectDefaultGatewayOnWan *bool `json:"connectDefaultGatewayOnWan,omitempty"` // Connect default gateway connect value as boolean (eg: true) -} -type RequestSiteDesignCreateNfvProfileDeviceServices struct { - ServiceType string `json:"serviceType,omitempty"` // Service type (eg: ISRV) - ProfileType string `json:"profileType,omitempty"` // Profile type of service (eg: ISRv-mini) - ServiceName string `json:"serviceName,omitempty"` // Name of the service (eg: Router-1) - ImageName string `json:"imageName,omitempty"` // Service image name (eg: isrv-universalk9.16.12.01a.tar.gz) - VNicMapping *[]RequestSiteDesignCreateNfvProfileDeviceServicesVnicMapping `json:"vNicMapping,omitempty"` // - FirewallMode string `json:"firewallMode,omitempty"` // Firewall mode details example (routed, transparent) -} -type RequestSiteDesignCreateNfvProfileDeviceServicesVnicMapping struct { - NetworkType string `json:"networkType,omitempty"` // Type of connection (eg: wan, lan or internal) - AssignIPAddressToNetwork string `json:"assignIpAddressToNetwork,omitempty"` // Assign ip address to network (eg: true or false) -} -type RequestSiteDesignCreateNfvProfileDeviceCustomNetworks struct { - NetworkName string `json:"networkName,omitempty"` // Name of custom network (eg: cust-1) - ServicesToConnect *[]RequestSiteDesignCreateNfvProfileDeviceCustomNetworksServicesToConnect `json:"servicesToConnect,omitempty"` // - ConnectionType string `json:"connectionType,omitempty"` // Type of network connection from custom network (eg: lan) - VLANMode string `json:"vlanMode,omitempty"` // Network mode (eg Access or Trunk) - VLANID *float64 `json:"vlanId,omitempty"` // Vlan id for the custom network(eg: 4000) -} -type RequestSiteDesignCreateNfvProfileDeviceCustomNetworksServicesToConnect struct { - ServiceName string `json:"serviceName,omitempty"` // Name of service to be connected to the custom network (eg: router-1) -} -type RequestSiteDesignCreateNfvProfileDeviceVLANForL2 struct { - VLANType string `json:"vlanType,omitempty"` // Vlan type(eg: Access or Trunk) - VLANID *float64 `json:"vlanId,omitempty"` // Vlan id (eg: 4018) - VLANDescription string `json:"vlanDescription,omitempty"` // Vlan description(eg: Access 4018) -} -type RequestSiteDesignCreateNfvProfileDeviceCustomTemplate struct { - DeviceType string `json:"deviceType,omitempty"` // Type of the device(eg: Cisco 5400 Enterprise Network Compute System) - Template string `json:"template,omitempty"` // Name of the template(eg NFVIS template) - TemplateType string `json:"templateType,omitempty"` // Name of the template type to which template is associated (eg: Cloud DayN Templates) -} -type RequestSiteDesignUpdateNfvProfile struct { - Device *[]RequestSiteDesignUpdateNfvProfileDevice `json:"device,omitempty"` // -} -type RequestSiteDesignUpdateNfvProfileDevice struct { - DeviceTag string `json:"deviceTag,omitempty"` // Device Tag name(eg: dev1) - DirectInternetAccessForFirewall *bool `json:"directInternetAccessForFirewall,omitempty"` // Direct internet access value should be boolean (eg: false) - Services *[]RequestSiteDesignUpdateNfvProfileDeviceServices `json:"services,omitempty"` // - CustomNetworks *[]RequestSiteDesignUpdateNfvProfileDeviceCustomNetworks `json:"customNetworks,omitempty"` // - VLANForL2 *[]RequestSiteDesignUpdateNfvProfileDeviceVLANForL2 `json:"vlanForL2,omitempty"` // - CustomTemplate *[]RequestSiteDesignUpdateNfvProfileDeviceCustomTemplate `json:"customTemplate,omitempty"` // - CurrentDeviceTag string `json:"currentDeviceTag,omitempty"` // Existing device tag name saved in the nfv profiles (eg: dev1) -} -type RequestSiteDesignUpdateNfvProfileDeviceServices struct { - ServiceType string `json:"serviceType,omitempty"` // Service type (eg: ISRV) - ProfileType string `json:"profileType,omitempty"` // Profile type of service (eg: ISRv-mini) - ServiceName string `json:"serviceName,omitempty"` // Name of the service (eg: Router-1) - ImageName string `json:"imageName,omitempty"` // Service image name (eg: isrv-universalk9.16.12.01a.tar.gz) - VNicMapping *[]RequestSiteDesignUpdateNfvProfileDeviceServicesVnicMapping `json:"vNicMapping,omitempty"` // - FirewallMode string `json:"firewallMode,omitempty"` // Mode of firewall (eg: routed, transparent) -} -type RequestSiteDesignUpdateNfvProfileDeviceServicesVnicMapping struct { - NetworkType string `json:"networkType,omitempty"` // Type of connection (eg: wan, lan or internal) - AssignIPAddressToNetwork string `json:"assignIpAddressToNetwork,omitempty"` // Assign ip address to network (eg: true or false) -} -type RequestSiteDesignUpdateNfvProfileDeviceCustomNetworks struct { - NetworkName string `json:"networkName,omitempty"` // Name of custom network (eg: cust-1) - ServicesToConnect *[]RequestSiteDesignUpdateNfvProfileDeviceCustomNetworksServicesToConnect `json:"servicesToConnect,omitempty"` // - ConnectionType string `json:"connectionType,omitempty"` // Type of network connection from custom network (eg: lan) - VLANMode string `json:"vlanMode,omitempty"` // Vlan network mode (eg Access or Trunk) - VLANID *float64 `json:"vlanId,omitempty"` // Vlan id for the custom network(eg: 4000) +type ResponseSiteDesignGetSites struct { + Response *[]ResponseSiteDesignGetSitesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSiteDesignGetSitesResponse struct { + NameHierarchy string `json:"nameHierarchy,omitempty"` // Site hierarchical name. Read only. Example: Global/USA/San Jose/Building1 + Name string `json:"name,omitempty"` // Site name. + Latitude *float64 `json:"latitude,omitempty"` // Building Latitude. Example: 37.403712 + Longitude *float64 `json:"longitude,omitempty"` // Building Longitude. Example: -121.971063 + Address string `json:"address,omitempty"` // Building address. Example: 4900 Marie P. Debartolo Way, Santa Clara, California 95054, United States + Country string `json:"country,omitempty"` // Country name for the building. + FloorNumber *int `json:"floorNumber,omitempty"` // Floor number + RfModel string `json:"rfModel,omitempty"` // Floor RF Model + Width *float64 `json:"width,omitempty"` // Floor width. Example : 100.5 + Length *float64 `json:"length,omitempty"` // Floor length. Example : 110.3 + Height *float64 `json:"height,omitempty"` // Floor height. Example : 10.1 + UnitsOfMeasure string `json:"unitsOfMeasure,omitempty"` // Floor unit of measure + Type string `json:"type,omitempty"` // Type + ID string `json:"id,omitempty"` // Site Id. Read only. + ParentID string `json:"parentId,omitempty"` // Parent Id. Read only +} +type ResponseSiteDesignCreateSites struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignCreateSitesResponse `json:"response,omitempty"` // +} +type ResponseSiteDesignCreateSitesResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignGetSitesCount []ResponseItemSiteDesignGetSitesCount // Array of ResponseSiteDesignGetSitesCount +type ResponseItemSiteDesignGetSitesCount struct { + Response *ResponseItemSiteDesignGetSitesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseItemSiteDesignGetSitesCountResponse struct { + Count *int `json:"count,omitempty"` // The reported count. +} +type ResponseSiteDesignRetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssigned struct { + Response *[]ResponseSiteDesignRetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssignedResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSiteDesignRetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssignedResponse struct { + ID string `json:"id,omitempty"` // Id +} +type ResponseSiteDesignRetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssigned struct { + Response *ResponseSiteDesignRetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssignedResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSiteDesignRetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssignedResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseSiteDesignCreatesABuildingV2 struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignCreatesABuildingV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignCreatesABuildingV2Response struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignUpdatesABuildingV2 struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignUpdatesABuildingV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignUpdatesABuildingV2Response struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignDeletesABuildingV2 struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignDeletesABuildingV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignDeletesABuildingV2Response struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignGetsABuildingV2 struct { + Response *ResponseSiteDesignGetsABuildingV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignGetsABuildingV2Response struct { + ParentID string `json:"parentId,omitempty"` // Parent Id + Name string `json:"name,omitempty"` // Building name + Latitude *float64 `json:"latitude,omitempty"` // Building Latitude. Example: 37.403712 + Longitude *float64 `json:"longitude,omitempty"` // Building Longitude. Example: -121.971063 + Address string `json:"address,omitempty"` // Building address. Example: 4900 Marie P. Debartolo Way, Santa Clara, California 95054, United States + Country string `json:"country,omitempty"` // Country name + Type string `json:"type,omitempty"` // Example: building +} +type ResponseSiteDesignCreatesAFloorV2 struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignCreatesAFloorV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignCreatesAFloorV2Response struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignUpdatesFloorSettingsV2 struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignUpdatesFloorSettingsV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignUpdatesFloorSettingsV2Response struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignGetFloorSettingsV2 struct { + Response *ResponseSiteDesignGetFloorSettingsV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSiteDesignGetFloorSettingsV2Response struct { + UnitsOfMeasure string `json:"unitsOfMeasure,omitempty"` // Floor units of measure. +} +type ResponseSiteDesignUpdatesAFloorV2 struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignUpdatesAFloorV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignUpdatesAFloorV2Response struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSiteDesignGetsAFloorV2 struct { + Response *ResponseSiteDesignGetsAFloorV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignGetsAFloorV2Response struct { + ParentID string `json:"parentId,omitempty"` // Parent Id. + Name string `json:"name,omitempty"` // Floor name + FloorNumber *int `json:"floorNumber,omitempty"` // Floor number + RfModel string `json:"rfModel,omitempty"` // RF Model + Width *float64 `json:"width,omitempty"` // Floor width. Example : 100.5 + Length *float64 `json:"length,omitempty"` // Floor length. Example : 110.3 + Height *float64 `json:"height,omitempty"` // Floor height. Example : 10.1 + UnitsOfMeasure string `json:"unitsOfMeasure,omitempty"` // Units Of Measure + Type string `json:"type,omitempty"` // Example : floor + ID string `json:"id,omitempty"` // Floor Id. Read only. + NameHierarchy string `json:"nameHierarchy,omitempty"` // Floor hierarchical name. Read only. +} +type ResponseSiteDesignDeletesAFloorV2 struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSiteDesignDeletesAFloorV2Response `json:"response,omitempty"` // +} +type ResponseSiteDesignDeletesAFloorV2Response struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type RequestSiteDesignCreatesAnArea struct { + Name string `json:"name,omitempty"` // Area name + ParentID string `json:"parentId,omitempty"` // Parent Id +} +type RequestSiteDesignUpdatesAnArea struct { + Name string `json:"name,omitempty"` // Area name + ParentID string `json:"parentId,omitempty"` // Parent Id +} +type RequestSiteDesignAssignNetworkDevicesToASite struct { + DeviceIDs []string `json:"deviceIds,omitempty"` // Unassigned network devices. + SiteID string `json:"siteId,omitempty"` // This must be building Id or floor Id. Access points, Sensors are assigned to floor. Remaining network devices are assigned to building. Site Id can be retrieved using '/intent/api/v1/sites'. +} +type RequestSiteDesignUpdateDeviceControllabilitySettings struct { + AutocorrectTelemetryConfig *bool `json:"autocorrectTelemetryConfig,omitempty"` // If it is true, autocorrect telemetry config is enabled. If it is false, autocorrect telemetry config is disabled. The autocorrect telemetry config feature is supported only when device controllability is enabled. + DeviceControllability *bool `json:"deviceControllability,omitempty"` // If it is true, device controllability is enabled. If it is false, device controllability is disabled. +} +type RequestSiteDesignUnassignNetworkDevicesFromSites struct { + DeviceIDs []string `json:"deviceIds,omitempty"` // Network device Ids. +} +type RequestSiteDesignAssignANetworkProfileForSitesToTheGivenSite struct { + ID string `json:"id,omitempty"` // Id +} +type RequestSiteDesignAssignANetworkProfileForSitesToAListOfSites struct { + Type *RequestSiteDesignAssignANetworkProfileForSitesToAListOfSitesType `json:"type,omitempty"` // +} +type RequestSiteDesignAssignANetworkProfileForSitesToAListOfSitesType interface{} +type RequestSiteDesignCreateSites []RequestItemSiteDesignCreateSites // Array of RequestSiteDesignCreateSites +type RequestItemSiteDesignCreateSites struct { + ParentNameHierarchy string `json:"parentNameHierarchy,omitempty"` // Parent hierarchical name. Example: Global/USA/San Jose/Building1 + Name string `json:"name,omitempty"` // Site name. + Latitude *float64 `json:"latitude,omitempty"` // Building Latitude. Example: 37.403712 + Longitude *float64 `json:"longitude,omitempty"` // Building Longitude. Example: -121.971063 + Address string `json:"address,omitempty"` // Building address. Example: 4900 Marie P. Debartolo Way, Santa Clara, California 95054, United States + Country string `json:"country,omitempty"` // Country name. Required for building. + FloorNumber *int `json:"floorNumber,omitempty"` // Floor number. Required for floor. + RfModel string `json:"rfModel,omitempty"` // Floor RF Model. Required for floor. + Width *float64 `json:"width,omitempty"` // Floor width. Required for floor. Example : 100.5 + Length *float64 `json:"length,omitempty"` // Floor length. Required for floor. Example : 110.3 + Height *float64 `json:"height,omitempty"` // Floor height. Required for floor. Example : 10.1 + UnitsOfMeasure string `json:"unitsOfMeasure,omitempty"` // Floor unit of measure. Required for floor. + Type string `json:"type,omitempty"` // Type +} +type RequestSiteDesignCreatesABuildingV2 struct { + ParentID string `json:"parentId,omitempty"` // Parent Id + Name string `json:"name,omitempty"` // Building name + Latitude *float64 `json:"latitude,omitempty"` // Building Latitude. Example: 37.403712 + Longitude *float64 `json:"longitude,omitempty"` // Building Longitude. Example: -121.971063 + Address string `json:"address,omitempty"` // Building address. Example: 4900 Marie P. Debartolo Way, Santa Clara, California 95054, United States + Country string `json:"country,omitempty"` // Country name +} +type RequestSiteDesignUpdatesABuildingV2 struct { + ParentID string `json:"parentId,omitempty"` // Parent Id + Name string `json:"name,omitempty"` // Building name + Latitude *float64 `json:"latitude,omitempty"` // Building Latitude. Example: 37.403712 + Longitude *float64 `json:"longitude,omitempty"` // Building Longitude. Example: -121.971063 + Address string `json:"address,omitempty"` // Building address. Example: 4900 Marie P. Debartolo Way, Santa Clara, California 95054, United States + Country string `json:"country,omitempty"` // Country name +} +type RequestSiteDesignCreatesAFloorV2 struct { + ParentID string `json:"parentId,omitempty"` // Parent Id + Name string `json:"name,omitempty"` // Floor name + FloorNumber *int `json:"floorNumber,omitempty"` // Floor number + RfModel string `json:"rfModel,omitempty"` // RF Model + Width *float64 `json:"width,omitempty"` // Floor width. Example : 100.5 + Length *float64 `json:"length,omitempty"` // Floor length. Example : 110.3 + Height *float64 `json:"height,omitempty"` // Floor height. Example : 10.1 + UnitsOfMeasure string `json:"unitsOfMeasure,omitempty"` // Units Of Measure +} +type RequestSiteDesignUpdatesFloorSettingsV2 struct { + UnitsOfMeasure string `json:"unitsOfMeasure,omitempty"` // Floor units of measure +} +type RequestSiteDesignUpdatesAFloorV2 struct { + ParentID string `json:"parentId,omitempty"` // Parent Id + Name string `json:"name,omitempty"` // Floor name + FloorNumber *int `json:"floorNumber,omitempty"` // Floor number + RfModel string `json:"rfModel,omitempty"` // RF Model + Width *float64 `json:"width,omitempty"` // Floor width. Example : 100.5 + Length *float64 `json:"length,omitempty"` // Floor length. Example : 110.3 + Height *float64 `json:"height,omitempty"` // Floor height. Example : 10.1 + UnitsOfMeasure string `json:"unitsOfMeasure,omitempty"` // Units Of Measure +} + +//GetsAnArea Gets an area - d6af-ab3e-43bb-a73c +/* Gets an area in the network hierarchy. + + +@param id id path parameter. Area Id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-an-area-v1 +*/ +func (s *SiteDesignService) GetsAnArea(id string) (*ResponseSiteDesignGetsAnArea, *resty.Response, error) { + path := "/dna/intent/api/v1/areas/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignGetsAnArea{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetsAnArea(id) + } + return nil, response, fmt.Errorf("error with operation GetsAnArea") + } + + result := response.Result().(*ResponseSiteDesignGetsAnArea) + return result, response, err + +} + +//GetSiteAssignedNetworkDevices Get site assigned network devices - 0ea1-4875-4219-995d +/* Get all site assigned network devices. The items in the list are arranged in an order that corresponds with their internal identifiers. + + +@param GetSiteAssignedNetworkDevicesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-assigned-network-devices-v1 +*/ +func (s *SiteDesignService) GetSiteAssignedNetworkDevices(GetSiteAssignedNetworkDevicesQueryParams *GetSiteAssignedNetworkDevicesQueryParams) (*ResponseSiteDesignGetSiteAssignedNetworkDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/assignedToSite" + + queryString, _ := query.Values(GetSiteAssignedNetworkDevicesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignGetSiteAssignedNetworkDevices{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSiteAssignedNetworkDevices(GetSiteAssignedNetworkDevicesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSiteAssignedNetworkDevices") + } + + result := response.Result().(*ResponseSiteDesignGetSiteAssignedNetworkDevices) + return result, response, err + +} + +//GetSiteAssignedNetworkDevicesCount Get site assigned network devices count - fd93-c911-48ba-9386 +/* Get all network devices count under the given site in the network hierarchy. + + +@param GetSiteAssignedNetworkDevicesCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-assigned-network-devices-count-v1 +*/ +func (s *SiteDesignService) GetSiteAssignedNetworkDevicesCount(GetSiteAssignedNetworkDevicesCountQueryParams *GetSiteAssignedNetworkDevicesCountQueryParams) (*ResponseSiteDesignGetSiteAssignedNetworkDevicesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/assignedToSite/count" + + queryString, _ := query.Values(GetSiteAssignedNetworkDevicesCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignGetSiteAssignedNetworkDevicesCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSiteAssignedNetworkDevicesCount(GetSiteAssignedNetworkDevicesCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSiteAssignedNetworkDevicesCount") + } + + result := response.Result().(*ResponseSiteDesignGetSiteAssignedNetworkDevicesCount) + return result, response, err + +} + +//GetDeviceControllabilitySettings Get device controllability settings - 06b2-4916-486b-aeec +/* Device Controllability is a system-level process on Catalyst Center that enforces state synchronization for some device-layer features. Its purpose is to aid in the deployment of required network settings that Catalyst Center needs to manage devices. Changes are made on network devices during discovery, when adding a device to Inventory, or when assigning a device to a site. If changes are made to any settings that are under the scope of this process, these changes are applied to the network devices during the Provision and Update Telemetry Settings operations, even if Device Controllability is disabled. The following device settings will be enabled as part of Device Controllability when devices are discovered. SNMP Credentials. NETCONF Credentials. Subsequent to discovery, devices will be added to Inventory. The following device settings will be enabled when devices are added to inventory. Cisco TrustSec (CTS) Credentials. The following device settings will be enabled when devices are assigned to a site. Some of these settings can be defined at a site level under Design > Network Settings > Telemetry & Wireless. Wired Endpoint Data Collection Enablement. Controller Certificates. SNMP Trap Server Definitions. Syslog Server Definitions. Application Visibility. Application QoS Policy. Wireless Service Assurance (WSA). Wireless Telemetry. DTLS Ciphersuite. AP Impersonation. If Device Controllability is disabled, Catalyst Center does not configure any of the preceding credentials or settings on devices during discovery, at runtime, or during site assignment. However, the telemetry settings and related configuration are pushed when the device is provisioned or when the update Telemetry Settings action is performed. Catalyst Center identifies and automatically corrects the following telemetry configuration issues on the device. SWIM certificate issue. IOS WLC NA certificate issue. PKCS12 certificate issue. IOS telemetry configuration issu + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-controllability-settings-v1 +*/ +func (s *SiteDesignService) GetDeviceControllabilitySettings() (*ResponseSiteDesignGetDeviceControllabilitySettings, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/deviceControllability/settings" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignGetDeviceControllabilitySettings{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDeviceControllabilitySettings() + } + return nil, response, fmt.Errorf("error with operation GetDeviceControllabilitySettings") + } + + result := response.Result().(*ResponseSiteDesignGetDeviceControllabilitySettings) + return result, response, err + +} + +//GetSiteNotAssignedNetworkDevices Get site not assigned network devices - cd89-78de-4109-8f0d +/* Get network devices that are not assigned to any site. + + +@param GetSiteNotAssignedNetworkDevicesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-not-assigned-network-devices-v1 +*/ +func (s *SiteDesignService) GetSiteNotAssignedNetworkDevices(GetSiteNotAssignedNetworkDevicesQueryParams *GetSiteNotAssignedNetworkDevicesQueryParams) (*ResponseSiteDesignGetSiteNotAssignedNetworkDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/notAssignedToSite" + + queryString, _ := query.Values(GetSiteNotAssignedNetworkDevicesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignGetSiteNotAssignedNetworkDevices{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSiteNotAssignedNetworkDevices(GetSiteNotAssignedNetworkDevicesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSiteNotAssignedNetworkDevices") + } + + result := response.Result().(*ResponseSiteDesignGetSiteNotAssignedNetworkDevices) + return result, response, err + +} + +//GetSiteNotAssignedNetworkDevicesCount Get site not assigned network devices count - b28e-881d-4cda-b06c +/* Get network devices count that are not assigned to any site. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-not-assigned-network-devices-count-v1 +*/ +func (s *SiteDesignService) GetSiteNotAssignedNetworkDevicesCount() (*ResponseSiteDesignGetSiteNotAssignedNetworkDevicesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/notAssignedToSite/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignGetSiteNotAssignedNetworkDevicesCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSiteNotAssignedNetworkDevicesCount() + } + return nil, response, fmt.Errorf("error with operation GetSiteNotAssignedNetworkDevicesCount") + } + + result := response.Result().(*ResponseSiteDesignGetSiteNotAssignedNetworkDevicesCount) + return result, response, err + } -type RequestSiteDesignUpdateNfvProfileDeviceCustomNetworksServicesToConnect struct { - ServiceName string `json:"serviceName,omitempty"` // Name of service to be connected to the custom network (eg: router-1) + +//GetSiteAssignedNetworkDevice Get site assigned network device - f08f-3b31-4bda-9c96 +/* Get site assigned network device. The items in the list are arranged in an order that corresponds with their internal identifiers. + + +@param id id path parameter. Network Device Id. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-assigned-network-device-v1 +*/ +func (s *SiteDesignService) GetSiteAssignedNetworkDevice(id string) (*ResponseSiteDesignGetSiteAssignedNetworkDevice, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/{id}/assignedToSite" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignGetSiteAssignedNetworkDevice{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSiteAssignedNetworkDevice(id) + } + return nil, response, fmt.Errorf("error with operation GetSiteAssignedNetworkDevice") + } + + result := response.Result().(*ResponseSiteDesignGetSiteAssignedNetworkDevice) + return result, response, err + } -type RequestSiteDesignUpdateNfvProfileDeviceVLANForL2 struct { - VLANType string `json:"vlanType,omitempty"` // Vlan type(eg. Access or Trunk) - VLANID *float64 `json:"vlanId,omitempty"` // Vlan id(eg.4018) - VLANDescription string `json:"vlanDescription,omitempty"` // Vlan description(eg. Access 4018) + +//RetrievesTheListOfNetworkProfilesForSites Retrieves the list of network profiles for sites - a78d-8918-4898-9cf2 +/* Retrieves the list of network profiles for sites. + + +@param RetrievesTheListOfNetworkProfilesForSitesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-list-of-network-profiles-for-sites-v1 +*/ +func (s *SiteDesignService) RetrievesTheListOfNetworkProfilesForSites(RetrievesTheListOfNetworkProfilesForSitesQueryParams *RetrievesTheListOfNetworkProfilesForSitesQueryParams) (*ResponseSiteDesignRetrievesTheListOfNetworkProfilesForSites, *resty.Response, error) { + path := "/dna/intent/api/v1/networkProfilesForSites" + + queryString, _ := query.Values(RetrievesTheListOfNetworkProfilesForSitesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignRetrievesTheListOfNetworkProfilesForSites{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheListOfNetworkProfilesForSites(RetrievesTheListOfNetworkProfilesForSitesQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheListOfNetworkProfilesForSites") + } + + result := response.Result().(*ResponseSiteDesignRetrievesTheListOfNetworkProfilesForSites) + return result, response, err + } -type RequestSiteDesignUpdateNfvProfileDeviceCustomTemplate struct { - DeviceType string `json:"deviceType,omitempty"` // Type of the device(eg: Cisco 5400 Enterprise Network Compute System) - Template string `json:"template,omitempty"` // Name of the template(eg NFVIS template) - TemplateType string `json:"templateType,omitempty"` // Name of the project to which template is associated (eg: Cloud DayN Templates) + +//RetrievesTheCountOfNetworkProfilesForSites Retrieves the count of network profiles for sites - 57a7-c9d2-4f4a-b000 +/* Retrieves the count of network profiles for sites + + +@param RetrievesTheCountOfNetworkProfilesForSitesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-count-of-network-profiles-for-sites-v1 +*/ +func (s *SiteDesignService) RetrievesTheCountOfNetworkProfilesForSites(RetrievesTheCountOfNetworkProfilesForSitesQueryParams *RetrievesTheCountOfNetworkProfilesForSitesQueryParams) (*ResponseSiteDesignRetrievesTheCountOfNetworkProfilesForSites, *resty.Response, error) { + path := "/dna/intent/api/v1/networkProfilesForSites/count" + + queryString, _ := query.Values(RetrievesTheCountOfNetworkProfilesForSitesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignRetrievesTheCountOfNetworkProfilesForSites{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheCountOfNetworkProfilesForSites(RetrievesTheCountOfNetworkProfilesForSitesQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheCountOfNetworkProfilesForSites") + } + + result := response.Result().(*ResponseSiteDesignRetrievesTheCountOfNetworkProfilesForSites) + return result, response, err + +} + +//RetrieveANetworkProfileForSitesByID Retrieve a network profile for sites by id - 87a8-eb79-4f28-acc4 +/* Retrieves a network profile for sites by id. + + +@param id id path parameter. The `id` of the network profile, retrievable from `GET /intent/api/v1/networkProfilesForSites` + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-a-network-profile-for-sites-by-id-v1 +*/ +func (s *SiteDesignService) RetrieveANetworkProfileForSitesByID(id string) (*ResponseSiteDesignRetrieveANetworkProfileForSitesByID, *resty.Response, error) { + path := "/dna/intent/api/v1/networkProfilesForSites/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignRetrieveANetworkProfileForSitesByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveANetworkProfileForSitesByID(id) + } + return nil, response, fmt.Errorf("error with operation RetrieveANetworkProfileForSitesById") + } + + result := response.Result().(*ResponseSiteDesignRetrieveANetworkProfileForSitesByID) + return result, response, err + +} + +//RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo Retrieves the list of sites that the given network profile for sites is assigned to - 0f84-ba73-4429-accd +/* Retrieves the list of sites that the given network profile for sites is assigned to. +The list includes the sites the profile has been directly assigned to, as well as child sites that have inherited the profile. + + +@param profileID profileId path parameter. The `id` of the network profile, retrievable from `GET /intent/api/v1/networkProfilesForSites` + +@param RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-list-of-sites-that-the-given-network-profile-for-sites-is-assigned-to-v1 +*/ +func (s *SiteDesignService) RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo(profileID string, RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToQueryParams *RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToQueryParams) (*ResponseSiteDesignRetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo, *resty.Response, error) { + path := "/dna/intent/api/v1/networkProfilesForSites/{profileId}/siteAssignments" + path = strings.Replace(path, "{profileId}", fmt.Sprintf("%v", profileID), -1) + + queryString, _ := query.Values(RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignRetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo(profileID, RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedToQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo") + } + + result := response.Result().(*ResponseSiteDesignRetrievesTheListOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo) + return result, response, err + +} + +//RetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo Retrieves the count of sites that the given network profile for sites is assigned to - 53ba-29dd-42eb-bd19 +/* Retrieves the count of sites that the given network profile for sites is assigned to. + + +@param profileID profileId path parameter. The `id` of the network profile, retrievable from `GET /intent/api/v1/networkProfilesForSites` + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-count-of-sites-that-the-given-network-profile-for-sites-is-assigned-to-v1 +*/ +func (s *SiteDesignService) RetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo(profileID string) (*ResponseSiteDesignRetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo, *resty.Response, error) { + path := "/dna/intent/api/v1/networkProfilesForSites/{profileId}/siteAssignments/count" + path = strings.Replace(path, "{profileId}", fmt.Sprintf("%v", profileID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignRetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo(profileID) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo") + } + + result := response.Result().(*ResponseSiteDesignRetrievesTheCountOfSitesThatTheGivenNetworkProfileForSitesIsAssignedTo) + return result, response, err + +} + +//GetSites Get sites - 4e8a-49c3-4b49-b291 +/* Get sites. + + +@param GetSitesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-sites-v1 +*/ +func (s *SiteDesignService) GetSites(GetSitesQueryParams *GetSitesQueryParams) (*ResponseSiteDesignGetSites, *resty.Response, error) { + path := "/dna/intent/api/v1/sites" + + queryString, _ := query.Values(GetSitesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignGetSites{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSites(GetSitesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSites") + } + + result := response.Result().(*ResponseSiteDesignGetSites) + return result, response, err + +} + +//GetSitesCount Get sites count - 0fbf-482e-446a-835f +/* Get sites count. + + +@param GetSitesCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-sites-count-v1 +*/ +func (s *SiteDesignService) GetSitesCount(GetSitesCountQueryParams *GetSitesCountQueryParams) (*ResponseSiteDesignGetSitesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/count" + + queryString, _ := query.Values(GetSitesCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignGetSitesCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSitesCount(GetSitesCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSitesCount") + } + + result := response.Result().(*ResponseSiteDesignGetSitesCount) + return result, response, err + +} + +//RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssigned Retrieves the list of network profiles that the given site has been assigned - b0b4-5962-49d9-8d6b +/* Retrieves the list of profiles that the given site has been assigned. These profiles may either be directly assigned to this site, or were assigned to a parent site and have been inherited. +These assigments can be modified via the `/dna/intent/api/v1/networkProfilesForSites/{profileId}/siteAssignments` resources. + + +@param siteID siteId path parameter. The `id` of the site, retrievable from `/dna/intent/api/v1/sites` + +@param RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssignedQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-list-of-network-profiles-that-the-given-site-has-been-assigned-v1 +*/ +func (s *SiteDesignService) RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssigned(siteID string, RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssignedQueryParams *RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssignedQueryParams) (*ResponseSiteDesignRetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssigned, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{siteId}/profileAssignments" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + queryString, _ := query.Values(RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssignedQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignRetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssigned{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssigned(siteID, RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssignedQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssigned") + } + + result := response.Result().(*ResponseSiteDesignRetrievesTheListOfNetworkProfilesThatTheGivenSiteHasBeenAssigned) + return result, response, err + +} + +//RetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssigned Retrieves the count of profiles that the given site has been assigned - 28be-9a3f-4688-a2d4 +/* Retrieves the count of profiles that the given site has been assigned. These profiles may either be directly assigned to this site, or were assigned to a parent site and have been inherited. + + +@param siteID siteId path parameter. The `id` of the site, retrievable from `/dna/intent/api/v1/sites` + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-count-of-profiles-that-the-given-site-has-been-assigned-v1 +*/ +func (s *SiteDesignService) RetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssigned(siteID string) (*ResponseSiteDesignRetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssigned, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{siteId}/profileAssignments/count" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignRetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssigned{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssigned(siteID) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssigned") + } + + result := response.Result().(*ResponseSiteDesignRetrievesTheCountOfProfilesThatTheGivenSiteHasBeenAssigned) + return result, response, err + +} + +//GetsABuildingV2 Gets a building - e293-295e-4a78-bf64 +/* Gets a building in the network hierarchy. + + +@param id id path parameter. Building Id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-a-building-v2 +*/ +func (s *SiteDesignService) GetsABuildingV2(id string) (*ResponseSiteDesignGetsABuildingV2, *resty.Response, error) { + path := "/dna/intent/api/v2/buildings/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignGetsABuildingV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetsABuildingV2(id) + } + return nil, response, fmt.Errorf("error with operation GetsABuildingV2") + } + + result := response.Result().(*ResponseSiteDesignGetsABuildingV2) + return result, response, err + +} + +//GetFloorSettingsV2 Get floor settings - f697-a95f-4469-958f +/* Gets UI user preference for floor unit system. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-floor-settings-v2 +*/ +func (s *SiteDesignService) GetFloorSettingsV2() (*ResponseSiteDesignGetFloorSettingsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/floors/settings" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignGetFloorSettingsV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetFloorSettingsV2() + } + return nil, response, fmt.Errorf("error with operation GetFloorSettingsV2") + } + + result := response.Result().(*ResponseSiteDesignGetFloorSettingsV2) + return result, response, err + +} + +//GetsAFloorV2 Gets a floor - ff92-2958-4bba-9288 +/* Gets a floor in the network hierarchy. + + +@param id id path parameter. Floor Id + +@param GetsAFloorV2QueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!gets-a-floor-v2 +*/ +func (s *SiteDesignService) GetsAFloorV2(id string, GetsAFloorV2QueryParams *GetsAFloorV2QueryParams) (*ResponseSiteDesignGetsAFloorV2, *resty.Response, error) { + path := "/dna/intent/api/v2/floors/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(GetsAFloorV2QueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignGetsAFloorV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetsAFloorV2(id, GetsAFloorV2QueryParams) + } + return nil, response, fmt.Errorf("error with operation GetsAFloorV2") + } + + result := response.Result().(*ResponseSiteDesignGetsAFloorV2) + return result, response, err + +} + +//CreatesAnArea Creates an area - a8bc-d9dc-43ea-a7e3 +/* Creates an area in the network hierarchy. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!creates-an-area-v1 +*/ +func (s *SiteDesignService) CreatesAnArea(requestSiteDesignCreatesAnArea *RequestSiteDesignCreatesAnArea) (*ResponseSiteDesignCreatesAnArea, *resty.Response, error) { + path := "/dna/intent/api/v1/areas" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignCreatesAnArea). + SetResult(&ResponseSiteDesignCreatesAnArea{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreatesAnArea(requestSiteDesignCreatesAnArea) + } + + return nil, response, fmt.Errorf("error with operation CreatesAnArea") + } + + result := response.Result().(*ResponseSiteDesignCreatesAnArea) + return result, response, err + +} + +//AssignNetworkDevicesToASite Assign network devices to a site - a1b4-8949-4a6a-a6ac +/* Assign unprovisioned network devices to a site. Along with that it can also be used to assign unprovisioned network devices to a different site. If device controllability is enabled, it will be triggered once device assigned to site successfully. Device Controllability can be enabled/disabled using `/dna/intent/api/v1/networkDevices/deviceControllability/settings`. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-network-devices-to-a-site-v1 +*/ +func (s *SiteDesignService) AssignNetworkDevicesToASite(requestSiteDesignAssignNetworkDevicesToASite *RequestSiteDesignAssignNetworkDevicesToASite) (*ResponseSiteDesignAssignNetworkDevicesToASite, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/assignToSite/apply" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignAssignNetworkDevicesToASite). + SetResult(&ResponseSiteDesignAssignNetworkDevicesToASite{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AssignNetworkDevicesToASite(requestSiteDesignAssignNetworkDevicesToASite) + } + + return nil, response, fmt.Errorf("error with operation AssignNetworkDevicesToASite") + } + + result := response.Result().(*ResponseSiteDesignAssignNetworkDevicesToASite) + return result, response, err + +} + +//UnassignNetworkDevicesFromSites Unassign network devices from sites - 08a6-1a87-44eb-8606 +/* Unassign unprovisioned network devices from their site. If device controllability is enabled, it will be triggered once device unassigned from site successfully. Device Controllability can be enabled/disabled using `/dna/intent/api/v1/networkDevices/deviceControllability/settings`. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!unassign-network-devices-from-sites-v1 +*/ +func (s *SiteDesignService) UnassignNetworkDevicesFromSites(requestSiteDesignUnassignNetworkDevicesFromSites *RequestSiteDesignUnassignNetworkDevicesFromSites) (*ResponseSiteDesignUnassignNetworkDevicesFromSites, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/unassignFromSite/apply" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignUnassignNetworkDevicesFromSites). + SetResult(&ResponseSiteDesignUnassignNetworkDevicesFromSites{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.UnassignNetworkDevicesFromSites(requestSiteDesignUnassignNetworkDevicesFromSites) + } + + return nil, response, fmt.Errorf("error with operation UnassignNetworkDevicesFromSites") + } + + result := response.Result().(*ResponseSiteDesignUnassignNetworkDevicesFromSites) + return result, response, err + +} + +//AssignANetworkProfileForSitesToTheGivenSite Assign a network profile for sites to the given site - 40ba-89da-420a-a21b +/* Assigns a given network profile for sites to a given site. Also assigns the profile to child sites. + + +@param profileID profileId path parameter. The `id` of the network profile, retrievable from `GET /intent/api/v1/networkProfilesForSites` + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-a-network-profile-for-sites-to-the-given-site-v1 +*/ +func (s *SiteDesignService) AssignANetworkProfileForSitesToTheGivenSite(profileID string, requestSiteDesignAssignANetworkProfileForSitesToTheGivenSite *RequestSiteDesignAssignANetworkProfileForSitesToTheGivenSite) (*ResponseSiteDesignAssignANetworkProfileForSitesToTheGivenSite, *resty.Response, error) { + path := "/dna/intent/api/v1/networkProfilesForSites/{profileId}/siteAssignments" + path = strings.Replace(path, "{profileId}", fmt.Sprintf("%v", profileID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignAssignANetworkProfileForSitesToTheGivenSite). + SetResult(&ResponseSiteDesignAssignANetworkProfileForSitesToTheGivenSite{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AssignANetworkProfileForSitesToTheGivenSite(profileID, requestSiteDesignAssignANetworkProfileForSitesToTheGivenSite) + } + + return nil, response, fmt.Errorf("error with operation AssignANetworkProfileForSitesToTheGivenSite") + } + + result := response.Result().(*ResponseSiteDesignAssignANetworkProfileForSitesToTheGivenSite) + return result, response, err + +} + +//AssignANetworkProfileForSitesToAListOfSites Assign a network profile for sites to a list of sites - 6ab6-e992-451b-8bc9 +/* Assign a network profile for sites to a list of sites. Also assigns the profile to child sites. + + +@param profileID profileId path parameter. The `id` of the network profile, retrievable from `GET /intent/api/v1/networkProfilesForSites` + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-a-network-profile-for-sites-to-a-list-of-sites-v1 +*/ +func (s *SiteDesignService) AssignANetworkProfileForSitesToAListOfSites(profileID string, requestSiteDesignAssignANetworkProfileForSitesToAListOfSites *RequestSiteDesignAssignANetworkProfileForSitesToAListOfSites) (*ResponseSiteDesignAssignANetworkProfileForSitesToAListOfSites, *resty.Response, error) { + path := "/dna/intent/api/v1/networkProfilesForSites/{profileId}/siteAssignments/bulk" + path = strings.Replace(path, "{profileId}", fmt.Sprintf("%v", profileID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignAssignANetworkProfileForSitesToAListOfSites). + SetResult(&ResponseSiteDesignAssignANetworkProfileForSitesToAListOfSites{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AssignANetworkProfileForSitesToAListOfSites(profileID, requestSiteDesignAssignANetworkProfileForSitesToAListOfSites) + } + + return nil, response, fmt.Errorf("error with operation AssignANetworkProfileForSitesToAListOfSites") + } + + result := response.Result().(*ResponseSiteDesignAssignANetworkProfileForSitesToAListOfSites) + return result, response, err + } -//GetDeviceDetailsByIP Get Device details by IP - 9cb2-cb3f-494a-824f -/* Returns provisioning device information for the specified IP address. +//Associate Associate - 308e-195d-403a-bbd4 +/* Associate Site to a Network Profile -@param GetDeviceDetailsByIPQueryParams Filtering parameter +@param networkProfileID networkProfileId path parameter. Network-Profile Id to be associated + +@param siteID siteId path parameter. Site Id to be associated -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-details-by-ip -*/ -func (s *SiteDesignService) GetDeviceDetailsByIP(GetDeviceDetailsByIPQueryParams *GetDeviceDetailsByIPQueryParams) (*ResponseSiteDesignGetDeviceDetailsByIP, *resty.Response, error) { - path := "/dna/intent/api/v1/business/nfv/provisioningDetail" - queryString, _ := query.Values(GetDeviceDetailsByIPQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!associate-v1 +*/ +func (s *SiteDesignService) Associate(networkProfileID string, siteID string) (*ResponseSiteDesignAssociate, *resty.Response, error) { + path := "/dna/intent/api/v1/networkprofile/{networkProfileId}/site/{siteId}" + path = strings.Replace(path, "{networkProfileId}", fmt.Sprintf("%v", networkProfileID), -1) + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignGetDeviceDetailsByIP{}). + SetResult(&ResponseSiteDesignAssociate{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -449,39 +1410,36 @@ func (s *SiteDesignService) GetDeviceDetailsByIP(GetDeviceDetailsByIPQueryParams } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetDeviceDetailsByIP(GetDeviceDetailsByIPQueryParams) + return s.Associate(networkProfileID, siteID) } - return nil, response, fmt.Errorf("error with operation GetDeviceDetailsByIp") + + return nil, response, fmt.Errorf("error with operation Associate") } - result := response.Result().(*ResponseSiteDesignGetDeviceDetailsByIP) + result := response.Result().(*ResponseSiteDesignAssociate) return result, response, err } -//GetNfvProfile Get NFV Profile - 1eb1-9887-457b-9616 -/* API to get NFV network profile. - +//CreateSites Create sites - efac-69a1-4c2a-9d5e +/* Create area/building/floor together in bulk. If site already exist, then that will be ignored. Sites in the request payload need not to be ordered. -@param id id path parameter. ID of network profile to retrieve. -@param GetNFVProfileQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-nfv-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-sites-v1 */ -func (s *SiteDesignService) GetNfvProfile(id string, GetNFVProfileQueryParams *GetNfvProfileQueryParams) (*ResponseSiteDesignGetNfvProfile, *resty.Response, error) { - path := "/dna/intent/api/v1/nfv/network-profile/{id}" - path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - - queryString, _ := query.Values(GetNFVProfileQueryParams) +func (s *SiteDesignService) CreateSites(requestSiteDesignCreateSites *RequestSiteDesignCreateSites) (*ResponseSiteDesignCreateSites, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/bulk" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignGetNfvProfile{}). + SetBody(requestSiteDesignCreateSites). + SetResult(&ResponseSiteDesignCreateSites{}). SetError(&Error). - Get(path) + Post(path) if err != nil { return nil, nil, err @@ -489,53 +1447,71 @@ func (s *SiteDesignService) GetNfvProfile(id string, GetNFVProfileQueryParams *G } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { - return s.GetNfvProfile(id, GetNFVProfileQueryParams) + return s.CreateSites(requestSiteDesignCreateSites) } - return nil, response, fmt.Errorf("error with operation GetNfvProfile") + + return nil, response, fmt.Errorf("error with operation CreateSites") } - result := response.Result().(*ResponseSiteDesignGetNfvProfile) + result := response.Result().(*ResponseSiteDesignCreateSites) return result, response, err } -//ProvisionNfv Provision NFV - 6f9c-da9a-4658-84b4 -/* Design and Provision single/multi NFV device with given site/area/building/floor . +//CreatesABuildingV2 Creates a building - 73ae-3922-466b-adb1 +/* Creates a building in the network hierarchy under area. -@param ProvisionNFVHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!provision-nfv +Documentation Link: https://developer.cisco.com/docs/dna-center/#!creates-a-building-v2 */ -func (s *SiteDesignService) ProvisionNfv(requestSiteDesignProvisionNFV *RequestSiteDesignProvisionNfv, ProvisionNFVHeaderParams *ProvisionNfvHeaderParams) (*ResponseSiteDesignProvisionNfv, *resty.Response, error) { - path := "/dna/intent/api/v1/business/nfv" +func (s *SiteDesignService) CreatesABuildingV2(requestSiteDesignCreatesABuildingV2 *RequestSiteDesignCreatesABuildingV2) (*ResponseSiteDesignCreatesABuildingV2, *resty.Response, error) { + path := "/dna/intent/api/v2/buildings" - var response *resty.Response - var err error - clientRequest := s.client.R(). + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignCreatesABuildingV2). + SetResult(&ResponseSiteDesignCreatesABuildingV2{}). + SetError(&Error). + Post(path) - if ProvisionNFVHeaderParams != nil { + if err != nil { + return nil, nil, err - if ProvisionNFVHeaderParams.Runsync != "" { - clientRequest = clientRequest.SetHeader("__runsync", ProvisionNFVHeaderParams.Runsync) - } + } - if ProvisionNFVHeaderParams.Timeout != "" { - clientRequest = clientRequest.SetHeader("__timeout", ProvisionNFVHeaderParams.Timeout) - } + if response.IsError() { - if ProvisionNFVHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", ProvisionNFVHeaderParams.Persistbapioutput) + if response.StatusCode() == http.StatusUnauthorized { + return s.CreatesABuildingV2(requestSiteDesignCreatesABuildingV2) } + return nil, response, fmt.Errorf("error with operation CreatesABuildingV2") } - response, err = clientRequest. - SetBody(requestSiteDesignProvisionNFV). - SetResult(&ResponseSiteDesignProvisionNfv{}). + result := response.Result().(*ResponseSiteDesignCreatesABuildingV2) + return result, response, err + +} + +//CreatesAFloorV2 Creates a floor - 8882-b8fb-450a-8528 +/* Create a floor in the network hierarchy under building. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!creates-a-floor-v2 +*/ +func (s *SiteDesignService) CreatesAFloorV2(requestSiteDesignCreatesAFloorV2 *RequestSiteDesignCreatesAFloorV2) (*ResponseSiteDesignCreatesAFloorV2, *resty.Response, error) { + path := "/dna/intent/api/v2/floors" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignCreatesAFloorV2). + SetResult(&ResponseSiteDesignCreatesAFloorV2{}). SetError(&Error). Post(path) @@ -547,97 +1523,171 @@ func (s *SiteDesignService) ProvisionNfv(requestSiteDesignProvisionNFV *RequestS if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.ProvisionNfv(requestSiteDesignProvisionNFV, ProvisionNFVHeaderParams) + return s.CreatesAFloorV2(requestSiteDesignCreatesAFloorV2) } - return nil, response, fmt.Errorf("error with operation ProvisionNfv") + return nil, response, fmt.Errorf("error with operation CreatesAFloorV2") } - result := response.Result().(*ResponseSiteDesignProvisionNfv) + result := response.Result().(*ResponseSiteDesignCreatesAFloorV2) return result, response, err } -//Associate Associate - 308e-195d-403a-bbd4 -/* Associate Site to a Network Profile - +//UploadsFloorImageV2 Uploads floor image - fca4-5804-4758-98d2 +/* Uploads floor image. -@param networkProfileID networkProfileId path parameter. Network-Profile Id to be associated -@param siteID siteId path parameter. Site Id to be associated +@param id id path parameter. Floor Id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!associate +Documentation Link: https://developer.cisco.com/docs/dna-center/#!uploads-floor-image-v2 */ -func (s *SiteDesignService) Associate(networkProfileID string, siteID string) (*ResponseSiteDesignAssociate, *resty.Response, error) { - path := "/dna/intent/api/v1/networkprofile/{networkProfileId}/site/{siteId}" - path = strings.Replace(path, "{networkProfileId}", fmt.Sprintf("%v", networkProfileID), -1) - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) +func (s *SiteDesignService) UploadsFloorImageV2(id string) (*resty.Response, error) { + path := "/dna/intent/api/v2/floors/{id}/uploadImage" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseSiteDesignAssociate{}). SetError(&Error). Post(path) if err != nil { - return nil, nil, err + return nil, err } if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.Associate(networkProfileID, siteID) + return s.UploadsFloorImageV2(id) } - return nil, response, fmt.Errorf("error with operation Associate") + return response, fmt.Errorf("error with operation UploadsFloorImageV2") } - result := response.Result().(*ResponseSiteDesignAssociate) - return result, response, err + return response, err } -//NfvProvisioningDetail NFV Provisioning Detail - 2f97-e8fa-45f8-b2a3 -/* Checks the provisioning detail of an ENCS device including log information. +//UpdatesAnArea Updates an area - fab7-a965-4599-885f +/* Updates an area in the network hierarchy. -@param NFVProvisioningDetailHeaderParams Custom header parameters +@param id id path parameter. Area Id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!nfv-provisioning-detail */ -func (s *SiteDesignService) NfvProvisioningDetail(requestSiteDesignNFVProvisioningDetail *RequestSiteDesignNfvProvisioningDetail, NFVProvisioningDetailHeaderParams *NfvProvisioningDetailHeaderParams) (*ResponseSiteDesignNfvProvisioningDetail, *resty.Response, error) { - path := "/dna/intent/api/v1/nfv-provision-detail" +func (s *SiteDesignService) UpdatesAnArea(id string, requestSiteDesignUpdatesAnArea *RequestSiteDesignUpdatesAnArea) (*ResponseSiteDesignUpdatesAnArea, *resty.Response, error) { + path := "/dna/intent/api/v1/areas/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - var response *resty.Response - var err error - clientRequest := s.client.R(). + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignUpdatesAnArea). + SetResult(&ResponseSiteDesignUpdatesAnArea{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err - if NFVProvisioningDetailHeaderParams != nil { + } - if NFVProvisioningDetailHeaderParams.Runsync != "" { - clientRequest = clientRequest.SetHeader("__runsync", NFVProvisioningDetailHeaderParams.Runsync) + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdatesAnArea(id, requestSiteDesignUpdatesAnArea) } + return nil, response, fmt.Errorf("error with operation UpdatesAnArea") + } - if NFVProvisioningDetailHeaderParams.Runsynctimeout != "" { - clientRequest = clientRequest.SetHeader("__runsynctimeout", NFVProvisioningDetailHeaderParams.Runsynctimeout) - } + result := response.Result().(*ResponseSiteDesignUpdatesAnArea) + return result, response, err - if NFVProvisioningDetailHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", NFVProvisioningDetailHeaderParams.Persistbapioutput) - } +} + +//UpdateDeviceControllabilitySettings Update device controllability settings - f58f-e8d6-4b88-912c +/* Device Controllability is a system-level process on Catalyst Center that enforces state synchronization for some device-layer features. Its purpose is to aid in the deployment of required network settings that Catalyst Center needs to manage devices. Changes are made on network devices during discovery, when adding a device to Inventory, or when assigning a device to a site. If changes are made to any settings that are under the scope of this process, these changes are applied to the network devices during the Provision and Update Telemetry Settings operations, even if Device Controllability is disabled. The following device settings will be enabled as part of Device Controllability when devices are discovered. + + SNMP Credentials. + NETCONF Credentials. + +Subsequent to discovery, devices will be added to Inventory. The following device settings will be enabled when devices are added to inventory. + + Cisco TrustSec (CTS) Credentials. + +The following device settings will be enabled when devices are assigned to a site. Some of these settings can be defined at a site level under Design > Network Settings > Telemetry & Wireless. + + Wired Endpoint Data Collection Enablement. + Controller Certificates. + SNMP Trap Server Definitions. + Syslog Server Definitions. + Application Visibility. + Application QoS Policy. + Wireless Service Assurance (WSA). + Wireless Telemetry. + DTLS Ciphersuite. + AP Impersonation. + +If Device Controllability is disabled, Catalyst Center does not configure any of the preceding credentials or settings on devices during discovery, at runtime, or during site assignment. However, the telemetry settings and related configuration are pushed when the device is provisioned or when the update Telemetry Settings action is performed. +Catalyst Center identifies and automatically corrects the following telemetry configuration issues on the device. + + SWIM certificate issue. + IOS WLC NA certificate issue. + PKCS12 certificate issue. + IOS telemetry configuration issue. + +The autocorrect telemetry config feature is supported only when Device Controllability is enabled. + + +*/ +func (s *SiteDesignService) UpdateDeviceControllabilitySettings(requestSiteDesignUpdateDeviceControllabilitySettings *RequestSiteDesignUpdateDeviceControllabilitySettings) (*ResponseSiteDesignUpdateDeviceControllabilitySettings, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDevices/deviceControllability/settings" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignUpdateDeviceControllabilitySettings). + SetResult(&ResponseSiteDesignUpdateDeviceControllabilitySettings{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateDeviceControllabilitySettings(requestSiteDesignUpdateDeviceControllabilitySettings) + } + return nil, response, fmt.Errorf("error with operation UpdateDeviceControllabilitySettings") } - response, err = clientRequest. - SetBody(requestSiteDesignNFVProvisioningDetail). - SetResult(&ResponseSiteDesignNfvProvisioningDetail{}). + result := response.Result().(*ResponseSiteDesignUpdateDeviceControllabilitySettings) + return result, response, err + +} + +//UpdatesABuildingV2 Updates a building - 0280-1b95-4d78-845d +/* Updates a building in the network hierarchy. + + +@param id id path parameter. Building Id + +*/ +func (s *SiteDesignService) UpdatesABuildingV2(id string, requestSiteDesignUpdatesABuildingV2 *RequestSiteDesignUpdatesABuildingV2) (*ResponseSiteDesignUpdatesABuildingV2, *resty.Response, error) { + path := "/dna/intent/api/v2/buildings/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignUpdatesABuildingV2). + SetResult(&ResponseSiteDesignUpdatesABuildingV2{}). SetError(&Error). - Post(path) + Put(path) if err != nil { return nil, nil, err @@ -645,36 +1695,106 @@ func (s *SiteDesignService) NfvProvisioningDetail(requestSiteDesignNFVProvisioni } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdatesABuildingV2(id, requestSiteDesignUpdatesABuildingV2) + } + return nil, response, fmt.Errorf("error with operation UpdatesABuildingV2") + } + + result := response.Result().(*ResponseSiteDesignUpdatesABuildingV2) + return result, response, err + +} + +//UpdatesFloorSettingsV2 Updates floor settings - 16b8-59a5-4b38-8cb7 +/* Updates UI user preference for floor unit system. Unit sytem change will effect for all floors across all sites. + + + */ +func (s *SiteDesignService) UpdatesFloorSettingsV2(requestSiteDesignUpdatesFloorSettingsV2 *RequestSiteDesignUpdatesFloorSettingsV2) (*ResponseSiteDesignUpdatesFloorSettingsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/floors/settings" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignUpdatesFloorSettingsV2). + SetResult(&ResponseSiteDesignUpdatesFloorSettingsV2{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.NfvProvisioningDetail(requestSiteDesignNFVProvisioningDetail, NFVProvisioningDetailHeaderParams) + return s.UpdatesFloorSettingsV2(requestSiteDesignUpdatesFloorSettingsV2) } + return nil, response, fmt.Errorf("error with operation UpdatesFloorSettingsV2") + } + + result := response.Result().(*ResponseSiteDesignUpdatesFloorSettingsV2) + return result, response, err + +} + +//UpdatesAFloorV2 Updates a floor - ee9f-c9f2-4a3a-b7a5 +/* Updates a floor in the network hierarchy. + + +@param id id path parameter. Floor Id + +*/ +func (s *SiteDesignService) UpdatesAFloorV2(id string, requestSiteDesignUpdatesAFloorV2 *RequestSiteDesignUpdatesAFloorV2) (*ResponseSiteDesignUpdatesAFloorV2, *resty.Response, error) { + path := "/dna/intent/api/v2/floors/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSiteDesignUpdatesAFloorV2). + SetResult(&ResponseSiteDesignUpdatesAFloorV2{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err - return nil, response, fmt.Errorf("error with operation NfvProvisioningDetail") } - result := response.Result().(*ResponseSiteDesignNfvProvisioningDetail) + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdatesAFloorV2(id, requestSiteDesignUpdatesAFloorV2) + } + return nil, response, fmt.Errorf("error with operation UpdatesAFloorV2") + } + + result := response.Result().(*ResponseSiteDesignUpdatesAFloorV2) return result, response, err } -//CreateNfvProfile Create NFV Profile - 6695-1aaa-407b-a89c -/* API to create network profile for different NFV topologies +//DeletesAnArea Deletes an area - 2ba4-c8f4-4ec8-b80e +/* Deletes an area in the network hierarchy. This operations fails if there are any child areas or buildings for this area. + +@param id id path parameter. Area ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-nfv-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-an-area-v1 */ -func (s *SiteDesignService) CreateNfvProfile(requestSiteDesignCreateNFVProfile *RequestSiteDesignCreateNfvProfile) (*ResponseSiteDesignCreateNfvProfile, *resty.Response, error) { - path := "/dna/intent/api/v1/nfv/network-profile" +func (s *SiteDesignService) DeletesAnArea(id string) (*ResponseSiteDesignDeletesAnArea, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/areas/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSiteDesignCreateNFVProfile). - SetResult(&ResponseSiteDesignCreateNfvProfile{}). + SetResult(&ResponseSiteDesignDeletesAnArea{}). SetError(&Error). - Post(path) + Delete(path) if err != nil { return nil, nil, err @@ -682,40 +1802,119 @@ func (s *SiteDesignService) CreateNfvProfile(requestSiteDesignCreateNFVProfile * } if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletesAnArea(id) + } + return nil, response, fmt.Errorf("error with operation DeletesAnArea") + } + + result := response.Result().(*ResponseSiteDesignDeletesAnArea) + return result, response, err + +} + +//DeletesANetworkProfileForSites Deletes a network profile for sites - a48b-b959-493b-93d1 +/* Deletes a network profile for sites. + + +@param id id path parameter. The `id` of the network profile, retrievable from `GET /intent/api/v1/networkProfilesForSites` + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-a-network-profile-for-sites-v1 +*/ +func (s *SiteDesignService) DeletesANetworkProfileForSites(id string) (*ResponseSiteDesignDeletesANetworkProfileForSites, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/networkProfilesForSites/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignDeletesANetworkProfileForSites{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + } + + if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.CreateNfvProfile(requestSiteDesignCreateNFVProfile) + return s.DeletesANetworkProfileForSites(id) } + return nil, response, fmt.Errorf("error with operation DeletesANetworkProfileForSites") + } + + result := response.Result().(*ResponseSiteDesignDeletesANetworkProfileForSites) + return result, response, err + +} + +//UnassignsANetworkProfileForSitesFromMultipleSites Unassigns a network profile for sites from multiple sites - ec90-f973-435b-a6f5 +/* Unassigns a given network profile for sites from multiple sites. The profile must be removed from the containing building first if this site is a floor. + + +@param profileID profileId path parameter. The `id` of the network profile, retrievable from `GET /intent/api/v1/networkProfilesForSites` + +@param UnassignsANetworkProfileForSitesFromMultipleSitesQueryParams Filtering parameter - return nil, response, fmt.Errorf("error with operation CreateNfvProfile") +Documentation Link: https://developer.cisco.com/docs/dna-center/#!unassigns-a-network-profile-for-sites-from-multiple-sites-v1 +*/ +func (s *SiteDesignService) UnassignsANetworkProfileForSitesFromMultipleSites(profileID string, UnassignsANetworkProfileForSitesFromMultipleSitesQueryParams *UnassignsANetworkProfileForSitesFromMultipleSitesQueryParams) (*ResponseSiteDesignUnassignsANetworkProfileForSitesFromMultipleSites, *resty.Response, error) { + //profileID string,UnassignsANetworkProfileForSitesFromMultipleSitesQueryParams *UnassignsANetworkProfileForSitesFromMultipleSitesQueryParams + path := "/dna/intent/api/v1/networkProfilesForSites/{profileId}/siteAssignments/bulk" + path = strings.Replace(path, "{profileId}", fmt.Sprintf("%v", profileID), -1) + + queryString, _ := query.Values(UnassignsANetworkProfileForSitesFromMultipleSitesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignUnassignsANetworkProfileForSitesFromMultipleSites{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UnassignsANetworkProfileForSitesFromMultipleSites(profileID, UnassignsANetworkProfileForSitesFromMultipleSitesQueryParams) + } + return nil, response, fmt.Errorf("error with operation UnassignsANetworkProfileForSitesFromMultipleSites") } - result := response.Result().(*ResponseSiteDesignCreateNfvProfile) + result := response.Result().(*ResponseSiteDesignUnassignsANetworkProfileForSitesFromMultipleSites) return result, response, err } -//UpdateNfvProfile Update NFV Profile - 0fa0-0adf-4869-8287 -/* API to update a NFV Network profile +//UnassignsANetworkProfileForSitesFromASite Unassigns a network profile for sites from a site - 8c94-0a8e-450b-98cc +/* Unassigns a given network profile for sites from a site. The profile must be removed from parent sites first, otherwise this operation will not ulimately unassign the profile. + +@param profileID profileId path parameter. The `id` of the network profile, retrievable from `GET /intent/api/v1/networkProfilesForSites` -@param id id path parameter. Id of the NFV profile to be updated +@param id id path parameter. The `id` of the site, retrievable from `GET /intent/api/v1/networkProfilesForSites/{id}/siteAssignments` -@param UpdateNFVProfileQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!unassigns-a-network-profile-for-sites-from-a-site-v1 */ -func (s *SiteDesignService) UpdateNfvProfile(id string, requestSiteDesignUpdateNFVProfile *RequestSiteDesignUpdateNfvProfile, UpdateNFVProfileQueryParams *UpdateNfvProfileQueryParams) (*ResponseSiteDesignUpdateNfvProfile, *resty.Response, error) { - path := "/dna/intent/api/v1/nfv/network-profile/{id}" +func (s *SiteDesignService) UnassignsANetworkProfileForSitesFromASite(profileID string, id string) (*ResponseSiteDesignUnassignsANetworkProfileForSitesFromASite, *resty.Response, error) { + //profileID string,id string + path := "/dna/intent/api/v1/networkProfilesForSites/{profileId}/siteAssignments/{id}" + path = strings.Replace(path, "{profileId}", fmt.Sprintf("%v", profileID), -1) path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - queryString, _ := query.Values(UpdateNFVProfileQueryParams) - response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetBody(requestSiteDesignUpdateNFVProfile). - SetResult(&ResponseSiteDesignUpdateNfvProfile{}). + SetResult(&ResponseSiteDesignUnassignsANetworkProfileForSitesFromASite{}). SetError(&Error). - Put(path) + Delete(path) if err != nil { return nil, nil, err @@ -724,12 +1923,12 @@ func (s *SiteDesignService) UpdateNfvProfile(id string, requestSiteDesignUpdateN if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.UpdateNfvProfile(id, requestSiteDesignUpdateNFVProfile, UpdateNFVProfileQueryParams) + return s.UnassignsANetworkProfileForSitesFromASite(profileID, id) } - return nil, response, fmt.Errorf("error with operation UpdateNfvProfile") + return nil, response, fmt.Errorf("error with operation UnassignsANetworkProfileForSitesFromASite") } - result := response.Result().(*ResponseSiteDesignUpdateNfvProfile) + result := response.Result().(*ResponseSiteDesignUnassignsANetworkProfileForSitesFromASite) return result, response, err } @@ -743,7 +1942,7 @@ func (s *SiteDesignService) UpdateNfvProfile(id string, requestSiteDesignUpdateN @param siteID siteId path parameter. Site Id to be associated -Documentation Link: https://developer.cisco.com/docs/dna-center/#!disassociate +Documentation Link: https://developer.cisco.com/docs/dna-center/#!disassociate-v1 */ func (s *SiteDesignService) Disassociate(networkProfileID string, siteID string) (*ResponseSiteDesignDisassociate, *resty.Response, error) { //networkProfileID string,siteID string @@ -775,27 +1974,62 @@ func (s *SiteDesignService) Disassociate(networkProfileID string, siteID string) } -//DeleteNfvProfile Delete NFV Profile - 5ebb-fa25-41b8-b8a9 -/* API to delete nfv network profile. +//DeletesABuildingV2 Deletes a building - 45ae-a9e4-4008-b0b6 +/* Deletes building in the network hierarchy. This operations fails if there are any floors for this building, or if there are any devices assigned to this building. -@param id id path parameter. Id of nfv network profile to delete. +@param id id path parameter. Building ID -@param DeleteNFVProfileQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-nfv-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-a-building-v2 */ -func (s *SiteDesignService) DeleteNfvProfile(id string, DeleteNFVProfileQueryParams *DeleteNfvProfileQueryParams) (*ResponseSiteDesignDeleteNfvProfile, *resty.Response, error) { - //id string,DeleteNFVProfileQueryParams *DeleteNfvProfileQueryParams - path := "/dna/intent/api/v1/nfv/network-profile/{id}" +func (s *SiteDesignService) DeletesABuildingV2(id string) (*ResponseSiteDesignDeletesABuildingV2, *resty.Response, error) { + //id string + path := "/dna/intent/api/v2/buildings/{id}" path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - queryString, _ := query.Values(DeleteNFVProfileQueryParams) + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSiteDesignDeletesABuildingV2{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletesABuildingV2(id) + } + return nil, response, fmt.Errorf("error with operation DeletesABuildingV2") + } + + result := response.Result().(*ResponseSiteDesignDeletesABuildingV2) + return result, response, err + +} + +//DeletesAFloorV2 Deletes a floor - 6cb4-884b-47db-a808 +/* Deletes a floor from the network hierarchy. This operations fails if there are any devices assigned to this floor. + + +@param id id path parameter. Floor ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-a-floor-v2 +*/ +func (s *SiteDesignService) DeletesAFloorV2(id string) (*ResponseSiteDesignDeletesAFloorV2, *resty.Response, error) { + //id string + path := "/dna/intent/api/v2/floors/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSiteDesignDeleteNfvProfile{}). + SetResult(&ResponseSiteDesignDeletesAFloorV2{}). SetError(&Error). Delete(path) @@ -806,12 +2040,12 @@ func (s *SiteDesignService) DeleteNfvProfile(id string, DeleteNFVProfileQueryPar if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteNfvProfile(id, DeleteNFVProfileQueryParams) + return s.DeletesAFloorV2(id) } - return nil, response, fmt.Errorf("error with operation DeleteNfvProfile") + return nil, response, fmt.Errorf("error with operation DeletesAFloorV2") } - result := response.Result().(*ResponseSiteDesignDeleteNfvProfile) + result := response.Result().(*ResponseSiteDesignDeletesAFloorV2) return result, response, err } diff --git a/sdk/sites.go b/sdk/sites.go index df25dc4..d5ad5c8 100644 --- a/sdk/sites.go +++ b/sdk/sites.go @@ -11,16 +11,71 @@ import ( type SitesService service +type ReadListOfSiteHealthSummariesQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + Limit float64 `url:"limit,omitempty"` //Maximum number of records to return + Offset float64 `url:"offset,omitempty"` //Specifies the starting point within all records returned by the API. It's one based offset. The starting value is 1. + SortBy string `url:"sortBy,omitempty"` //A field within the response to sort by. + Order string `url:"order,omitempty"` //The sort order of the field ascending or descending. + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (`*`) character search support. E.g. `*/San*, */San, /San*` Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*` Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteType string `url:"siteType,omitempty"` //The type of the site. A site can be an area, building, or floor. Default when not provided will be `[floor,building,area]` Examples: `?siteType=area` (single siteType requested) `?siteType=area&siteType=building&siteType=floor` (multiple siteTypes requested) + ID string `url:"id,omitempty"` //The list of entity Uuids. (Ex."6bef213c-19ca-4170-8375-b694e251101c") Examples: id=6bef213c-19ca-4170-8375-b694e251101c (single entity uuid requested) id=6bef213c-19ca-4170-8375-b694e251101c&id=32219612-819e-4b5e-a96b-cf22aca13dd9&id=2541e9a7-b80d-4955-8aa2-79b233318ba0 (multiple entity uuid with '&' separator) + View string `url:"view,omitempty"` //The specific summary view being requested. This is an optional parameter which can be passed to get one or more of the specific health data summaries associated with sites. ### Response data proviced by each view: 1. **site** [id, siteHierarchy, siteHierarchyId, siteType, latitude, longitude] 2. **network** [id, networkDeviceCount, networkDeviceGoodHealthCount,wirelessDeviceCount, wirelessDeviceGoodHealthCount, accessDeviceCount, accessDeviceGoodHealthCount, coreDeviceCount, coreDeviceGoodHealthCount, distributionDeviceCount, distributionDeviceGoodHealthCount, routerDeviceCount, routerDeviceGoodHealthCount, apDeviceCount, apDeviceGoodHealthCount, wlcDeviceCount, wlcDeviceGoodHealthCount, switchDeviceCount, switchDeviceGoodHealthCount, networkDeviceGoodHealthPercentage, accessDeviceGoodHealthPercentage, coreDeviceGoodHealthPercentage, distributionDeviceGoodHealthPercentage, routerDeviceGoodHealthPercentage, apDeviceGoodHealthPercentage, wlcDeviceGoodHealthPercentage, switchDeviceGoodHealthPercentage, wirelessDeviceGoodHealthPercentage] 3. **client** [id, clientCount, clientGoodHealthCount, wiredClientCount, wirelessClientCount, wiredClientGoodHealthCount, wirelessClientGoodHealthCount, clientGoodHealthPercentage, wiredClientGoodHealthPercentage, wirelessClientGoodHealthPercentage, clientDataUsage] 4. **issue** [id, p1IssueCount, p2IssueCount, p3IssueCount, p4IssueCount, issueCount] When this query parameter is not added the default summaries are: **[site,client,network,issue]** Examples: view=client (single view requested) view=client&view=network&view=issue (multiple views requested) + Attribute string `url:"attribute,omitempty"` //Supported Attributes: [id, siteHierarchy, siteHierarchyId, siteType, latitude, longitude, networkDeviceCount, networkDeviceGoodHealthCount,wirelessDeviceCount, wirelessDeviceGoodHealthCount, accessDeviceCount, accessDeviceGoodHealthCount, coreDeviceCount, coreDeviceGoodHealthCount, distributionDeviceCount, distributionDeviceGoodHealthCount, routerDeviceCount, routerDeviceGoodHealthCount, apDeviceCount, apDeviceGoodHealthCount, wlcDeviceCount, wlcDeviceGoodHealthCount, switchDeviceCount, switchDeviceGoodHealthCount, networkDeviceGoodHealthPercentage, accessDeviceGoodHealthPercentage, coreDeviceGoodHealthPercentage, distributionDeviceGoodHealthPercentage, routerDeviceGoodHealthPercentage, apDeviceGoodHealthPercentage, wlcDeviceGoodHealthPercentage, switchDeviceGoodHealthPercentage, wirelessDeviceGoodHealthPercentage, clientCount, clientGoodHealthCount, wiredClientCount, wirelessClientCount, wiredClientGoodHealthCount, wirelessClientGoodHealthCount, clientGoodHealthPercentage, wiredClientGoodHealthPercentage, wirelessClientGoodHealthPercentage, clientDataUsage, p1IssueCount, p2IssueCount, p3IssueCount, p4IssueCount, issueCount] If length of attribute list is too long, please use 'view' param instead. Examples: attribute=siteHierarchy (single attribute requested) attribute=siteHierarchy&attribute=clientCount (multiple attributes requested) +} +type ReadListOfSiteHealthSummariesHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type ReadSiteCountQueryParams struct { + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (`*`) character search support. E.g. `*/San*, */San, /San*` Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*` Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteType string `url:"siteType,omitempty"` //The type of the site. A site can be an area, building, or floor. Default when not provided will be `[floor,building,area]` Examples: `?siteType=area` (single siteType requested) `?siteType=area&siteType=building&siteType=floor` (multiple siteTypes requested) + ID string `url:"id,omitempty"` //The list of entity Uuids. (Ex."6bef213c-19ca-4170-8375-b694e251101c") Examples: id=6bef213c-19ca-4170-8375-b694e251101c (single entity uuid requested) id=6bef213c-19ca-4170-8375-b694e251101c&id=32219612-819e-4b5e-a96b-cf22aca13dd9&id=2541e9a7-b80d-4955-8aa2-79b233318ba0 (multiple entity uuid with '&' separator) +} +type ReadSiteCountHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type ReadAnAggregatedSummaryOfSiteHealthDataQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (`*`) character search support. E.g. `*/San*, */San, /San*` Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*` Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteType string `url:"siteType,omitempty"` //The type of the site. A site can be an area, building, or floor. Default when not provided will be `[floor,building,area]` Examples: `?siteType=area` (single siteType requested) `?siteType=area&siteType=building&siteType=floor` (multiple siteTypes requested) + ID string `url:"id,omitempty"` //The list of entity Uuids. (Ex."6bef213c-19ca-4170-8375-b694e251101c") Examples: id=6bef213c-19ca-4170-8375-b694e251101c (single entity uuid requested) id=6bef213c-19ca-4170-8375-b694e251101c&id=32219612-819e-4b5e-a96b-cf22aca13dd9&id=2541e9a7-b80d-4955-8aa2-79b233318ba0 (multiple entity uuid with '&' separator) + View string `url:"view,omitempty"` //The specific summary view being requested. This is an optional parameter which can be passed to get one or more of the specific health data summaries associated with sites. ### Response data proviced by each view: 1. **site** [id, siteHierarchy, siteHierarchyId, siteType, latitude, longitude] 2. **network** [id, networkDeviceCount, networkDeviceGoodHealthCount,wirelessDeviceCount, wirelessDeviceGoodHealthCount, accessDeviceCount, accessDeviceGoodHealthCount, coreDeviceCount, coreDeviceGoodHealthCount, distributionDeviceCount, distributionDeviceGoodHealthCount, routerDeviceCount, routerDeviceGoodHealthCount, apDeviceCount, apDeviceGoodHealthCount, wlcDeviceCount, wlcDeviceGoodHealthCount, switchDeviceCount, switchDeviceGoodHealthCount, networkDeviceGoodHealthPercentage, accessDeviceGoodHealthPercentage, coreDeviceGoodHealthPercentage, distributionDeviceGoodHealthPercentage, routerDeviceGoodHealthPercentage, apDeviceGoodHealthPercentage, wlcDeviceGoodHealthPercentage, switchDeviceGoodHealthPercentage, wirelessDeviceGoodHealthPercentage] 3. **client** [id, clientCount, clientGoodHealthCount, wiredClientCount, wirelessClientCount, wiredClientGoodHealthCount, wirelessClientGoodHealthCount, clientGoodHealthPercentage, wiredClientGoodHealthPercentage, wirelessClientGoodHealthPercentage, clientDataUsage] 4. **issue** [id, p1IssueCount, p2IssueCount, p3IssueCount, p4IssueCount, issueCount] When this query parameter is not added the default summaries are: **[site,client,network,issue]** Examples: view=client (single view requested) view=client&view=network&view=issue (multiple views requested) + Attribute string `url:"attribute,omitempty"` //Supported Attributes: [id, siteHierarchy, siteHierarchyId, siteType, latitude, longitude, networkDeviceCount, networkDeviceGoodHealthCount,wirelessDeviceCount, wirelessDeviceGoodHealthCount, accessDeviceCount, accessDeviceGoodHealthCount, coreDeviceCount, coreDeviceGoodHealthCount, distributionDeviceCount, distributionDeviceGoodHealthCount, routerDeviceCount, routerDeviceGoodHealthCount, apDeviceCount, apDeviceGoodHealthCount, wlcDeviceCount, wlcDeviceGoodHealthCount, switchDeviceCount, switchDeviceGoodHealthCount, networkDeviceGoodHealthPercentage, accessDeviceGoodHealthPercentage, coreDeviceGoodHealthPercentage, distributionDeviceGoodHealthPercentage, routerDeviceGoodHealthPercentage, apDeviceGoodHealthPercentage, wlcDeviceGoodHealthPercentage, switchDeviceGoodHealthPercentage, wirelessDeviceGoodHealthPercentage, clientCount, clientGoodHealthCount, wiredClientCount, wirelessClientCount, wiredClientGoodHealthCount, wirelessClientGoodHealthCount, clientGoodHealthPercentage, wiredClientGoodHealthPercentage, wirelessClientGoodHealthPercentage, clientDataUsage, p1IssueCount, p2IssueCount, p3IssueCount, p4IssueCount, issueCount] If length of attribute list is too long, please use 'view' param instead. Examples: attribute=siteHierarchy (single attribute requested) attribute=siteHierarchy&attribute=clientCount (multiple attributes requested) +} +type ReadAnAggregatedSummaryOfSiteHealthDataHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} +type QueryAnAggregatedSummaryOfSiteHealthDataQueryParams struct { + SiteHierarchy string `url:"siteHierarchy,omitempty"` //The full hierarchical breakdown of the site tree starting from Global site name and ending with the specific site name. The Root site is named "Global" (Ex. `Global/AreaName/BuildingName/FloorName`) This field supports wildcard asterisk (`*`) character search support. E.g. `*/San*, */San, /San*` Examples: `?siteHierarchy=Global/AreaName/BuildingName/FloorName` (single siteHierarchy requested) `?siteHierarchy=Global/AreaName/BuildingName/FloorName&siteHierarchy=Global/AreaName2/BuildingName2/FloorName2` (multiple siteHierarchies requested) + SiteHierarchyID string `url:"siteHierarchyId,omitempty"` //The full hierarchy breakdown of the site tree in id form starting from Global site UUID and ending with the specific site UUID. (Ex. `globalUuid/areaUuid/buildingUuid/floorUuid`) This field supports wildcard asterisk (`*`) character search support. E.g. `*uuid*, *uuid, uuid*` Examples: `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid `(single siteHierarchyId requested) `?siteHierarchyId=globalUuid/areaUuid/buildingUuid/floorUuid&siteHierarchyId=globalUuid/areaUuid2/buildingUuid2/floorUuid2` (multiple siteHierarchyIds requested) + SiteType string `url:"siteType,omitempty"` //The type of the site. A site can be an area, building, or floor. Default when not provided will be `[floor,building,area]` Examples: `?siteType=area` (single siteType requested) `?siteType=area&siteType=building&siteType=floor` (multiple siteTypes requested) + ID string `url:"id,omitempty"` //The list of entity Uuids. (Ex."6bef213c-19ca-4170-8375-b694e251101c") Examples: id=6bef213c-19ca-4170-8375-b694e251101c (single entity uuid requested) id=6bef213c-19ca-4170-8375-b694e251101c&id=32219612-819e-4b5e-a96b-cf22aca13dd9&id=2541e9a7-b80d-4955-8aa2-79b233318ba0 (multiple entity uuid with '&' separator) +} +type ReadSiteHealthSummaryDataBySiteIDQueryParams struct { + StartTime float64 `url:"startTime,omitempty"` //Start time from which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. If `startTime` is not provided, API will default to current time. + EndTime float64 `url:"endTime,omitempty"` //End time to which API queries the data set related to the resource. It must be specified in UNIX epochtime in milliseconds. Value is inclusive. + View string `url:"view,omitempty"` //The specific summary view being requested. This is an optional parameter which can be passed to get one or more of the specific health data summaries associated with sites. ### Response data proviced by each view: 1. **site** [id, siteHierarchy, siteHierarchyId, siteType, latitude, longitude] 2. **network** [id, networkDeviceCount, networkDeviceGoodHealthCount,wirelessDeviceCount, wirelessDeviceGoodHealthCount, accessDeviceCount, accessDeviceGoodHealthCount, coreDeviceCount, coreDeviceGoodHealthCount, distributionDeviceCount, distributionDeviceGoodHealthCount, routerDeviceCount, routerDeviceGoodHealthCount, apDeviceCount, apDeviceGoodHealthCount, wlcDeviceCount, wlcDeviceGoodHealthCount, switchDeviceCount, switchDeviceGoodHealthCount, networkDeviceGoodHealthPercentage, accessDeviceGoodHealthPercentage, coreDeviceGoodHealthPercentage, distributionDeviceGoodHealthPercentage, routerDeviceGoodHealthPercentage, apDeviceGoodHealthPercentage, wlcDeviceGoodHealthPercentage, switchDeviceGoodHealthPercentage, wirelessDeviceGoodHealthPercentage] 3. **client** [id, clientCount, clientGoodHealthCount, wiredClientCount, wirelessClientCount, wiredClientGoodHealthCount, wirelessClientGoodHealthCount, clientGoodHealthPercentage, wiredClientGoodHealthPercentage, wirelessClientGoodHealthPercentage, clientDataUsage] 4. **issue** [id, p1IssueCount, p2IssueCount, p3IssueCount, p4IssueCount, issueCount] When this query parameter is not added the default summaries are: **[site,client,network,issue]** Examples: view=client (single view requested) view=client&view=network&view=issue (multiple views requested) + Attribute string `url:"attribute,omitempty"` //Supported Attributes: [id, siteHierarchy, siteHierarchyId, siteType, latitude, longitude, networkDeviceCount, networkDeviceGoodHealthCount,wirelessDeviceCount, wirelessDeviceGoodHealthCount, accessDeviceCount, accessDeviceGoodHealthCount, coreDeviceCount, coreDeviceGoodHealthCount, distributionDeviceCount, distributionDeviceGoodHealthCount, routerDeviceCount, routerDeviceGoodHealthCount, apDeviceCount, apDeviceGoodHealthCount, wlcDeviceCount, wlcDeviceGoodHealthCount, switchDeviceCount, switchDeviceGoodHealthCount, networkDeviceGoodHealthPercentage, accessDeviceGoodHealthPercentage, coreDeviceGoodHealthPercentage, distributionDeviceGoodHealthPercentage, routerDeviceGoodHealthPercentage, apDeviceGoodHealthPercentage, wlcDeviceGoodHealthPercentage, switchDeviceGoodHealthPercentage, wirelessDeviceGoodHealthPercentage, clientCount, clientGoodHealthCount, wiredClientCount, wirelessClientCount, wiredClientGoodHealthCount, wirelessClientGoodHealthCount, clientGoodHealthPercentage, wiredClientGoodHealthPercentage, wirelessClientGoodHealthPercentage, clientDataUsage, p1IssueCount, p2IssueCount, p3IssueCount, p4IssueCount, issueCount] If length of attribute list is too long, please use 'view' param instead. Examples: attribute=siteHierarchy (single attribute requested) attribute=siteHierarchy&attribute=clientCount (multiple attributes requested) +} +type ReadSiteHealthSummaryDataBySiteIDHeaderParams struct { + XCaLLERID string `url:"X-CALLER-ID,omitempty"` //Expects type string. Caller ID is used to trace the origin of API calls and their associated queries executed on the database. It's an optional header parameter that can be added to an API request. +} type AssignDevicesToSiteHeaderParams struct { Runsync string `url:"__runsync,omitempty"` //Expects type bool. Enable this parameter to execute the API and return a response synchronously + Timeout string `url:"__timeout,omitempty"` //Expects type float64. During synchronous execution, this defines the maximum time to wait for a response, before the API execution is terminated Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. Persist bapi sync response - Runsynctimeout string `url:"__runsynctimeout,omitempty"` //Expects type float64. During synchronous execution, this defines the maximum time to wait for a response, before the API execution is terminated } type GetMembershipQueryParams struct { - Offset int `url:"offset,omitempty"` //offset/starting row - Limit int `url:"limit,omitempty"` //Number of sites to be retrieved - DeviceFamily string `url:"deviceFamily,omitempty"` //Device family name - SerialNumber string `url:"serialNumber,omitempty"` //Device serial number + Offset float64 `url:"offset,omitempty"` //offset/starting row + Limit float64 `url:"limit,omitempty"` //Number of sites to be retrieved + DeviceFamily string `url:"deviceFamily,omitempty"` //Device family name + SerialNumber string `url:"serialNumber,omitempty"` //Device serial number } type CreateSiteHeaderParams struct { Runsync string `url:"__runsync,omitempty"` //Expects type bool. Enable this parameter to execute the API and return a response synchronously @@ -28,32 +83,342 @@ type CreateSiteHeaderParams struct { Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. Persist bapi sync response } type GetSiteQueryParams struct { - Name string `url:"name,omitempty"` //siteNameHierarchy (ex: global/groupName) - SiteID string `url:"siteId,omitempty"` //Site id to which site details to retrieve. - Type string `url:"type,omitempty"` //type (ex: area, building, floor) - Offset int `url:"offset,omitempty"` //offset/starting row. The default value is 1 - Limit int `url:"limit,omitempty"` //Number of sites to be retrieved. The default value is 500 + Name string `url:"name,omitempty"` //Site name hierarchy (E.g Global/USA/CA) + SiteID string `url:"siteId,omitempty"` //Site Id + Type string `url:"type,omitempty"` //Site type (Ex: area, building, floor) + Offset int `url:"offset,omitempty"` //Offset/starting index for pagination. Indexed from 1. + Limit int `url:"limit,omitempty"` //Number of sites to be listed } type GetSiteHealthQueryParams struct { - Timestamp string `url:"timestamp,omitempty"` //Epoch time(in milliseconds) when the Site Hierarchy data is required - SiteType string `url:"siteType,omitempty"` //Type of the site to return. AREA or BUILDING. Default to AREA - Offset float64 `url:"offset,omitempty"` //The offset value, starting from 1, of the first returned site entry. Default is 1. - Limit float64 `url:"limit,omitempty"` //The max number of sites in the returned data set. Default is 25, and max at 50 + SiteType string `url:"siteType,omitempty"` //site type: AREA or BUILDING (case insensitive) + Offset float64 `url:"offset,omitempty"` //Offset of the first returned data set entry (Multiple of 'limit' + 1) + Limit float64 `url:"limit,omitempty"` //Max number of data entries in the returned data set [1,50]. Default is 25 + Timestamp float64 `url:"timestamp,omitempty"` //Epoch time(in milliseconds) when the Site Hierarchy data is required +} +type GetDevicesThatAreAssignedToASiteQueryParams struct { + Offset string `url:"offset,omitempty"` //Offset/starting index for pagination + Limit string `url:"limit,omitempty"` //Number of devices to be listed. Default and max supported value is 500 + MemberType string `url:"memberType,omitempty"` //Member type (This API only supports the 'networkdevice' type) + Level string `url:"level,omitempty"` //Depth of site hierarchy to be considered to list the devices. If the provided value is -1, devices for all child sites will be listed. } type GetSiteCountQueryParams struct { - SiteID string `url:"siteId,omitempty"` //Site id to retrieve site count. + SiteID string `url:"siteId,omitempty"` //Site instance UUID } type UpdateSiteHeaderParams struct { Runsync string `url:"__runsync,omitempty"` //Expects type bool. Enable this parameter to execute the API and return a response synchronously Timeout string `url:"__timeout,omitempty"` //Expects type float64. During synchronous execution, this defines the maximum time to wait for a response, before the API execution is terminated Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. Persist bapi sync response } +type GetSiteV2QueryParams struct { + GroupNameHierarchy string `url:"groupNameHierarchy,omitempty"` //Site name hierarchy (E.g. Global/USA/CA) + ID string `url:"id,omitempty"` //Site Id + Type string `url:"type,omitempty"` //Site type (Acceptable values: area, building, floor) + Offset string `url:"offset,omitempty"` //Offset/starting index for pagination + Limit string `url:"limit,omitempty"` //Number of sites to be listed. Default and max supported value is 500 +} +type GetSiteCountV2QueryParams struct { + ID string `url:"id,omitempty"` //Site instance UUID +} +type ResponseSitesReadListOfSiteHealthSummaries struct { + Response *[]ResponseSitesReadListOfSiteHealthSummariesResponse `json:"response,omitempty"` // + Page *ResponseSitesReadListOfSiteHealthSummariesPage `json:"page,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSitesReadListOfSiteHealthSummariesResponse struct { + ID string `json:"id,omitempty"` // Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteType string `json:"siteType,omitempty"` // Site Type + Latitude *float64 `json:"latitude,omitempty"` // Latitude + Longitude *float64 `json:"longitude,omitempty"` // Longitude + NetworkDeviceGoodHealthPercentage *int `json:"networkDeviceGoodHealthPercentage,omitempty"` // Network Device Good Health Percentage + NetworkDeviceGoodHealthCount *int `json:"networkDeviceGoodHealthCount,omitempty"` // Network Device Good Health Count + ClientGoodHealthCount *int `json:"clientGoodHealthCount,omitempty"` // Client Good Health Count + ClientGoodHealthPercentage *int `json:"clientGoodHealthPercentage,omitempty"` // Client Good Health Percentage + WiredClientGoodHealthPercentage *int `json:"wiredClientGoodHealthPercentage,omitempty"` // Wired Client Good Health Percentage + WirelessClientGoodHealthPercentage *int `json:"wirelessClientGoodHealthPercentage,omitempty"` // Wireless Client Good Health Percentage + ClientCount *int `json:"clientCount,omitempty"` // Client Count + WiredClientCount *int `json:"wiredClientCount,omitempty"` // Wired Client Count + WirelessClientCount *int `json:"wirelessClientCount,omitempty"` // Wireless Client Count + WiredClientGoodHealthCount *int `json:"wiredClientGoodHealthCount,omitempty"` // Wired Client Good Health Count + WirelessClientGoodHealthCount *int `json:"wirelessClientGoodHealthCount,omitempty"` // Wireless Client Good Health Count + NetworkDeviceCount *int `json:"networkDeviceCount,omitempty"` // Network Device Count + AccessDeviceCount *int `json:"accessDeviceCount,omitempty"` // Access Device Count + AccessDeviceGoodHealthCount *int `json:"accessDeviceGoodHealthCount,omitempty"` // Access Device Good Health Count + CoreDeviceCount *int `json:"coreDeviceCount,omitempty"` // Core Device Count + CoreDeviceGoodHealthCount *int `json:"coreDeviceGoodHealthCount,omitempty"` // Core Device Good Health Count + DistributionDeviceCount *int `json:"distributionDeviceCount,omitempty"` // Distribution Device Count + DistributionDeviceGoodHealthCount *int `json:"distributionDeviceGoodHealthCount,omitempty"` // Distribution Device Good Health Count + RouterDeviceCount *int `json:"routerDeviceCount,omitempty"` // Router Device Count + RouterDeviceGoodHealthCount *int `json:"routerDeviceGoodHealthCount,omitempty"` // Router Device Good Health Count + WirelessDeviceCount *int `json:"wirelessDeviceCount,omitempty"` // Wireless Device Count + WirelessDeviceGoodHealthCount *int `json:"wirelessDeviceGoodHealthCount,omitempty"` // Wireless Device Good Health Count + ApDeviceCount *int `json:"apDeviceCount,omitempty"` // Ap Device Count + ApDeviceGoodHealthCount *int `json:"apDeviceGoodHealthCount,omitempty"` // Ap Device Good Health Count + WlcDeviceCount *int `json:"wlcDeviceCount,omitempty"` // Wlc Device Count + WlcDeviceGoodHealthCount *int `json:"wlcDeviceGoodHealthCount,omitempty"` // Wlc Device Good Health Count + SwitchDeviceCount *int `json:"switchDeviceCount,omitempty"` // Switch Device Count + SwitchDeviceGoodHealthCount *int `json:"switchDeviceGoodHealthCount,omitempty"` // Switch Device Good Health Count + AccessDeviceGoodHealthPercentage *int `json:"accessDeviceGoodHealthPercentage,omitempty"` // Access Device Good Health Percentage + CoreDeviceGoodHealthPercentage *int `json:"coreDeviceGoodHealthPercentage,omitempty"` // Core Device Good Health Percentage + DistributionDeviceGoodHealthPercentage *int `json:"distributionDeviceGoodHealthPercentage,omitempty"` // Distribution Device Good Health Percentage + RouterDeviceGoodHealthPercentage *int `json:"routerDeviceGoodHealthPercentage,omitempty"` // Router Device Good Health Percentage + ApDeviceGoodHealthPercentage *int `json:"apDeviceGoodHealthPercentage,omitempty"` // Ap Device Good Health Percentage + WlcDeviceGoodHealthPercentage *int `json:"wlcDeviceGoodHealthPercentage,omitempty"` // Wlc Device Good Health Percentage + SwitchDeviceGoodHealthPercentage *int `json:"switchDeviceGoodHealthPercentage,omitempty"` // Switch Device Good Health Percentage + WirelessDeviceGoodHealthPercentage *int `json:"wirelessDeviceGoodHealthPercentage,omitempty"` // Wireless Device Good Health Percentage + ClientDataUsage *float64 `json:"clientDataUsage,omitempty"` // Client Data Usage + P1IssueCount *int `json:"p1IssueCount,omitempty"` // P1 Issue Count + P2IssueCount *int `json:"p2IssueCount,omitempty"` // P2 Issue Count + P3IssueCount *int `json:"p3IssueCount,omitempty"` // P3 Issue Count + P4IssueCount *int `json:"p4IssueCount,omitempty"` // P4 Issue Count + IssueCount *int `json:"issueCount,omitempty"` // Issue Count +} +type ResponseSitesReadListOfSiteHealthSummariesPage struct { + Limit *int `json:"limit,omitempty"` // Limit + Offset *int `json:"offset,omitempty"` // Offset + Count *int `json:"count,omitempty"` // Count + SortBy *[]ResponseSitesReadListOfSiteHealthSummariesPageSortBy `json:"sortBy,omitempty"` // +} +type ResponseSitesReadListOfSiteHealthSummariesPageSortBy struct { + Name string `json:"name,omitempty"` // Name + Order string `json:"order,omitempty"` // Order +} +type ResponseSitesReadSiteCount struct { + Response *ResponseSitesReadSiteCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSitesReadSiteCountResponse struct { + Count *int `json:"count,omitempty"` // Count +} +type ResponseSitesReadAnAggregatedSummaryOfSiteHealthData struct { + Response *ResponseSitesReadAnAggregatedSummaryOfSiteHealthDataResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSitesReadAnAggregatedSummaryOfSiteHealthDataResponse struct { + ID string `json:"id,omitempty"` // Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteType string `json:"siteType,omitempty"` // Site Type + Latitude *float64 `json:"latitude,omitempty"` // Latitude + Longitude *float64 `json:"longitude,omitempty"` // Longitude + NetworkDeviceGoodHealthPercentage *int `json:"networkDeviceGoodHealthPercentage,omitempty"` // Network Device Good Health Percentage + NetworkDeviceGoodHealthCount *int `json:"networkDeviceGoodHealthCount,omitempty"` // Network Device Good Health Count + ClientGoodHealthCount *int `json:"clientGoodHealthCount,omitempty"` // Client Good Health Count + ClientGoodHealthPercentage *int `json:"clientGoodHealthPercentage,omitempty"` // Client Good Health Percentage + WiredClientGoodHealthPercentage *int `json:"wiredClientGoodHealthPercentage,omitempty"` // Wired Client Good Health Percentage + WirelessClientGoodHealthPercentage *int `json:"wirelessClientGoodHealthPercentage,omitempty"` // Wireless Client Good Health Percentage + ClientCount *int `json:"clientCount,omitempty"` // Client Count + WiredClientCount *int `json:"wiredClientCount,omitempty"` // Wired Client Count + WirelessClientCount *int `json:"wirelessClientCount,omitempty"` // Wireless Client Count + WiredClientGoodHealthCount *int `json:"wiredClientGoodHealthCount,omitempty"` // Wired Client Good Health Count + WirelessClientGoodHealthCount *int `json:"wirelessClientGoodHealthCount,omitempty"` // Wireless Client Good Health Count + NetworkDeviceCount *int `json:"networkDeviceCount,omitempty"` // Network Device Count + AccessDeviceCount *int `json:"accessDeviceCount,omitempty"` // Access Device Count + AccessDeviceGoodHealthCount *int `json:"accessDeviceGoodHealthCount,omitempty"` // Access Device Good Health Count + CoreDeviceCount *int `json:"coreDeviceCount,omitempty"` // Core Device Count + CoreDeviceGoodHealthCount *int `json:"coreDeviceGoodHealthCount,omitempty"` // Core Device Good Health Count + DistributionDeviceCount *int `json:"distributionDeviceCount,omitempty"` // Distribution Device Count + DistributionDeviceGoodHealthCount *int `json:"distributionDeviceGoodHealthCount,omitempty"` // Distribution Device Good Health Count + RouterDeviceCount *int `json:"routerDeviceCount,omitempty"` // Router Device Count + RouterDeviceGoodHealthCount *int `json:"routerDeviceGoodHealthCount,omitempty"` // Router Device Good Health Count + WirelessDeviceCount *int `json:"wirelessDeviceCount,omitempty"` // Wireless Device Count + WirelessDeviceGoodHealthCount *int `json:"wirelessDeviceGoodHealthCount,omitempty"` // Wireless Device Good Health Count + ApDeviceCount *int `json:"apDeviceCount,omitempty"` // Ap Device Count + ApDeviceGoodHealthCount *int `json:"apDeviceGoodHealthCount,omitempty"` // Ap Device Good Health Count + WlcDeviceCount *int `json:"wlcDeviceCount,omitempty"` // Wlc Device Count + WlcDeviceGoodHealthCount *int `json:"wlcDeviceGoodHealthCount,omitempty"` // Wlc Device Good Health Count + SwitchDeviceCount *int `json:"switchDeviceCount,omitempty"` // Switch Device Count + SwitchDeviceGoodHealthCount *int `json:"switchDeviceGoodHealthCount,omitempty"` // Switch Device Good Health Count + AccessDeviceGoodHealthPercentage *int `json:"accessDeviceGoodHealthPercentage,omitempty"` // Access Device Good Health Percentage + CoreDeviceGoodHealthPercentage *int `json:"coreDeviceGoodHealthPercentage,omitempty"` // Core Device Good Health Percentage + DistributionDeviceGoodHealthPercentage *int `json:"distributionDeviceGoodHealthPercentage,omitempty"` // Distribution Device Good Health Percentage + RouterDeviceGoodHealthPercentage *int `json:"routerDeviceGoodHealthPercentage,omitempty"` // Router Device Good Health Percentage + ApDeviceGoodHealthPercentage *int `json:"apDeviceGoodHealthPercentage,omitempty"` // Ap Device Good Health Percentage + WlcDeviceGoodHealthPercentage *int `json:"wlcDeviceGoodHealthPercentage,omitempty"` // Wlc Device Good Health Percentage + SwitchDeviceGoodHealthPercentage *int `json:"switchDeviceGoodHealthPercentage,omitempty"` // Switch Device Good Health Percentage + WirelessDeviceGoodHealthPercentage *int `json:"wirelessDeviceGoodHealthPercentage,omitempty"` // Wireless Device Good Health Percentage + ClientDataUsage *float64 `json:"clientDataUsage,omitempty"` // Client Data Usage + P1IssueCount *int `json:"p1IssueCount,omitempty"` // P1 Issue Count + P2IssueCount *int `json:"p2IssueCount,omitempty"` // P2 Issue Count + P3IssueCount *int `json:"p3IssueCount,omitempty"` // P3 Issue Count + P4IssueCount *int `json:"p4IssueCount,omitempty"` // P4 Issue Count + IssueCount *int `json:"issueCount,omitempty"` // Issue Count +} +type ResponseSitesQueryAnAggregatedSummaryOfSiteHealthData struct { + Response *ResponseSitesQueryAnAggregatedSummaryOfSiteHealthDataResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSitesQueryAnAggregatedSummaryOfSiteHealthDataResponse struct { + ID string `json:"id,omitempty"` // Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteType string `json:"siteType,omitempty"` // Site Type + Latitude *float64 `json:"latitude,omitempty"` // Latitude + Longitude *float64 `json:"longitude,omitempty"` // Longitude + NetworkDeviceGoodHealthPercentage *int `json:"networkDeviceGoodHealthPercentage,omitempty"` // Network Device Good Health Percentage + NetworkDeviceGoodHealthCount *int `json:"networkDeviceGoodHealthCount,omitempty"` // Network Device Good Health Count + ClientGoodHealthCount *int `json:"clientGoodHealthCount,omitempty"` // Client Good Health Count + ClientGoodHealthPercentage *int `json:"clientGoodHealthPercentage,omitempty"` // Client Good Health Percentage + WiredClientGoodHealthPercentage *int `json:"wiredClientGoodHealthPercentage,omitempty"` // Wired Client Good Health Percentage + WirelessClientGoodHealthPercentage *int `json:"wirelessClientGoodHealthPercentage,omitempty"` // Wireless Client Good Health Percentage + ClientCount *int `json:"clientCount,omitempty"` // Client Count + WiredClientCount *int `json:"wiredClientCount,omitempty"` // Wired Client Count + WirelessClientCount *int `json:"wirelessClientCount,omitempty"` // Wireless Client Count + WiredClientGoodHealthCount *int `json:"wiredClientGoodHealthCount,omitempty"` // Wired Client Good Health Count + WirelessClientGoodHealthCount *int `json:"wirelessClientGoodHealthCount,omitempty"` // Wireless Client Good Health Count + NetworkDeviceCount *int `json:"networkDeviceCount,omitempty"` // Network Device Count + AccessDeviceCount *int `json:"accessDeviceCount,omitempty"` // Access Device Count + AccessDeviceGoodHealthCount *int `json:"accessDeviceGoodHealthCount,omitempty"` // Access Device Good Health Count + CoreDeviceCount *int `json:"coreDeviceCount,omitempty"` // Core Device Count + CoreDeviceGoodHealthCount *int `json:"coreDeviceGoodHealthCount,omitempty"` // Core Device Good Health Count + DistributionDeviceCount *int `json:"distributionDeviceCount,omitempty"` // Distribution Device Count + DistributionDeviceGoodHealthCount *int `json:"distributionDeviceGoodHealthCount,omitempty"` // Distribution Device Good Health Count + RouterDeviceCount *int `json:"routerDeviceCount,omitempty"` // Router Device Count + RouterDeviceGoodHealthCount *int `json:"routerDeviceGoodHealthCount,omitempty"` // Router Device Good Health Count + WirelessDeviceCount *int `json:"wirelessDeviceCount,omitempty"` // Wireless Device Count + WirelessDeviceGoodHealthCount *int `json:"wirelessDeviceGoodHealthCount,omitempty"` // Wireless Device Good Health Count + ApDeviceCount *int `json:"apDeviceCount,omitempty"` // Ap Device Count + ApDeviceGoodHealthCount *int `json:"apDeviceGoodHealthCount,omitempty"` // Ap Device Good Health Count + WlcDeviceCount *int `json:"wlcDeviceCount,omitempty"` // Wlc Device Count + WlcDeviceGoodHealthCount *int `json:"wlcDeviceGoodHealthCount,omitempty"` // Wlc Device Good Health Count + SwitchDeviceCount *int `json:"switchDeviceCount,omitempty"` // Switch Device Count + SwitchDeviceGoodHealthCount *int `json:"switchDeviceGoodHealthCount,omitempty"` // Switch Device Good Health Count + AccessDeviceGoodHealthPercentage *int `json:"accessDeviceGoodHealthPercentage,omitempty"` // Access Device Good Health Percentage + CoreDeviceGoodHealthPercentage *int `json:"coreDeviceGoodHealthPercentage,omitempty"` // Core Device Good Health Percentage + DistributionDeviceGoodHealthPercentage *int `json:"distributionDeviceGoodHealthPercentage,omitempty"` // Distribution Device Good Health Percentage + RouterDeviceGoodHealthPercentage *int `json:"routerDeviceGoodHealthPercentage,omitempty"` // Router Device Good Health Percentage + ApDeviceGoodHealthPercentage *int `json:"apDeviceGoodHealthPercentage,omitempty"` // Ap Device Good Health Percentage + WlcDeviceGoodHealthPercentage *int `json:"wlcDeviceGoodHealthPercentage,omitempty"` // Wlc Device Good Health Percentage + SwitchDeviceGoodHealthPercentage *int `json:"switchDeviceGoodHealthPercentage,omitempty"` // Switch Device Good Health Percentage + WirelessDeviceGoodHealthPercentage *int `json:"wirelessDeviceGoodHealthPercentage,omitempty"` // Wireless Device Good Health Percentage + ClientDataUsage *float64 `json:"clientDataUsage,omitempty"` // Client Data Usage + P1IssueCount *int `json:"p1IssueCount,omitempty"` // P1 Issue Count + P2IssueCount *int `json:"p2IssueCount,omitempty"` // P2 Issue Count + P3IssueCount *int `json:"p3IssueCount,omitempty"` // P3 Issue Count + P4IssueCount *int `json:"p4IssueCount,omitempty"` // P4 Issue Count + IssueCount *int `json:"issueCount,omitempty"` // Issue Count +} +type ResponseSitesReadSiteHealthSummaryDataBySiteID struct { + Response *ResponseSitesReadSiteHealthSummaryDataBySiteIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSitesReadSiteHealthSummaryDataBySiteIDResponse struct { + ID string `json:"id,omitempty"` // Id + SiteHierarchy string `json:"siteHierarchy,omitempty"` // Site Hierarchy + SiteHierarchyID string `json:"siteHierarchyId,omitempty"` // Site Hierarchy Id + SiteType string `json:"siteType,omitempty"` // Site Type + Latitude *float64 `json:"latitude,omitempty"` // Latitude + Longitude *float64 `json:"longitude,omitempty"` // Longitude + NetworkDeviceGoodHealthPercentage *int `json:"networkDeviceGoodHealthPercentage,omitempty"` // Network Device Good Health Percentage + NetworkDeviceGoodHealthCount *int `json:"networkDeviceGoodHealthCount,omitempty"` // Network Device Good Health Count + ClientGoodHealthCount *int `json:"clientGoodHealthCount,omitempty"` // Client Good Health Count + ClientGoodHealthPercentage *int `json:"clientGoodHealthPercentage,omitempty"` // Client Good Health Percentage + WiredClientGoodHealthPercentage *int `json:"wiredClientGoodHealthPercentage,omitempty"` // Wired Client Good Health Percentage + WirelessClientGoodHealthPercentage *int `json:"wirelessClientGoodHealthPercentage,omitempty"` // Wireless Client Good Health Percentage + ClientCount *int `json:"clientCount,omitempty"` // Client Count + WiredClientCount *int `json:"wiredClientCount,omitempty"` // Wired Client Count + WirelessClientCount *int `json:"wirelessClientCount,omitempty"` // Wireless Client Count + WiredClientGoodHealthCount *int `json:"wiredClientGoodHealthCount,omitempty"` // Wired Client Good Health Count + WirelessClientGoodHealthCount *int `json:"wirelessClientGoodHealthCount,omitempty"` // Wireless Client Good Health Count + NetworkDeviceCount *int `json:"networkDeviceCount,omitempty"` // Network Device Count + AccessDeviceCount *int `json:"accessDeviceCount,omitempty"` // Access Device Count + AccessDeviceGoodHealthCount *int `json:"accessDeviceGoodHealthCount,omitempty"` // Access Device Good Health Count + CoreDeviceCount *int `json:"coreDeviceCount,omitempty"` // Core Device Count + CoreDeviceGoodHealthCount *int `json:"coreDeviceGoodHealthCount,omitempty"` // Core Device Good Health Count + DistributionDeviceCount *int `json:"distributionDeviceCount,omitempty"` // Distribution Device Count + DistributionDeviceGoodHealthCount *int `json:"distributionDeviceGoodHealthCount,omitempty"` // Distribution Device Good Health Count + RouterDeviceCount *int `json:"routerDeviceCount,omitempty"` // Router Device Count + RouterDeviceGoodHealthCount *int `json:"routerDeviceGoodHealthCount,omitempty"` // Router Device Good Health Count + WirelessDeviceCount *int `json:"wirelessDeviceCount,omitempty"` // Wireless Device Count + WirelessDeviceGoodHealthCount *int `json:"wirelessDeviceGoodHealthCount,omitempty"` // Wireless Device Good Health Count + ApDeviceCount *int `json:"apDeviceCount,omitempty"` // Ap Device Count + ApDeviceGoodHealthCount *int `json:"apDeviceGoodHealthCount,omitempty"` // Ap Device Good Health Count + WlcDeviceCount *int `json:"wlcDeviceCount,omitempty"` // Wlc Device Count + WlcDeviceGoodHealthCount *int `json:"wlcDeviceGoodHealthCount,omitempty"` // Wlc Device Good Health Count + SwitchDeviceCount *int `json:"switchDeviceCount,omitempty"` // Switch Device Count + SwitchDeviceGoodHealthCount *int `json:"switchDeviceGoodHealthCount,omitempty"` // Switch Device Good Health Count + AccessDeviceGoodHealthPercentage *int `json:"accessDeviceGoodHealthPercentage,omitempty"` // Access Device Good Health Percentage + CoreDeviceGoodHealthPercentage *int `json:"coreDeviceGoodHealthPercentage,omitempty"` // Core Device Good Health Percentage + DistributionDeviceGoodHealthPercentage *int `json:"distributionDeviceGoodHealthPercentage,omitempty"` // Distribution Device Good Health Percentage + RouterDeviceGoodHealthPercentage *int `json:"routerDeviceGoodHealthPercentage,omitempty"` // Router Device Good Health Percentage + ApDeviceGoodHealthPercentage *int `json:"apDeviceGoodHealthPercentage,omitempty"` // Ap Device Good Health Percentage + WlcDeviceGoodHealthPercentage *int `json:"wlcDeviceGoodHealthPercentage,omitempty"` // Wlc Device Good Health Percentage + SwitchDeviceGoodHealthPercentage *int `json:"switchDeviceGoodHealthPercentage,omitempty"` // Switch Device Good Health Percentage + WirelessDeviceGoodHealthPercentage *int `json:"wirelessDeviceGoodHealthPercentage,omitempty"` // Wireless Device Good Health Percentage + ClientDataUsage *float64 `json:"clientDataUsage,omitempty"` // Client Data Usage + P1IssueCount *int `json:"p1IssueCount,omitempty"` // P1 Issue Count + P2IssueCount *int `json:"p2IssueCount,omitempty"` // P2 Issue Count + P3IssueCount *int `json:"p3IssueCount,omitempty"` // P3 Issue Count + P4IssueCount *int `json:"p4IssueCount,omitempty"` // P4 Issue Count + IssueCount *int `json:"issueCount,omitempty"` // Issue Count +} type ResponseSitesAssignDevicesToSite struct { ExecutionID string `json:"executionId,omitempty"` // Execution Id ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url Message string `json:"message,omitempty"` // Message } +type ResponseSitesExportMapArchive struct { + Response *ResponseSitesExportMapArchiveResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseSitesExportMapArchiveResponse struct { + TaskID string `json:"taskId,omitempty"` // + URL string `json:"url,omitempty"` // +} // # Review unknown case +type ResponseSitesImportMapArchiveCancelAnImport interface{} +type ResponseSitesImportMapArchivePerformImport interface{} +type ResponseSitesImportMapArchiveImportStatus struct { + AuditLog *ResponseSitesImportMapArchiveImportStatusAuditLog `json:"auditLog,omitempty"` // + Status string `json:"status,omitempty"` // + UUID *ResponseSitesImportMapArchiveImportStatusUUID `json:"uuid,omitempty"` // +} +type ResponseSitesImportMapArchiveImportStatusAuditLog struct { + Children *[]ResponseSitesImportMapArchiveImportStatusAuditLogChildren `json:"children,omitempty"` // + EntitiesCount *[]ResponseSitesImportMapArchiveImportStatusAuditLogEntitiesCount `json:"entitiesCount,omitempty"` // + EntityName string `json:"entityName,omitempty"` // + EntityType string `json:"entityType,omitempty"` // + ErrorEntitiesCount *[]ResponseSitesImportMapArchiveImportStatusAuditLogErrorEntitiesCount `json:"errorEntitiesCount,omitempty"` // + Errors *[]ResponseSitesImportMapArchiveImportStatusAuditLogErrors `json:"errors,omitempty"` // + Infos *[]ResponseSitesImportMapArchiveImportStatusAuditLogInfos `json:"infos,omitempty"` // + MatchingEntitiesCount *[]ResponseSitesImportMapArchiveImportStatusAuditLogMatchingEntitiesCount `json:"matchingEntitiesCount,omitempty"` // + SubTasksRootTaskID string `json:"subTasksRootTaskId,omitempty"` // + SuccessfullyImportedFloors []string `json:"successfullyImportedFloors,omitempty"` // + Warnings *[]ResponseSitesImportMapArchiveImportStatusAuditLogWarnings `json:"warnings,omitempty"` // +} +type ResponseSitesImportMapArchiveImportStatusAuditLogChildren interface{} +type ResponseSitesImportMapArchiveImportStatusAuditLogEntitiesCount struct { + Key *int `json:"key,omitempty"` // +} +type ResponseSitesImportMapArchiveImportStatusAuditLogErrorEntitiesCount struct { + Key *int `json:"key,omitempty"` // +} +type ResponseSitesImportMapArchiveImportStatusAuditLogErrors struct { + Message string `json:"message,omitempty"` // +} +type ResponseSitesImportMapArchiveImportStatusAuditLogInfos struct { + Message string `json:"message,omitempty"` // +} +type ResponseSitesImportMapArchiveImportStatusAuditLogMatchingEntitiesCount struct { + Key *int `json:"key,omitempty"` // +} +type ResponseSitesImportMapArchiveImportStatusAuditLogWarnings struct { + Message string `json:"message,omitempty"` // +} +type ResponseSitesImportMapArchiveImportStatusUUID struct { + LeastSignificantBits *int `json:"leastSignificantBits,omitempty"` // + MostSignificantBits *int `json:"mostSignificantBits,omitempty"` // +} +type ResponseSitesMapsSupportedAccessPoints []ResponseItemSitesMapsSupportedAccessPoints // Array of ResponseSitesMapsSupportedAccessPoints +type ResponseItemSitesMapsSupportedAccessPoints struct { + AntennaPatterns *[]ResponseItemSitesMapsSupportedAccessPointsAntennaPatterns `json:"antennaPatterns,omitempty"` // + ApType string `json:"apType,omitempty"` // +} +type ResponseItemSitesMapsSupportedAccessPointsAntennaPatterns struct { + Band string `json:"band,omitempty"` // + Names []string `json:"names,omitempty"` // +} type ResponseSitesGetMembership struct { Site *ResponseSitesGetMembershipSite `json:"site,omitempty"` // Device *[]ResponseSitesGetMembershipDevice `json:"device,omitempty"` // @@ -170,105 +535,147 @@ type ResponseSitesGetSiteHealth struct { Response *[]ResponseSitesGetSiteHealthResponse `json:"response,omitempty"` // } type ResponseSitesGetSiteHealthResponse struct { - SiteName string `json:"siteName,omitempty"` // Site Name - SiteID string `json:"siteId,omitempty"` // Site Id - ParentSiteID string `json:"parentSiteId,omitempty"` // Parent Site Id - ParentSiteName string `json:"parentSiteName,omitempty"` // Parent Site Name - SiteType string `json:"siteType,omitempty"` // Site Type - Latitude *float64 `json:"latitude,omitempty"` // Latitude - Longitude *float64 `json:"longitude,omitempty"` // Longitude - HealthyNetworkDevicePercentage *ResponseSitesGetSiteHealthResponseHealthyNetworkDevicePercentage `json:"healthyNetworkDevicePercentage,omitempty"` // Healthy Network Device Percentage - HealthyClientsPercentage *ResponseSitesGetSiteHealthResponseHealthyClientsPercentage `json:"healthyClientsPercentage,omitempty"` // Healthy Clients Percentage - ClientHealthWired *ResponseSitesGetSiteHealthResponseClientHealthWired `json:"clientHealthWired,omitempty"` // Client Health Wired - ClientHealthWireless *ResponseSitesGetSiteHealthResponseClientHealthWireless `json:"clientHealthWireless,omitempty"` // Client Health Wireless - NumberOfClients *ResponseSitesGetSiteHealthResponseNumberOfClients `json:"numberOfClients,omitempty"` // Number Of Clients - NumberOfNetworkDevice *ResponseSitesGetSiteHealthResponseNumberOfNetworkDevice `json:"numberOfNetworkDevice,omitempty"` // Number Of Network Device - NetworkHealthAverage *ResponseSitesGetSiteHealthResponseNetworkHealthAverage `json:"networkHealthAverage,omitempty"` // Network Health Average - NetworkHealthAccess *ResponseSitesGetSiteHealthResponseNetworkHealthAccess `json:"networkHealthAccess,omitempty"` // Network Health Access - NetworkHealthCore *ResponseSitesGetSiteHealthResponseNetworkHealthCore `json:"networkHealthCore,omitempty"` // Network Health Core - NetworkHealthDistribution *ResponseSitesGetSiteHealthResponseNetworkHealthDistribution `json:"networkHealthDistribution,omitempty"` // Network Health Distribution - NetworkHealthRouter *ResponseSitesGetSiteHealthResponseNetworkHealthRouter `json:"networkHealthRouter,omitempty"` // Network Health Router - NetworkHealthWireless *ResponseSitesGetSiteHealthResponseNetworkHealthWireless `json:"networkHealthWireless,omitempty"` // Network Health Wireless - NetworkHealthOthers *ResponseSitesGetSiteHealthResponseNetworkHealthOthers `json:"networkHealthOthers,omitempty"` // Network Health Others - NumberOfWiredClients *ResponseSitesGetSiteHealthResponseNumberOfWiredClients `json:"numberOfWiredClients,omitempty"` // Number Of Wired Clients - NumberOfWirelessClients *ResponseSitesGetSiteHealthResponseNumberOfWirelessClients `json:"numberOfWirelessClients,omitempty"` // Number Of Wireless Clients - TotalNumberOfConnectedWiredClients *ResponseSitesGetSiteHealthResponseTotalNumberOfConnectedWiredClients `json:"totalNumberOfConnectedWiredClients,omitempty"` // Total Number Of Connected Wired Clients - TotalNumberOfActiveWirelessClients *ResponseSitesGetSiteHealthResponseTotalNumberOfActiveWirelessClients `json:"totalNumberOfActiveWirelessClients,omitempty"` // Total Number Of Active Wireless Clients - WiredGoodClients *ResponseSitesGetSiteHealthResponseWiredGoodClients `json:"wiredGoodClients,omitempty"` // Wired Good Clients - WirelessGoodClients *ResponseSitesGetSiteHealthResponseWirelessGoodClients `json:"wirelessGoodClients,omitempty"` // Wireless Good Clients - OverallGoodDevices *ResponseSitesGetSiteHealthResponseOverallGoodDevices `json:"overallGoodDevices,omitempty"` // Overall Good Devices - AccessGoodCount *ResponseSitesGetSiteHealthResponseAccessGoodCount `json:"accessGoodCount,omitempty"` // Access Good Count - AccessTotalCount *ResponseSitesGetSiteHealthResponseAccessTotalCount `json:"accessTotalCount,omitempty"` // Access Total Count - CoreGoodCount *ResponseSitesGetSiteHealthResponseCoreGoodCount `json:"coreGoodCount,omitempty"` // Core Good Count - CoreTotalCount *ResponseSitesGetSiteHealthResponseCoreTotalCount `json:"coreTotalCount,omitempty"` // Core Total Count - DistributionGoodCount *ResponseSitesGetSiteHealthResponseDistributionGoodCount `json:"distributionGoodCount,omitempty"` // Distribution Good Count - DistributionTotalCount *ResponseSitesGetSiteHealthResponseDistributionTotalCount `json:"distributionTotalCount,omitempty"` // Distribution Total Count - RouterGoodCount *ResponseSitesGetSiteHealthResponseRouterGoodCount `json:"routerGoodCount,omitempty"` // Router Good Count - RouterTotalCount *ResponseSitesGetSiteHealthResponseRouterTotalCount `json:"routerTotalCount,omitempty"` // Router Total Count - WirelessDeviceGoodCount *ResponseSitesGetSiteHealthResponseWirelessDeviceGoodCount `json:"wirelessDeviceGoodCount,omitempty"` // Wireless Device Good Count - WirelessDeviceTotalCount *ResponseSitesGetSiteHealthResponseWirelessDeviceTotalCount `json:"wirelessDeviceTotalCount,omitempty"` // Wireless Device Total Count - ApplicationHealth *ResponseSitesGetSiteHealthResponseApplicationHealth `json:"applicationHealth,omitempty"` // Application Health - ApplicationGoodCount *ResponseSitesGetSiteHealthResponseApplicationGoodCount `json:"applicationGoodCount,omitempty"` // Application Good Count - ApplicationTotalCount *ResponseSitesGetSiteHealthResponseApplicationTotalCount `json:"applicationTotalCount,omitempty"` // Application Total Count - ApplicationBytesTotalCount *ResponseSitesGetSiteHealthResponseApplicationBytesTotalCount `json:"applicationBytesTotalCount,omitempty"` // Application Bytes Total Count - DnacInfo *ResponseSitesGetSiteHealthResponseDnacInfo `json:"dnacInfo,omitempty"` // Dnac Info - ApplicationHealthStats *ResponseSitesGetSiteHealthResponseApplicationHealthStats `json:"applicationHealthStats,omitempty"` // -} -type ResponseSitesGetSiteHealthResponseHealthyNetworkDevicePercentage interface{} -type ResponseSitesGetSiteHealthResponseHealthyClientsPercentage interface{} -type ResponseSitesGetSiteHealthResponseClientHealthWired interface{} -type ResponseSitesGetSiteHealthResponseClientHealthWireless interface{} -type ResponseSitesGetSiteHealthResponseNumberOfClients interface{} -type ResponseSitesGetSiteHealthResponseNumberOfNetworkDevice interface{} -type ResponseSitesGetSiteHealthResponseNetworkHealthAverage interface{} -type ResponseSitesGetSiteHealthResponseNetworkHealthAccess interface{} -type ResponseSitesGetSiteHealthResponseNetworkHealthCore interface{} -type ResponseSitesGetSiteHealthResponseNetworkHealthDistribution interface{} -type ResponseSitesGetSiteHealthResponseNetworkHealthRouter interface{} -type ResponseSitesGetSiteHealthResponseNetworkHealthWireless interface{} -type ResponseSitesGetSiteHealthResponseNetworkHealthOthers interface{} -type ResponseSitesGetSiteHealthResponseNumberOfWiredClients interface{} -type ResponseSitesGetSiteHealthResponseNumberOfWirelessClients interface{} -type ResponseSitesGetSiteHealthResponseTotalNumberOfConnectedWiredClients interface{} -type ResponseSitesGetSiteHealthResponseTotalNumberOfActiveWirelessClients interface{} -type ResponseSitesGetSiteHealthResponseWiredGoodClients interface{} -type ResponseSitesGetSiteHealthResponseWirelessGoodClients interface{} -type ResponseSitesGetSiteHealthResponseOverallGoodDevices interface{} -type ResponseSitesGetSiteHealthResponseAccessGoodCount interface{} -type ResponseSitesGetSiteHealthResponseAccessTotalCount interface{} -type ResponseSitesGetSiteHealthResponseCoreGoodCount interface{} -type ResponseSitesGetSiteHealthResponseCoreTotalCount interface{} -type ResponseSitesGetSiteHealthResponseDistributionGoodCount interface{} -type ResponseSitesGetSiteHealthResponseDistributionTotalCount interface{} -type ResponseSitesGetSiteHealthResponseRouterGoodCount interface{} -type ResponseSitesGetSiteHealthResponseRouterTotalCount interface{} -type ResponseSitesGetSiteHealthResponseWirelessDeviceGoodCount interface{} -type ResponseSitesGetSiteHealthResponseWirelessDeviceTotalCount interface{} -type ResponseSitesGetSiteHealthResponseApplicationHealth interface{} -type ResponseSitesGetSiteHealthResponseApplicationGoodCount interface{} -type ResponseSitesGetSiteHealthResponseApplicationTotalCount interface{} -type ResponseSitesGetSiteHealthResponseApplicationBytesTotalCount interface{} -type ResponseSitesGetSiteHealthResponseDnacInfo interface{} + SiteName string `json:"siteName,omitempty"` // Name of the site + SiteID string `json:"siteId,omitempty"` // Site UUID + ParentSiteID string `json:"parentSiteId,omitempty"` // The parent site's UUID of this site + ParentSiteName string `json:"parentSiteName,omitempty"` // The parent site's name of this site + SiteType string `json:"siteType,omitempty"` // Site type of this site + Latitude *float64 `json:"latitude,omitempty"` // Site (building) location's latitude + Longitude *float64 `json:"longitude,omitempty"` // Site (building) location's longitude + HealthyNetworkDevicePercentage *int `json:"healthyNetworkDevicePercentage,omitempty"` // Network health of devices on the site + HealthyClientsPercentage *int `json:"healthyClientsPercentage,omitempty"` // Client health of all clients in the site + ClientHealthWired *int `json:"clientHealthWired,omitempty"` // Health of all wired clients in the site + ClientHealthWireless *int `json:"clientHealthWireless,omitempty"` // Health of all wireless clients in the site + NumberOfClients *int `json:"numberOfClients,omitempty"` // Total number of clients in the site + NumberOfNetworkDevice *int `json:"numberOfNetworkDevice,omitempty"` // Total number of network devices in the site + NetworkHealthAverage *int `json:"networkHealthAverage,omitempty"` // Average network health in the site + NetworkHealthAccess *int `json:"networkHealthAccess,omitempty"` // Network health for access devices in the site + NetworkHealthCore *int `json:"networkHealthCore,omitempty"` // Network health for core devices in the site + NetworkHealthDistribution *int `json:"networkHealthDistribution,omitempty"` // Network health for distribution devices in the site + NetworkHealthRouter *int `json:"networkHealthRouter,omitempty"` // Network health for router devices in the site + NetworkHealthWireless *int `json:"networkHealthWireless,omitempty"` // Network health for wireless devices in the site + NetworkHealthAP *int `json:"networkHealthAP,omitempty"` // Network health for AP devices in the site + NetworkHealthWLC *int `json:"networkHealthWLC,omitempty"` // Network health for WLC devices in the site + NetworkHealthSwitch *int `json:"networkHealthSwitch,omitempty"` // Network health for switch devices in the site + NetworkHealthOthers *int `json:"networkHealthOthers,omitempty"` // Network health for other devices in the site + NumberOfWiredClients *int `json:"numberOfWiredClients,omitempty"` // Number of wired clients in the site + NumberOfWirelessClients *int `json:"numberOfWirelessClients,omitempty"` // Number of wireless clients in the site + TotalNumberOfConnectedWiredClients *int `json:"totalNumberOfConnectedWiredClients,omitempty"` // Number of connected wired clients in the site + TotalNumberOfActiveWirelessClients *int `json:"totalNumberOfActiveWirelessClients,omitempty"` // Number of active wireless clients in the site + WiredGoodClients *int `json:"wiredGoodClients,omitempty"` // Number of GOOD health wired clients in the site + WirelessGoodClients *int `json:"wirelessGoodClients,omitempty"` // Number of GOOD health wireless clients in the site + OverallGoodDevices *int `json:"overallGoodDevices,omitempty"` // Number of GOOD health devices in the site + AccessGoodCount *int `json:"accessGoodCount,omitempty"` // Number of GOOD health access devices in the site + AccessTotalCount *int `json:"accessTotalCount,omitempty"` // Number of access devices in the site + CoreGoodCount *int `json:"coreGoodCount,omitempty"` // Number of GOOD health core devices in the site + CoreTotalCount *int `json:"coreTotalCount,omitempty"` // Number of core devices in the site + DistributionGoodCount *int `json:"distributionGoodCount,omitempty"` // Number of GOOD health distribution devices in the site + DistributionTotalCount *int `json:"distributionTotalCount,omitempty"` // Number of distribution devices in the site + RouterGoodCount *int `json:"routerGoodCount,omitempty"` // Number of GOOD health router in the site + RouterTotalCount *int `json:"routerTotalCount,omitempty"` // Number of router devices in the site + WirelessDeviceGoodCount *int `json:"wirelessDeviceGoodCount,omitempty"` // Number of GOOD health wireless devices in the site + WirelessDeviceTotalCount *int `json:"wirelessDeviceTotalCount,omitempty"` // Number of wireless devices in the site + ApDeviceGoodCount *int `json:"apDeviceGoodCount,omitempty"` // Number of GOOD health AP devices in the site + ApDeviceTotalCount *int `json:"apDeviceTotalCount,omitempty"` // Number of AP devices in the site + WlcDeviceGoodCount *int `json:"wlcDeviceGoodCount,omitempty"` // Number of GOOD health wireless controller devices in the site + WlcDeviceTotalCount *int `json:"wlcDeviceTotalCount,omitempty"` // Number of wireless controller devices in the site + SwitchDeviceGoodCount *int `json:"switchDeviceGoodCount,omitempty"` // Number of GOOD health switch devices in the site + SwitchDeviceTotalCount *int `json:"switchDeviceTotalCount,omitempty"` // Number of switch devices in the site + ApplicationHealth *int `json:"applicationHealth,omitempty"` // Average application health in the site + ApplicationHealthInfo *[]ResponseSitesGetSiteHealthResponseApplicationHealthInfo `json:"applicationHealthInfo,omitempty"` // + ApplicationGoodCount *int `json:"applicationGoodCount,omitempty"` // Number of GOOD health applications int the site + ApplicationTotalCount *int `json:"applicationTotalCount,omitempty"` // Number of applications int the site + ApplicationBytesTotalCount *float64 `json:"applicationBytesTotalCount,omitempty"` // Total application bytes + DnacInfo *ResponseSitesGetSiteHealthResponseDnacInfo `json:"dnacInfo,omitempty"` // + Usage *float64 `json:"usage,omitempty"` // Total bits used by all clients in a site + ApplicationHealthStats *ResponseSitesGetSiteHealthResponseApplicationHealthStats `json:"applicationHealthStats,omitempty"` // +} +type ResponseSitesGetSiteHealthResponseApplicationHealthInfo struct { + TrafficClass string `json:"trafficClass,omitempty"` // Traffic class of the application + BytesCount *float64 `json:"bytesCount,omitempty"` // Byte count of the application + HealthScore *int `json:"healthScore,omitempty"` // Health score of the application +} +type ResponseSitesGetSiteHealthResponseDnacInfo struct { + UUID string `json:"uuid,omitempty"` // UUID of the DNAC + IP string `json:"ip,omitempty"` // IP address of the DNAC + Status string `json:"status,omitempty"` // Status of the DNAC +} type ResponseSitesGetSiteHealthResponseApplicationHealthStats struct { - AppTotalCount *float64 `json:"appTotalCount,omitempty"` // App Total Count + AppTotalCount *float64 `json:"appTotalCount,omitempty"` // Total application count BusinessRelevantAppCount *ResponseSitesGetSiteHealthResponseApplicationHealthStatsBusinessRelevantAppCount `json:"businessRelevantAppCount,omitempty"` // BusinessIrrelevantAppCount *ResponseSitesGetSiteHealthResponseApplicationHealthStatsBusinessIrrelevantAppCount `json:"businessIrrelevantAppCount,omitempty"` // DefaultHealthAppCount *ResponseSitesGetSiteHealthResponseApplicationHealthStatsDefaultHealthAppCount `json:"defaultHealthAppCount,omitempty"` // } type ResponseSitesGetSiteHealthResponseApplicationHealthStatsBusinessRelevantAppCount struct { - Poor *float64 `json:"poor,omitempty"` // Poor - Fair *float64 `json:"fair,omitempty"` // Fair - Good *float64 `json:"good,omitempty"` // Good + Poor *float64 `json:"poor,omitempty"` // Poor business relevant application count + Fair *float64 `json:"fair,omitempty"` // Fair business relevant application count + Good *float64 `json:"good,omitempty"` // Good business relevant application count } type ResponseSitesGetSiteHealthResponseApplicationHealthStatsBusinessIrrelevantAppCount struct { - Poor *float64 `json:"poor,omitempty"` // Poor - Fair *float64 `json:"fair,omitempty"` // Fair - Good *float64 `json:"good,omitempty"` // Good + Poor *float64 `json:"poor,omitempty"` // Poor business irrelevant application count + Fair *float64 `json:"fair,omitempty"` // Fair business irrelevant application count + Good *float64 `json:"good,omitempty"` // Good business irrelevant application count } type ResponseSitesGetSiteHealthResponseApplicationHealthStatsDefaultHealthAppCount struct { - Poor *float64 `json:"poor,omitempty"` // Poor - Fair *float64 `json:"fair,omitempty"` // Fair - Good *float64 `json:"good,omitempty"` // Good + Poor *float64 `json:"poor,omitempty"` // Poor default application count + Fair *float64 `json:"fair,omitempty"` // Fair default application count + Good *float64 `json:"good,omitempty"` // Good default application count +} +type ResponseSitesGetDevicesThatAreAssignedToASite struct { + Response *[]ResponseSitesGetDevicesThatAreAssignedToASiteResponse `json:"response,omitempty"` // +} +type ResponseSitesGetDevicesThatAreAssignedToASiteResponse struct { + InstanceUUID string `json:"instanceUuid,omitempty"` // Device UUID (E.g. 48eebb3e-b3fc-4928-a7df-1c80e216f930) + InstanceID *int `json:"instanceId,omitempty"` // Device Id (E.g. 230230) + AuthEntityID *int `json:"authEntityId,omitempty"` // Authentication Entity Id (Internal record) + AuthEntityClass *int `json:"authEntityClass,omitempty"` // Authentication entity class (Internal record) + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Device tenant Id (E.g. 64472cc32d3bc1658597669c) + DeployPending string `json:"deployPending,omitempty"` // Deploy pending (Internal record) + InstanceVersion *int `json:"instanceVersion,omitempty"` // Instance version (Internal record) + ApManagerInterfaceIP string `json:"apManagerInterfaceIp,omitempty"` // Access Point manager interface IP + AssociatedWlcIP string `json:"associatedWlcIp,omitempty"` // Associated Wireless Controller IP + BootDateTime string `json:"bootDateTime,omitempty"` // Device boot date and time + CollectionInterval string `json:"collectionInterval,omitempty"` // Device resync interval type (E.g. Global Default) + CollectionIntervalValue string `json:"collectionIntervalValue,omitempty"` // Device resync interval value + CollectionStatus string `json:"collectionStatus,omitempty"` // Device inventory collection status (E.g. Managed) + Description string `json:"description,omitempty"` // Device description + DeviceSupportLevel string `json:"deviceSupportLevel,omitempty"` // Device support level (E.g. Supported) + DNSResolvedManagementAddress string `json:"dnsResolvedManagementAddress,omitempty"` // DNS resolved management address + Family string `json:"family,omitempty"` // Device family (E.g. Routers) + Hostname string `json:"hostname,omitempty"` // Device hostname + InterfaceCount string `json:"interfaceCount,omitempty"` // Device interface count + InventoryStatusDetail string `json:"inventoryStatusDetail,omitempty"` // Device inventory collection status detail + LastUpdateTime *int `json:"lastUpdateTime,omitempty"` // Last update time + LastUpdated string `json:"lastUpdated,omitempty"` // Last updated date and time + LineCardCount string `json:"lineCardCount,omitempty"` // Line card count + LineCardID string `json:"lineCardId,omitempty"` // Line card Id + LastDeviceResyncStartTime string `json:"lastDeviceResyncStartTime,omitempty"` // Last device inventory resync start date and time + MacAddress string `json:"macAddress,omitempty"` // MAC address + ManagedAtleastOnce *bool `json:"managedAtleastOnce,omitempty"` // If device managed atleast once, value will be true otherwise false + ManagementIPAddress string `json:"managementIpAddress,omitempty"` // Management IP address + ManagementState string `json:"managementState,omitempty"` // Device management state (E.g. Managed) + MemorySize string `json:"memorySize,omitempty"` // Memory size + PaddedMgmtIPAddress string `json:"paddedMgmtIpAddress,omitempty"` // Padded management IP address. Internal record + PendingSyncRequestsCount string `json:"pendingSyncRequestsCount,omitempty"` // Pending sync requests count. Internal record + PlatformID string `json:"platformId,omitempty"` // Device platform Id (E.g. CSR1000V) + ReachabilityFailureReason string `json:"reachabilityFailureReason,omitempty"` // Device reachability failure reason + ReachabilityStatus string `json:"reachabilityStatus,omitempty"` // Device reachability status (E.g. Reachable) + ReasonsForDeviceResync string `json:"reasonsForDeviceResync,omitempty"` // Reasons for device resync (E.g. Periodic) + ReasonsForPendingSyncRequests string `json:"reasonsForPendingSyncRequests,omitempty"` // Reasons for pending device sync requests + Role string `json:"role,omitempty"` // Device role (E.g. BORDER ROUTER) + RoleSource string `json:"roleSource,omitempty"` // Device role source. Internal record + SerialNumber string `json:"serialNumber,omitempty"` // Device serial Number + Series string `json:"series,omitempty"` // Device series + SNMPContact string `json:"snmpContact,omitempty"` // Device snmp contact. Internal record + SNMPLocation string `json:"snmpLocation,omitempty"` // Device snmp location + SoftwareType string `json:"softwareType,omitempty"` // Device software type + SoftwareVersion string `json:"softwareVersion,omitempty"` // Device software version + TagCount string `json:"tagCount,omitempty"` // Device tag Count + Type string `json:"type,omitempty"` // Device type (E.g. Cisco Cloud Services Router 1000V) + UpTime string `json:"upTime,omitempty"` // Device up time (E.g. 112 days, 6:09:13.86) + UptimeSeconds *int `json:"uptimeSeconds,omitempty"` // Device uptime in seconds + Vendor string `json:"vendor,omitempty"` // Vendor (E.g. Cisco) + DisplayName string `json:"displayName,omitempty"` // Device display name } type ResponseSitesGetSiteCount struct { Response *int `json:"response,omitempty"` // Response @@ -293,16 +700,51 @@ type ResponseSitesUpdateSiteResponse struct { ID string `json:"id,omitempty"` // Id } type ResponseSitesDeleteSite struct { - ExecutionID string `json:"executionId,omitempty"` // executionId - ExecutionStatusURL string `json:"executionStatusURL,omitempty"` // executionStatusURL + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url Message string `json:"message,omitempty"` // Message } +type ResponseSitesGetSiteV2 struct { + Response *[]ResponseSitesGetSiteV2Response `json:"response,omitempty"` // +} +type ResponseSitesGetSiteV2Response struct { + ParentID string `json:"parentId,omitempty"` // Parent site Instance UUID (e.g. b27181bb-211b-40ec-ba5d-2603867c3f2c) + GroupTypeList []string `json:"groupTypeList,omitempty"` // There are different group types like 'RBAC', 'POLICY', 'SITE', 'TAG', 'PORT', 'DEVICE_TYPE'. This API is for site, so list contains 'SITE' only + GroupHierarchy string `json:"groupHierarchy,omitempty"` // Site hierarchy by instance UUID (e.g. b27181bb-211b-40ec-ba5d-2603867c3f2c/576c7859-e485-4073-a46f-305f475de4c5) + AdditionalInfo *[]ResponseSitesGetSiteV2ResponseAdditionalInfo `json:"additionalInfo,omitempty"` // + GroupNameHierarchy string `json:"groupNameHierarchy,omitempty"` // Site hierarchy by name (e.g. Global/USA/CA/San Jose/Building4) + Name string `json:"name,omitempty"` // Site name (e.g. Building4) + InstanceTenantID string `json:"instanceTenantId,omitempty"` // Tenant instance Id where site created (e.g. 63bf047b64ec9c1c45f9019c) + ID string `json:"id,omitempty"` // Site instance UUID (e.g. bb5122ce-4527-4af5-8718-44b746a3a3d8) +} +type ResponseSitesGetSiteV2ResponseAdditionalInfo struct { + NameSpace string `json:"nameSpace,omitempty"` // Site name space. Default value is 'Location' + Attributes *ResponseSitesGetSiteV2ResponseAdditionalInfoAttributes `json:"attributes,omitempty"` // +} +type ResponseSitesGetSiteV2ResponseAdditionalInfoAttributes struct { + AddressInheritedFrom string `json:"addressInheritedFrom,omitempty"` // Site instance UUID from where address inherited (e.g. 576c7859-e485-4073-a46f-305f475de4c5) + Type string `json:"type,omitempty"` // Site type + Country string `json:"country,omitempty"` // Site Country (e.g. United States) + Address string `json:"address,omitempty"` // Site address (e.g. 269 East Tasman Drive, San Jose, California 95134, United States) + Latitude string `json:"latitude,omitempty"` // Site latitude (e.g. 37.413082) + Longitude string `json:"longitude,omitempty"` // Site longitude (e.g. -121.933886) +} +type ResponseSitesGetSiteCountV2 struct { + Response *int `json:"response,omitempty"` // Response + Version string `json:"version,omitempty"` // Version +} +type RequestSitesQueryAnAggregatedSummaryOfSiteHealthData struct { + StartTime *int `json:"startTime,omitempty"` // Start Time + EndTime *int `json:"endTime,omitempty"` // End Time + Views []string `json:"views,omitempty"` // Views + Attributes []string `json:"attributes,omitempty"` // Attributes +} type RequestSitesAssignDevicesToSite struct { Device *[]RequestSitesAssignDevicesToSiteDevice `json:"device,omitempty"` // } type RequestSitesAssignDevicesToSiteDevice struct { - IP string `json:"ip,omitempty"` // Device ip (eg: 10.104.240.64) -} + IP string `json:"ip,omitempty"` // Device IP. It can be either IPv4 or IPv6. IPV4 e.g., 10.104.240.64. IPV6 e.g., 2001:420:284:2004:4:181:500:183 +} // # Review unknown case type RequestSitesCreateSite struct { Type string `json:"type,omitempty"` // Type of site to create (eg: area, building, floor) Site *RequestSitesCreateSiteSite `json:"site,omitempty"` // @@ -334,7 +776,7 @@ type RequestSitesCreateSiteSiteFloor struct { FloorNumber *float64 `json:"floorNumber,omitempty"` // Floor number. (eg: 5) } type RequestSitesUpdateSite struct { - Type string `json:"type,omitempty"` // Type + Type string `json:"type,omitempty"` // Site type Site *RequestSitesUpdateSiteSite `json:"site,omitempty"` // } type RequestSitesUpdateSiteSite struct { @@ -343,22 +785,298 @@ type RequestSitesUpdateSiteSite struct { Floor *RequestSitesUpdateSiteSiteFloor `json:"floor,omitempty"` // } type RequestSitesUpdateSiteSiteArea struct { - Name string `json:"name,omitempty"` // Name - ParentName string `json:"parentName,omitempty"` // Parent Name + Name string `json:"name,omitempty"` // Area name + ParentName string `json:"parentName,omitempty"` // Parent hierarchical name (Example: Global/USA/CA) } type RequestSitesUpdateSiteSiteBuilding struct { - Name string `json:"name,omitempty"` // Name - Address string `json:"address,omitempty"` // Address - ParentName string `json:"parentName,omitempty"` // Parent Name - Latitude *float64 `json:"latitude,omitempty"` // Latitude - Longitude *float64 `json:"longitude,omitempty"` // Longitude + Name string `json:"name,omitempty"` // Building name + Address string `json:"address,omitempty"` // Building address (Example: 4900 Marie P. Debartolo Way, Santa Clara, California 95054, United States) + ParentName string `json:"parentName,omitempty"` // Parent hierarchical name (Example: Global/USA/CA/SantaClara) + Latitude *float64 `json:"latitude,omitempty"` // Building latitude (Example: 37.403712) + Longitude *float64 `json:"longitude,omitempty"` // Building longitude (Example: -121.971063) + Country string `json:"country,omitempty"` // Country name. This field is mandatory for air-gapped networks (Example: United States) } type RequestSitesUpdateSiteSiteFloor struct { - Name string `json:"name,omitempty"` // Name - RfModel string `json:"rfModel,omitempty"` // Rf Model - Width *float64 `json:"width,omitempty"` // Width - Length *float64 `json:"length,omitempty"` // Length - Height *float64 `json:"height,omitempty"` // Height + Name string `json:"name,omitempty"` // Floor name + RfModel string `json:"rfModel,omitempty"` // RF model (Example : Cubes And Walled Offices) + Width *float64 `json:"width,omitempty"` // Floor width in feet (Example: 200) + Length *float64 `json:"length,omitempty"` // Floor length in feet (Example: 100) + Height *float64 `json:"height,omitempty"` // Floor height in feet (Example: 10) + FloorNumber *float64 `json:"floorNumber,omitempty"` // Floor Number (Example: 3) +} + +//ReadListOfSiteHealthSummaries Read list of site health summaries. - e4b7-1b5e-4099-b15b +/* Get a paginated list of site health summaries. Use the available query parameters to identify a subset of sites you want health summaries for. This API provides the latest health data from a given `endTime` If data is not ready for the provided endTime, the request will fail, and the error message will indicate the recommended endTime to use to retrieve a complete data set. This behavior may occur if the provided endTime=currentTime, since we are not a real time system. When `endTime` is not provided, the API returns the latest data. This API also provides issue data. The `startTime` query param can be used to specify the beginning point of time range to retrieve the active issue counts in. When this param is not provided, the default `startTime` will be 24 hours before endTime. Valid values for `sortBy` param in this API are limited to the attributes provided in the `site` view. Default sortBy is 'siteHierarchy' in order 'asc' (ascending). For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-siteHealthSummaries-1.0.3-resolved.yaml + + +@param ReadListOfSiteHealthSummariesHeaderParams Custom header parameters +@param ReadListOfSiteHealthSummariesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!read-list-of-site-health-summaries-v1 +*/ +func (s *SitesService) ReadListOfSiteHealthSummaries(ReadListOfSiteHealthSummariesHeaderParams *ReadListOfSiteHealthSummariesHeaderParams, ReadListOfSiteHealthSummariesQueryParams *ReadListOfSiteHealthSummariesQueryParams) (*ResponseSitesReadListOfSiteHealthSummaries, *resty.Response, error) { + path := "/dna/data/api/v1/siteHealthSummaries" + + queryString, _ := query.Values(ReadListOfSiteHealthSummariesQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if ReadListOfSiteHealthSummariesHeaderParams != nil { + + if ReadListOfSiteHealthSummariesHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", ReadListOfSiteHealthSummariesHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesReadListOfSiteHealthSummaries{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReadListOfSiteHealthSummaries(ReadListOfSiteHealthSummariesHeaderParams, ReadListOfSiteHealthSummariesQueryParams) + } + return nil, response, fmt.Errorf("error with operation ReadListOfSiteHealthSummaries") + } + + result := response.Result().(*ResponseSitesReadListOfSiteHealthSummaries) + return result, response, err + +} + +//ReadSiteCount Read site count. - b6ac-283b-4f39-b488 +/* Get a count of sites. Use the available query parameters to get the count of a subset of sites. This API provides the latest data from a given `endTime` If data is not ready for the provided endTime, the request will fail, and the error message will indicate the recommended endTime to use to retrieve a complete data set. This behavior may occur if the provided endTime=currentTime, since we are not a real time system. When `endTime` is not provided, the API returns the latest data. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-siteHealthSummaries-1.0.3-resolved.yaml + + +@param ReadSiteCountHeaderParams Custom header parameters +@param ReadSiteCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!read-site-count-v1 +*/ +func (s *SitesService) ReadSiteCount(ReadSiteCountHeaderParams *ReadSiteCountHeaderParams, ReadSiteCountQueryParams *ReadSiteCountQueryParams) (*ResponseSitesReadSiteCount, *resty.Response, error) { + path := "/dna/data/api/v1/siteHealthSummaries/count" + + queryString, _ := query.Values(ReadSiteCountQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if ReadSiteCountHeaderParams != nil { + + if ReadSiteCountHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", ReadSiteCountHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesReadSiteCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReadSiteCount(ReadSiteCountHeaderParams, ReadSiteCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation ReadSiteCount") + } + + result := response.Result().(*ResponseSitesReadSiteCount) + return result, response, err + +} + +//ReadAnAggregatedSummaryOfSiteHealthData Read an aggregated summary of site health data. - e2b7-8b97-4c78-a4f7 +/* Get an aggregated summary of all site health or use the query params to get an aggregated summary of health for a subset of sites. This API provides the latest health data from a given `endTime` If data is not ready for the provided endTime, the request will fail, and the error message will indicate the recommended endTime to use to retrieve a complete data set. This behavior may occur if the provided endTime=currentTime, since we are not a real time system. When `endTime` is not provided, the API returns the latest data. This API also provides issue data. The `startTime` query param can be used to specify the beginning point of time range to retrieve the active issue counts in. When this param is not provided, the default `startTime` will be 24 hours before endTime. Aggregated response data will NOT have unique identifier data populated. List of unique identifier data: [`id`, `siteHierarchy`, `siteHierarchyId`, `siteType`, `latitude`, `longitude`]. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-siteHealthSummaries-1.0.3-resolved.yaml + + +@param ReadAnAggregatedSummaryOfSiteHealthDataHeaderParams Custom header parameters +@param ReadAnAggregatedSummaryOfSiteHealthDataQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!read-an-aggregated-summary-of-site-health-data-v1 +*/ +func (s *SitesService) ReadAnAggregatedSummaryOfSiteHealthData(ReadAnAggregatedSummaryOfSiteHealthDataHeaderParams *ReadAnAggregatedSummaryOfSiteHealthDataHeaderParams, ReadAnAggregatedSummaryOfSiteHealthDataQueryParams *ReadAnAggregatedSummaryOfSiteHealthDataQueryParams) (*ResponseSitesReadAnAggregatedSummaryOfSiteHealthData, *resty.Response, error) { + path := "/dna/data/api/v1/siteHealthSummaries/summaryAnalytics" + + queryString, _ := query.Values(ReadAnAggregatedSummaryOfSiteHealthDataQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if ReadAnAggregatedSummaryOfSiteHealthDataHeaderParams != nil { + + if ReadAnAggregatedSummaryOfSiteHealthDataHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", ReadAnAggregatedSummaryOfSiteHealthDataHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesReadAnAggregatedSummaryOfSiteHealthData{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReadAnAggregatedSummaryOfSiteHealthData(ReadAnAggregatedSummaryOfSiteHealthDataHeaderParams, ReadAnAggregatedSummaryOfSiteHealthDataQueryParams) + } + return nil, response, fmt.Errorf("error with operation ReadAnAggregatedSummaryOfSiteHealthData") + } + + result := response.Result().(*ResponseSitesReadAnAggregatedSummaryOfSiteHealthData) + return result, response, err + +} + +//ReadSiteHealthSummaryDataBySiteID Read site health summary data by site id. - 48aa-094f-423b-bd33 +/* Get a health summary for a specific site by providing the unique site id in the url path. This API provides the latest health data from a given `endTime` If data is not ready for the provided endTime, the request will fail, and the error message will indicate the recommended endTime to use to retrieve a complete data set. This behavior may occur if the provided endTime=currentTime, since we are not a real time system. When `endTime` is not provided, the API returns the latest data. This API also provides issue data. The `startTime` query param can be used to specify the beginning point of time range to retrieve the active issue counts in. When this param is not provided, the default `startTime` will be 24 hours before endTime. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-siteHealthSummaries-1.0.3-resolved.yaml + + +@param id id path parameter. unique site uuid + +@param ReadSiteHealthSummaryDataBySiteIdHeaderParams Custom header parameters +@param ReadSiteHealthSummaryDataBySiteIdQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!read-site-health-summary-data-by-site-id-v1 +*/ +func (s *SitesService) ReadSiteHealthSummaryDataBySiteID(id string, ReadSiteHealthSummaryDataBySiteIdHeaderParams *ReadSiteHealthSummaryDataBySiteIDHeaderParams, ReadSiteHealthSummaryDataBySiteIdQueryParams *ReadSiteHealthSummaryDataBySiteIDQueryParams) (*ResponseSitesReadSiteHealthSummaryDataBySiteID, *resty.Response, error) { + path := "/dna/data/api/v1/siteHealthSummaries/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(ReadSiteHealthSummaryDataBySiteIdQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if ReadSiteHealthSummaryDataBySiteIdHeaderParams != nil { + + if ReadSiteHealthSummaryDataBySiteIdHeaderParams.XCaLLERID != "" { + clientRequest = clientRequest.SetHeader("X-CALLER-ID", ReadSiteHealthSummaryDataBySiteIdHeaderParams.XCaLLERID) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesReadSiteHealthSummaryDataBySiteID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReadSiteHealthSummaryDataBySiteID(id, ReadSiteHealthSummaryDataBySiteIdHeaderParams, ReadSiteHealthSummaryDataBySiteIdQueryParams) + } + return nil, response, fmt.Errorf("error with operation ReadSiteHealthSummaryDataBySiteId") + } + + result := response.Result().(*ResponseSitesReadSiteHealthSummaryDataBySiteID) + return result, response, err + +} + +//ImportMapArchiveImportStatus Import Map Archive - Import Status - d9b0-599f-4d88-9a9a +/* Gets the status of a map archive import operation. For a map archive import that has just been initiated, will provide the result of validation of the archive and a pre-import preview of what will be performed if the import is performed. Once an import is requested to be performed, this API will give the status of the import and upon completion a post-import summary of what was performed by the operation. + + +@param importContextUUID importContextUuid path parameter. The unique import context UUID given by a previous and recent call to maps/import/start API + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-map-archive-import-status-v1 +*/ +func (s *SitesService) ImportMapArchiveImportStatus(importContextUUID string) (*ResponseSitesImportMapArchiveImportStatus, *resty.Response, error) { + path := "/dna/intent/api/v1/maps/import/{importContextUuid}/status" + path = strings.Replace(path, "{importContextUuid}", fmt.Sprintf("%v", importContextUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSitesImportMapArchiveImportStatus{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ImportMapArchiveImportStatus(importContextUUID) + } + return nil, response, fmt.Errorf("error with operation ImportMapArchiveImportStatus") + } + + result := response.Result().(*ResponseSitesImportMapArchiveImportStatus) + return result, response, err + +} + +//MapsSupportedAccessPoints Maps Supported Access Points - 97b4-9a04-403b-bc05 +/* Gets the list of supported access point types as well as valid antenna pattern names that can be used for each. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!maps-supported-access-points-v1 +*/ +func (s *SitesService) MapsSupportedAccessPoints() (*ResponseSitesMapsSupportedAccessPoints, *resty.Response, error) { + path := "/dna/intent/api/v1/maps/supported-access-points" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSitesMapsSupportedAccessPoints{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.MapsSupportedAccessPoints() + } + return nil, response, fmt.Errorf("error with operation MapsSupportedAccessPoints") + } + + result := response.Result().(*ResponseSitesMapsSupportedAccessPoints) + return result, response, err + } //GetMembership Get Membership - eba6-6905-4e08-a60e @@ -369,7 +1087,7 @@ type RequestSitesUpdateSiteSiteFloor struct { @param GetMembershipQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-membership +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-membership-v1 */ func (s *SitesService) GetMembership(siteID string, GetMembershipQueryParams *GetMembershipQueryParams) (*ResponseSitesGetMembership, *resty.Response, error) { path := "/dna/intent/api/v1/membership/{siteId}" @@ -402,12 +1120,12 @@ func (s *SitesService) GetMembership(siteID string, GetMembershipQueryParams *Ge } //GetSite Get Site - 6fb4-ab36-43fa-a80f -/* Get site using siteNameHierarchy/siteId/type ,return all sites if these parameters are not given as input. +/* Get site(s) by site-name-hierarchy or siteId or type. List all sites if these parameters are not given as an input. @param GetSiteQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-v1 */ func (s *SitesService) GetSite(GetSiteQueryParams *GetSiteQueryParams) (*ResponseSitesGetSite, *resty.Response, error) { path := "/dna/intent/api/v1/site" @@ -438,13 +1156,13 @@ func (s *SitesService) GetSite(GetSiteQueryParams *GetSiteQueryParams) (*Respons } -//GetSiteHealth Get Site Health - 15b7-aa0c-4dda-8e85 +//GetSiteHealth Get Site Health - 2597-2a31-43c8-8729 /* Returns Overall Health information for all sites @param GetSiteHealthQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-health +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-health-v1 */ func (s *SitesService) GetSiteHealth(GetSiteHealthQueryParams *GetSiteHealthQueryParams) (*ResponseSitesGetSiteHealth, *resty.Response, error) { path := "/dna/intent/api/v1/site-health" @@ -475,13 +1193,53 @@ func (s *SitesService) GetSiteHealth(GetSiteHealthQueryParams *GetSiteHealthQuer } +//GetDevicesThatAreAssignedToASite Get devices that are assigned to a site - ae86-1be7-4d39-b0d1 +/* API to get devices that are assigned to a site. + + +@param id id path parameter. Site Id + +@param GetDevicesThatAreAssignedToASiteQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-devices-that-are-assigned-to-a-site-v1 +*/ +func (s *SitesService) GetDevicesThatAreAssignedToASite(id string, GetDevicesThatAreAssignedToASiteQueryParams *GetDevicesThatAreAssignedToASiteQueryParams) (*ResponseSitesGetDevicesThatAreAssignedToASite, *resty.Response, error) { + path := "/dna/intent/api/v1/site-member/{id}/member" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + queryString, _ := query.Values(GetDevicesThatAreAssignedToASiteQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesGetDevicesThatAreAssignedToASite{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetDevicesThatAreAssignedToASite(id, GetDevicesThatAreAssignedToASiteQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetDevicesThatAreAssignedToASite") + } + + result := response.Result().(*ResponseSitesGetDevicesThatAreAssignedToASite) + return result, response, err + +} + //GetSiteCount Get Site Count - b0b7-eabc-4f4b-9b28 -/* API to get site count +/* Get the site count of the specified site's sub-hierarchy (inclusive of the provided site) @param GetSiteCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-count-v1 */ func (s *SitesService) GetSiteCount(GetSiteCountQueryParams *GetSiteCountQueryParams) (*ResponseSitesGetSiteCount, *resty.Response, error) { path := "/dna/intent/api/v1/site/count" @@ -512,15 +1270,134 @@ func (s *SitesService) GetSiteCount(GetSiteCountQueryParams *GetSiteCountQueryPa } -//AssignDevicesToSite Assign Devices To Site - eeb1-68eb-4198-8e07 +//GetSiteV2 Get Site V2 - 6490-7aa4-40c9-ba3a +/* API to get site(s) by site-name-hierarchy or siteId or type. List all sites if these parameters are not given as an input. + + +@param GetSiteV2QueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-v2 +*/ +func (s *SitesService) GetSiteV2(GetSiteV2QueryParams *GetSiteV2QueryParams) (*ResponseSitesGetSiteV2, *resty.Response, error) { + path := "/dna/intent/api/v2/site" + + queryString, _ := query.Values(GetSiteV2QueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesGetSiteV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSiteV2(GetSiteV2QueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSiteV2") + } + + result := response.Result().(*ResponseSitesGetSiteV2) + return result, response, err + +} + +//GetSiteCountV2 Get Site Count V2 - 24a8-fb4c-4fbb-9a47 +/* Get the site count of the specified site's sub-hierarchy (inclusive of the provided site) + + +@param GetSiteCountV2QueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-count-v2 +*/ +func (s *SitesService) GetSiteCountV2(GetSiteCountV2QueryParams *GetSiteCountV2QueryParams) (*ResponseSitesGetSiteCountV2, *resty.Response, error) { + path := "/dna/intent/api/v2/site/count" + + queryString, _ := query.Values(GetSiteCountV2QueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesGetSiteCountV2{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSiteCountV2(GetSiteCountV2QueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSiteCountV2") + } + + result := response.Result().(*ResponseSitesGetSiteCountV2) + return result, response, err + +} + +//QueryAnAggregatedSummaryOfSiteHealthData Query an aggregated summary of site health data. - 2782-ca59-4cc8-ad34 +/* Query an aggregated summary of all site health This API provides the latest health data from a given `endTime` If data is not ready for the provided endTime, the request will fail, and the error message will indicate the recommended endTime to use to retrieve a complete data set. This behavior may occur if the provided endTime=currentTime, since we are not a real time system. When `endTime` is not provided, the API returns the latest data. This API also provides issue data. The `startTime` query param can be used to specify the beginning point of time range to retrieve the active issue counts in. When this param is not provided, the default `startTime` will be 24 hours before endTime. + + Aggregated response data will NOT have unique identifier data populated. + + List of unique identifier data: [`id`, `siteHierarchy`, +`siteHierarchyId`, `siteType`, `latitude`, `longitude`] Please refer to the 'API Support Documentation' section to understand which fields are supported. For detailed information about the usage of the API, please refer to the Open API specification document https://github.com/cisco-en-programmability/catalyst-center-api-specs/blob/main/Assurance/CE_Cat_Center_Org-siteHealthSummaries-1.0.3-resolved.yaml + + +@param QueryAnAggregatedSummaryOfSiteHealthDataQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!query-an-aggregated-summary-of-site-health-data-v1 +*/ +func (s *SitesService) QueryAnAggregatedSummaryOfSiteHealthData(requestSitesQueryAnAggregatedSummaryOfSiteHealthData *RequestSitesQueryAnAggregatedSummaryOfSiteHealthData, QueryAnAggregatedSummaryOfSiteHealthDataQueryParams *QueryAnAggregatedSummaryOfSiteHealthDataQueryParams) (*ResponseSitesQueryAnAggregatedSummaryOfSiteHealthData, *resty.Response, error) { + path := "/dna/data/api/v1/siteHealthSummaries/summaryAnalytics" + + queryString, _ := query.Values(QueryAnAggregatedSummaryOfSiteHealthDataQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetBody(requestSitesQueryAnAggregatedSummaryOfSiteHealthData). + SetResult(&ResponseSitesQueryAnAggregatedSummaryOfSiteHealthData{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.QueryAnAggregatedSummaryOfSiteHealthData(requestSitesQueryAnAggregatedSummaryOfSiteHealthData, QueryAnAggregatedSummaryOfSiteHealthDataQueryParams) + } + + return nil, response, fmt.Errorf("error with operation QueryAnAggregatedSummaryOfSiteHealthData") + } + + result := response.Result().(*ResponseSitesQueryAnAggregatedSummaryOfSiteHealthData) + return result, response, err + +} + +//AssignDevicesToSite Assign Devices To Site - 98a8-aa5e-40cb-b90b /* Assigns unassigned devices to a site. This API does not move assigned devices to other sites. -@param siteID siteId path parameter. Site id to which site the device to assign +@param siteID siteId path parameter. Site Id where device(s) needs to be assigned @param AssignDevicesToSiteHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-devices-to-site +Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-devices-to-site-v1 */ func (s *SitesService) AssignDevicesToSite(siteID string, requestSitesAssignDevicesToSite *RequestSitesAssignDevicesToSite, AssignDevicesToSiteHeaderParams *AssignDevicesToSiteHeaderParams) (*ResponseSitesAssignDevicesToSite, *resty.Response, error) { path := "/dna/intent/api/v1/assign-device-to-site/{siteId}/device" @@ -538,12 +1415,12 @@ func (s *SitesService) AssignDevicesToSite(siteID string, requestSitesAssignDevi clientRequest = clientRequest.SetHeader("__runsync", AssignDevicesToSiteHeaderParams.Runsync) } - if AssignDevicesToSiteHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", AssignDevicesToSiteHeaderParams.Persistbapioutput) + if AssignDevicesToSiteHeaderParams.Timeout != "" { + clientRequest = clientRequest.SetHeader("__timeout", AssignDevicesToSiteHeaderParams.Timeout) } - if AssignDevicesToSiteHeaderParams.Runsynctimeout != "" { - clientRequest = clientRequest.SetHeader("__runsynctimeout", AssignDevicesToSiteHeaderParams.Runsynctimeout) + if AssignDevicesToSiteHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", AssignDevicesToSiteHeaderParams.Persistbapioutput) } } @@ -573,13 +1450,127 @@ func (s *SitesService) AssignDevicesToSite(siteID string, requestSitesAssignDevi } +//ExportMapArchive Export Map Archive - fb9f-2948-493b-bc68 +/* Allows exporting a Map archive in an XML interchange format along with the associated images. + + +@param siteHierarchyUUID siteHierarchyUuid path parameter. The site hierarchy element UUID to export, all child elements starting at this hierarchy element will be included. Limited to a hierarchy that contains 500 or fewer maps. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!export-map-archive-v1 +*/ +func (s *SitesService) ExportMapArchive(siteHierarchyUUID string) (*ResponseSitesExportMapArchive, *resty.Response, error) { + path := "/dna/intent/api/v1/maps/export/{siteHierarchyUuid}" + path = strings.Replace(path, "{siteHierarchyUuid}", fmt.Sprintf("%v", siteHierarchyUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSitesExportMapArchive{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ExportMapArchive(siteHierarchyUUID) + } + + return nil, response, fmt.Errorf("error with operation ExportMapArchive") + } + + result := response.Result().(*ResponseSitesExportMapArchive) + return result, response, err + +} + +//ImportMapArchiveStartImport Import Map Archive - Start Import - b485-8b4e-4f6b-8409 +/* Initiates a map archive import of a tar.gz file. The archive must consist of one xmlDir/MapsImportExport.xml map descriptor file, and 1 or more images for the map areas nested under /images folder. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-map-archive-start-import-v1 +*/ +func (s *SitesService) ImportMapArchiveStartImport() (*resty.Response, error) { + path := "/dna/intent/api/v1/maps/import/start" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetError(&Error). + Post(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ImportMapArchiveStartImport() + } + + return response, fmt.Errorf("error with operation ImportMapArchiveStartImport") + } + + return response, err + +} + +//ImportMapArchivePerformImport Import Map Archive - Perform Import - 5a9d-db37-4c18-9f6f +/* For a previously initatied import, approves the import to be performed, accepting that data loss may occur. A Map import will fully replace existing Maps data for the site(s) defined in the archive. The Map Archive Import Status API /maps/import/${contextUuid}/status should always be checked to validate the pre-import validation output prior to performing the import. + + +@param importContextUUID importContextUuid path parameter. The unique import context UUID given by a previous call of Start Import API + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-map-archive-perform-import-v1 +*/ +func (s *SitesService) ImportMapArchivePerformImport(importContextUUID string) (*ResponseSitesImportMapArchivePerformImport, *resty.Response, error) { + path := "/dna/intent/api/v1/maps/import/{importContextUuid}/perform" + path = strings.Replace(path, "{importContextUuid}", fmt.Sprintf("%v", importContextUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + + // SetResult(&ResponseSitesImportMapArchivePerformImport{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ImportMapArchivePerformImport(importContextUUID) + } + + return nil, response, fmt.Errorf("error with operation ImportMapArchivePerformImport") + } + + result := response.Result().(ResponseSitesImportMapArchivePerformImport) + + return &result, response, err + +} + //CreateSite Create Site - 50b5-89fd-4c7a-930a /* Creates site with area/building/floor with specified hierarchy. @param CreateSiteHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-site +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-site-v1 */ func (s *SitesService) CreateSite(requestSitesCreateSite *RequestSitesCreateSite, CreateSiteHeaderParams *CreateSiteHeaderParams) (*ResponseSitesCreateSite, *resty.Response, error) { path := "/dna/intent/api/v1/site" @@ -688,6 +1679,46 @@ func (s *SitesService) UpdateSite(siteID string, requestSitesUpdateSite *Request } +//ImportMapArchiveCancelAnImport Import Map Archive - Cancel an Import - 52b0-d8a3-4159-a6b7 +/* Cancels a previously initatied import, allowing the system to cleanup cached resources about that import data, and ensures the import cannot accidentally be performed / approved at a later time. + + +@param importContextUUID importContextUuid path parameter. The unique import context UUID given by a previous call to Start Import API + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-map-archive-cancel-an-import-v1 +*/ +func (s *SitesService) ImportMapArchiveCancelAnImport(importContextUUID string) (*ResponseSitesImportMapArchiveCancelAnImport, *resty.Response, error) { + //importContextUUID string + path := "/dna/intent/api/v1/maps/import/{importContextUuid}" + path = strings.Replace(path, "{importContextUuid}", fmt.Sprintf("%v", importContextUUID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + // SetResult(&ResponseSitesImportMapArchiveCancelAnImport{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ImportMapArchiveCancelAnImport( + importContextUUID) + } + return nil, response, fmt.Errorf("error with operation ImportMapArchiveCancelAnImport") + } + + result := response.Result().(ResponseSitesImportMapArchiveCancelAnImport) + + return &result, response, err + +} + //DeleteSite Delete Site - f083-cb13-484a-8fae /* Delete site with area/building/floor by siteId. @@ -695,7 +1726,7 @@ func (s *SitesService) UpdateSite(siteID string, requestSitesUpdateSite *Request @param siteID siteId path parameter. Site id to which site details to be deleted. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-site +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-site-v1 */ func (s *SitesService) DeleteSite(siteID string) (*ResponseSitesDeleteSite, *resty.Response, error) { //siteID string @@ -726,7 +1757,7 @@ func (s *SitesService) DeleteSite(siteID string) (*ResponseSitesDeleteSite, *res } -func (s *SitesService) GetFloor(GetSiteQueryParams *GetSiteQueryParams) (*ResponseSitesGetFloor, *resty.Response, error) { +func (s *SitesService) GetArea(GetSiteQueryParams *GetSiteQueryParams) (*ResponseSitesGetArea, *resty.Response, error) { path := "/dna/intent/api/v1/site" queryString, _ := query.Values(GetSiteQueryParams) @@ -734,7 +1765,7 @@ func (s *SitesService) GetFloor(GetSiteQueryParams *GetSiteQueryParams) (*Respon response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSitesGetFloor{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesGetArea{}). SetError(&Error). Get(path) @@ -745,17 +1776,17 @@ func (s *SitesService) GetFloor(GetSiteQueryParams *GetSiteQueryParams) (*Respon if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetFloor(GetSiteQueryParams) + return s.GetArea(GetSiteQueryParams) } return nil, response, fmt.Errorf("error with operation GetSite") } - result := response.Result().(*ResponseSitesGetFloor) + result := response.Result().(*ResponseSitesGetArea) return result, response, err } -func (s *SitesService) GetArea(GetSiteQueryParams *GetSiteQueryParams) (*ResponseSitesGetArea, *resty.Response, error) { +func (s *SitesService) GetFloor(GetSiteQueryParams *GetSiteQueryParams) (*ResponseSitesGetFloor, *resty.Response, error) { path := "/dna/intent/api/v1/site" queryString, _ := query.Values(GetSiteQueryParams) @@ -763,7 +1794,7 @@ func (s *SitesService) GetArea(GetSiteQueryParams *GetSiteQueryParams) (*Respons response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseSitesGetArea{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSitesGetFloor{}). SetError(&Error). Get(path) @@ -774,12 +1805,12 @@ func (s *SitesService) GetArea(GetSiteQueryParams *GetSiteQueryParams) (*Respons if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetArea(GetSiteQueryParams) + return s.GetFloor(GetSiteQueryParams) } return nil, response, fmt.Errorf("error with operation GetSite") } - result := response.Result().(*ResponseSitesGetArea) + result := response.Result().(*ResponseSitesGetFloor) return result, response, err } diff --git a/sdk/software_image_management_swim.go b/sdk/software_image_management_swim.go index 938d3b1..f0d5bc5 100644 --- a/sdk/software_image_management_swim.go +++ b/sdk/software_image_management_swim.go @@ -57,6 +57,92 @@ type ImportSoftwareImageViaURLQueryParams struct { ScheduleDesc string `url:"scheduleDesc,omitempty"` //Custom Description (Optional) ScheduleOrigin string `url:"scheduleOrigin,omitempty"` //Originator of this call (Optional) } +type ReturnsListOfSoftwareImagesQueryParams struct { + SiteID string `url:"siteId,omitempty"` //Site identifier to get the list of all available products under the site. The default value is the global site. See https://developer.cisco.com/docs/dna-center/get-site for `siteId` + ProductNameOrdinal float64 `url:"productNameOrdinal,omitempty"` //The product name ordinal is a unique value for each network device product. The productNameOrdinal can be obtained from the response of API `/dna/intent/api/v1/siteWiseProductNames` + SupervisorProductNameOrdinal float64 `url:"supervisorProductNameOrdinal,omitempty"` //The supervisor engine module ordinal is a unique value for each supervisor module. The `supervisorProductNameOrdinal` can be obtained from the response of API `/dna/intent/api/v1/siteWiseProductNames` + Imported bool `url:"imported,omitempty"` //When the value is set to `true`, it will include physically imported images. Conversely, when the value is set to `false`, it will include image records from the cloud. The identifier for cloud images can be utilized to download images from Cisco.com to the disk. + Name string `url:"name,omitempty"` //Filter with software image or add-on name. Supports partial case-insensitive search. A minimum of 3 characters is required for the search. + Version string `url:"version,omitempty"` //Filter with image version. Supports partial case-insensitive search. A minimum of 3 characters is required for the search. + Golden bool `url:"golden,omitempty"` //When set to `true`, it will retrieve the images marked as tagged golden. When set to `false`, it will retrieve the images marked as not tagged golden. + Integrity string `url:"integrity,omitempty"` //Filter with verified images using Integrity Verification Available values: UNKNOWN, VERIFIED + HasAddonImages bool `url:"hasAddonImages,omitempty"` //When set toĀ `true`, it will retrieve the images which have add-on images. When set toĀ `false`, it will retrieve the images which do not have add-on images. + IsAddonImages bool `url:"isAddonImages,omitempty"` //When set to `true`, it will retrieve the images that an add-on image. When set to `false`, it will retrieve the images that are not add-on images + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. The minimum value is 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. The minimum and maximum values are 1 and 500, respectively. +} +type ReturnsCountOfSoftwareImagesQueryParams struct { + SiteID string `url:"siteId,omitempty"` //Site identifier to get the list of all available products under the site. The default value is the global site. See https://developer.cisco.com/docs/dna-center/get-site for siteId + ProductNameOrdinal float64 `url:"productNameOrdinal,omitempty"` //The product name ordinal is a unique value for each network device product. The productNameOrdinal can be obtained from the response of the API `/dna/intent/api/v1/siteWiseProductNames`. + SupervisorProductNameOrdinal float64 `url:"supervisorProductNameOrdinal,omitempty"` //The supervisor engine module ordinal is a unique value for each supervisor module. The `supervisorProductNameOrdinal` can be obtained from the response of API `/dna/intent/api/v1/siteWiseProductNames` + Imported bool `url:"imported,omitempty"` //When the value is set to `true`, it will include physically imported images. Conversely, when the value is set to `false`, it will include image records from the cloud. The identifier for cloud images can be utilised to download images from Cisco.com to the disk. + Name string `url:"name,omitempty"` //Filter with software image or add-on name. Supports partial case-insensitive search. A minimum of 3 characters is required for the search + Version string `url:"version,omitempty"` //Filter with image version. Supports partial case-insensitive search. A minimum of 3 characters is required for the search + Golden string `url:"golden,omitempty"` //When set to `true`, it will retrieve the images marked tagged golden. When set to `false`, it will retrieve the images marked not tagged golden. + Integrity string `url:"integrity,omitempty"` //Filter with verified images using Integrity Verification Available values: UNKNOWN, VERIFIED + HasAddonImages bool `url:"hasAddonImages,omitempty"` //When set toĀ `true`, it will retrieve the images which have add-on images. When set toĀ `false`, it will retrieve the images which do not have add-on images. + IsAddonImages bool `url:"isAddonImages,omitempty"` //When set to `true`, it will retrieve the images that an add-on image. When set to `false`, it will retrieve the images that are not add-on images +} +type RetrievesNetworkDeviceProductNamesAssignedToASoftwareImageQueryParams struct { + ProductName string `url:"productName,omitempty"` //Filter with network device product name. Supports partial case-insensitive search. A minimum of 3 characters is required for the search. + ProductID string `url:"productId,omitempty"` //Filter with product ID (PID) + Recommended string `url:"recommended,omitempty"` //Filter with recommended source. IfĀ `CISCO`Ā then the network device product assigned was recommended by Cisco andĀ `USER`Ā then the user has manually assigned. Available values: CISCO, USER + Assigned string `url:"assigned,omitempty"` //Filter with the assigned/unassigned, `ASSIGNED` option will filter network device products that are associated with the given image. The `NOT_ASSIGNED` option will filter network device products that have not yet been associated with the given image but apply to it. Available values: ASSIGNED, NOT_ASSIGNED + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. The minimum value is 1 + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. The minimum and maximum values are 1 and 500, respectively +} +type RetrievesTheCountOfAssignedNetworkDeviceProductsQueryParams struct { + ProductName string `url:"productName,omitempty"` //Filter with network device product name. Supports partial case-insensitive search. A minimum of 3 characters are required for search. + ProductID string `url:"productId,omitempty"` //Filter with product ID (PID) + Recommended string `url:"recommended,omitempty"` //Filter with recommended source. If `CISCO` then the network device product assigned was recommended by Cisco and `USER` then the user has manually assigned. Available valuesĀ : CISCO, USER + Assigned string `url:"assigned,omitempty"` //Filter with the assigned/unassigned, `ASSIGNED` option will filter network device products that are associated with the given image. The `NOT_ASSIGNED` option will filter network device products that have not yet been associated with the given image but apply to it. Available values: ASSIGNED, NOT_ASSIGNED +} +type GetNetworkDeviceImageUpdatesQueryParams struct { + ID string `url:"id,omitempty"` //Update id which is unique for each network device under the parentId + ParentID string `url:"parentId,omitempty"` //Updates that have this parent id + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device id + Status string `url:"status,omitempty"` //Status of the image update. Available values : FAILURE, SUCCESS, IN_PROGRESS, PENDING + ImageName string `url:"imageName,omitempty"` //Software image name for the update + HostName string `url:"hostName,omitempty"` //Host name of the network device for the image update. Supports case-insensitive partial search + ManagementAddress string `url:"managementAddress,omitempty"` //Management address of the network device + StartTime float64 `url:"startTime,omitempty"` //Image update started after the given time (as milliseconds since UNIX epoch) + EndTime float64 `url:"endTime,omitempty"` //Image update started before the given time (as milliseconds since UNIX epoch) + SortBy string `url:"sortBy,omitempty"` //A property within the response to sort by. + Order string `url:"order,omitempty"` //Whether ascending or descending order should be used to sort the response. + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. +} +type CountOfNetworkDeviceImageUpdatesQueryParams struct { + ID string `url:"id,omitempty"` //Update id which is unique for each network device under the parentId + ParentID string `url:"parentId,omitempty"` //Updates that have this parent id + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Network device id + Status string `url:"status,omitempty"` //Status of the image update. Available values: FAILURE, SUCCESS, IN_PROGRESS, PENDING + ImageName string `url:"imageName,omitempty"` //Software image name for the update + HostName string `url:"hostName,omitempty"` //Host name of the network device for the image update. Supports case-insensitive partial search. + ManagementAddress string `url:"managementAddress,omitempty"` //Management address of the network device + StartTime float64 `url:"startTime,omitempty"` //Image update started after the given time (as milliseconds since UNIX epoch). + EndTime float64 `url:"endTime,omitempty"` //Image update started before the given time (as milliseconds since UNIX epoch). +} +type RetrievesTheListOfNetworkDeviceProductNamesQueryParams struct { + ProductName string `url:"productName,omitempty"` //Filter with network device product name. Supports partial case-insensitive search. A minimum of 3 characters are required for search + ProductID string `url:"productId,omitempty"` //Filter with product ID (PID) + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. The minimum value is 1. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. The minimum and maximum values are 1 and 500, respectively. +} +type CountOfNetworkProductNamesQueryParams struct { + ProductName string `url:"productName,omitempty"` //Filter with network device product name. Supports partial case-insensitive search. A minimum of 3 characters are required for search + ProductID string `url:"productId,omitempty"` //Filter with product ID (PID) +} +type ReturnsNetworkDeviceProductNamesForASiteQueryParams struct { + SiteID string `url:"siteId,omitempty"` //Site identifier to get the list of all available products under the site. The default value is the global site. See https://developer.cisco.com/docs/dna-center/get-site for siteId + ProductName string `url:"productName,omitempty"` //Filter with network device product name. Supports partial case-insensitive search. A minimum of 3 characters are required for search + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. The minimum value is 1 + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. The minimum and maximum values are 1 and 500, respectively +} +type ReturnsTheCountOfNetworkDeviceProductNamesForASiteQueryParams struct { + SiteID string `url:"siteId,omitempty"` //Site identifier to get the list of all available products under the site. The default value is global site id. See https://developer.cisco.com/docs/dna-center/get-site/ for siteId + ProductName string `url:"productName,omitempty"` //Filter with network device product name. Supports partial case-insensitive search. A minimum of 3 characters are required for search +} type ResponseSoftwareImageManagementSwimTriggerSoftwareImageActivation struct { Response *ResponseSoftwareImageManagementSwimTriggerSoftwareImageActivationResponse `json:"response,omitempty"` // @@ -168,6 +254,256 @@ type ResponseSoftwareImageManagementSwimImportSoftwareImageViaURLResponse struct TaskID string `json:"taskId,omitempty"` // URL string `json:"url,omitempty"` // } +type ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImages struct { + Response *[]ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImagesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImagesResponse struct { + ID string `json:"id,omitempty"` // Software image identifier + Imported *bool `json:"imported,omitempty"` // Flag for image info whether it is imported image or cloud image + Name string `json:"name,omitempty"` // Name of the software image + Version string `json:"version,omitempty"` // Software image version + ImageType string `json:"imageType,omitempty"` // Software image type + Recommended string `json:"recommended,omitempty"` // CISCO if the image is recommended from Cisco.com + CiscoLatest *bool `json:"ciscoLatest,omitempty"` // `true` if the image is latest/suggested from Cisco.com + IntegrityStatus string `json:"integrityStatus,omitempty"` // Image Integrity verification status with Known Good Verification + IsAddonImage *bool `json:"isAddonImage,omitempty"` // The value of `true` will indicate the image as an add-on image, while the value of `false` will indicate software image + HasAddonImages *bool `json:"hasAddonImages,omitempty"` // Software images that have an applicable list of add-on images. The value of `true` will return software images with add-on images, while the value of `false` will return software images without add-on images + GoldenTaggingDetails *[]ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImagesResponseGoldenTaggingDetails `json:"goldenTaggingDetails,omitempty"` // + ProductNames *[]ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImagesResponseProductNames `json:"productNames,omitempty"` // + IsGoldenTagged *bool `json:"isGoldenTagged,omitempty"` // The value of `true` will indicate the image marked as golden, while the value of `false` will indicate the image not marked as golden +} +type ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImagesResponseGoldenTaggingDetails struct { + DeviceRoles []string `json:"deviceRoles,omitempty"` // Golden tagging based on the device roles + DeviceTags []string `json:"deviceTags,omitempty"` // Golden tagging based on the device tags + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // The Site Id of the site that this setting is inherited from. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // The name of the site that this setting is inherited from +} +type ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImagesResponseProductNames struct { + ID string `json:"id,omitempty"` // Product name ordinal is unique value for each network device product + ProductName string `json:"productName,omitempty"` // Network device product name + ProductNameOrdinal *float64 `json:"productNameOrdinal,omitempty"` // Product name ordinal is unique value for each network device product + SupervisorProductName string `json:"supervisorProductName,omitempty"` // Name of the Supervisor Engine Module, supported by the `productName`. Example: The `Cisco Catalyst 9404R Switch` chassis is capable of supporting different supervisor engine modules: the `Cisco Catalyst 9400 Supervisor Engine-1`, the `Cisco Catalyst 9400 Supervisor Engine-1XL`, the `Cisco Catalyst 9400 Supervisor Engine-1XL-Y`, etc. + SupervisorProductNameOrdinal *float64 `json:"supervisorProductNameOrdinal,omitempty"` // Supervisor Engine Module Ordinal, supported by the `productNameOrdinal`. Example: The `286315691` chassis ordinal is capable of supporting different supervisor engine module ordinals: `286316172`, `286316710`, `286320394` etc. +} +type ResponseSoftwareImageManagementSwimReturnsCountOfSoftwareImages struct { + Response *ResponseSoftwareImageManagementSwimReturnsCountOfSoftwareImagesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseSoftwareImageManagementSwimReturnsCountOfSoftwareImagesResponse struct { + Count *int `json:"count,omitempty"` // Reports a count, for example, a total count of records in a given resource. +} +type ResponseSoftwareImageManagementSwimAddImageDistributionServer struct { + Response *ResponseSoftwareImageManagementSwimAddImageDistributionServerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimAddImageDistributionServerResponse struct { + TaskID string `json:"taskId,omitempty"` // The UUID of the task + URL string `json:"url,omitempty"` // The path to the API endpoint to GET for information on the task +} +type ResponseSoftwareImageManagementSwimRetrieveImageDistributionServers struct { + Response *[]ResponseSoftwareImageManagementSwimRetrieveImageDistributionServersResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimRetrieveImageDistributionServersResponse struct { + ID string `json:"id,omitempty"` // Unique identifier for the server + Username string `json:"username,omitempty"` // Server username + ServerAddress string `json:"serverAddress,omitempty"` // FQDN or IP address of the server + PortNumber *float64 `json:"portNumber,omitempty"` // Port number + RootLocation string `json:"rootLocation,omitempty"` // Server root location +} +type ResponseSoftwareImageManagementSwimUpdateRemoteImageDistributionServer struct { + Response *ResponseSoftwareImageManagementSwimUpdateRemoteImageDistributionServerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimUpdateRemoteImageDistributionServerResponse struct { + TaskID string `json:"taskId,omitempty"` // The UUID of the task + URL string `json:"url,omitempty"` // The path to the API endpoint to GET for information on the task +} +type ResponseSoftwareImageManagementSwimRetrieveSpecificImageDistributionServer struct { + Response *ResponseSoftwareImageManagementSwimRetrieveSpecificImageDistributionServerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimRetrieveSpecificImageDistributionServerResponse struct { + ID string `json:"id,omitempty"` // Unique identifier for the server + ServerAddress string `json:"serverAddress,omitempty"` // FQDN or IP address of the server + PortNumber *float64 `json:"portNumber,omitempty"` // Port number + RootLocation string `json:"rootLocation,omitempty"` // Server root location + Username string `json:"username,omitempty"` // Server username +} +type ResponseSoftwareImageManagementSwimRemoveImageDistributionServer struct { + Response *ResponseSoftwareImageManagementSwimRemoveImageDistributionServerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimRemoveImageDistributionServerResponse struct { + TaskID string `json:"taskId,omitempty"` // The UUID of the task + URL string `json:"url,omitempty"` // The path to the API endpoint to GET for information on the task +} +type ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImage struct { + Response *[]ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImageResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImageResponse struct { + ID string `json:"id,omitempty"` // Software image identifier + Imported *bool `json:"imported,omitempty"` // Flag for image info whether it is imported image or cloud image + Name string `json:"name,omitempty"` // Name of the software image + Version string `json:"version,omitempty"` // Software image version + ImageType string `json:"imageType,omitempty"` // Software image type + Recommended string `json:"recommended,omitempty"` // CISCO if the image is recommended from Cisco.com + CiscoLatest *bool `json:"ciscoLatest,omitempty"` // `true` if the image is latest/suggested from Cisco.com + IntegrityStatus string `json:"integrityStatus,omitempty"` // Image Integrity verification status with Known Good Verification + IsAddonImage *bool `json:"isAddonImage,omitempty"` // The value of `true` will indicate the image as an add-on image, while the value of `false` will indicate software image + HasAddonImages *bool `json:"hasAddonImages,omitempty"` // Software images that have an applicable list of add-on images. The value of `true` will return software images with add-on images, while the value of `false` will return software images without add-on images + GoldenTaggingDetails *[]ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImageResponseGoldenTaggingDetails `json:"goldenTaggingDetails,omitempty"` // + ProductNames *[]ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImageResponseProductNames `json:"productNames,omitempty"` // + IsGoldenTagged *bool `json:"isGoldenTagged,omitempty"` // The value of `true` will indicate the image marked as golden, while the value of `false` will indicate the image not marked as golden +} +type ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImageResponseGoldenTaggingDetails struct { + DeviceRoles []string `json:"deviceRoles,omitempty"` // Golden tagging based on the device roles + DeviceTags []string `json:"deviceTags,omitempty"` // Golden tagging based on the device tags + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // The Site Id of the site that this setting is inherited from. + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // The name of the site that this setting is inherited from +} +type ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImageResponseProductNames struct { + ID string `json:"id,omitempty"` // Product name ordinal is unique value for each network device product + ProductName string `json:"productName,omitempty"` // Network device product name + ProductNameOrdinal *float64 `json:"productNameOrdinal,omitempty"` // Product name ordinal is unique value for each network device product + SupervisorProductName string `json:"supervisorProductName,omitempty"` // Name of the Supervisor Engine Module, supported by the `productName`. Example: The `Cisco Catalyst 9404R Switch` chassis is capable of supporting different supervisor engine modules: the `Cisco Catalyst 9400 Supervisor Engine-1`, the `Cisco Catalyst 9400 Supervisor Engine-1XL`, the `Cisco Catalyst 9400 Supervisor Engine-1XL-Y`, etc. + SupervisorProductNameOrdinal *float64 `json:"supervisorProductNameOrdinal,omitempty"` // Supervisor Engine Module Ordinal, supported by the `productNameOrdinal`. Example: The `286315691` chassis ordinal is capable of supporting different supervisor engine module ordinals: `286316172`, `286316710`, `286320394` etc. +} +type ResponseSoftwareImageManagementSwimReturnsCountOfAddOnImages struct { + Response *ResponseSoftwareImageManagementSwimReturnsCountOfAddOnImagesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseSoftwareImageManagementSwimReturnsCountOfAddOnImagesResponse struct { + Count *int `json:"count,omitempty"` // Reports a count, for example, a total count of records in a given resource. +} +type ResponseSoftwareImageManagementSwimDownloadTheSoftwareImage struct { + Response *ResponseSoftwareImageManagementSwimDownloadTheSoftwareImageResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimDownloadTheSoftwareImageResponse struct { + TaskID string `json:"taskId,omitempty"` // The UUID of the task + URL string `json:"url,omitempty"` // The path to the API endpoint to GET for information on the task +} +type ResponseSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage struct { + Response *ResponseSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImageResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImageResponse struct { + TaskID string `json:"taskId,omitempty"` // The UUID of the task + URL string `json:"url,omitempty"` // The path to the API endpoint to GET for information on the task +} +type ResponseSoftwareImageManagementSwimRetrievesNetworkDeviceProductNamesAssignedToASoftwareImage struct { + Response *[]ResponseSoftwareImageManagementSwimRetrievesNetworkDeviceProductNamesAssignedToASoftwareImageResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimRetrievesNetworkDeviceProductNamesAssignedToASoftwareImageResponse struct { + ID string `json:"id,omitempty"` // Product name ordinal is unique value for each network device product + ProductName string `json:"productName,omitempty"` // Network device product name + ProductNameOrdinal *float64 `json:"productNameOrdinal,omitempty"` // Product name ordinal is unique value for each network device product + ProductIDs []string `json:"productIds,omitempty"` // Supported PIDs + SiteIDs []string `json:"siteIds,omitempty"` // Sites where all this image is assigned + Recommended string `json:"recommended,omitempty"` // If 'CISCO' network device product recommandation came from Cisco.com and 'USER' manually assigned +} +type ResponseSoftwareImageManagementSwimRetrievesTheCountOfAssignedNetworkDeviceProducts struct { + Response *ResponseSoftwareImageManagementSwimRetrievesTheCountOfAssignedNetworkDeviceProductsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseSoftwareImageManagementSwimRetrievesTheCountOfAssignedNetworkDeviceProductsResponse struct { + Count *int `json:"count,omitempty"` // Reports a count, for example, a total count of records in a given resource. +} +type ResponseSoftwareImageManagementSwimUnassignNetworkDeviceProductNameFromTheGivenSoftwareImage struct { + Response *ResponseSoftwareImageManagementSwimUnassignNetworkDeviceProductNameFromTheGivenSoftwareImageResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimUnassignNetworkDeviceProductNameFromTheGivenSoftwareImageResponse struct { + TaskID string `json:"taskId,omitempty"` // The UUID of the task + URL string `json:"url,omitempty"` // The path to the API endpoint to GET for information on the task +} +type ResponseSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage struct { + Response *ResponseSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImageResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImageResponse struct { + TaskID string `json:"taskId,omitempty"` // The UUID of the task + URL string `json:"url,omitempty"` // The path to the API endpoint to GET for information on the task +} +type ResponseSoftwareImageManagementSwimGetNetworkDeviceImageUpdates struct { + Response *[]ResponseSoftwareImageManagementSwimGetNetworkDeviceImageUpdatesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // API response version +} +type ResponseSoftwareImageManagementSwimGetNetworkDeviceImageUpdatesResponse struct { + ID string `json:"id,omitempty"` // Unique identifier for the image update + ParentID string `json:"parentId,omitempty"` // Parent identifier for the image update + StartTime *float64 `json:"startTime,omitempty"` // Image update started after the given time (as milliseconds since UNIX epoch) + EndTime *float64 `json:"endTime,omitempty"` // Image update end time (as milliseconds since UNIX epoch) + Status string `json:"status,omitempty"` // Status of the image update + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device identifier + ManagementAddress string `json:"managementAddress,omitempty"` // Management address of the network device + HostName string `json:"hostName,omitempty"` // Host name of the network device for the image update + UpdateImageVersion string `json:"updateImageVersion,omitempty"` // Software image version + Type string `json:"type,omitempty"` // Type of the image update +} +type ResponseSoftwareImageManagementSwimCountOfNetworkDeviceImageUpdates struct { + Response *ResponseSoftwareImageManagementSwimCountOfNetworkDeviceImageUpdatesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseSoftwareImageManagementSwimCountOfNetworkDeviceImageUpdatesResponse struct { + Count *int `json:"count,omitempty"` // Reports a count, for example, a total count of records in a given resource. +} +type ResponseSoftwareImageManagementSwimRetrievesTheListOfNetworkDeviceProductNames struct { + Response *[]ResponseSoftwareImageManagementSwimRetrievesTheListOfNetworkDeviceProductNamesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimRetrievesTheListOfNetworkDeviceProductNamesResponse struct { + ID string `json:"id,omitempty"` // Product name ordinal is unique value for each network device product + ProductName string `json:"productName,omitempty"` // Network device product name + ProductNameOrdinal *float64 `json:"productNameOrdinal,omitempty"` // Product name ordinal is unique value for each network device product + ProductIDs []string `json:"productIds,omitempty"` // Supported PIDs +} +type ResponseSoftwareImageManagementSwimCountOfNetworkProductNames struct { + Response *ResponseSoftwareImageManagementSwimCountOfNetworkProductNamesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseSoftwareImageManagementSwimCountOfNetworkProductNamesResponse struct { + Count *int `json:"count,omitempty"` // Reports a count, for example, a total count of records in a given resource. +} +type ResponseSoftwareImageManagementSwimRetrieveNetworkDeviceProductName struct { + Response *ResponseSoftwareImageManagementSwimRetrieveNetworkDeviceProductNameResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimRetrieveNetworkDeviceProductNameResponse struct { + ID string `json:"id,omitempty"` // Product name ordinal is unique value for each network device product + ProductName string `json:"productName,omitempty"` // Network device product name + ProductNameOrdinal *float64 `json:"productNameOrdinal,omitempty"` // Product name ordinal is unique value for each network device product + ProductIDs []string `json:"productIds,omitempty"` // Supported PIDs +} +type ResponseSoftwareImageManagementSwimReturnsNetworkDeviceProductNamesForASite struct { + Response *ResponseSoftwareImageManagementSwimReturnsNetworkDeviceProductNamesForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version +} +type ResponseSoftwareImageManagementSwimReturnsNetworkDeviceProductNamesForASiteResponse struct { + ID string `json:"id,omitempty"` // The unique identifier for the record is the `id`. If there is no supervisor engine involved, the `id` will be the same as the `productNameOrdinal`. However, if the supervisor engine is applicable, the `id` will be in the form of `-`. + ProductNameOrdinal *float64 `json:"productNameOrdinal,omitempty"` // Product name ordinal + ProductName string `json:"productName,omitempty"` // Name of product + SupervisorProductName string `json:"supervisorProductName,omitempty"` // Name of the Supervisor Engine Module, supported by the `productName`. Example: The `Cisco Catalyst 9404R Switch` chassis is capable of supporting different supervisor engine modules: the `Cisco Catalyst 9400 Supervisor Engine-1`, the `Cisco Catalyst 9400 Supervisor Engine-1XL`, the `Cisco Catalyst 9400 Supervisor Engine-1XL-Y`, etc. + SupervisorProductNameOrdinal *float64 `json:"supervisorProductNameOrdinal,omitempty"` // Supervisor Engine Module Ordinal, supported by the `productNameOrdinal`. Example: The `286315691` chassis ordinal is capable of supporting different supervisor engine module ordinals: `286316172`, `286316710`, `286320394` etc. + NetworkDeviceCount *int `json:"networkDeviceCount,omitempty"` // Count of network devices + ImageSummary *ResponseSoftwareImageManagementSwimReturnsNetworkDeviceProductNamesForASiteResponseImageSummary `json:"imageSummary,omitempty"` // +} +type ResponseSoftwareImageManagementSwimReturnsNetworkDeviceProductNamesForASiteResponseImageSummary struct { + InstalledImageCount *int `json:"installedImageCount,omitempty"` // Count of installed images + GoldenImageCount *int `json:"goldenImageCount,omitempty"` // Count of golden tagged images + InstalledImageAdvisorCount *int `json:"installedImageAdvisorCount,omitempty"` // Count of advisor on installed images +} +type ResponseSoftwareImageManagementSwimReturnsTheCountOfNetworkDeviceProductNamesForASite struct { + Response *ResponseSoftwareImageManagementSwimReturnsTheCountOfNetworkDeviceProductNamesForASiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseSoftwareImageManagementSwimReturnsTheCountOfNetworkDeviceProductNamesForASiteResponse struct { + Count *int `json:"count,omitempty"` // Reports a count, for example, a total count of records in a given resource. +} type RequestSoftwareImageManagementSwimTriggerSoftwareImageActivation []RequestItemSoftwareImageManagementSwimTriggerSoftwareImageActivation // Array of RequestSoftwareImageManagementSwimTriggerSoftwareImageActivation type RequestItemSoftwareImageManagementSwimTriggerSoftwareImageActivation struct { ActivateLowerImageVersion *bool `json:"activateLowerImageVersion,omitempty"` // @@ -196,6 +532,25 @@ type RequestItemSoftwareImageManagementSwimImportSoftwareImageViaURL struct { ThirdParty *bool `json:"thirdParty,omitempty"` // Vendor string `json:"vendor,omitempty"` // } +type RequestSoftwareImageManagementSwimAddImageDistributionServer struct { + ServerAddress string `json:"serverAddress,omitempty"` // FQDN or IP address of the server + Username string `json:"username,omitempty"` // Server username + PortNumber *float64 `json:"portNumber,omitempty"` // Port number + RootLocation string `json:"rootLocation,omitempty"` // Server root location + Password string `json:"password,omitempty"` // Server password +} +type RequestSoftwareImageManagementSwimUpdateRemoteImageDistributionServer struct { + Username string `json:"username,omitempty"` // Server username + PortNumber *float64 `json:"portNumber,omitempty"` // Port number + Password string `json:"password,omitempty"` // Server password +} +type RequestSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage struct { + ProductNameOrdinal *float64 `json:"productNameOrdinal,omitempty"` // Product name ordinal is unique value for each network device product + SiteIDs []string `json:"siteIds,omitempty"` // Sites where this image needs to be assigned. Ref https://developer.cisco.com/docs/dna-center/#!sites +} +type RequestSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage struct { + SiteIDs []string `json:"siteIds,omitempty"` // Sites where all this image need to be assigned +} //GetSoftwareImageDetails Get software image details - 0c8f-7a0b-49b9-aedd /* Returns software image list based on a filter criteria. For example: "filterbyName = cat3k%" @@ -203,7 +558,7 @@ type RequestItemSoftwareImageManagementSwimImportSoftwareImageViaURL struct { @param GetSoftwareImageDetailsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-software-image-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-software-image-details-v1 */ func (s *SoftwareImageManagementSwimService) GetSoftwareImageDetails(GetSoftwareImageDetailsQueryParams *GetSoftwareImageDetailsQueryParams) (*ResponseSoftwareImageManagementSwimGetSoftwareImageDetails, *resty.Response, error) { path := "/dna/intent/api/v1/image/importation" @@ -239,7 +594,7 @@ func (s *SoftwareImageManagementSwimService) GetSoftwareImageDetails(GetSoftware -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-family-identifiers +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-device-family-identifiers-v1 */ func (s *SoftwareImageManagementSwimService) GetDeviceFamilyIDentifiers() (*ResponseSoftwareImageManagementSwimGetDeviceFamilyIDentifiers, *resty.Response, error) { path := "/dna/intent/api/v1/image/importation/device-family-identifiers" @@ -281,7 +636,7 @@ func (s *SoftwareImageManagementSwimService) GetDeviceFamilyIDentifiers() (*Resp @param imageID imageId path parameter. Image Id in uuid format. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-golden-tag-status-of-an-image +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-golden-tag-status-of-an-image-v1 */ func (s *SoftwareImageManagementSwimService) GetGoldenTagStatusOfAnImage(siteID string, deviceFamilyIDentifier string, deviceRole string, imageID string) (*ResponseSoftwareImageManagementSwimGetGoldenTagStatusOfAnImage, *resty.Response, error) { path := "/dna/intent/api/v1/image/importation/golden/site/{siteId}/family/{deviceFamilyIdentifier}/role/{deviceRole}/image/{imageId}" @@ -314,43 +669,62 @@ func (s *SoftwareImageManagementSwimService) GetGoldenTagStatusOfAnImage(siteID } -//TriggerSoftwareImageActivation Trigger software image activation - fb9b-eb66-4f2a-ba4c -/* Activates a software image on a given device. Software image must be present in the device flash +//ReturnsListOfSoftwareImages Returns list of software images - e4a3-6a8c-48fa-91ea +/* A list of available images for the specified site is provided. The default value of the site is set to global. The list includes images that have been imported onto the disk, as well as the latest and suggested images from Cisco.com. -@param TriggerSoftwareImageActivationHeaderParams Custom header parameters -@param TriggerSoftwareImageActivationQueryParams Filtering parameter +@param ReturnsListOfSoftwareImagesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!trigger-software-image-activation +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-list-of-software-images-v1 */ -func (s *SoftwareImageManagementSwimService) TriggerSoftwareImageActivation(requestSoftwareImageManagementSwimTriggerSoftwareImageActivation *RequestSoftwareImageManagementSwimTriggerSoftwareImageActivation, TriggerSoftwareImageActivationHeaderParams *TriggerSoftwareImageActivationHeaderParams, TriggerSoftwareImageActivationQueryParams *TriggerSoftwareImageActivationQueryParams) (*ResponseSoftwareImageManagementSwimTriggerSoftwareImageActivation, *resty.Response, error) { - path := "/dna/intent/api/v1/image/activation/device" +func (s *SoftwareImageManagementSwimService) ReturnsListOfSoftwareImages(ReturnsListOfSoftwareImagesQueryParams *ReturnsListOfSoftwareImagesQueryParams) (*ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImages, *resty.Response, error) { + path := "/dna/intent/api/v1/images" - queryString, _ := query.Values(TriggerSoftwareImageActivationQueryParams) + queryString, _ := query.Values(ReturnsListOfSoftwareImagesQueryParams) - var response *resty.Response - var err error - clientRequest := s.client.R(). + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImages{}). + SetError(&Error). + Get(path) - if TriggerSoftwareImageActivationHeaderParams != nil { + if err != nil { + return nil, nil, err - if TriggerSoftwareImageActivationHeaderParams.ClientType != "" { - clientRequest = clientRequest.SetHeader("Client-Type", TriggerSoftwareImageActivationHeaderParams.ClientType) - } + } - if TriggerSoftwareImageActivationHeaderParams.ClientURL != "" { - clientRequest = clientRequest.SetHeader("Client-Url", TriggerSoftwareImageActivationHeaderParams.ClientURL) + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReturnsListOfSoftwareImages(ReturnsListOfSoftwareImagesQueryParams) } - + return nil, response, fmt.Errorf("error with operation ReturnsListOfSoftwareImages") } - response, err = clientRequest. - SetQueryString(queryString.Encode()).SetBody(requestSoftwareImageManagementSwimTriggerSoftwareImageActivation). - SetResult(&ResponseSoftwareImageManagementSwimTriggerSoftwareImageActivation{}). + result := response.Result().(*ResponseSoftwareImageManagementSwimReturnsListOfSoftwareImages) + return result, response, err + +} + +//ReturnsCountOfSoftwareImages Returns count of software images - 1391-aa45-4098-8eac +/* Returns the count of software images for given `siteId`. The default value of siteId is global + + +@param ReturnsCountOfSoftwareImagesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-count-of-software-images-v1 +*/ +func (s *SoftwareImageManagementSwimService) ReturnsCountOfSoftwareImages(ReturnsCountOfSoftwareImagesQueryParams *ReturnsCountOfSoftwareImagesQueryParams) (*ResponseSoftwareImageManagementSwimReturnsCountOfSoftwareImages, *resty.Response, error) { + path := "/dna/intent/api/v1/images/count" + + queryString, _ := query.Values(ReturnsCountOfSoftwareImagesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimReturnsCountOfSoftwareImages{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -358,36 +732,33 @@ func (s *SoftwareImageManagementSwimService) TriggerSoftwareImageActivation(requ } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.TriggerSoftwareImageActivation(requestSoftwareImageManagementSwimTriggerSoftwareImageActivation, TriggerSoftwareImageActivationHeaderParams, TriggerSoftwareImageActivationQueryParams) + return s.ReturnsCountOfSoftwareImages(ReturnsCountOfSoftwareImagesQueryParams) } - - return nil, response, fmt.Errorf("error with operation TriggerSoftwareImageActivation") + return nil, response, fmt.Errorf("error with operation ReturnsCountOfSoftwareImages") } - result := response.Result().(*ResponseSoftwareImageManagementSwimTriggerSoftwareImageActivation) + result := response.Result().(*ResponseSoftwareImageManagementSwimReturnsCountOfSoftwareImages) return result, response, err } -//TriggerSoftwareImageDistribution Trigger software image distribution - 8cb6-783b-4fab-a1f4 -/* Distributes a software image on a given device. Software image must be imported successfully into DNA Center before it can be distributed +//RetrieveImageDistributionServers Retrieve image distribution servers - 7982-39ee-4aaa-aa72 +/* Retrieve the list of remote image distribution servers. There can be up to two remote servers.Product always acts as local distribution server, and it is not part of this API response. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!trigger-software-image-distribution +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-image-distribution-servers-v1 */ -func (s *SoftwareImageManagementSwimService) TriggerSoftwareImageDistribution(requestSoftwareImageManagementSwimTriggerSoftwareImageDistribution *RequestSoftwareImageManagementSwimTriggerSoftwareImageDistribution) (*ResponseSoftwareImageManagementSwimTriggerSoftwareImageDistribution, *resty.Response, error) { - path := "/dna/intent/api/v1/image/distribution" +func (s *SoftwareImageManagementSwimService) RetrieveImageDistributionServers() (*ResponseSoftwareImageManagementSwimRetrieveImageDistributionServers, *resty.Response, error) { + path := "/dna/intent/api/v1/images/distributionServerSettings" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSoftwareImageManagementSwimTriggerSoftwareImageDistribution). - SetResult(&ResponseSoftwareImageManagementSwimTriggerSoftwareImageDistribution{}). + SetResult(&ResponseSoftwareImageManagementSwimRetrieveImageDistributionServers{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -395,36 +766,36 @@ func (s *SoftwareImageManagementSwimService) TriggerSoftwareImageDistribution(re } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.TriggerSoftwareImageDistribution(requestSoftwareImageManagementSwimTriggerSoftwareImageDistribution) + return s.RetrieveImageDistributionServers() } - - return nil, response, fmt.Errorf("error with operation TriggerSoftwareImageDistribution") + return nil, response, fmt.Errorf("error with operation RetrieveImageDistributionServers") } - result := response.Result().(*ResponseSoftwareImageManagementSwimTriggerSoftwareImageDistribution) + result := response.Result().(*ResponseSoftwareImageManagementSwimRetrieveImageDistributionServers) return result, response, err } -//TagAsGoldenImage Tag as Golden Image - 5c91-7a67-474b-a0e0 -/* Golden Tag image. Set siteId as -1 for Global site. +//RetrieveSpecificImageDistributionServer Retrieve specific image distribution server - b1ac-99fe-47a9-9c85 +/* Retrieve image distribution server for the given server identifier +@param id id path parameter. Server identifier -Documentation Link: https://developer.cisco.com/docs/dna-center/#!tag-as-golden-image + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-specific-image-distribution-server-v1 */ -func (s *SoftwareImageManagementSwimService) TagAsGoldenImage(requestSoftwareImageManagementSwimTagAsGoldenImage *RequestSoftwareImageManagementSwimTagAsGoldenImage) (*ResponseSoftwareImageManagementSwimTagAsGoldenImage, *resty.Response, error) { - path := "/dna/intent/api/v1/image/importation/golden" +func (s *SoftwareImageManagementSwimService) RetrieveSpecificImageDistributionServer(id string) (*ResponseSoftwareImageManagementSwimRetrieveSpecificImageDistributionServer, *resty.Response, error) { + path := "/dna/intent/api/v1/images/distributionServerSettings/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSoftwareImageManagementSwimTagAsGoldenImage). - SetResult(&ResponseSoftwareImageManagementSwimTagAsGoldenImage{}). + SetResult(&ResponseSoftwareImageManagementSwimRetrieveSpecificImageDistributionServer{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -432,47 +803,73 @@ func (s *SoftwareImageManagementSwimService) TagAsGoldenImage(requestSoftwareIma } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.TagAsGoldenImage(requestSoftwareImageManagementSwimTagAsGoldenImage) + return s.RetrieveSpecificImageDistributionServer(id) } - - return nil, response, fmt.Errorf("error with operation TagAsGoldenImage") + return nil, response, fmt.Errorf("error with operation RetrieveSpecificImageDistributionServer") } - result := response.Result().(*ResponseSoftwareImageManagementSwimTagAsGoldenImage) + result := response.Result().(*ResponseSoftwareImageManagementSwimRetrieveSpecificImageDistributionServer) return result, response, err } -//ImportLocalSoftwareImage Import local software image - 4dbe-3bc7-43a8-91bc -/* Fetches a software image from local file system and uploads to DNA Center. Supported software image files extensions are bin, img, tar, smu, pie, aes, iso, ova, tar_gz and qcow2 +//RetrieveApplicableAddOnImagesForTheGivenSoftwareImage Retrieve applicable add-on images for the given software image - f0ae-9b76-4ee8-ac84 +/* Retrieves the list of applicable add-on images if available for the given software image. `id` can be obtained from the response of API [ /dna/intent/api/v1/images?hasAddonImages=true ]. -@param ImportLocalSoftwareImageQueryParams Filtering parameter +@param id id path parameter. Software image identifier. Check `/dna/intent/api/v1/images?hasAddonImages=true` API to get the same. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-local-software-image -*/ -func (s *SoftwareImageManagementSwimService) ImportLocalSoftwareImage(ImportLocalSoftwareImageQueryParams *ImportLocalSoftwareImageQueryParams, ImportLocalSoftwareImageMultipartFields *ImportLocalSoftwareImageMultipartFields) (*ResponseSoftwareImageManagementSwimImportLocalSoftwareImage, *resty.Response, error) { - path := "/dna/intent/api/v1/image/importation/source/file" - queryString, _ := query.Values(ImportLocalSoftwareImageQueryParams) +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-applicable-add-on-images-for-the-given-software-image-v1 +*/ +func (s *SoftwareImageManagementSwimService) RetrieveApplicableAddOnImagesForTheGivenSoftwareImage(id string) (*ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImage, *resty.Response, error) { + path := "/dna/intent/api/v1/images/{id}/addonImages" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - var response *resty.Response - var err error - clientRequest := s.client.R(). + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") + SetHeader("Accept", "application/json"). + SetResult(&ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImage{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err - if ImportLocalSoftwareImageMultipartFields != nil { - clientRequest = clientRequest.SetFileReader("file", ImportLocalSoftwareImageMultipartFields.FileName, ImportLocalSoftwareImageMultipartFields.File) } - response, err = clientRequest. - SetQueryString(queryString.Encode()). - SetResult(&ResponseSoftwareImageManagementSwimImportLocalSoftwareImage{}). + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveApplicableAddOnImagesForTheGivenSoftwareImage(id) + } + return nil, response, fmt.Errorf("error with operation RetrieveApplicableAddOnImagesForTheGivenSoftwareImage") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimRetrieveApplicableAddOnImagesForTheGivenSoftwareImage) + return result, response, err + +} + +//ReturnsCountOfAddOnImages Returns count of add-on images - f0ba-68e0-4acb-8234 +/* Count of add-on images available for the given software image identifier, `id` can be obtained from the response of API [ /dna/intent/api/v1/images?hasAddonImages=true ]. + + +@param id id path parameter. Software image identifier. Check API `/dna/intent/api/v1/images` for id from response. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-count-of-add-on-images-v1 +*/ +func (s *SoftwareImageManagementSwimService) ReturnsCountOfAddOnImages(id string) (*ResponseSoftwareImageManagementSwimReturnsCountOfAddOnImages, *resty.Response, error) { + path := "/dna/intent/api/v1/images/{id}/addonImages/count" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSoftwareImageManagementSwimReturnsCountOfAddOnImages{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -480,39 +877,39 @@ func (s *SoftwareImageManagementSwimService) ImportLocalSoftwareImage(ImportLoca } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.ImportLocalSoftwareImage(ImportLocalSoftwareImageQueryParams, ImportLocalSoftwareImageMultipartFields) + return s.ReturnsCountOfAddOnImages(id) } - - return nil, response, fmt.Errorf("error with operation ImportLocalSoftwareImage") + return nil, response, fmt.Errorf("error with operation ReturnsCountOfAddOnImages") } - result := response.Result().(*ResponseSoftwareImageManagementSwimImportLocalSoftwareImage) + result := response.Result().(*ResponseSoftwareImageManagementSwimReturnsCountOfAddOnImages) return result, response, err } -//ImportSoftwareImageViaURL Import software image via URL - bc8a-ab47-46ca-883d -/* Fetches a software image from remote file system (using URL for HTTP/FTP) and uploads to DNA Center. Supported image files extensions are bin, img, tar, smu, pie, aes, iso, ova, tar_gz and qcow2 +//RetrievesNetworkDeviceProductNamesAssignedToASoftwareImage Retrieves network device product names assigned to a software image. - 14a1-f9d8-49b9-80be +/* Returns a list of network device product names and associated sites for a given image identifier. Refer `/dna/intent/api/v1/images` API for obtaining `imageId`. -@param ImportSoftwareImageViaURLQueryParams Filtering parameter +@param imageID imageId path parameter. Software image identifier. Refer `/dna/intent/api/v1/images` API for obtaining `imageId` + +@param RetrievesNetworkDeviceProductNamesAssignedToASoftwareImageQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-software-image-via-url +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-network-device-product-names-assigned-to-a-software-image-v1 */ -func (s *SoftwareImageManagementSwimService) ImportSoftwareImageViaURL(requestSoftwareImageManagementSwimImportSoftwareImageViaURL *RequestSoftwareImageManagementSwimImportSoftwareImageViaURL, ImportSoftwareImageViaURLQueryParams *ImportSoftwareImageViaURLQueryParams) (*ResponseSoftwareImageManagementSwimImportSoftwareImageViaURL, *resty.Response, error) { - path := "/dna/intent/api/v1/image/importation/source/url" +func (s *SoftwareImageManagementSwimService) RetrievesNetworkDeviceProductNamesAssignedToASoftwareImage(imageID string, RetrievesNetworkDeviceProductNamesAssignedToASoftwareImageQueryParams *RetrievesNetworkDeviceProductNamesAssignedToASoftwareImageQueryParams) (*ResponseSoftwareImageManagementSwimRetrievesNetworkDeviceProductNamesAssignedToASoftwareImage, *resty.Response, error) { + path := "/dna/intent/api/v1/images/{imageId}/siteWiseProductNames" + path = strings.Replace(path, "{imageId}", fmt.Sprintf("%v", imageID), -1) - queryString, _ := query.Values(ImportSoftwareImageViaURLQueryParams) + queryString, _ := query.Values(RetrievesNetworkDeviceProductNamesAssignedToASoftwareImageQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetBody(requestSoftwareImageManagementSwimImportSoftwareImageViaURL). - SetResult(&ResponseSoftwareImageManagementSwimImportSoftwareImageViaURL{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimRetrievesNetworkDeviceProductNamesAssignedToASoftwareImage{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -520,48 +917,76 @@ func (s *SoftwareImageManagementSwimService) ImportSoftwareImageViaURL(requestSo } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.ImportSoftwareImageViaURL(requestSoftwareImageManagementSwimImportSoftwareImageViaURL, ImportSoftwareImageViaURLQueryParams) + return s.RetrievesNetworkDeviceProductNamesAssignedToASoftwareImage(imageID, RetrievesNetworkDeviceProductNamesAssignedToASoftwareImageQueryParams) } - - return nil, response, fmt.Errorf("error with operation ImportSoftwareImageViaUrl") + return nil, response, fmt.Errorf("error with operation RetrievesNetworkDeviceProductNamesAssignedToASoftwareImage") } - result := response.Result().(*ResponseSoftwareImageManagementSwimImportSoftwareImageViaURL) + result := response.Result().(*ResponseSoftwareImageManagementSwimRetrievesNetworkDeviceProductNamesAssignedToASoftwareImage) return result, response, err } -//RemoveGoldenTagForImage Remove Golden Tag for image. - f3b9-5978-4f6a-897a -/* Remove golden tag. Set siteId as -1 for Global site. +//RetrievesTheCountOfAssignedNetworkDeviceProducts Retrieves the count of assigned network device products - e994-0a33-409b-b8be +/* Returns count of assigned network device product for a given image identifier. Refer `/dna/intent/api/v1/images` API for obtaining `imageId` -@param siteID siteId path parameter. Site Id in uuid format. Set siteId as -1 for Global site. +@param imageID imageId path parameter. Software image identifier. Refer `/dna/intent/api/v/images` API for obtaining `imageId` -@param deviceFamilyIDentifier deviceFamilyIdentifier path parameter. Device family identifier e.g. : 277696480-283933147, e.g. : 277696480 +@param RetrievesTheCountOfAssignedNetworkDeviceProductsQueryParams Filtering parameter -@param deviceRole deviceRole path parameter. Device Role. Permissible Values : ALL, UNKNOWN, ACCESS, BORDER ROUTER, DISTRIBUTION and CORE. +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-count-of-assigned-network-device-products-v1 +*/ +func (s *SoftwareImageManagementSwimService) RetrievesTheCountOfAssignedNetworkDeviceProducts(imageID string, RetrievesTheCountOfAssignedNetworkDeviceProductsQueryParams *RetrievesTheCountOfAssignedNetworkDeviceProductsQueryParams) (*ResponseSoftwareImageManagementSwimRetrievesTheCountOfAssignedNetworkDeviceProducts, *resty.Response, error) { + path := "/dna/intent/api/v1/images/{imageId}/siteWiseProductNames/count" + path = strings.Replace(path, "{imageId}", fmt.Sprintf("%v", imageID), -1) -@param imageID imageId path parameter. Image Id in uuid format. + queryString, _ := query.Values(RetrievesTheCountOfAssignedNetworkDeviceProductsQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimRetrievesTheCountOfAssignedNetworkDeviceProducts{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheCountOfAssignedNetworkDeviceProducts(imageID, RetrievesTheCountOfAssignedNetworkDeviceProductsQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheCountOfAssignedNetworkDeviceProducts") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimRetrievesTheCountOfAssignedNetworkDeviceProducts) + return result, response, err + +} -Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-golden-tag-for-image +//GetNetworkDeviceImageUpdates Get network device image updates - 75bf-3a9e-467b-af24 +/* Returns the list of network device image updates based on the given filter criteria + + +@param GetNetworkDeviceImageUpdatesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-network-device-image-updates-v1 */ -func (s *SoftwareImageManagementSwimService) RemoveGoldenTagForImage(siteID string, deviceFamilyIDentifier string, deviceRole string, imageID string) (*ResponseSoftwareImageManagementSwimRemoveGoldenTagForImage, *resty.Response, error) { - //siteID string,deviceFamilyIDentifier string,deviceRole string,imageID string - path := "/dna/intent/api/v1/image/importation/golden/site/{siteId}/family/{deviceFamilyIdentifier}/role/{deviceRole}/image/{imageId}" - path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) - path = strings.Replace(path, "{deviceFamilyIdentifier}", fmt.Sprintf("%v", deviceFamilyIDentifier), -1) - path = strings.Replace(path, "{deviceRole}", fmt.Sprintf("%v", deviceRole), -1) - path = strings.Replace(path, "{imageId}", fmt.Sprintf("%v", imageID), -1) +func (s *SoftwareImageManagementSwimService) GetNetworkDeviceImageUpdates(GetNetworkDeviceImageUpdatesQueryParams *GetNetworkDeviceImageUpdatesQueryParams) (*ResponseSoftwareImageManagementSwimGetNetworkDeviceImageUpdates, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDeviceImageUpdates" + + queryString, _ := query.Values(GetNetworkDeviceImageUpdatesQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseSoftwareImageManagementSwimRemoveGoldenTagForImage{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimGetNetworkDeviceImageUpdates{}). SetError(&Error). - Delete(path) + Get(path) if err != nil { return nil, nil, err @@ -570,12 +995,771 @@ func (s *SoftwareImageManagementSwimService) RemoveGoldenTagForImage(siteID stri if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.RemoveGoldenTagForImage(siteID, deviceFamilyIDentifier, deviceRole, imageID) + return s.GetNetworkDeviceImageUpdates(GetNetworkDeviceImageUpdatesQueryParams) } - return nil, response, fmt.Errorf("error with operation RemoveGoldenTagForImage") + return nil, response, fmt.Errorf("error with operation GetNetworkDeviceImageUpdates") } - result := response.Result().(*ResponseSoftwareImageManagementSwimRemoveGoldenTagForImage) + result := response.Result().(*ResponseSoftwareImageManagementSwimGetNetworkDeviceImageUpdates) + return result, response, err + +} + +//CountOfNetworkDeviceImageUpdates Count of network device image updates - b980-b848-45a8-9987 +/* Returns the count of network device image updates based on the given filter criteria + + +@param CountOfNetworkDeviceImageUpdatesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-of-network-device-image-updates-v1 +*/ +func (s *SoftwareImageManagementSwimService) CountOfNetworkDeviceImageUpdates(CountOfNetworkDeviceImageUpdatesQueryParams *CountOfNetworkDeviceImageUpdatesQueryParams) (*ResponseSoftwareImageManagementSwimCountOfNetworkDeviceImageUpdates, *resty.Response, error) { + path := "/dna/intent/api/v1/networkDeviceImageUpdates/count" + + queryString, _ := query.Values(CountOfNetworkDeviceImageUpdatesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimCountOfNetworkDeviceImageUpdates{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.CountOfNetworkDeviceImageUpdates(CountOfNetworkDeviceImageUpdatesQueryParams) + } + return nil, response, fmt.Errorf("error with operation CountOfNetworkDeviceImageUpdates") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimCountOfNetworkDeviceImageUpdates) + return result, response, err + +} + +//RetrievesTheListOfNetworkDeviceProductNames Retrieves the list of network device product names - a7bf-3baf-4c29-b1ca +/* Get the list of network device product names, their ordinal, and the support PIDs based on filter criteria. + + +@param RetrievesTheListOfNetworkDeviceProductNamesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-the-list-of-network-device-product-names-v1 +*/ +func (s *SoftwareImageManagementSwimService) RetrievesTheListOfNetworkDeviceProductNames(RetrievesTheListOfNetworkDeviceProductNamesQueryParams *RetrievesTheListOfNetworkDeviceProductNamesQueryParams) (*ResponseSoftwareImageManagementSwimRetrievesTheListOfNetworkDeviceProductNames, *resty.Response, error) { + path := "/dna/intent/api/v1/productNames" + + queryString, _ := query.Values(RetrievesTheListOfNetworkDeviceProductNamesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimRetrievesTheListOfNetworkDeviceProductNames{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesTheListOfNetworkDeviceProductNames(RetrievesTheListOfNetworkDeviceProductNamesQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrievesTheListOfNetworkDeviceProductNames") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimRetrievesTheListOfNetworkDeviceProductNames) + return result, response, err + +} + +//CountOfNetworkProductNames Count of network product names - baa2-9b3d-45bb-a870 +/* Count of product names based on filter criteria + + +@param CountOfNetworkProductNamesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!count-of-network-product-names-v1 +*/ +func (s *SoftwareImageManagementSwimService) CountOfNetworkProductNames(CountOfNetworkProductNamesQueryParams *CountOfNetworkProductNamesQueryParams) (*ResponseSoftwareImageManagementSwimCountOfNetworkProductNames, *resty.Response, error) { + path := "/dna/intent/api/v1/productNames/count" + + queryString, _ := query.Values(CountOfNetworkProductNamesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimCountOfNetworkProductNames{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.CountOfNetworkProductNames(CountOfNetworkProductNamesQueryParams) + } + return nil, response, fmt.Errorf("error with operation CountOfNetworkProductNames") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimCountOfNetworkProductNames) + return result, response, err + +} + +//RetrieveNetworkDeviceProductName Retrieve network device product name - 3aa8-fb90-4288-b606 +/* Get the network device product name, its ordinal, and supported PIDs. + + +@param productNameOrdinal productNameOrdinal path parameter. Product name ordinal is unique value for each network device product. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-network-device-product-name-v1 +*/ +func (s *SoftwareImageManagementSwimService) RetrieveNetworkDeviceProductName(productNameOrdinal float64) (*ResponseSoftwareImageManagementSwimRetrieveNetworkDeviceProductName, *resty.Response, error) { + path := "/dna/intent/api/v1/productNames/{productNameOrdinal}" + path = strings.Replace(path, "{productNameOrdinal}", fmt.Sprintf("%v", productNameOrdinal), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSoftwareImageManagementSwimRetrieveNetworkDeviceProductName{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveNetworkDeviceProductName(productNameOrdinal) + } + return nil, response, fmt.Errorf("error with operation RetrieveNetworkDeviceProductName") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimRetrieveNetworkDeviceProductName) + return result, response, err + +} + +//ReturnsNetworkDeviceProductNamesForASite Returns network device product names for a site - 20b5-5b0c-4518-9a03 +/* Provides network device product names for a site. The default value of `siteId` is global. The response will include the network device count and image summary. + + +@param ReturnsNetworkDeviceProductNamesForASiteQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-network-device-product-names-for-a-site-v1 +*/ +func (s *SoftwareImageManagementSwimService) ReturnsNetworkDeviceProductNamesForASite(ReturnsNetworkDeviceProductNamesForASiteQueryParams *ReturnsNetworkDeviceProductNamesForASiteQueryParams) (*ResponseSoftwareImageManagementSwimReturnsNetworkDeviceProductNamesForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/siteWiseProductNames" + + queryString, _ := query.Values(ReturnsNetworkDeviceProductNamesForASiteQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimReturnsNetworkDeviceProductNamesForASite{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReturnsNetworkDeviceProductNamesForASite(ReturnsNetworkDeviceProductNamesForASiteQueryParams) + } + return nil, response, fmt.Errorf("error with operation ReturnsNetworkDeviceProductNamesForASite") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimReturnsNetworkDeviceProductNamesForASite) + return result, response, err + +} + +//ReturnsTheCountOfNetworkDeviceProductNamesForASite Returns the count of network device product names for a site - 018d-a93c-4e4b-8436 +/* Returns the count of network device product names for given filters. The default value of `siteId` is global. + + +@param ReturnsTheCountOfNetworkDeviceProductNamesForASiteQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!returns-the-count-of-network-device-product-names-for-a-site-v1 +*/ +func (s *SoftwareImageManagementSwimService) ReturnsTheCountOfNetworkDeviceProductNamesForASite(ReturnsTheCountOfNetworkDeviceProductNamesForASiteQueryParams *ReturnsTheCountOfNetworkDeviceProductNamesForASiteQueryParams) (*ResponseSoftwareImageManagementSwimReturnsTheCountOfNetworkDeviceProductNamesForASite, *resty.Response, error) { + path := "/dna/intent/api/v1/siteWiseProductNames/count" + + queryString, _ := query.Values(ReturnsTheCountOfNetworkDeviceProductNamesForASiteQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseSoftwareImageManagementSwimReturnsTheCountOfNetworkDeviceProductNamesForASite{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.ReturnsTheCountOfNetworkDeviceProductNamesForASite(ReturnsTheCountOfNetworkDeviceProductNamesForASiteQueryParams) + } + return nil, response, fmt.Errorf("error with operation ReturnsTheCountOfNetworkDeviceProductNamesForASite") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimReturnsTheCountOfNetworkDeviceProductNamesForASite) + return result, response, err + +} + +//TriggerSoftwareImageActivation Trigger software image activation - fb9b-eb66-4f2a-ba4c +/* Activates a software image on a given device. Software image must be present in the device flash + + +@param TriggerSoftwareImageActivationHeaderParams Custom header parameters +@param TriggerSoftwareImageActivationQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!trigger-software-image-activation-v1 +*/ +func (s *SoftwareImageManagementSwimService) TriggerSoftwareImageActivation(requestSoftwareImageManagementSwimTriggerSoftwareImageActivation *RequestSoftwareImageManagementSwimTriggerSoftwareImageActivation, TriggerSoftwareImageActivationHeaderParams *TriggerSoftwareImageActivationHeaderParams, TriggerSoftwareImageActivationQueryParams *TriggerSoftwareImageActivationQueryParams) (*ResponseSoftwareImageManagementSwimTriggerSoftwareImageActivation, *resty.Response, error) { + path := "/dna/intent/api/v1/image/activation/device" + + queryString, _ := query.Values(TriggerSoftwareImageActivationQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if TriggerSoftwareImageActivationHeaderParams != nil { + + if TriggerSoftwareImageActivationHeaderParams.ClientType != "" { + clientRequest = clientRequest.SetHeader("Client-Type", TriggerSoftwareImageActivationHeaderParams.ClientType) + } + + if TriggerSoftwareImageActivationHeaderParams.ClientURL != "" { + clientRequest = clientRequest.SetHeader("Client-Url", TriggerSoftwareImageActivationHeaderParams.ClientURL) + } + + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()).SetBody(requestSoftwareImageManagementSwimTriggerSoftwareImageActivation). + SetResult(&ResponseSoftwareImageManagementSwimTriggerSoftwareImageActivation{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.TriggerSoftwareImageActivation(requestSoftwareImageManagementSwimTriggerSoftwareImageActivation, TriggerSoftwareImageActivationHeaderParams, TriggerSoftwareImageActivationQueryParams) + } + + return nil, response, fmt.Errorf("error with operation TriggerSoftwareImageActivation") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimTriggerSoftwareImageActivation) + return result, response, err + +} + +//TriggerSoftwareImageDistribution Trigger software image distribution - 8cb6-783b-4fab-a1f4 +/* Distributes a software image on a given device. Software image must be imported successfully into DNA Center before it can be distributed + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!trigger-software-image-distribution-v1 +*/ +func (s *SoftwareImageManagementSwimService) TriggerSoftwareImageDistribution(requestSoftwareImageManagementSwimTriggerSoftwareImageDistribution *RequestSoftwareImageManagementSwimTriggerSoftwareImageDistribution) (*ResponseSoftwareImageManagementSwimTriggerSoftwareImageDistribution, *resty.Response, error) { + path := "/dna/intent/api/v1/image/distribution" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSoftwareImageManagementSwimTriggerSoftwareImageDistribution). + SetResult(&ResponseSoftwareImageManagementSwimTriggerSoftwareImageDistribution{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.TriggerSoftwareImageDistribution(requestSoftwareImageManagementSwimTriggerSoftwareImageDistribution) + } + + return nil, response, fmt.Errorf("error with operation TriggerSoftwareImageDistribution") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimTriggerSoftwareImageDistribution) + return result, response, err + +} + +//TagAsGoldenImage Tag as Golden Image - 5c91-7a67-474b-a0e0 +/* Golden Tag image. Set siteId as -1 for Global site. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!tag-as-golden-image-v1 +*/ +func (s *SoftwareImageManagementSwimService) TagAsGoldenImage(requestSoftwareImageManagementSwimTagAsGoldenImage *RequestSoftwareImageManagementSwimTagAsGoldenImage) (*ResponseSoftwareImageManagementSwimTagAsGoldenImage, *resty.Response, error) { + path := "/dna/intent/api/v1/image/importation/golden" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSoftwareImageManagementSwimTagAsGoldenImage). + SetResult(&ResponseSoftwareImageManagementSwimTagAsGoldenImage{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.TagAsGoldenImage(requestSoftwareImageManagementSwimTagAsGoldenImage) + } + + return nil, response, fmt.Errorf("error with operation TagAsGoldenImage") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimTagAsGoldenImage) + return result, response, err + +} + +//ImportLocalSoftwareImage Import local software image - 1491-f90f-48da-aabe +/* Fetches a software image from local file system and uploads to DNA Center. Supported software image files extensions are bin, img, tar, smu, pie, aes, iso, ova, tar_gz and qcow2 + + +@param ImportLocalSoftwareImageQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-local-software-image-v1 +*/ +func (s *SoftwareImageManagementSwimService) ImportLocalSoftwareImage(ImportLocalSoftwareImageQueryParams *ImportLocalSoftwareImageQueryParams, ImportLocalSoftwareImageMultipartFields *ImportLocalSoftwareImageMultipartFields) (*ResponseSoftwareImageManagementSwimImportLocalSoftwareImage, *resty.Response, error) { + path := "/dna/intent/api/v1/image/importation/source/file" + + queryString, _ := query.Values(ImportLocalSoftwareImageQueryParams) + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if ImportLocalSoftwareImageMultipartFields != nil { + clientRequest = clientRequest.SetFileReader("file", ImportLocalSoftwareImageMultipartFields.FileName, ImportLocalSoftwareImageMultipartFields.File) + } + + response, err = clientRequest. + SetQueryString(queryString.Encode()). + SetResult(&ResponseSoftwareImageManagementSwimImportLocalSoftwareImage{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ImportLocalSoftwareImage(ImportLocalSoftwareImageQueryParams, ImportLocalSoftwareImageMultipartFields) + } + + return nil, response, fmt.Errorf("error with operation ImportLocalSoftwareImage") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimImportLocalSoftwareImage) + return result, response, err + +} + +//ImportSoftwareImageViaURL Import software image via URL - bc8a-ab47-46ca-883d +/* Fetches a software image from remote file system (using URL for HTTP/FTP) and uploads to DNA Center. Supported image files extensions are bin, img, tar, smu, pie, aes, iso, ova, tar_gz and qcow2 + + +@param ImportSoftwareImageViaURLQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-software-image-via-url-v1 +*/ +func (s *SoftwareImageManagementSwimService) ImportSoftwareImageViaURL(requestSoftwareImageManagementSwimImportSoftwareImageViaURL *RequestSoftwareImageManagementSwimImportSoftwareImageViaURL, ImportSoftwareImageViaURLQueryParams *ImportSoftwareImageViaURLQueryParams) (*ResponseSoftwareImageManagementSwimImportSoftwareImageViaURL, *resty.Response, error) { + path := "/dna/intent/api/v1/image/importation/source/url" + + queryString, _ := query.Values(ImportSoftwareImageViaURLQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetBody(requestSoftwareImageManagementSwimImportSoftwareImageViaURL). + SetResult(&ResponseSoftwareImageManagementSwimImportSoftwareImageViaURL{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ImportSoftwareImageViaURL(requestSoftwareImageManagementSwimImportSoftwareImageViaURL, ImportSoftwareImageViaURLQueryParams) + } + + return nil, response, fmt.Errorf("error with operation ImportSoftwareImageViaUrl") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimImportSoftwareImageViaURL) + return result, response, err + +} + +//AddImageDistributionServer Add image distribution server - 0699-0a83-4aaa-be15 +/* Add remote server for distributing software images. Upto two such distribution servers are supported. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-image-distribution-server-v1 +*/ +func (s *SoftwareImageManagementSwimService) AddImageDistributionServer(requestSoftwareImageManagementSwimAddImageDistributionServer *RequestSoftwareImageManagementSwimAddImageDistributionServer) (*ResponseSoftwareImageManagementSwimAddImageDistributionServer, *resty.Response, error) { + path := "/dna/intent/api/v1/images/distributionServerSettings" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSoftwareImageManagementSwimAddImageDistributionServer). + SetResult(&ResponseSoftwareImageManagementSwimAddImageDistributionServer{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddImageDistributionServer(requestSoftwareImageManagementSwimAddImageDistributionServer) + } + + return nil, response, fmt.Errorf("error with operation AddImageDistributionServer") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimAddImageDistributionServer) + return result, response, err + +} + +//DownloadTheSoftwareImage Download the software image - c382-2b30-447a-a189 +/* Initiates download of the software image from Cisco.com on the disk for the given `id`. Refer to `/dna/intent/api/v1/images` for obtaining `id`. + + +@param id id path parameter. Software image identifier. Check API `/dna/intent/api/v1/images` for `id` from response. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!download-the-software-image-v1 +*/ +func (s *SoftwareImageManagementSwimService) DownloadTheSoftwareImage(id string) (*ResponseSoftwareImageManagementSwimDownloadTheSoftwareImage, *resty.Response, error) { + path := "/dna/intent/api/v1/images/{id}/download" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSoftwareImageManagementSwimDownloadTheSoftwareImage{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.DownloadTheSoftwareImage(id) + } + + return nil, response, fmt.Errorf("error with operation DownloadTheSoftwareImage") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimDownloadTheSoftwareImage) + return result, response, err + +} + +//AssignNetworkDeviceProductNameToTheGivenSoftwareImage Assign network device product name to the given software image - 0089-283d-4609-98a5 +/* Assign network device product name and sites for the given image identifier. Refer `/dna/intent/api/v1/images` API for obtaining imageId + + +@param imageID imageId path parameter. Software image identifier. Refer `/dna/intent/api/v1/images` API for obtaining `imageId` + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-network-device-product-name-to-the-given-software-image-v1 +*/ +func (s *SoftwareImageManagementSwimService) AssignNetworkDeviceProductNameToTheGivenSoftwareImage(imageID string, requestSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage *RequestSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage) (*ResponseSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage, *resty.Response, error) { + path := "/dna/intent/api/v1/images/{imageId}/siteWiseProductNames" + path = strings.Replace(path, "{imageId}", fmt.Sprintf("%v", imageID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage). + SetResult(&ResponseSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AssignNetworkDeviceProductNameToTheGivenSoftwareImage(imageID, requestSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage) + } + + return nil, response, fmt.Errorf("error with operation AssignNetworkDeviceProductNameToTheGivenSoftwareImage") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimAssignNetworkDeviceProductNameToTheGivenSoftwareImage) + return result, response, err + +} + +//UpdateRemoteImageDistributionServer Update remote image distribution server - 2caa-c9cc-469b-a3d5 +/* Update remote image distribution server details. + + +@param id id path parameter. Remote server identifier. + +*/ +func (s *SoftwareImageManagementSwimService) UpdateRemoteImageDistributionServer(id string, requestSoftwareImageManagementSwimUpdateRemoteImageDistributionServer *RequestSoftwareImageManagementSwimUpdateRemoteImageDistributionServer) (*ResponseSoftwareImageManagementSwimUpdateRemoteImageDistributionServer, *resty.Response, error) { + path := "/dna/intent/api/v1/images/distributionServerSettings/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSoftwareImageManagementSwimUpdateRemoteImageDistributionServer). + SetResult(&ResponseSoftwareImageManagementSwimUpdateRemoteImageDistributionServer{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateRemoteImageDistributionServer(id, requestSoftwareImageManagementSwimUpdateRemoteImageDistributionServer) + } + return nil, response, fmt.Errorf("error with operation UpdateRemoteImageDistributionServer") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimUpdateRemoteImageDistributionServer) + return result, response, err + +} + +//UpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage Update the list of sites for the network device product name assigned to the software image - 1da6-d80b-40fa-8bdc +/* Update the list of sites for the network device product name assigned to the software image. Refer to `/dna/intent/api/v1/images` and `/dna/intent/api/v1/images/{imageId}/siteWiseProductNames` GET APIs for obtaining `imageId` and `productNameOrdinal` respectively. + + +@param imageID imageId path parameter. Software image identifier. Refer `/dna/intent/api/v1/images` API for obtaining `imageId` + +@param productNameOrdinal productNameOrdinal path parameter. Product name ordinal is unique value for each network device product. Refer `/dna/intent/api/v1/images/{imageId}/siteWiseProductNames` GET API for obtaining `productNameOrdinal`. + +*/ +func (s *SoftwareImageManagementSwimService) UpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage(imageID string, productNameOrdinal float64, requestSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage *RequestSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage) (*ResponseSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage, *resty.Response, error) { + path := "/dna/intent/api/v1/images/{imageId}/siteWiseProductNames/{productNameOrdinal}" + path = strings.Replace(path, "{imageId}", fmt.Sprintf("%v", imageID), -1) + path = strings.Replace(path, "{productNameOrdinal}", fmt.Sprintf("%v", productNameOrdinal), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage). + SetResult(&ResponseSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage(imageID, productNameOrdinal, requestSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage) + } + return nil, response, fmt.Errorf("error with operation UpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimUpdateTheListOfSitesForTheNetworkDeviceProductNameAssignedToTheSoftwareImage) + return result, response, err + +} + +//RemoveGoldenTagForImage Remove Golden Tag for image. - f3b9-5978-4f6a-897a +/* Remove golden tag. Set siteId as -1 for Global site. + + +@param siteID siteId path parameter. Site Id in uuid format. Set siteId as -1 for Global site. + +@param deviceFamilyIDentifier deviceFamilyIdentifier path parameter. Device family identifier e.g. : 277696480-283933147, e.g. : 277696480 + +@param deviceRole deviceRole path parameter. Device Role. Permissible Values : ALL, UNKNOWN, ACCESS, BORDER ROUTER, DISTRIBUTION and CORE. + +@param imageID imageId path parameter. Image Id in uuid format. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-golden-tag-for-image-v1 +*/ +func (s *SoftwareImageManagementSwimService) RemoveGoldenTagForImage(siteID string, deviceFamilyIDentifier string, deviceRole string, imageID string) (*ResponseSoftwareImageManagementSwimRemoveGoldenTagForImage, *resty.Response, error) { + //siteID string,deviceFamilyIDentifier string,deviceRole string,imageID string + path := "/dna/intent/api/v1/image/importation/golden/site/{siteId}/family/{deviceFamilyIdentifier}/role/{deviceRole}/image/{imageId}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + path = strings.Replace(path, "{deviceFamilyIdentifier}", fmt.Sprintf("%v", deviceFamilyIDentifier), -1) + path = strings.Replace(path, "{deviceRole}", fmt.Sprintf("%v", deviceRole), -1) + path = strings.Replace(path, "{imageId}", fmt.Sprintf("%v", imageID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSoftwareImageManagementSwimRemoveGoldenTagForImage{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RemoveGoldenTagForImage(siteID, deviceFamilyIDentifier, deviceRole, imageID) + } + return nil, response, fmt.Errorf("error with operation RemoveGoldenTagForImage") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimRemoveGoldenTagForImage) + return result, response, err + +} + +//RemoveImageDistributionServer Remove image distribution server - 43a7-5b17-404a-aa9f +/* Delete remote image distribution server. + + +@param id id path parameter. Remote server identifier. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-image-distribution-server-v1 +*/ +func (s *SoftwareImageManagementSwimService) RemoveImageDistributionServer(id string) (*ResponseSoftwareImageManagementSwimRemoveImageDistributionServer, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/images/distributionServerSettings/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSoftwareImageManagementSwimRemoveImageDistributionServer{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RemoveImageDistributionServer(id) + } + return nil, response, fmt.Errorf("error with operation RemoveImageDistributionServer") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimRemoveImageDistributionServer) + return result, response, err + +} + +//UnassignNetworkDeviceProductNameFromTheGivenSoftwareImage Unassign network device product name from the given software image - 3fa4-39e3-4a4b-8eaf +/* This API unassigns the network device product name from all the sites for the given software image. + Refer to `/dna/intent/api/v1/images` and `/dna/intent/api/v1/images/{imageId}/siteWiseProductNames` GET APIs for obtaining `imageId` and `productNameOrdinal` respectively. + + +@param imageID imageId path parameter. Software image identifier. Refer `/dna/intent/api/v1/images` API for obtaining `imageId` + +@param productNameOrdinal productNameOrdinal path parameter. The product name ordinal is a unique value for each network device product. Refer `/dna/intent/api/v1/images/{imageId}/siteWiseProductNames` GET API for obtaining `productNameOrdinal` + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!unassign-network-device-product-name-from-the-given-software-image-v1 +*/ +func (s *SoftwareImageManagementSwimService) UnassignNetworkDeviceProductNameFromTheGivenSoftwareImage(imageID string, productNameOrdinal float64) (*ResponseSoftwareImageManagementSwimUnassignNetworkDeviceProductNameFromTheGivenSoftwareImage, *resty.Response, error) { + //imageID string,productNameOrdinal float64 + path := "/dna/intent/api/v1/images/{imageId}/siteWiseProductNames/{productNameOrdinal}" + path = strings.Replace(path, "{imageId}", fmt.Sprintf("%v", imageID), -1) + path = strings.Replace(path, "{productNameOrdinal}", fmt.Sprintf("%v", productNameOrdinal), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSoftwareImageManagementSwimUnassignNetworkDeviceProductNameFromTheGivenSoftwareImage{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UnassignNetworkDeviceProductNameFromTheGivenSoftwareImage(imageID, productNameOrdinal) + } + return nil, response, fmt.Errorf("error with operation UnassignNetworkDeviceProductNameFromTheGivenSoftwareImage") + } + + result := response.Result().(*ResponseSoftwareImageManagementSwimUnassignNetworkDeviceProductNameFromTheGivenSoftwareImage) return result, response, err } diff --git a/sdk/system_settings.go b/sdk/system_settings.go index 650d6e7..6eba2c7 100644 --- a/sdk/system_settings.go +++ b/sdk/system_settings.go @@ -3,6 +3,7 @@ package dnac import ( "fmt" "net/http" + "strings" "github.com/go-resty/resty/v2" "github.com/google/go-querystring/query" @@ -12,10 +13,18 @@ type SystemSettingsService service type GetAuthenticationAndPolicyServersQueryParams struct { IsIseEnabled bool `url:"isIseEnabled,omitempty"` //Valid values are : true, false - State string `url:"state,omitempty"` //Valid values are: INPROGRESS, ACTIVE, DELETED, RBAC-FAILURE, FAILED + State string `url:"state,omitempty"` //Valid values are: ACTIVE, INACTIVE, RBAC_SUCCESS, RBAC_FAILURE, DELETED, FAILED, INPROGRESS Role string `url:"role,omitempty"` //Authentication and Policy Server Role (Example: primary, secondary) } +type ResponseSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration struct { + Response *ResponseSystemSettingsAddAuthenticationAndPolicyServerAccessConfigurationResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSystemSettingsAddAuthenticationAndPolicyServerAccessConfigurationResponse struct { + TaskID string `json:"taskId,omitempty"` // Task Id + URL string `json:"url,omitempty"` // Url +} type ResponseSystemSettingsGetAuthenticationAndPolicyServers struct { Response *[]ResponseSystemSettingsGetAuthenticationAndPolicyServersResponse `json:"response,omitempty"` // } @@ -25,8 +34,8 @@ type ResponseSystemSettingsGetAuthenticationAndPolicyServersResponse struct { Protocol string `json:"protocol,omitempty"` // Type of protocol for authentication and policy server Role string `json:"role,omitempty"` // Role of authentication and policy server (Example: primary, secondary) Port *int `json:"port,omitempty"` // Port of TACACS server (Default: 49) - AuthenticationPort string `json:"authenticationPort,omitempty"` // Authentication port of RADIUS server (Default: 1812) - AccountingPort string `json:"accountingPort,omitempty"` // Accounting port of RADIUS server (Default: 1813) + AuthenticationPort *int `json:"authenticationPort,omitempty"` // Authentication port of RADIUS server (Default: 1812) + AccountingPort *int `json:"accountingPort,omitempty"` // Accounting port of RADIUS server (Default: 1813) Retries *int `json:"retries,omitempty"` // Number of communication retries between devices and authentication and policy server (Default: 3) TimeoutSeconds *int `json:"timeoutSeconds,omitempty"` // Number of seconds before timing out between devices and authentication and policy server (Default: 4 seconds) IsIseEnabled *bool `json:"isIseEnabled,omitempty"` // If server type is ISE, value will be true otherwise false @@ -39,6 +48,8 @@ type ResponseSystemSettingsGetAuthenticationAndPolicyServersResponse struct { UseDnacCertForPxgrid *bool `json:"useDnacCertForPxgrid,omitempty"` // Use DNAC Certificate For Pxgrid IseEnabled *bool `json:"iseEnabled,omitempty"` // If server type is ISE, value will be true otherwise false PxgridEnabled *bool `json:"pxgridEnabled,omitempty"` // If pxgrid enabled, value will be true otherwise false + RbacUUID string `json:"rbacUuid,omitempty"` // Internal use only + MultiDnacEnabled *bool `json:"multiDnacEnabled,omitempty"` // Internal use only } type ResponseSystemSettingsGetAuthenticationAndPolicyServersResponseCiscoIseDtos struct { SubscriberName string `json:"subscriberName,omitempty"` // Subscriber name of the ISE server (Example: pxgrid_client_1662589467) @@ -62,17 +73,85 @@ type ResponseSystemSettingsGetAuthenticationAndPolicyServersResponseCiscoIseDtos type ResponseSystemSettingsGetAuthenticationAndPolicyServersResponseCiscoIseDtosExternalCiscoIseIPAddrDtosExternalCiscoIseIPAddresses struct { ExternalIPAddress string `json:"externalIpAddress,omitempty"` // External IP Address } -type ResponseSystemSettingsCustomPromptSupportGetAPI struct { +type ResponseSystemSettingsDeleteAuthenticationAndPolicyServerAccessConfiguration struct { + Response *ResponseSystemSettingsDeleteAuthenticationAndPolicyServerAccessConfigurationResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSystemSettingsDeleteAuthenticationAndPolicyServerAccessConfigurationResponse struct { + TaskID string `json:"taskId,omitempty"` // Task Id + URL string `json:"url,omitempty"` // Url +} +type ResponseSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration struct { + Response *ResponseSystemSettingsEditAuthenticationAndPolicyServerAccessConfigurationResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSystemSettingsEditAuthenticationAndPolicyServerAccessConfigurationResponse struct { + TaskID string `json:"taskId,omitempty"` // Task Id + URL string `json:"url,omitempty"` // Url +} +type ResponseSystemSettingsAcceptCiscoIseServerCertificateForCiscoIseServerIntegration interface{} +type ResponseSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer struct { + Response *ResponseSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServerResponse struct { + TaskID string `json:"taskId,omitempty"` // Task Id + URL string `json:"url,omitempty"` // Url +} +type ResponseSystemSettingsRetrievesConfigurationDetailsOfTheExternalIPAMServer struct { + Response *ResponseSystemSettingsRetrievesConfigurationDetailsOfTheExternalIPAMServerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSystemSettingsRetrievesConfigurationDetailsOfTheExternalIPAMServerResponse struct { + Provider string `json:"provider,omitempty"` // Type of external IPAM. Can be either INFOBLOX, BLUECAT or GENERIC. + ServerName string `json:"serverName,omitempty"` // A descriptive name of this external server, used for identification purposes + ServerURL string `json:"serverUrl,omitempty"` // The URL of this external server + State string `json:"state,omitempty"` // State of the the external IPAM.* OK indicates success of most recent periodic communication check with external IPAM.* CRITICAL indicates failure of most recent attempt to communicate with the external IPAM.* SYNCHRONIZING indicates that the process of synchronizing the external IPAM database with the local IPAM database is running and all other IPAM processes will be blocked until the completes.* DISCONNECTED indicates the external IPAM is no longer being used. + UserName string `json:"userName,omitempty"` // The external IPAM server login username + View string `json:"view,omitempty"` // The view under which pools are created in the external IPAM server. +} +type ResponseSystemSettingsDeletesConfigurationDetailsOfTheExternalIPAMServer struct { + Response *ResponseSystemSettingsDeletesConfigurationDetailsOfTheExternalIPAMServerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSystemSettingsDeletesConfigurationDetailsOfTheExternalIPAMServerResponse struct { + TaskID string `json:"taskId,omitempty"` // Task Id + URL string `json:"url,omitempty"` // Url +} +type ResponseSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer struct { + Response *ResponseSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServerResponse struct { + TaskID string `json:"taskId,omitempty"` // Task Id + URL string `json:"url,omitempty"` // Url +} +type ResponseSystemSettingsCiscoIseServerIntegrationStatus struct { + AAAServerSettingID string `json:"aaaServerSettingId,omitempty"` // Cisco ISE Server setting identifier (E.g. 867e46c9-f8f5-40b1-8de2-62f7744f75f6) + OverallStatus string `json:"overallStatus,omitempty"` // Cisco ISE Server integration status + OverallErrorMessage string `json:"overallErrorMessage,omitempty"` // Cisco ISE Server integration failure message + Steps *[]ResponseSystemSettingsCiscoIseServerIntegrationStatusSteps `json:"steps,omitempty"` // +} +type ResponseSystemSettingsCiscoIseServerIntegrationStatusSteps struct { + StepID string `json:"stepId,omitempty"` // Cisco ISE Server integration step identifier (E.g. 1) + StepOrder *int `json:"stepOrder,omitempty"` // Cisco ISE Server integration step order (E.g. 1) + StepName string `json:"stepName,omitempty"` // Cisco ISE Server integration step name + StepDescription string `json:"stepDescription,omitempty"` // Cisco ISE Server step description + StepStatus string `json:"stepStatus,omitempty"` // Cisco ISE Server integration step status + CertAcceptedByUser *bool `json:"certAcceptedByUser,omitempty"` // If user accept Cisco ISE Server certificate, value will be true otherwise it will be false + StepTime *int `json:"stepTime,omitempty"` // Last updated epoc time by the step (E.g. 1677745739314) +} +type ResponseSystemSettingsCustomPromptSupportGETAPI struct { Response *ResponseSystemSettingsCustomPromptSupportGETAPIResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version } type ResponseSystemSettingsCustomPromptSupportGETAPIResponse struct { - CustomUsernamePrompt string `json:"customUsernamePrompt,omitempty"` // Custom Username - CustomPasswordPrompt string `json:"customPasswordPrompt,omitempty"` // Custom Password - DefaultUsernamePrompt string `json:"defaultUsernamePrompt,omitempty"` // Default Username - DefaultPasswordPrompt string `json:"defaultPasswordPrompt,omitempty"` // Default Password + CustomUsernamePrompt string `json:"customUsernamePrompt,omitempty"` // Username for Custom Prompt + CustomPasswordPrompt string `json:"customPasswordPrompt,omitempty"` // Password for Custom Prompt + DefaultUsernamePrompt string `json:"defaultUsernamePrompt,omitempty"` // Default Username for Custom Prompt + DefaultPasswordPrompt string `json:"defaultPasswordPrompt,omitempty"` // Default Password for Custom Prompt } -type ResponseSystemSettingsCustomPromptPostAPI struct { +type ResponseSystemSettingsCustomPromptPOSTAPI struct { Response *ResponseSystemSettingsCustomPromptPOSTAPIResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // Version } @@ -80,9 +159,119 @@ type ResponseSystemSettingsCustomPromptPOSTAPIResponse struct { TaskID string `json:"taskId,omitempty"` // Task Id URL string `json:"url,omitempty"` // Url } -type RequestSystemSettingsCustomPromptPostAPI struct { - UsernamePrompt string `json:"usernamePrompt,omitempty"` // Username Prompt - PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password Prompt +type ResponseSystemSettingsSetProvisioningSettings struct { + Version string `json:"version,omitempty"` // Response Version e.g. : 1.0 + Response *ResponseSystemSettingsSetProvisioningSettingsResponse `json:"response,omitempty"` // +} +type ResponseSystemSettingsSetProvisioningSettingsResponse struct { + URL string `json:"url,omitempty"` // URL to get task details e.g. : /api/v1/task/3200a44a-9186-4caf-8c32-419cd1f3d3f5 + TaskID string `json:"taskId,omitempty"` // Task Id in uuid format. e.g. : 3200a44a-9186-4caf-8c32-419cd1f3d3f5 +} +type ResponseSystemSettingsGetProvisioningSettings struct { + Response *ResponseSystemSettingsGetProvisioningSettingsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseSystemSettingsGetProvisioningSettingsResponse struct { + RequireItsmApproval *bool `json:"requireItsmApproval,omitempty"` // If require ITSM approval is enabled, the planned configurations must be submitted for ITSM approval. Also if enabled, requirePreview will default to enabled. + RequirePreview *bool `json:"requirePreview,omitempty"` // If require preview is enabled, the device configurations must be reviewed before deploying them +} +type RequestSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration struct { + AuthenticationPort *int `json:"authenticationPort,omitempty"` // Authentication port of RADIUS server (readonly). The range is from 1 to 65535. E.g. 1812 + AccountingPort *int `json:"accountingPort,omitempty"` // Accounting port of RADIUS server (readonly). The range is from 1 to 65535. E.g. 1813 + CiscoIseDtos *[]RequestSystemSettingsAddAuthenticationAndPolicyServerAccessConfigurationCiscoIseDtos `json:"ciscoIseDtos,omitempty"` // + IPAddress string `json:"ipAddress,omitempty"` // IP address of authentication and policy server (readonly) + PxgridEnabled *bool `json:"pxgridEnabled,omitempty"` // Value true for enable, false for disable. Default value is true + UseDnacCertForPxgrid *bool `json:"useDnacCertForPxgrid,omitempty"` // Value true to use DNAC certificate for Pxgrid. Default value is false + IsIseEnabled *bool `json:"isIseEnabled,omitempty"` // Value true for Cisco ISE Server (readonly). Default value is false + Port *int `json:"port,omitempty"` // Port of TACACS server (readonly). The range is from 1 to 65535 + Protocol string `json:"protocol,omitempty"` // Type of protocol for authentication and policy server. If already saved with RADIUS, can update to RADIUS_TACACS. If already saved with TACACS, can update to RADIUS_TACACS + Retries string `json:"retries,omitempty"` // Number of communication retries between devices and authentication and policy server. The range is from 1 to 3 + Role string `json:"role,omitempty"` // Role of authentication and policy server (readonly). E.g. primary, secondary + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret between devices and authentication and policy server (readonly) + TimeoutSeconds string `json:"timeoutSeconds,omitempty"` // Number of seconds before timing out between devices and authentication and policy server. The range is from 2 to 20 + EncryptionScheme string `json:"encryptionScheme,omitempty"` // Type of encryption scheme for additional security (readonly) + MessageKey string `json:"messageKey,omitempty"` // Message key used to encrypt shared secret (readonly) + EncryptionKey string `json:"encryptionKey,omitempty"` // Encryption key used to encrypt shared secret (readonly) + ExternalCiscoIseIPAddrDtos *[]RequestSystemSettingsAddAuthenticationAndPolicyServerAccessConfigurationExternalCiscoIseIPAddrDtos `json:"externalCiscoIseIpAddrDtos,omitempty"` // +} +type RequestSystemSettingsAddAuthenticationAndPolicyServerAccessConfigurationCiscoIseDtos struct { + Description string `json:"description,omitempty"` // Description about the Cisco ISE server + Fqdn string `json:"fqdn,omitempty"` // Fully-qualified domain name of the Cisco ISE server (readonly). E.g. xi-62.my.com + Password string `json:"password,omitempty"` // Password of the Cisco ISE server + SSHkey string `json:"sshkey,omitempty"` // SSH key of the Cisco ISE server + IPAddress string `json:"ipAddress,omitempty"` // IP Address of the Cisco ISE Server (readonly) + SubscriberName string `json:"subscriberName,omitempty"` // Subscriber name of the Cisco ISE server (readonly). E.g. pxgrid_client_1662589467 + UserName string `json:"userName,omitempty"` // User name of the Cisco ISE server +} +type RequestSystemSettingsAddAuthenticationAndPolicyServerAccessConfigurationExternalCiscoIseIPAddrDtos struct { + ExternalCiscoIseIPAddresses *[]RequestSystemSettingsAddAuthenticationAndPolicyServerAccessConfigurationExternalCiscoIseIPAddrDtosExternalCiscoIseIPAddresses `json:"externalCiscoIseIpAddresses,omitempty"` // + Type string `json:"type,omitempty"` // Type +} +type RequestSystemSettingsAddAuthenticationAndPolicyServerAccessConfigurationExternalCiscoIseIPAddrDtosExternalCiscoIseIPAddresses struct { + ExternalIPAddress string `json:"externalIpAddress,omitempty"` // External IP Address +} +type RequestSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration struct { + AuthenticationPort *int `json:"authenticationPort,omitempty"` // Authentication port of RADIUS server (readonly). The range is from 1 to 65535. E.g. 1812 + AccountingPort *int `json:"accountingPort,omitempty"` // Accounting port of RADIUS server (readonly). The range is from 1 to 65535. E.g. 1813 + CiscoIseDtos *[]RequestSystemSettingsEditAuthenticationAndPolicyServerAccessConfigurationCiscoIseDtos `json:"ciscoIseDtos,omitempty"` // + IPAddress string `json:"ipAddress,omitempty"` // IP address of authentication and policy server (readonly) + PxgridEnabled *bool `json:"pxgridEnabled,omitempty"` // Value true for enable, false for disable. Default value is true + UseDnacCertForPxgrid *bool `json:"useDnacCertForPxgrid,omitempty"` // Value true to use DNAC certificate for Pxgrid. Default value is false + IsIseEnabled *bool `json:"isIseEnabled,omitempty"` // Value true for Cisco ISE Server (readonly). Default value is false + Port *int `json:"port,omitempty"` // Port of TACACS server (readonly). The range is from 1 to 65535 + Protocol string `json:"protocol,omitempty"` // Type of protocol for authentication and policy server. If already saved with RADIUS, can update to RADIUS_TACACS. If already saved with TACACS, can update to RADIUS_TACACS + Retries string `json:"retries,omitempty"` // Number of communication retries between devices and authentication and policy server. The range is from 1 to 3 + Role string `json:"role,omitempty"` // Role of authentication and policy server (readonly). E.g. primary, secondary + SharedSecret string `json:"sharedSecret,omitempty"` // Shared secret between devices and authentication and policy server (readonly) + TimeoutSeconds string `json:"timeoutSeconds,omitempty"` // Number of seconds before timing out between devices and authentication and policy server. The range is from 2 to 20 + EncryptionScheme string `json:"encryptionScheme,omitempty"` // Type of encryption scheme for additional security (readonly) + MessageKey string `json:"messageKey,omitempty"` // Message key used to encrypt shared secret (readonly) + EncryptionKey string `json:"encryptionKey,omitempty"` // Encryption key used to encrypt shared secret (readonly) + ExternalCiscoIseIPAddrDtos *[]RequestSystemSettingsEditAuthenticationAndPolicyServerAccessConfigurationExternalCiscoIseIPAddrDtos `json:"externalCiscoIseIpAddrDtos,omitempty"` // +} +type RequestSystemSettingsEditAuthenticationAndPolicyServerAccessConfigurationCiscoIseDtos struct { + Description string `json:"description,omitempty"` // Description about the Cisco ISE server + Fqdn string `json:"fqdn,omitempty"` // Fully-qualified domain name of the Cisco ISE server (readonly). E.g. xi-62.my.com + Password string `json:"password,omitempty"` // Password of the Cisco ISE server + SSHkey string `json:"sshkey,omitempty"` // SSH key of the Cisco ISE server + IPAddress string `json:"ipAddress,omitempty"` // IP Address of the Cisco ISE Server (readonly) + SubscriberName string `json:"subscriberName,omitempty"` // Subscriber name of the Cisco ISE server (readonly). E.g. pxgrid_client_1662589467 + UserName string `json:"userName,omitempty"` // User name of the Cisco ISE server +} +type RequestSystemSettingsEditAuthenticationAndPolicyServerAccessConfigurationExternalCiscoIseIPAddrDtos struct { + ExternalCiscoIseIPAddresses *[]RequestSystemSettingsEditAuthenticationAndPolicyServerAccessConfigurationExternalCiscoIseIPAddrDtosExternalCiscoIseIPAddresses `json:"externalCiscoIseIpAddresses,omitempty"` // + Type string `json:"type,omitempty"` // Type +} +type RequestSystemSettingsEditAuthenticationAndPolicyServerAccessConfigurationExternalCiscoIseIPAddrDtosExternalCiscoIseIPAddresses struct { + ExternalIPAddress string `json:"externalIpAddress,omitempty"` // External IP Address +} +type RequestSystemSettingsAcceptCiscoIseServerCertificateForCiscoIseServerIntegration struct { + IsCertAcceptedByUser *bool `json:"isCertAcceptedByUser,omitempty"` // Value true for accept, false for deny. Remove this field and send empty request payload ( {} ) to retry the failed integration +} +type RequestSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer struct { + ServerName string `json:"serverName,omitempty"` // A descriptive name of this external server, used for identification purposes + ServerURL string `json:"serverUrl,omitempty"` // The URL of this external server + Password string `json:"password,omitempty"` // The password for the external IPAM server login username + UserName string `json:"userName,omitempty"` // The external IPAM server login username + Provider string `json:"provider,omitempty"` // Type of external IPAM. Can be either INFOBLOX, BLUECAT or GENERIC. + View string `json:"view,omitempty"` // The view under which pools are created in the external IPAM server. + SyncView *bool `json:"syncView,omitempty"` // Synchronize the IP pools from the local IPAM to this external server +} +type RequestSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer struct { + ServerName string `json:"serverName,omitempty"` // A descriptive name of this external server, used for identification purposes + ServerURL string `json:"serverUrl,omitempty"` // The URL of this external server + Password string `json:"password,omitempty"` // The password for the external IPAM server login username + UserName string `json:"userName,omitempty"` // The external IPAM server login username + View string `json:"view,omitempty"` // The view under which pools are created in the external IPAM server. + SyncView *bool `json:"syncView,omitempty"` // Synchronize the IP pools from the local IPAM to this external server +} +type RequestSystemSettingsCustomPromptPOSTAPI struct { + UsernamePrompt string `json:"usernamePrompt,omitempty"` // Username for Custom Prompt + PasswordPrompt string `json:"passwordPrompt,omitempty"` // Password for Custom Prompt +} +type RequestSystemSettingsSetProvisioningSettings struct { + RequireItsmApproval *bool `json:"requireItsmApproval,omitempty"` // If require ITSM approval is enabled, the planned configurations must be submitted for ITSM approval. Also if enabled, requirePreview will default to enabled. + RequirePreview *bool `json:"requirePreview,omitempty"` // If require preview is enabled, the device configurations must be reviewed before deploying them } //GetAuthenticationAndPolicyServers Get Authentication and Policy Servers - a4b4-c849-4be8-b362 @@ -91,7 +280,7 @@ type RequestSystemSettingsCustomPromptPostAPI struct { @param GetAuthenticationAndPolicyServersQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-authentication-and-policy-servers +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-authentication-and-policy-servers-v1 */ func (s *SystemSettingsService) GetAuthenticationAndPolicyServers(GetAuthenticationAndPolicyServersQueryParams *GetAuthenticationAndPolicyServersQueryParams) (*ResponseSystemSettingsGetAuthenticationAndPolicyServers, *resty.Response, error) { path := "/dna/intent/api/v1/authentication-policy-servers" @@ -122,20 +311,88 @@ func (s *SystemSettingsService) GetAuthenticationAndPolicyServers(GetAuthenticat } -//CustomPromptSupportGetAPI Custom-prompt support GET API - 2aa8-f90e-4ebb-a629 -/* Returns supported custom prompts by Cisco DNA Center +//RetrievesConfigurationDetailsOfTheExternalIPAMServer Retrieves configuration details of the external IPAM server. - 3ebf-1bc3-4c8a-95e4 +/* Retrieves configuration details of the external IPAM server. If an external IPAM server has not been created, this resource will return a `404` response. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieves-configuration-details-of-the-external-ip-a-m-server-v1 +*/ +func (s *SystemSettingsService) RetrievesConfigurationDetailsOfTheExternalIPAMServer() (*ResponseSystemSettingsRetrievesConfigurationDetailsOfTheExternalIPAMServer, *resty.Response, error) { + path := "/dna/intent/api/v1/ipam/serverSetting" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSystemSettingsRetrievesConfigurationDetailsOfTheExternalIPAMServer{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrievesConfigurationDetailsOfTheExternalIPAMServer() + } + return nil, response, fmt.Errorf("error with operation RetrievesConfigurationDetailsOfTheExternalIpAMServer") + } + + result := response.Result().(*ResponseSystemSettingsRetrievesConfigurationDetailsOfTheExternalIPAMServer) + return result, response, err + +} + +//CiscoIseServerIntegrationStatus Cisco ISE Server Integration Status - c1a4-f8fb-448a-8135 +/* API to check Cisco ISE server integration status. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!cisco-ise-server-integration-status-v1 +*/ +func (s *SystemSettingsService) CiscoIseServerIntegrationStatus() (*ResponseSystemSettingsCiscoIseServerIntegrationStatus, *resty.Response, error) { + path := "/dna/intent/api/v1/ise-integration-status" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSystemSettingsCiscoIseServerIntegrationStatus{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.CiscoIseServerIntegrationStatus() + } + return nil, response, fmt.Errorf("error with operation CiscoIseServerIntegrationStatus") + } + + result := response.Result().(*ResponseSystemSettingsCiscoIseServerIntegrationStatus) + return result, response, err + +} + +//CustomPromptSupportGETAPI Custom-prompt support GET API - 2aa8-f90e-4ebb-a629 +/* Returns supported custom prompts by Catalyst Center -Documentation Link: https://developer.cisco.com/docs/dna-center/#!custom-prompt-support-g-e-t-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!custom-prompt-support-g-e-t-api-v1 */ -func (s *SystemSettingsService) CustomPromptSupportGetAPI() (*ResponseSystemSettingsCustomPromptSupportGetAPI, *resty.Response, error) { +func (s *SystemSettingsService) CustomPromptSupportGETAPI() (*ResponseSystemSettingsCustomPromptSupportGETAPI, *resty.Response, error) { path := "/dna/intent/api/v1/network-device/custom-prompt" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseSystemSettingsCustomPromptSupportGetAPI{}). + SetResult(&ResponseSystemSettingsCustomPromptSupportGETAPI{}). SetError(&Error). Get(path) @@ -146,31 +403,139 @@ func (s *SystemSettingsService) CustomPromptSupportGetAPI() (*ResponseSystemSett if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.CustomPromptSupportGetAPI() + return s.CustomPromptSupportGETAPI() } return nil, response, fmt.Errorf("error with operation CustomPromptSupportGETApi") } - result := response.Result().(*ResponseSystemSettingsCustomPromptSupportGetAPI) + result := response.Result().(*ResponseSystemSettingsCustomPromptSupportGETAPI) return result, response, err } -//CustomPromptPostAPI Custom Prompt POST API - f4b9-1a8a-4718-aa97 -/* Save custom prompt added by user in Cisco DNA Center. API will always override the existing prompts. User should provide all the custom prompt in case of any update +//GetProvisioningSettings Get provisioning settings - b9b5-db54-4788-82e4 +/* Returns provisioning settings -Documentation Link: https://developer.cisco.com/docs/dna-center/#!custom-prompt-p-o-s-t-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-provisioning-settings-v1 */ -func (s *SystemSettingsService) CustomPromptPostAPI(requestSystemSettingsCustomPromptPostAPI *RequestSystemSettingsCustomPromptPostAPI) (*ResponseSystemSettingsCustomPromptPostAPI, *resty.Response, error) { +func (s *SystemSettingsService) GetProvisioningSettings() (*ResponseSystemSettingsGetProvisioningSettings, *resty.Response, error) { + path := "/dna/intent/api/v1/provisioningSettings" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSystemSettingsGetProvisioningSettings{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetProvisioningSettings() + } + return nil, response, fmt.Errorf("error with operation GetProvisioningSettings") + } + + result := response.Result().(*ResponseSystemSettingsGetProvisioningSettings) + return result, response, err + +} + +//AddAuthenticationAndPolicyServerAccessConfiguration Add Authentication and Policy Server Access Configuration - 5282-78a3-4fbb-a82c +/* API to add AAA/ISE server access configuration. Protocol can be configured as either RADIUS OR TACACS OR RADIUS_TACACS. If configuring Cisco ISE server, after configuration, use ā€˜Cisco ISE Server Integration Statusā€™ Intent API to check the integration status. Based on integration status, if require use 'Accept Cisco ISE Server Certificate for Cisco ISE Server Integration' Intent API to accept the Cisco ISE certificate for Cisco ISE server integration, then use again ā€˜Cisco ISE Server Integration Statusā€™ Intent API to check the integration status. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-authentication-and-policy-server-access-configuration-v1 +*/ +func (s *SystemSettingsService) AddAuthenticationAndPolicyServerAccessConfiguration(requestSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration *RequestSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration) (*ResponseSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration, *resty.Response, error) { + path := "/dna/intent/api/v1/authentication-policy-servers" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration). + SetResult(&ResponseSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddAuthenticationAndPolicyServerAccessConfiguration(requestSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration) + } + + return nil, response, fmt.Errorf("error with operation AddAuthenticationAndPolicyServerAccessConfiguration") + } + + result := response.Result().(*ResponseSystemSettingsAddAuthenticationAndPolicyServerAccessConfiguration) + return result, response, err + +} + +//CreatesConfigurationDetailsOfTheExternalIPAMServer Creates configuration details of the external IPAM server. - 36a4-38d6-4589-8f87 +/* Creates configuration details of the external IPAM server. You should only create one external IPAM server; delete any existing external server before creating a new one. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!creates-configuration-details-of-the-external-ip-a-m-server-v1 +*/ +func (s *SystemSettingsService) CreatesConfigurationDetailsOfTheExternalIPAMServer(requestSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer *RequestSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer) (*ResponseSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer, *resty.Response, error) { + path := "/dna/intent/api/v1/ipam/serverSetting" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer). + SetResult(&ResponseSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreatesConfigurationDetailsOfTheExternalIPAMServer(requestSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer) + } + + return nil, response, fmt.Errorf("error with operation CreatesConfigurationDetailsOfTheExternalIpAMServer") + } + + result := response.Result().(*ResponseSystemSettingsCreatesConfigurationDetailsOfTheExternalIPAMServer) + return result, response, err + +} + +//CustomPromptPOSTAPI Custom Prompt POST API - f4b9-1a8a-4718-aa97 +/* Save custom prompt added by user in Catalyst Center. API will always override the existing prompts. User should provide all the custom prompt in case of any update + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!custom-prompt-p-o-s-t-api-v1 +*/ +func (s *SystemSettingsService) CustomPromptPOSTAPI(requestSystemSettingsCustomPromptPOSTAPI *RequestSystemSettingsCustomPromptPOSTAPI) (*ResponseSystemSettingsCustomPromptPOSTAPI, *resty.Response, error) { path := "/dna/intent/api/v1/network-device/custom-prompt" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestSystemSettingsCustomPromptPostAPI). - SetResult(&ResponseSystemSettingsCustomPromptPostAPI{}). + SetBody(requestSystemSettingsCustomPromptPOSTAPI). + SetResult(&ResponseSystemSettingsCustomPromptPOSTAPI{}). SetError(&Error). Post(path) @@ -182,13 +547,222 @@ func (s *SystemSettingsService) CustomPromptPostAPI(requestSystemSettingsCustomP if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.CustomPromptPostAPI(requestSystemSettingsCustomPromptPostAPI) + return s.CustomPromptPOSTAPI(requestSystemSettingsCustomPromptPOSTAPI) } - return nil, response, fmt.Errorf("error with operation CustomPromptPostAPI") + return nil, response, fmt.Errorf("error with operation CustomPromptPOSTApi") + } + + result := response.Result().(*ResponseSystemSettingsCustomPromptPOSTAPI) + return result, response, err + +} + +//EditAuthenticationAndPolicyServerAccessConfiguration Edit Authentication and Policy Server Access Configuration - e4bf-3bf1-48c9-ba11 +/* API to edit AAA/ISE server access configuration. After edit, use ā€˜Cisco ISE Server Integration Statusā€™ Intent API to check the integration status. + + +@param id id path parameter. Authentication and Policy Server Identifier. Use 'Get Authentication and Policy Servers' intent API to find the identifier. + +*/ +func (s *SystemSettingsService) EditAuthenticationAndPolicyServerAccessConfiguration(id string, requestSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration *RequestSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration) (*ResponseSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration, *resty.Response, error) { + path := "/dna/intent/api/v1/authentication-policy-servers/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration). + SetResult(&ResponseSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.EditAuthenticationAndPolicyServerAccessConfiguration(id, requestSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration) + } + return nil, response, fmt.Errorf("error with operation EditAuthenticationAndPolicyServerAccessConfiguration") + } + + result := response.Result().(*ResponseSystemSettingsEditAuthenticationAndPolicyServerAccessConfiguration) + return result, response, err + +} + +//AcceptCiscoIseServerCertificateForCiscoIseServerIntegration Accept Cisco ISE Server Certificate for Cisco ISE Server Integration - c8a6-aae2-48b8-b41c +/* API to accept Cisco ISE server certificate for Cisco ISE server integration. Use ā€˜Cisco ISE Server Integration Statusā€™ Intent API to check the integration status. This API can be used to retry the failed integration. + + +@param id id path parameter. Cisco ISE Server Identifier. Use 'Get Authentication and Policy Servers' intent API to find the identifier. + +*/ +func (s *SystemSettingsService) AcceptCiscoIseServerCertificateForCiscoIseServerIntegration(id string, requestSystemSettingsAcceptCiscoISEServerCertificateForCiscoISEServerIntegration *RequestSystemSettingsAcceptCiscoIseServerCertificateForCiscoIseServerIntegration) (*resty.Response, error) { + path := "/dna/intent/api/v1/integrate-ise/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSystemSettingsAcceptCiscoISEServerCertificateForCiscoISEServerIntegration). + SetError(&Error). + Put(path) + + if err != nil { + return nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.AcceptCiscoIseServerCertificateForCiscoIseServerIntegration(id, requestSystemSettingsAcceptCiscoISEServerCertificateForCiscoISEServerIntegration) + } + return response, fmt.Errorf("error with operation AcceptCiscoIseServerCertificateForCiscoIseServerIntegration") + } + + return response, err + +} + +//UpdatesConfigurationDetailsOfTheExternalIPAMServer Updates configuration details of the external IPAM server. - 5a99-0bfe-4c99-a0a4 +/* Updates configuration details of the external IPAM server. + + + */ +func (s *SystemSettingsService) UpdatesConfigurationDetailsOfTheExternalIPAMServer(requestSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer *RequestSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer) (*ResponseSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer, *resty.Response, error) { + path := "/dna/intent/api/v1/ipam/serverSetting" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer). + SetResult(&ResponseSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdatesConfigurationDetailsOfTheExternalIPAMServer(requestSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer) + } + return nil, response, fmt.Errorf("error with operation UpdatesConfigurationDetailsOfTheExternalIpAMServer") + } + + result := response.Result().(*ResponseSystemSettingsUpdatesConfigurationDetailsOfTheExternalIPAMServer) + return result, response, err + +} + +//SetProvisioningSettings Set provisioning settings - e5ab-1811-450a-bb01 +/* Sets provisioning settings + + + */ +func (s *SystemSettingsService) SetProvisioningSettings(requestSystemSettingsSetProvisioningSettings *RequestSystemSettingsSetProvisioningSettings) (*ResponseSystemSettingsSetProvisioningSettings, *resty.Response, error) { + path := "/dna/intent/api/v1/provisioningSettings" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestSystemSettingsSetProvisioningSettings). + SetResult(&ResponseSystemSettingsSetProvisioningSettings{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.SetProvisioningSettings(requestSystemSettingsSetProvisioningSettings) + } + return nil, response, fmt.Errorf("error with operation SetProvisioningSettings") + } + + result := response.Result().(*ResponseSystemSettingsSetProvisioningSettings) + return result, response, err + +} + +//DeleteAuthenticationAndPolicyServerAccessConfiguration Delete Authentication and Policy Server Access Configuration - 0b92-bb8a-477a-a942 +/* API to delete AAA/ISE server access configuration. + + +@param id id path parameter. Authentication and Policy Server Identifier. Use 'Get Authentication and Policy Servers' intent API to find the identifier. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-authentication-and-policy-server-access-configuration-v1 +*/ +func (s *SystemSettingsService) DeleteAuthenticationAndPolicyServerAccessConfiguration(id string) (*ResponseSystemSettingsDeleteAuthenticationAndPolicyServerAccessConfiguration, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/authentication-policy-servers/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSystemSettingsDeleteAuthenticationAndPolicyServerAccessConfiguration{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteAuthenticationAndPolicyServerAccessConfiguration(id) + } + return nil, response, fmt.Errorf("error with operation DeleteAuthenticationAndPolicyServerAccessConfiguration") + } + + result := response.Result().(*ResponseSystemSettingsDeleteAuthenticationAndPolicyServerAccessConfiguration) + return result, response, err + +} + +//DeletesConfigurationDetailsOfTheExternalIPAMServer Deletes configuration details of the external IPAM server. - 67b6-eb01-4688-a164 +/* Deletes configuration details of the external IPAM server. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!deletes-configuration-details-of-the-external-ip-a-m-server-v1 +*/ +func (s *SystemSettingsService) DeletesConfigurationDetailsOfTheExternalIPAMServer() (*ResponseSystemSettingsDeletesConfigurationDetailsOfTheExternalIPAMServer, *resty.Response, error) { + // + path := "/dna/intent/api/v1/ipam/serverSetting" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseSystemSettingsDeletesConfigurationDetailsOfTheExternalIPAMServer{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeletesConfigurationDetailsOfTheExternalIPAMServer() + } + return nil, response, fmt.Errorf("error with operation DeletesConfigurationDetailsOfTheExternalIpAMServer") } - result := response.Result().(*ResponseSystemSettingsCustomPromptPostAPI) + result := response.Result().(*ResponseSystemSettingsDeletesConfigurationDetailsOfTheExternalIPAMServer) return result, response, err } diff --git a/sdk/tag.go b/sdk/tag.go index a8ef772..7479fd8 100644 --- a/sdk/tag.go +++ b/sdk/tag.go @@ -12,37 +12,43 @@ import ( type TagService service type GetTagQueryParams struct { - Name string `url:"name,omitempty"` //Tag name is mandatory when filter operation is used. - AdditionalInfonameSpace string `url:"additionalInfo.nameSpace,omitempty"` //nameSpace - AdditionalInfoattributes string `url:"additionalInfo.attributes,omitempty"` //attributeName - Level string `url:"level,omitempty"` //levelArg - Offset int `url:"offset,omitempty"` //offset - Limit int `url:"limit,omitempty"` //limit - Size string `url:"size,omitempty"` //size in kilobytes(KB) - Field string `url:"field,omitempty"` //Available field names are :'name,id,parentId,type,additionalInfo.nameSpace,additionalInfo.attributes' - SortBy string `url:"sortBy,omitempty"` //Only supported attribute is name. SortyBy is mandatory when order is used. - Order string `url:"order,omitempty"` //Available values are asc and des - SystemTag string `url:"systemTag,omitempty"` //systemTag + Name string `url:"name,omitempty"` //Tag name is mandatory when filter operation is used. + AdditionalInfonameSpace string `url:"additionalInfo.nameSpace,omitempty"` //nameSpace + AdditionalInfoattributes string `url:"additionalInfo.attributes,omitempty"` //attributeName + Level string `url:"level,omitempty"` //levelArg + Offset float64 `url:"offset,omitempty"` //offset + Limit float64 `url:"limit,omitempty"` //limit + Size string `url:"size,omitempty"` //size in kilobytes(KB) + Field string `url:"field,omitempty"` //Available field names are :'name,id,parentId,type,additionalInfo.nameSpace,additionalInfo.attributes' + SortBy string `url:"sortBy,omitempty"` //Only supported attribute is name. SortyBy is mandatory when order is used. + Order string `url:"order,omitempty"` //Available values are asc and des + SystemTag string `url:"systemTag,omitempty"` //systemTag } type GetTagCountQueryParams struct { Name string `url:"name,omitempty"` //tagName NameSpace string `url:"nameSpace,omitempty"` //nameSpace AttributeName string `url:"attributeName,omitempty"` //attributeName - Level string `url:"level,omitempty"` //levelArg Size string `url:"size,omitempty"` //size in kilobytes(KB) SystemTag string `url:"systemTag,omitempty"` //systemTag } type GetTagMembersByIDQueryParams struct { - MemberType string `url:"memberType,omitempty"` //Entity type of the member. Possible values can be retrieved by using /tag/member/type API - Offset string `url:"offset,omitempty"` //Used for pagination. It indicates the starting row number out of available member records - Limit string `url:"limit,omitempty"` //Used to Number of maximum members to return in the result - MemberAssociationType string `url:"memberAssociationType,omitempty"` //Indicates how the member is associated with the tag. Possible values and description. 1) DYNAMIC : The member is associated to the tag through rules. 2) STATIC ā€“ The member is associated to the tag manually. 3) MIXED ā€“ The member is associated manually and also satisfies the rule defined for the tag - Level string `url:"level,omitempty"` //level + MemberType string `url:"memberType,omitempty"` //Entity type of the member. Possible values can be retrieved by using /tag/member/type API + Offset float64 `url:"offset,omitempty"` //Used for pagination. It indicates the starting row number out of available member records + Limit float64 `url:"limit,omitempty"` //Used to Number of maximum members to return in the result + MemberAssociationType string `url:"memberAssociationType,omitempty"` //Indicates how the member is associated with the tag. Possible values and description. 1) DYNAMIC : The member is associated to the tag through rules. 2) STATIC ā€“ The member is associated to the tag manually. 3) MIXED ā€“ The member is associated manually and also satisfies the rule defined for the tag + Level string `url:"level,omitempty"` //level } type GetTagMemberCountQueryParams struct { MemberType string `url:"memberType,omitempty"` //memberType MemberAssociationType string `url:"memberAssociationType,omitempty"` //memberAssociationType - Level string `url:"level,omitempty"` //level +} +type RetrieveTagsAssociatedWithTheInterfacesQueryParams struct { + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. minimum: 1 + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. minimum: 1, maximum: 500 +} +type RetrieveTagsAssociatedWithNetworkDevicesQueryParams struct { + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. minimum: 1 + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. minimum: 1, maximum: 500 } type ResponseTagUpdateTag struct { @@ -76,13 +82,7 @@ type ResponseTagGetTagResponseDynamicRulesRules struct { Name string `json:"name,omitempty"` // Value string `json:"value,omitempty"` // } - -type ResponseTagGetTagResponseDynamicRulesRulesItems struct { - Operation string `json:"operation,omitempty"` // - Name string `json:"name,omitempty"` // - Value string `json:"value,omitempty"` // -} - +type ResponseTagGetTagResponseDynamicRulesRulesItems interface{} type ResponseTagCreateTag struct { Version string `json:"version,omitempty"` // Response *ResponseTagCreateTagResponse `json:"response,omitempty"` // @@ -95,11 +95,11 @@ type ResponseTagGetTagCount struct { Version string `json:"version,omitempty"` // Response *int `json:"response,omitempty"` // } -type ResponseTagUpdatesTagMembership struct { - Version string `json:"version,omitempty"` // - Response *ResponseTagUpdatesTagMembershipResponse `json:"response,omitempty"` // +type ResponseTagUpdateTagMembership struct { + Version string `json:"version,omitempty"` // + Response *ResponseTagUpdateTagMembershipResponse `json:"response,omitempty"` // } -type ResponseTagUpdatesTagMembershipResponse struct { +type ResponseTagUpdateTagMembershipResponse struct { TaskID string `json:"taskId,omitempty"` // URL string `json:"url,omitempty"` // } @@ -138,12 +138,7 @@ type ResponseTagGetTagByIDResponseDynamicRulesRules struct { Name string `json:"name,omitempty"` // Value string `json:"value,omitempty"` // } - -type ResponseTagGetTagByIDResponseDynamicRulesRulesItems struct { - Operation string `json:"operation,omitempty"` // - Name string `json:"name,omitempty"` // - Value string `json:"value,omitempty"` // -} +type ResponseTagGetTagByIDResponseDynamicRulesRulesItems interface{} type ResponseTagGetTagMembersByID struct { Version string `json:"version,omitempty"` // Response *[]ResponseTagGetTagMembersByIDResponse `json:"response,omitempty"` // @@ -171,58 +166,122 @@ type ResponseTagRemoveTagMemberResponse struct { TaskID string `json:"taskId,omitempty"` // URL string `json:"url,omitempty"` // } +type ResponseTagRetrieveTagsAssociatedWithTheInterfaces struct { + Response *[]ResponseTagRetrieveTagsAssociatedWithTheInterfacesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response. +} +type ResponseTagRetrieveTagsAssociatedWithTheInterfacesResponse struct { + ID string `json:"id,omitempty"` // Id of the member (network device or interface) + Tags *[]ResponseTagRetrieveTagsAssociatedWithTheInterfacesResponseTags `json:"tags,omitempty"` // +} +type ResponseTagRetrieveTagsAssociatedWithTheInterfacesResponseTags struct { + ID string `json:"id,omitempty"` // Tag id + Name string `json:"name,omitempty"` // Tag name +} +type ResponseTagRetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTag struct { + Response *ResponseTagRetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTagResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response. +} +type ResponseTagRetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTagResponse struct { + Count *int `json:"count,omitempty"` // The reported count. +} +type ResponseTagQueryTheTagsAssociatedWithInterfaces struct { + Response *[]ResponseTagQueryTheTagsAssociatedWithInterfacesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response. +} +type ResponseTagQueryTheTagsAssociatedWithInterfacesResponse struct { + ID string `json:"id,omitempty"` // Id of the member (network device or interface) + Tags *[]ResponseTagQueryTheTagsAssociatedWithInterfacesResponseTags `json:"tags,omitempty"` // +} +type ResponseTagQueryTheTagsAssociatedWithInterfacesResponseTags struct { + ID string `json:"id,omitempty"` // Tag id + Name string `json:"name,omitempty"` // Tag name +} +type ResponseTagRetrieveTagsAssociatedWithNetworkDevices struct { + Response *[]ResponseTagRetrieveTagsAssociatedWithNetworkDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response. +} +type ResponseTagRetrieveTagsAssociatedWithNetworkDevicesResponse struct { + ID string `json:"id,omitempty"` // Id of the member (network device or interface) + Tags *[]ResponseTagRetrieveTagsAssociatedWithNetworkDevicesResponseTags `json:"tags,omitempty"` // +} +type ResponseTagRetrieveTagsAssociatedWithNetworkDevicesResponseTags struct { + ID string `json:"id,omitempty"` // Tag id + Name string `json:"name,omitempty"` // Tag name +} +type ResponseTagRetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTag struct { + Response *ResponseTagRetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTagResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response. +} +type ResponseTagRetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTagResponse struct { + Count *int `json:"count,omitempty"` // The reported count. +} +type ResponseTagQueryTheTagsAssociatedWithNetworkDevices struct { + Response *[]ResponseTagQueryTheTagsAssociatedWithNetworkDevicesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response. +} +type ResponseTagQueryTheTagsAssociatedWithNetworkDevicesResponse struct { + ID string `json:"id,omitempty"` // Id of the member (network device or interface) + Tags *[]ResponseTagQueryTheTagsAssociatedWithNetworkDevicesResponseTags `json:"tags,omitempty"` // +} +type ResponseTagQueryTheTagsAssociatedWithNetworkDevicesResponseTags struct { + ID string `json:"id,omitempty"` // Tag id + Name string `json:"name,omitempty"` // Tag name +} type RequestTagUpdateTag struct { - SystemTag *bool `json:"systemTag,omitempty"` // - Description string `json:"description,omitempty"` // + SystemTag *bool `json:"systemTag,omitempty"` // true for system created tags, false for user defined tags + Description string `json:"description,omitempty"` // description of the tag. DynamicRules *[]RequestTagUpdateTagDynamicRules `json:"dynamicRules,omitempty"` // - Name string `json:"name,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // + Name string `json:"name,omitempty"` // name of the tag. + ID string `json:"id,omitempty"` // mandatory instanceUuid of the tag that needs to be updated. + InstanceTenantID string `json:"instanceTenantId,omitempty"` // instanceTenantId generated for the tag. } type RequestTagUpdateTagDynamicRules struct { - MemberType string `json:"memberType,omitempty"` // + MemberType string `json:"memberType,omitempty"` // memberType of the tag (e.g. networkdevice, interface) Rules *RequestTagUpdateTagDynamicRulesRules `json:"rules,omitempty"` // } type RequestTagUpdateTagDynamicRulesRules struct { - Values []string `json:"values,omitempty"` // - Items *[]RequestTagUpdateTagDynamicRulesRulesItems `json:"items,omitempty"` // - Operation string `json:"operation,omitempty"` // - Name string `json:"name,omitempty"` // - Value string `json:"value,omitempty"` // -} - -type RequestTagUpdateTagDynamicRulesRulesItems struct { - Operation string `json:"operation,omitempty"` // - Name string `json:"name,omitempty"` // - Value string `json:"value,omitempty"` // + Values []string `json:"values,omitempty"` // values of the parameter,Only one of the value or values can be used for the given parameter. (for managementIpAddress e.g. ["10.197.124.90","10.197.124.91"]) + Items interface{} `json:"items,omitempty"` // items details,multiple rules can be defined by items(e.g. "items": [{"operation": "ILIKE", "name": "managementIpAddress", "value": "%10%"}, {"operation": "ILIKE", "name": "hostname", "value": "%NA%"} ]) + Operation string `json:"operation,omitempty"` // opeartion used in the rules (e.g. OR,IN,EQ,LIKE,ILIKE,AND) + Name string `json:"name,omitempty"` // name of the parameter (e.g. for interface:portName,adminStatus,speed,status,description. for networkdevice:family,series,hostname,managementIpAddress,groupNameHierarchy,softwareVersion) + Value string `json:"value,omitempty"` // value of the parameter (e.g. for portName:1/0/1,for adminStatus,status:up/down, for speed: any integer value, for description: any valid string, for family:switches, for series:C3650, for managementIpAddress:10.197.124.90, groupNameHierarchy:Global, softwareVersion: 16.9.1) } type RequestTagCreateTag struct { - SystemTag *bool `json:"systemTag,omitempty"` // - Description string `json:"description,omitempty"` // + SystemTag *bool `json:"systemTag,omitempty"` // true for system created tags, false for user defined tags + Description string `json:"description,omitempty"` // description of the tag. DynamicRules *[]RequestTagCreateTagDynamicRules `json:"dynamicRules,omitempty"` // - Name string `json:"name,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // + Name string `json:"name,omitempty"` // name of the tag. + ID string `json:"id,omitempty"` // instanceUuid generated for the tag. + InstanceTenantID string `json:"instanceTenantId,omitempty"` // instanceTenantId generated for the tag. } type RequestTagCreateTagDynamicRules struct { - MemberType string `json:"memberType,omitempty"` // + MemberType string `json:"memberType,omitempty"` // memberType of the tag (e.g. networkdevice, interface) Rules *RequestTagCreateTagDynamicRulesRules `json:"rules,omitempty"` // } type RequestTagCreateTagDynamicRulesRules struct { - Items *[]RequestTagCreateTagDynamicRulesRulesItems `json:"items,omitempty"` // - Operation string `json:"operation,omitempty"` // -} -type RequestTagCreateTagDynamicRulesRulesItems struct { - Operation string `json:"operation,omitempty"` // - Name string `json:"name,omitempty"` // - Value string `json:"value,omitempty"` // + Values []string `json:"values,omitempty"` // values of the parameter,Only one of the value or values can be used for the given parameter. (for managementIpAddress e.g. ["10.197.124.90","10.197.124.91"]) + Items interface{} `json:"items,omitempty"` // items details,multiple rules can be defined by items(e.g. "items": [{"operation": "ILIKE", "name": "managementIpAddress", "value": "%10%"}, {"operation": "ILIKE", "name": "hostname", "value": "%NA%"} ]) + Operation string `json:"operation,omitempty"` // opeartion used in the rules (e.g. OR,IN,EQ,LIKE,ILIKE,AND) + Name string `json:"name,omitempty"` // name of the parameter (e.g. for interface:portName,adminStatus,speed,status,description. for networkdevice:family,series,hostname,managementIpAddress,groupNameHierarchy,softwareVersion) + Value string `json:"value,omitempty"` // value of the parameter (e.g. for portName:1/0/1,for adminStatus,status:up/down, for speed: any integer value, for description: any valid string, for family:switches, for series:C3650, for managementIpAddress:10.197.124.90, groupNameHierarchy:Global, softwareVersion: 16.9.1) } -type RequestTagUpdatesTagMembership struct { + +type RequestTagUpdateTagMembership struct { MemberToTags map[string][]string `json:"memberToTags,omitempty"` // MemberType string `json:"memberType,omitempty"` // } +type RequestTagUpdateTagMembershipMemberToTags struct { + Key []string `json:"key,omitempty"` // +} type RequestTagAddMembersToTheTag map[string][]string +type RequestTagQueryTheTagsAssociatedWithInterfaces struct { + IDs []string `json:"ids,omitempty"` // List of member ids (network device or interface), maximum 500 ids can be passed. +} +type RequestTagQueryTheTagsAssociatedWithNetworkDevices struct { + IDs []string `json:"ids,omitempty"` // List of member ids (network device or interface), maximum 500 ids can be passed. +} //GetTag Get Tag - ee9a-ab01-487a-8896 /* Returns the tags for given filter criteria @@ -230,7 +289,7 @@ type RequestTagAddMembersToTheTag map[string][]string @param GetTagQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-v1 */ func (s *TagService) GetTag(GetTagQueryParams *GetTagQueryParams) (*ResponseTagGetTag, *resty.Response, error) { path := "/dna/intent/api/v1/tag" @@ -267,7 +326,7 @@ func (s *TagService) GetTag(GetTagQueryParams *GetTagQueryParams) (*ResponseTagG @param GetTagCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-count-v1 */ func (s *TagService) GetTagCount(GetTagCountQueryParams *GetTagCountQueryParams) (*ResponseTagGetTagCount, *resty.Response, error) { path := "/dna/intent/api/v1/tag/count" @@ -303,7 +362,7 @@ func (s *TagService) GetTagCount(GetTagCountQueryParams *GetTagCountQueryParams) -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-resource-types +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-resource-types-v1 */ func (s *TagService) GetTagResourceTypes() (*ResponseTagGetTagResourceTypes, *resty.Response, error) { path := "/dna/intent/api/v1/tag/member/type" @@ -339,7 +398,7 @@ func (s *TagService) GetTagResourceTypes() (*ResponseTagGetTagResourceTypes, *re @param id id path parameter. Tag ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-by-id-v1 */ func (s *TagService) GetTagByID(id string) (*ResponseTagGetTagByID, *resty.Response, error) { path := "/dna/intent/api/v1/tag/{id}" @@ -377,7 +436,7 @@ func (s *TagService) GetTagByID(id string) (*ResponseTagGetTagByID, *resty.Respo @param GetTagMembersByIdQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-members-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-members-by-id-v1 */ func (s *TagService) GetTagMembersByID(id string, GetTagMembersByIdQueryParams *GetTagMembersByIDQueryParams) (*ResponseTagGetTagMembersByID, *resty.Response, error) { path := "/dna/intent/api/v1/tag/{id}/member" @@ -417,7 +476,7 @@ func (s *TagService) GetTagMembersByID(id string, GetTagMembersByIdQueryParams * @param GetTagMemberCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-member-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tag-member-count-v1 */ func (s *TagService) GetTagMemberCount(id string, GetTagMemberCountQueryParams *GetTagMemberCountQueryParams) (*ResponseTagGetTagMemberCount, *resty.Response, error) { path := "/dna/intent/api/v1/tag/{id}/member/count" @@ -449,12 +508,154 @@ func (s *TagService) GetTagMemberCount(id string, GetTagMemberCountQueryParams * } +//RetrieveTagsAssociatedWithTheInterfaces Retrieve tags associated with the interfaces. - b786-6abb-47f8-8c83 +/* Fetches the tags associated with the interfaces. Interfaces that don't have any tags associated will not be included in the response. A tag is a user-defined or system-defined construct to group resources. When an interface is tagged, it is called a member of the tag. + + +@param RetrieveTagsAssociatedWithTheInterfacesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-tags-associated-with-the-interfaces-v1 +*/ +func (s *TagService) RetrieveTagsAssociatedWithTheInterfaces(RetrieveTagsAssociatedWithTheInterfacesQueryParams *RetrieveTagsAssociatedWithTheInterfacesQueryParams) (*ResponseTagRetrieveTagsAssociatedWithTheInterfaces, *resty.Response, error) { + path := "/dna/intent/api/v1/tags/interfaces/membersAssociations" + + queryString, _ := query.Values(RetrieveTagsAssociatedWithTheInterfacesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseTagRetrieveTagsAssociatedWithTheInterfaces{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveTagsAssociatedWithTheInterfaces(RetrieveTagsAssociatedWithTheInterfacesQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrieveTagsAssociatedWithTheInterfaces") + } + + result := response.Result().(*ResponseTagRetrieveTagsAssociatedWithTheInterfaces) + return result, response, err + +} + +//RetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTag Retrieve the count of interfaces that are associated with at least one tag. - 3cb8-f8e6-4bfa-928c +/* Fetches the count of interfaces that are associated with at least one tag. A tag is a user-defined or system-defined construct to group resources. When an interface is tagged, it is called a member of the tag. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-the-count-of-interfaces-that-are-associated-with-at-least-one-tag-v1 +*/ +func (s *TagService) RetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTag() (*ResponseTagRetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTag, *resty.Response, error) { + path := "/dna/intent/api/v1/tags/interfaces/membersAssociations/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseTagRetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTag{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTag() + } + return nil, response, fmt.Errorf("error with operation RetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTag") + } + + result := response.Result().(*ResponseTagRetrieveTheCountOfInterfacesThatAreAssociatedWithAtLeastOneTag) + return result, response, err + +} + +//RetrieveTagsAssociatedWithNetworkDevices Retrieve tags associated with network devices. - 0b84-9b56-4bda-bc68 +/* Fetches the tags associated with network devices. Devices that don't have any tags associated will not be included in the response. A tag is a user-defined or system-defined construct to group resources. When a device is tagged, it is called a member of the tag. + + +@param RetrieveTagsAssociatedWithNetworkDevicesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-tags-associated-with-network-devices-v1 +*/ +func (s *TagService) RetrieveTagsAssociatedWithNetworkDevices(RetrieveTagsAssociatedWithNetworkDevicesQueryParams *RetrieveTagsAssociatedWithNetworkDevicesQueryParams) (*ResponseTagRetrieveTagsAssociatedWithNetworkDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/tags/networkDevices/membersAssociations" + + queryString, _ := query.Values(RetrieveTagsAssociatedWithNetworkDevicesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseTagRetrieveTagsAssociatedWithNetworkDevices{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveTagsAssociatedWithNetworkDevices(RetrieveTagsAssociatedWithNetworkDevicesQueryParams) + } + return nil, response, fmt.Errorf("error with operation RetrieveTagsAssociatedWithNetworkDevices") + } + + result := response.Result().(*ResponseTagRetrieveTagsAssociatedWithNetworkDevices) + return result, response, err + +} + +//RetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTag Retrieve the count of network devices that are associated with at least one tag. - 63b1-69be-4919-9dc0 +/* Fetches the count of network devices that are associated with at least one tag. A tag is a user-defined or system-defined construct to group resources. When a device is tagged, it is called a member of the tag. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-the-count-of-network-devices-that-are-associated-with-at-least-one-tag-v1 +*/ +func (s *TagService) RetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTag() (*ResponseTagRetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTag, *resty.Response, error) { + path := "/dna/intent/api/v1/tags/networkDevices/membersAssociations/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseTagRetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTag{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.RetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTag() + } + return nil, response, fmt.Errorf("error with operation RetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTag") + } + + result := response.Result().(*ResponseTagRetrieveTheCountOfNetworkDevicesThatAreAssociatedWithAtLeastOneTag) + return result, response, err + +} + //CreateTag Create Tag - 1399-891c-42a8-be64 /* Creates tag with specified tag attributes -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-tag +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-tag-v1 */ func (s *TagService) CreateTag(requestTagCreateTag *RequestTagCreateTag) (*ResponseTagCreateTag, *resty.Response, error) { path := "/dna/intent/api/v1/tag" @@ -493,7 +694,7 @@ func (s *TagService) CreateTag(requestTagCreateTag *RequestTagCreateTag) (*Respo @param id id path parameter. Tag ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-members-to-the-tag +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-members-to-the-tag-v1 */ func (s *TagService) AddMembersToTheTag(id string, requestTagAddMembersToTheTag *RequestTagAddMembersToTheTag) (*ResponseTagAddMembersToTheTag, *resty.Response, error) { path := "/dna/intent/api/v1/tag/{id}/member" @@ -526,6 +727,80 @@ func (s *TagService) AddMembersToTheTag(id string, requestTagAddMembersToTheTag } +//QueryTheTagsAssociatedWithInterfaces Query the tags associated with interfaces. - 87a2-4a4e-4109-becf +/* Fetches the tags associated with the given interface `ids`. Interfaces that don't have any tags associated will not be included in the response. A tag is a user-defined or system-defined construct to group resources. When an interface is tagged, it is called a member of the tag. `ids` can be fetched via `/dna/intent/api/v1/interface` API. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!query-the-tags-associated-with-interfaces-v1 +*/ +func (s *TagService) QueryTheTagsAssociatedWithInterfaces(requestTagQueryTheTagsAssociatedWithInterfaces *RequestTagQueryTheTagsAssociatedWithInterfaces) (*ResponseTagQueryTheTagsAssociatedWithInterfaces, *resty.Response, error) { + path := "/dna/intent/api/v1/tags/interfaces/membersAssociations/query" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestTagQueryTheTagsAssociatedWithInterfaces). + SetResult(&ResponseTagQueryTheTagsAssociatedWithInterfaces{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.QueryTheTagsAssociatedWithInterfaces(requestTagQueryTheTagsAssociatedWithInterfaces) + } + + return nil, response, fmt.Errorf("error with operation QueryTheTagsAssociatedWithInterfaces") + } + + result := response.Result().(*ResponseTagQueryTheTagsAssociatedWithInterfaces) + return result, response, err + +} + +//QueryTheTagsAssociatedWithNetworkDevices Query the tags associated with network devices. - 6480-fa01-417b-b397 +/* Fetches the tags associated with the given network device `ids`. Devices that don't have any tags associated will not be included in the response. A tag is a user-defined or system-defined construct to group resources. When a device is tagged, it is called a member of the tag. `ids` can be fetched via `/dna/intent/api/v1/network-device` API. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!query-the-tags-associated-with-network-devices-v1 +*/ +func (s *TagService) QueryTheTagsAssociatedWithNetworkDevices(requestTagQueryTheTagsAssociatedWithNetworkDevices *RequestTagQueryTheTagsAssociatedWithNetworkDevices) (*ResponseTagQueryTheTagsAssociatedWithNetworkDevices, *resty.Response, error) { + path := "/dna/intent/api/v1/tags/networkDevices/membersAssociations/query" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestTagQueryTheTagsAssociatedWithNetworkDevices). + SetResult(&ResponseTagQueryTheTagsAssociatedWithNetworkDevices{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.QueryTheTagsAssociatedWithNetworkDevices(requestTagQueryTheTagsAssociatedWithNetworkDevices) + } + + return nil, response, fmt.Errorf("error with operation QueryTheTagsAssociatedWithNetworkDevices") + } + + result := response.Result().(*ResponseTagQueryTheTagsAssociatedWithNetworkDevices) + return result, response, err + +} + //UpdateTag Update Tag - 4d86-a993-469a-9da9 /* Updates a tag specified by id @@ -559,19 +834,19 @@ func (s *TagService) UpdateTag(requestTagUpdateTag *RequestTagUpdateTag) (*Respo } -//UpdatesTagMembership Updates tag membership - 45bc-7a83-44a8-bc1e -/* Updates tag membership. As part of the request payload through this API, only the specified members are added / retained to the given input tags. Possible values of memberType attribute in the request payload can be queried by using the /tag/member/type API +//UpdateTagMembership Update tag membership - 45bc-7a83-44a8-bc1e +/* Update tag membership. As part of the request payload through this API, only the specified members are added / retained to the given input tags. Possible values of memberType attribute in the request payload can be queried by using the /tag/member/type API */ -func (s *TagService) UpdatesTagMembership(requestTagUpdatesTagMembership *RequestTagUpdatesTagMembership) (*ResponseTagUpdatesTagMembership, *resty.Response, error) { +func (s *TagService) UpdateTagMembership(requestTagUpdateTagMembership *RequestTagUpdateTagMembership) (*ResponseTagUpdateTagMembership, *resty.Response, error) { path := "/dna/intent/api/v1/tag/member" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestTagUpdatesTagMembership). - SetResult(&ResponseTagUpdatesTagMembership{}). + SetBody(requestTagUpdateTagMembership). + SetResult(&ResponseTagUpdateTagMembership{}). SetError(&Error). Put(path) @@ -582,12 +857,12 @@ func (s *TagService) UpdatesTagMembership(requestTagUpdatesTagMembership *Reques if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.UpdatesTagMembership(requestTagUpdatesTagMembership) + return s.UpdateTagMembership(requestTagUpdateTagMembership) } - return nil, response, fmt.Errorf("error with operation UpdatesTagMembership") + return nil, response, fmt.Errorf("error with operation UpdateTagMembership") } - result := response.Result().(*ResponseTagUpdatesTagMembership) + result := response.Result().(*ResponseTagUpdateTagMembership) return result, response, err } @@ -599,7 +874,7 @@ func (s *TagService) UpdatesTagMembership(requestTagUpdatesTagMembership *Reques @param id id path parameter. Tag ID -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-tag +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-tag-v1 */ func (s *TagService) DeleteTag(id string) (*ResponseTagDeleteTag, *resty.Response, error) { //id string @@ -639,7 +914,7 @@ func (s *TagService) DeleteTag(id string) (*ResponseTagDeleteTag, *resty.Respons @param memberID memberId path parameter. TagMember id to be removed from tag -Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-tag-member +Documentation Link: https://developer.cisco.com/docs/dna-center/#!remove-tag-member-v1 */ func (s *TagService) RemoveTagMember(id string, memberID string) (*ResponseTagRemoveTagMember, *resty.Response, error) { //id string,memberID string diff --git a/sdk/task.go b/sdk/task.go index 8805075..3831ba7 100644 --- a/sdk/task.go +++ b/sdk/task.go @@ -11,7 +11,7 @@ import ( type TaskService service -type GetTasksQueryParams struct { +type GetTasksOperationalTasksQueryParams struct { StartTime string `url:"startTime,omitempty"` //This is the epoch start time from which tasks need to be fetched EndTime string `url:"endTime,omitempty"` //This is the epoch end time upto which audit records need to be fetched Data string `url:"data,omitempty"` //Fetch tasks that contains this data @@ -39,6 +39,24 @@ type GetTaskCountQueryParams struct { FailureReason string `url:"failureReason,omitempty"` //Fetch tasks that contains this failure reason ParentID string `url:"parentId,omitempty"` //Fetch tasks that have this parent Id } +type GetTasksQueryParams struct { + Offset int `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. + Limit int `url:"limit,omitempty"` //The number of records to show for this page. + SortBy string `url:"sortBy,omitempty"` //A property within the response to sort by. + Order string `url:"order,omitempty"` //Whether ascending or descending order should be used to sort the response. + StartTime int `url:"startTime,omitempty"` //This is the epoch millisecond start time from which tasks need to be fetched + EndTime int `url:"endTime,omitempty"` //This is the epoch millisecond end time upto which task records need to be fetched + ParentID string `url:"parentId,omitempty"` //Fetch tasks that have this parent Id + RootID string `url:"rootId,omitempty"` //Fetch tasks that have this root Id + Status string `url:"status,omitempty"` //Fetch tasks that have this status. Available values : PENDING, FAILURE, SUCCESS +} +type GetTasksCountQueryParams struct { + StartTime int `url:"startTime,omitempty"` //This is the epoch millisecond start time from which tasks need to be fetched + EndTime int `url:"endTime,omitempty"` //This is the epoch millisecond end time upto which task records need to be fetched + ParentID string `url:"parentId,omitempty"` //Fetch tasks that have this parent Id + RootID string `url:"rootId,omitempty"` //Fetch tasks that have this root Id + Status string `url:"status,omitempty"` //Fetch tasks that have this status. Available values : PENDING, FAILURE, SUCCESS +} type ResponseTaskGetBusinessAPIExecutionDetails struct { BapiKey string `json:"bapiKey,omitempty"` // Business API Key (UUID) @@ -50,35 +68,33 @@ type ResponseTaskGetBusinessAPIExecutionDetails struct { EndTimeEpoch *int `json:"endTimeEpoch,omitempty"` // Execution End Time of the Business API (Epoch Milliseconds) TimeDuration *int `json:"timeDuration,omitempty"` // Time taken for Business API Execution (Milliseconds) Status string `json:"status,omitempty"` // Execution status of the Business API - BapiError string `json:"bapiError,omitempty"` // Bapi Error - BapiSyncResponse string `json:"bapiSyncResponse,omitempty"` // Bapi Sync Response RuntimeInstanceID string `json:"runtimeInstanceId,omitempty"` // Pod Id in which the Business API is executed + BapiError string `json:"bapiError,omitempty"` // Business API error message } -type ResponseTaskGetTasks struct { - Response *[]ResponseTaskGetTasksResponse `json:"response,omitempty"` // - Version string `json:"version,omitempty"` // +type ResponseTaskGetTasksOperationalTasks struct { + Response *[]ResponseTaskGetTasksOperationalTasksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseTaskGetTasksOperationalTasksResponse struct { + AdditionalStatusURL string `json:"additionalStatusURL,omitempty"` // + Data string `json:"data,omitempty"` // + EndTime *int `json:"endTime,omitempty"` // + ErrorCode string `json:"errorCode,omitempty"` // + ErrorKey string `json:"errorKey,omitempty"` // + FailureReason string `json:"failureReason,omitempty"` // + ID string `json:"id,omitempty"` // + InstanceTenantID string `json:"instanceTenantId,omitempty"` // + IsError *bool `json:"isError,omitempty"` // + LastUpdate *int `json:"lastUpdate,omitempty"` // + OperationIDList []string `json:"operationIdList,omitempty"` // + ParentID string `json:"parentId,omitempty"` // + Progress string `json:"progress,omitempty"` // + RootID string `json:"rootId,omitempty"` // + ServiceType string `json:"serviceType,omitempty"` // + StartTime *int `json:"startTime,omitempty"` // + Username string `json:"username,omitempty"` // + Version *int `json:"version,omitempty"` // } -type ResponseTaskGetTasksResponse struct { - AdditionalStatusURL string `json:"additionalStatusURL,omitempty"` // - Data string `json:"data,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorKey string `json:"errorKey,omitempty"` // - FailureReason string `json:"failureReason,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - IsError *bool `json:"isError,omitempty"` // - LastUpdate string `json:"lastUpdate,omitempty"` // - OperationIDList *ResponseTaskGetTasksResponseOperationIDList `json:"operationIdList,omitempty"` // - ParentID string `json:"parentId,omitempty"` // - Progress string `json:"progress,omitempty"` // - RootID string `json:"rootId,omitempty"` // - ServiceType string `json:"serviceType,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - Username string `json:"username,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type ResponseTaskGetTasksResponseOperationIDList interface{} type ResponseTaskGetTaskCount struct { Response *int `json:"response,omitempty"` // Version string `json:"version,omitempty"` // @@ -88,76 +104,118 @@ type ResponseTaskGetTaskByOperationID struct { Version string `json:"version,omitempty"` // } type ResponseTaskGetTaskByOperationIDResponse struct { - AdditionalStatusURL string `json:"additionalStatusURL,omitempty"` // - Data string `json:"data,omitempty"` // - EndTime string `json:"endTime,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorKey string `json:"errorKey,omitempty"` // - FailureReason string `json:"failureReason,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - IsError *bool `json:"isError,omitempty"` // - LastUpdate string `json:"lastUpdate,omitempty"` // - OperationIDList *ResponseTaskGetTaskByOperationIDResponseOperationIDList `json:"operationIdList,omitempty"` // - ParentID string `json:"parentId,omitempty"` // - Progress string `json:"progress,omitempty"` // - RootID string `json:"rootId,omitempty"` // - ServiceType string `json:"serviceType,omitempty"` // - StartTime string `json:"startTime,omitempty"` // - Username string `json:"username,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type ResponseTaskGetTaskByOperationIDResponseOperationIDList interface{} + AdditionalStatusURL string `json:"additionalStatusURL,omitempty"` // + Data string `json:"data,omitempty"` // + EndTime *int `json:"endTime,omitempty"` // + ErrorCode string `json:"errorCode,omitempty"` // + ErrorKey string `json:"errorKey,omitempty"` // + FailureReason string `json:"failureReason,omitempty"` // + ID string `json:"id,omitempty"` // + InstanceTenantID string `json:"instanceTenantId,omitempty"` // + IsError *bool `json:"isError,omitempty"` // + LastUpdate *int `json:"lastUpdate,omitempty"` // + OperationIDList []string `json:"operationIdList,omitempty"` // + ParentID string `json:"parentId,omitempty"` // + Progress string `json:"progress,omitempty"` // + RootID string `json:"rootId,omitempty"` // + ServiceType string `json:"serviceType,omitempty"` // + StartTime *int `json:"startTime,omitempty"` // + Username string `json:"username,omitempty"` // + Version *int `json:"version,omitempty"` // +} type ResponseTaskGetTaskByID struct { Response *ResponseTaskGetTaskByIDResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseTaskGetTaskByIDResponse struct { - AdditionalStatusURL string `json:"additionalStatusURL,omitempty"` // - Data string `json:"data,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorKey string `json:"errorKey,omitempty"` // - FailureReason string `json:"failureReason,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - IsError *bool `json:"isError,omitempty"` // - LastUpdate *int `json:"lastUpdate,omitempty"` // - OperationIDList *ResponseTaskGetTaskByIDResponseOperationIDList `json:"operationIdList,omitempty"` // - ParentID string `json:"parentId,omitempty"` // - Progress string `json:"progress,omitempty"` // - RootID string `json:"rootId,omitempty"` // - ServiceType string `json:"serviceType,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - Username string `json:"username,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type ResponseTaskGetTaskByIDResponseOperationIDList interface{} + AdditionalStatusURL string `json:"additionalStatusURL,omitempty"` // + Data string `json:"data,omitempty"` // + EndTime *int `json:"endTime,omitempty"` // + ErrorCode string `json:"errorCode,omitempty"` // + ErrorKey string `json:"errorKey,omitempty"` // + FailureReason string `json:"failureReason,omitempty"` // + ID string `json:"id,omitempty"` // + InstanceTenantID string `json:"instanceTenantId,omitempty"` // + IsError *bool `json:"isError,omitempty"` // + LastUpdate *int `json:"lastUpdate,omitempty"` // + OperationIDList []string `json:"operationIdList,omitempty"` // + ParentID string `json:"parentId,omitempty"` // + Progress string `json:"progress,omitempty"` // + RootID string `json:"rootId,omitempty"` // + ServiceType string `json:"serviceType,omitempty"` // + StartTime *int `json:"startTime,omitempty"` // + Username string `json:"username,omitempty"` // + Version *int `json:"version,omitempty"` // +} type ResponseTaskGetTaskTree struct { Response *[]ResponseTaskGetTaskTreeResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseTaskGetTaskTreeResponse struct { - AdditionalStatusURL string `json:"additionalStatusURL,omitempty"` // - Data string `json:"data,omitempty"` // - EndTime *int `json:"endTime,omitempty"` // - ErrorCode string `json:"errorCode,omitempty"` // - ErrorKey string `json:"errorKey,omitempty"` // - FailureReason string `json:"failureReason,omitempty"` // - ID string `json:"id,omitempty"` // - InstanceTenantID string `json:"instanceTenantId,omitempty"` // - IsError *bool `json:"isError,omitempty"` // - LastUpdate *int `json:"lastUpdate,omitempty"` // - OperationIDList *ResponseTaskGetTaskTreeResponseOperationIDList `json:"operationIdList,omitempty"` // - ParentID string `json:"parentId,omitempty"` // - Progress string `json:"progress,omitempty"` // - RootID string `json:"rootId,omitempty"` // - ServiceType string `json:"serviceType,omitempty"` // - StartTime *int `json:"startTime,omitempty"` // - Username string `json:"username,omitempty"` // - Version *int `json:"version,omitempty"` // -} -type ResponseTaskGetTaskTreeResponseOperationIDList interface{} + AdditionalStatusURL string `json:"additionalStatusURL,omitempty"` // + Data string `json:"data,omitempty"` // + EndTime *int `json:"endTime,omitempty"` // + ErrorCode string `json:"errorCode,omitempty"` // + ErrorKey string `json:"errorKey,omitempty"` // + FailureReason string `json:"failureReason,omitempty"` // + ID string `json:"id,omitempty"` // + InstanceTenantID string `json:"instanceTenantId,omitempty"` // + IsError *bool `json:"isError,omitempty"` // + LastUpdate *int `json:"lastUpdate,omitempty"` // + OperationIDList []string `json:"operationIdList,omitempty"` // + ParentID string `json:"parentId,omitempty"` // + Progress string `json:"progress,omitempty"` // + RootID string `json:"rootId,omitempty"` // + ServiceType string `json:"serviceType,omitempty"` // + StartTime *int `json:"startTime,omitempty"` // + Username string `json:"username,omitempty"` // + Version *int `json:"version,omitempty"` // +} +type ResponseTaskGetTasks struct { + Response *[]ResponseTaskGetTasksResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseTaskGetTasksResponse struct { + EndTime *int `json:"endTime,omitempty"` // An approximate time of when this task has been marked completed; as measured in Unix epoch time in milliseconds + ID string `json:"id,omitempty"` // The ID of this task + UpdatedTime *int `json:"updatedTime,omitempty"` // A timestamp of when this task was last updated; as measured in Unix epoch time in milliseconds + ParentID string `json:"parentId,omitempty"` // The ID of the parent task if this happens to be a subtask. In case this task is not a subtask, then the parentId is expected to be null. To construct a task tree, this task will be the child of the task with the ID listed here, or the root of the tree if this task has no parentId. + ResultLocation string `json:"resultLocation,omitempty"` // A server-relative URL indicating where additional task-specific details may be found + RootID string `json:"rootId,omitempty"` // The ID of the task representing the root node of the tree which this task belongs to. In some cases, this may be the same as the ID or null, which indicates that this task is the root task. + StartTime *int `json:"startTime,omitempty"` // An approximate time of when the task creation was triggered; as measured in Unix epoch time in milliseconds + Status string `json:"status,omitempty"` // +} +type ResponseTaskGetTasksCount struct { + Response *ResponseTaskGetTasksCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // The version of the response +} +type ResponseTaskGetTasksCountResponse struct { + Count *int `json:"count,omitempty"` // The reported count. +} +type ResponseTaskGetTasksByID struct { + Response *ResponseTaskGetTasksByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseTaskGetTasksByIDResponse struct { + EndTime *int `json:"endTime,omitempty"` // An approximate time of when this task has been marked completed; as measured in Unix epoch time in milliseconds + ID string `json:"id,omitempty"` // The ID of this task + UpdatedTime *int `json:"updatedTime,omitempty"` // A timestamp of when this task was last updated; as measured in Unix epoch time in milliseconds + ParentID string `json:"parentId,omitempty"` // The ID of the parent task if this happens to be a subtask. In case this task is not a subtask, then the parentId is expected to be null. To construct a task tree, this task will be the child of the task with the ID listed here, or the root of the tree if this task has no parentId. + ResultLocation string `json:"resultLocation,omitempty"` // A server-relative URL indicating where additional task-specific details may be found + RootID string `json:"rootId,omitempty"` // The ID of the task representing the root node of the tree which this task belongs to. In some cases, this may be the same as the ID or null, which indicates that this task is the root task. + StartTime *int `json:"startTime,omitempty"` // An approximate time of when the task creation was triggered; as measured in Unix epoch time in milliseconds + Status string `json:"status,omitempty"` // +} +type ResponseTaskGetTaskDetailsByID struct { + Response *ResponseTaskGetTaskDetailsByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseTaskGetTaskDetailsByIDResponse struct { + Data string `json:"data,omitempty"` // Any data associated with this task; the value may vary significantly across different tasks + Progress string `json:"progress,omitempty"` // A textual representation which indicates the progress of this task; the value may vary significantly across different tasks + ErrorCode string `json:"errorCode,omitempty"` // An error code if in case this task has failed in its execution + FailureReason string `json:"failureReason,omitempty"` // A textual description indicating the reason why a task has failed +} //GetBusinessAPIExecutionDetails Get Business API Execution Details - c1bc-a8c1-41fb-9f75 /* Retrieves the execution details of a Business API @@ -166,7 +224,7 @@ type ResponseTaskGetTaskTreeResponseOperationIDList interface{} @param executionID executionId path parameter. Execution Id of API -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-business-api-execution-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-business-api-execution-details-v1 */ func (s *TaskService) GetBusinessAPIExecutionDetails(executionID string) (*ResponseTaskGetBusinessAPIExecutionDetails, *resty.Response, error) { path := "/dna/intent/api/v1/dnacaap/management/execution-status/{executionId}" @@ -196,23 +254,23 @@ func (s *TaskService) GetBusinessAPIExecutionDetails(executionID string) (*Respo } -//GetTasks Get tasks - e78b-b8a2-449b-9eed +//GetTasksOperationalTasks Get tasks - e78b-b8a2-449b-9eed /* Returns task(s) based on filter criteria -@param GetTasksQueryParams Filtering parameter +@param GetTasksOperationalTasksQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tasks +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tasks-operational-tasks-v1 */ -func (s *TaskService) GetTasks(GetTasksQueryParams *GetTasksQueryParams) (*ResponseTaskGetTasks, *resty.Response, error) { +func (s *TaskService) GetTasksOperationalTasks(GetTasksOperationalTasksQueryParams *GetTasksOperationalTasksQueryParams) (*ResponseTaskGetTasksOperationalTasks, *resty.Response, error) { path := "/dna/intent/api/v1/task" - queryString, _ := query.Values(GetTasksQueryParams) + queryString, _ := query.Values(GetTasksOperationalTasksQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseTaskGetTasks{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseTaskGetTasksOperationalTasks{}). SetError(&Error). Get(path) @@ -223,12 +281,12 @@ func (s *TaskService) GetTasks(GetTasksQueryParams *GetTasksQueryParams) (*Respo if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetTasks(GetTasksQueryParams) + return s.GetTasksOperationalTasks(GetTasksOperationalTasksQueryParams) } - return nil, response, fmt.Errorf("error with operation GetTasks") + return nil, response, fmt.Errorf("error with operation GetTasksOperationalTasks") } - result := response.Result().(*ResponseTaskGetTasks) + result := response.Result().(*ResponseTaskGetTasksOperationalTasks) return result, response, err } @@ -239,7 +297,7 @@ func (s *TaskService) GetTasks(GetTasksQueryParams *GetTasksQueryParams) (*Respo @param GetTaskCountQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-count +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-count-v1 */ func (s *TaskService) GetTaskCount(GetTaskCountQueryParams *GetTaskCountQueryParams) (*ResponseTaskGetTaskCount, *resty.Response, error) { path := "/dna/intent/api/v1/task/count" @@ -280,7 +338,7 @@ func (s *TaskService) GetTaskCount(GetTaskCountQueryParams *GetTaskCountQueryPar @param limit limit path parameter. The maximum value of {limit} supported is 500.
Base 1 indexing for {limit}, minimum value is 1 -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-by-operation-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-by-operation-id-v1 */ func (s *TaskService) GetTaskByOperationID(operationID string, offset int, limit int) (*ResponseTaskGetTaskByOperationID, *resty.Response, error) { path := "/dna/intent/api/v1/task/operation/{operationId}/{offset}/{limit}" @@ -319,7 +377,7 @@ func (s *TaskService) GetTaskByOperationID(operationID string, offset int, limit @param taskID taskId path parameter. UUID of the Task -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-by-id +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-by-id-v1 */ func (s *TaskService) GetTaskByID(taskID string) (*ResponseTaskGetTaskByID, *resty.Response, error) { path := "/dna/intent/api/v1/task/{taskId}" @@ -356,7 +414,7 @@ func (s *TaskService) GetTaskByID(taskID string) (*ResponseTaskGetTaskByID, *res @param taskID taskId path parameter. UUID of the Task -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-tree +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-tree-v1 */ func (s *TaskService) GetTaskTree(taskID string) (*ResponseTaskGetTaskTree, *resty.Response, error) { path := "/dna/intent/api/v1/task/{taskId}/tree" @@ -385,3 +443,151 @@ func (s *TaskService) GetTaskTree(taskID string) (*ResponseTaskGetTaskTree, *res return result, response, err } + +//GetTasks Get tasks - b7bf-c860-466b-aaa7 +/* Returns task(s) based on filter criteria + + +@param GetTasksQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tasks-v1 +*/ +func (s *TaskService) GetTasks(GetTasksQueryParams *GetTasksQueryParams) (*ResponseTaskGetTasks, *resty.Response, error) { + path := "/dna/intent/api/v1/tasks" + + queryString, _ := query.Values(GetTasksQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseTaskGetTasks{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTasks(GetTasksQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetTasks") + } + + result := response.Result().(*ResponseTaskGetTasks) + return result, response, err + +} + +//GetTasksCount Get tasks count - 6bb9-395b-4af9-8285 +/* Returns the number of tasks that meet the filter criteria + + +@param GetTasksCountQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tasks-count-v1 +*/ +func (s *TaskService) GetTasksCount(GetTasksCountQueryParams *GetTasksCountQueryParams) (*ResponseTaskGetTasksCount, *resty.Response, error) { + path := "/dna/intent/api/v1/tasks/count" + + queryString, _ := query.Values(GetTasksCountQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseTaskGetTasksCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTasksCount(GetTasksCountQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetTasksCount") + } + + result := response.Result().(*ResponseTaskGetTasksCount) + return result, response, err + +} + +//GetTasksByID Get tasks by ID - e493-ea85-4038-8183 +/* Returns the task with the given ID + + +@param id id path parameter. the `id` of the task to retrieve + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-tasks-by-id-v1 +*/ +func (s *TaskService) GetTasksByID(id string) (*ResponseTaskGetTasksByID, *resty.Response, error) { + path := "/dna/intent/api/v1/tasks/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseTaskGetTasksByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTasksByID(id) + } + return nil, response, fmt.Errorf("error with operation GetTasksById") + } + + result := response.Result().(*ResponseTaskGetTasksByID) + return result, response, err + +} + +//GetTaskDetailsByID Get task details by ID - 408d-8acf-43fb-92c2 +/* Returns the task details for the given task ID + + +@param id id path parameter. the `id` of the task to retrieve details for + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-task-details-by-id-v1 +*/ +func (s *TaskService) GetTaskDetailsByID(id string) (*ResponseTaskGetTaskDetailsByID, *resty.Response, error) { + path := "/dna/intent/api/v1/tasks/{id}/detail" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseTaskGetTaskDetailsByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetTaskDetailsByID(id) + } + return nil, response, fmt.Errorf("error with operation GetTaskDetailsById") + } + + result := response.Result().(*ResponseTaskGetTaskDetailsByID) + return result, response, err + +} diff --git a/sdk/topology.go b/sdk/topology.go index 9847b5b..f582ad4 100644 --- a/sdk/topology.go +++ b/sdk/topology.go @@ -12,243 +12,260 @@ import ( type TopologyService service type GetOverallNetworkHealthQueryParams struct { - Timestamp string `url:"timestamp,omitempty"` //Epoch time(in milliseconds) when the Network health data is required + Timestamp float64 `url:"timestamp,omitempty"` //UTC timestamp of network health data in milliseconds } type GetPhysicalTopologyQueryParams struct { NodeType string `url:"nodeType,omitempty"` //nodeType } type ResponseTopologyGetOverallNetworkHealth struct { - Version string `json:"version,omitempty"` // Version - Response *[]ResponseTopologyGetOverallNetworkHealthResponse `json:"response,omitempty"` // - MeasuredBy string `json:"measuredBy,omitempty"` // Measured By - LatestMeasuredByEntity *ResponseTopologyGetOverallNetworkHealthLatestMeasuredByEntity `json:"latestMeasuredByEntity,omitempty"` // Latest Measured By Entity - LatestHealthScore *int `json:"latestHealthScore,omitempty"` // Latest Health Score - MonitoredDevices *int `json:"monitoredDevices,omitempty"` // Monitored Devices - MonitoredHealthyDevices *int `json:"monitoredHealthyDevices,omitempty"` // Monitored Healthy Devices - MonitoredUnHealthyDevices *int `json:"monitoredUnHealthyDevices,omitempty"` // Monitored Un Healthy Devices - UnMonitoredDevices *float64 `json:"unMonitoredDevices,omitempty"` // Un Monitored Devices - HealthDistirubution *[]ResponseTopologyGetOverallNetworkHealthHealthDistirubution `json:"healthDistirubution,omitempty"` // + Version string `json:"version,omitempty"` // This output's version string + Response *[]ResponseTopologyGetOverallNetworkHealthResponse `json:"response,omitempty"` // + MeasuredBy string `json:"measuredBy,omitempty"` // Overall network health measure by 'global' + LatestMeasuredByEntity string `json:"latestMeasuredByEntity,omitempty"` // Latest measured by entity + LatestHealthScore *int `json:"latestHealthScore,omitempty"` // Latest health score value + MonitoredDevices *int `json:"monitoredDevices,omitempty"` // Number of monitored devices + MonitoredHealthyDevices *int `json:"monitoredHealthyDevices,omitempty"` // Number of healthy devices + MonitoredUnHealthyDevices *int `json:"monitoredUnHealthyDevices,omitempty"` // Number of unhealthy devices + UnMonitoredDevices *int `json:"unMonitoredDevices,omitempty"` // Number of un-monitored devices + NoHealthDevices *int `json:"noHealthDevices,omitempty"` // Number of un-monitored devices + TotalDevices *int `json:"totalDevices,omitempty"` // Total number of devices + MonitoredPoorHealthDevices *int `json:"monitoredPoorHealthDevices,omitempty"` // Number of poor health devices + MonitoredFairHealthDevices *int `json:"monitoredFairHealthDevices,omitempty"` // Number of fair health devices + HealthContributingDevices *int `json:"healthContributingDevices,omitempty"` // Number of health contributing devices + HealthDistirubution *[]ResponseTopologyGetOverallNetworkHealthHealthDistirubution `json:"healthDistirubution,omitempty"` // } type ResponseTopologyGetOverallNetworkHealthResponse struct { - Time string `json:"time,omitempty"` // Time - HealthScore *int `json:"healthScore,omitempty"` // Health Score - TotalCount *int `json:"totalCount,omitempty"` // Total Count - GoodCount *int `json:"goodCount,omitempty"` // Good Count - UnmonCount *float64 `json:"unmonCount,omitempty"` // Unmon Count - FairCount *int `json:"fairCount,omitempty"` // Fair Count - BadCount *float64 `json:"badCount,omitempty"` // Bad Count - Entity *ResponseTopologyGetOverallNetworkHealthResponseEntity `json:"entity,omitempty"` // Entity - TimeinMillis *int `json:"timeinMillis,omitempty"` // Timein Millis + Time string `json:"time,omitempty"` // Date-time string + HealthScore *int `json:"healthScore,omitempty"` // Health score + TotalCount *int `json:"totalCount,omitempty"` // Total health count + GoodCount *int `json:"goodCount,omitempty"` // Total good health count + NoHealthCount *int `json:"noHealthCount,omitempty"` // Total no health count + UnmonCount *int `json:"unmonCount,omitempty"` // Total no health count + FairCount *int `json:"fairCount,omitempty"` // Total fair health count + BadCount *int `json:"badCount,omitempty"` // Total bad health count + MaintenanceModeCount *int `json:"maintenanceModeCount,omitempty"` // Total maintenance mode count + Entity string `json:"entity,omitempty"` // Entity of the health data + TimeinMillis *int `json:"timeinMillis,omitempty"` // UTC time value of property 'time' in milliseconds } -type ResponseTopologyGetOverallNetworkHealthResponseEntity interface{} -type ResponseTopologyGetOverallNetworkHealthLatestMeasuredByEntity interface{} type ResponseTopologyGetOverallNetworkHealthHealthDistirubution struct { - Category string `json:"category,omitempty"` // Category - TotalCount *int `json:"totalCount,omitempty"` // Total Count - HealthScore *int `json:"healthScore,omitempty"` // Health Score - GoodPercentage *int `json:"goodPercentage,omitempty"` // Good Percentage - BadPercentage *float64 `json:"badPercentage,omitempty"` // Bad Percentage - FairPercentage *float64 `json:"fairPercentage,omitempty"` // Fair Percentage - UnmonPercentage *float64 `json:"unmonPercentage,omitempty"` // Unmon Percentage - GoodCount *int `json:"goodCount,omitempty"` // Good Count - BadCount *float64 `json:"badCount,omitempty"` // Bad Count - FairCount *float64 `json:"fairCount,omitempty"` // Fair Count - UnmonCount *float64 `json:"unmonCount,omitempty"` // Unmon Count - KpiMetrics *[]ResponseTopologyGetOverallNetworkHealthHealthDistirubutionKpiMetrics `json:"kpiMetrics,omitempty"` // Kpi Metrics + Category string `json:"category,omitempty"` // Device category in this health data + TotalCount *int `json:"totalCount,omitempty"` // Total device count + HealthScore *int `json:"healthScore,omitempty"` // Health score + GoodPercentage *float64 `json:"goodPercentage,omitempty"` // Good health percent + BadPercentage *float64 `json:"badPercentage,omitempty"` // Poor health percent + FairPercentage *float64 `json:"fairPercentage,omitempty"` // Fair health percent + NoHealthPercentage *float64 `json:"noHealthPercentage,omitempty"` // No health percent + UnmonPercentage *float64 `json:"unmonPercentage,omitempty"` // No health percent + GoodCount *float64 `json:"goodCount,omitempty"` // Good health count + BadCount *float64 `json:"badCount,omitempty"` // Poor health count + FairCount *float64 `json:"fairCount,omitempty"` // Fair health count + NoHealthCount *float64 `json:"noHealthCount,omitempty"` // No health count + UnmonCount *float64 `json:"unmonCount,omitempty"` // No health count + ThirdPartyDeviceCount *float64 `json:"thirdPartyDeviceCount,omitempty"` // Third party device count + KpiMetrics *[]ResponseTopologyGetOverallNetworkHealthHealthDistirubutionKpiMetrics `json:"kpiMetrics,omitempty"` // +} +type ResponseTopologyGetOverallNetworkHealthHealthDistirubutionKpiMetrics struct { + Key string `json:"key,omitempty"` // Health key + Value string `json:"value,omitempty"` // Health value } -type ResponseTopologyGetOverallNetworkHealthHealthDistirubutionKpiMetrics interface{} type ResponseTopologyGetTopologyDetails struct { Response *ResponseTopologyGetTopologyDetailsResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseTopologyGetTopologyDetailsResponse struct { - ID string `json:"id,omitempty"` // + ID string `json:"id,omitempty"` // [Deprecated] Links *[]ResponseTopologyGetTopologyDetailsResponseLinks `json:"links,omitempty"` // Nodes *[]ResponseTopologyGetTopologyDetailsResponseNodes `json:"nodes,omitempty"` // } type ResponseTopologyGetTopologyDetailsResponseLinks struct { - AdditionalInfo *ResponseTopologyGetTopologyDetailsResponseLinksAdditionalInfo `json:"additionalInfo,omitempty"` // - EndPortID string `json:"endPortID,omitempty"` // - EndPortIPv4Address string `json:"endPortIpv4Address,omitempty"` // - EndPortIPv4Mask string `json:"endPortIpv4Mask,omitempty"` // - EndPortName string `json:"endPortName,omitempty"` // - EndPortSpeed string `json:"endPortSpeed,omitempty"` // - GreyOut *bool `json:"greyOut,omitempty"` // - ID string `json:"id,omitempty"` // - LinkStatus string `json:"linkStatus,omitempty"` // - Source string `json:"source,omitempty"` // - StartPortID string `json:"startPortID,omitempty"` // - StartPortIPv4Address string `json:"startPortIpv4Address,omitempty"` // - StartPortIPv4Mask string `json:"startPortIpv4Mask,omitempty"` // - StartPortName string `json:"startPortName,omitempty"` // - StartPortSpeed string `json:"startPortSpeed,omitempty"` // - Tag string `json:"tag,omitempty"` // - Target string `json:"target,omitempty"` // + AdditionalInfo *ResponseTopologyGetTopologyDetailsResponseLinksAdditionalInfo `json:"additionalInfo,omitempty"` // Additional information about the link + EndPortID string `json:"endPortID,omitempty"` // Device port ID corresponding to the end device + EndPortIPv4Address string `json:"endPortIpv4Address,omitempty"` // Interface port IPv4 address corresponding to the end device + EndPortIPv4Mask string `json:"endPortIpv4Mask,omitempty"` // Interface port IPv4 mask corresponding to the end device + EndPortName string `json:"endPortName,omitempty"` // Interface port name corresponding to the end device + EndPortSpeed string `json:"endPortSpeed,omitempty"` // Interface port speed corresponding to end device + GreyOut *bool `json:"greyOut,omitempty"` // Indicates if the link is greyed out + ID string `json:"id,omitempty"` // Id of the link + LinkStatus string `json:"linkStatus,omitempty"` // Indicates whether link is up or down + Source string `json:"source,omitempty"` // Device ID corresponding to the source device + StartPortID string `json:"startPortID,omitempty"` // Device port ID corresponding to start device + StartPortIPv4Address string `json:"startPortIpv4Address,omitempty"` // Interface port IPv4 address corresponding to start device + StartPortIPv4Mask string `json:"startPortIpv4Mask,omitempty"` // Interface port IPv4 mask corresponding to start device + StartPortName string `json:"startPortName,omitempty"` // Interface port name corresponding to start device + StartPortSpeed string `json:"startPortSpeed,omitempty"` // Interface port speed corresponding to start device + Tag string `json:"tag,omitempty"` // [Deprecated] + Target string `json:"target,omitempty"` // Device ID corresponding to the target device } type ResponseTopologyGetTopologyDetailsResponseLinksAdditionalInfo interface{} type ResponseTopologyGetTopologyDetailsResponseNodes struct { - ACLApplied *bool `json:"aclApplied,omitempty"` // - AdditionalInfo *ResponseTopologyGetTopologyDetailsResponseNodesAdditionalInfo `json:"additionalInfo,omitempty"` // - CustomParam *ResponseTopologyGetTopologyDetailsResponseNodesCustomParam `json:"customParam,omitempty"` // - DataPathID string `json:"dataPathId,omitempty"` // - DeviceType string `json:"deviceType,omitempty"` // - Family string `json:"family,omitempty"` // - Fixed *bool `json:"fixed,omitempty"` // - GreyOut *bool `json:"greyOut,omitempty"` // - ID string `json:"id,omitempty"` // - IP string `json:"ip,omitempty"` // - Label string `json:"label,omitempty"` // - NetworkType string `json:"networkType,omitempty"` // - NodeType string `json:"nodeType,omitempty"` // - Order *int `json:"order,omitempty"` // - OsType string `json:"osType,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - Tags []string `json:"tags,omitempty"` // - UpperNode string `json:"upperNode,omitempty"` // - UserID string `json:"userId,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - X *int `json:"x,omitempty"` // - Y *int `json:"y,omitempty"` // + ACLApplied *bool `json:"aclApplied,omitempty"` // Indicates if the Access Control List (ACL) is applied on the device + AdditionalInfo *ResponseTopologyGetTopologyDetailsResponseNodesAdditionalInfo `json:"additionalInfo,omitempty"` // Additional information about the node + CustomParam *ResponseTopologyGetTopologyDetailsResponseNodesCustomParam `json:"customParam,omitempty"` // + ConnectedDeviceID string `json:"connectedDeviceId,omitempty"` // ID of the connected device when the nodeType is HOST + DataPathID string `json:"dataPathId,omitempty"` // ID of the path between devices + DeviceType string `json:"deviceType,omitempty"` // Type of the device. + DeviceSeries string `json:"deviceSeries,omitempty"` // The series of the device + Family string `json:"family,omitempty"` // The product family of the device + Fixed *bool `json:"fixed,omitempty"` // Boolean value indicating whether the position is fixed or will use auto layout + GreyOut *bool `json:"greyOut,omitempty"` // Boolean value indicating whether the node is active for the topology view. + ID string `json:"id,omitempty"` // Unique identifier for the device + IP string `json:"ip,omitempty"` // IP address of the device + Label string `json:"label,omitempty"` // Label of the node, typically the hostname of the device + NetworkType string `json:"networkType,omitempty"` // Type of the network + NodeType string `json:"nodeType,omitempty"` // Type of the node can be 'device' or 'HOST' + Order *int `json:"order,omitempty"` // Device order by link number + OsType string `json:"osType,omitempty"` // OS type of the device + PlatformID string `json:"platformId,omitempty"` // Platform description of the device + Role string `json:"role,omitempty"` // Role of the device + RoleSource string `json:"roleSource,omitempty"` // Indicates whether the role is assigned manually or automatically + SoftwareVersion string `json:"softwareVersion,omitempty"` // Device OS version + Tags []string `json:"tags,omitempty"` // [Deprecated] + UpperNode string `json:"upperNode,omitempty"` // ID of the start node + UserID string `json:"userId,omitempty"` // ID of the host + VLANID string `json:"vlanId,omitempty"` // VLAN ID + X *int `json:"x,omitempty"` // [Deprecated] Please refer to customParam.x + Y *int `json:"y,omitempty"` // [Deprecated] Please refer to customerParam.y } type ResponseTopologyGetTopologyDetailsResponseNodesAdditionalInfo interface{} type ResponseTopologyGetTopologyDetailsResponseNodesCustomParam struct { - ID string `json:"id,omitempty"` // - Label string `json:"label,omitempty"` // - ParentNodeID string `json:"parentNodeId,omitempty"` // - X *int `json:"x,omitempty"` // - Y *int `json:"y,omitempty"` // + ID string `json:"id,omitempty"` // [Deprecated] Please refer to nodes.id + Label string `json:"label,omitempty"` // Label of the node + ParentNodeID string `json:"parentNodeId,omitempty"` // Id of the parent node + X *int `json:"x,omitempty"` // X coordinate for this node in the topology view + Y *int `json:"y,omitempty"` // Y coordinate for this node in the topology view } type ResponseTopologyGetL3TopologyDetails struct { Response *ResponseTopologyGetL3TopologyDetailsResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseTopologyGetL3TopologyDetailsResponse struct { - ID string `json:"id,omitempty"` // + ID string `json:"id,omitempty"` // [Deprecated] Links *[]ResponseTopologyGetL3TopologyDetailsResponseLinks `json:"links,omitempty"` // Nodes *[]ResponseTopologyGetL3TopologyDetailsResponseNodes `json:"nodes,omitempty"` // } type ResponseTopologyGetL3TopologyDetailsResponseLinks struct { - AdditionalInfo *ResponseTopologyGetL3TopologyDetailsResponseLinksAdditionalInfo `json:"additionalInfo,omitempty"` // - EndPortID string `json:"endPortID,omitempty"` // - EndPortIPv4Address string `json:"endPortIpv4Address,omitempty"` // - EndPortIPv4Mask string `json:"endPortIpv4Mask,omitempty"` // - EndPortName string `json:"endPortName,omitempty"` // - EndPortSpeed string `json:"endPortSpeed,omitempty"` // - GreyOut *bool `json:"greyOut,omitempty"` // - ID string `json:"id,omitempty"` // - LinkStatus string `json:"linkStatus,omitempty"` // - Source string `json:"source,omitempty"` // - StartPortID string `json:"startPortID,omitempty"` // - StartPortIPv4Address string `json:"startPortIpv4Address,omitempty"` // - StartPortIPv4Mask string `json:"startPortIpv4Mask,omitempty"` // - StartPortName string `json:"startPortName,omitempty"` // - StartPortSpeed string `json:"startPortSpeed,omitempty"` // - Tag string `json:"tag,omitempty"` // - Target string `json:"target,omitempty"` // + AdditionalInfo *ResponseTopologyGetL3TopologyDetailsResponseLinksAdditionalInfo `json:"additionalInfo,omitempty"` // Additional information about the link + EndPortID string `json:"endPortID,omitempty"` // Device port ID corresponding to the end device + EndPortIPv4Address string `json:"endPortIpv4Address,omitempty"` // Interface port IPv4 address corresponding to the end device + EndPortIPv4Mask string `json:"endPortIpv4Mask,omitempty"` // Interface port IPv4 mask corresponding to the end device + EndPortName string `json:"endPortName,omitempty"` // Interface port name corresponding to the end device + EndPortSpeed string `json:"endPortSpeed,omitempty"` // Interface port speed corresponding to end device + GreyOut *bool `json:"greyOut,omitempty"` // Indicates if the link is greyed out + ID string `json:"id,omitempty"` // Id of the link + LinkStatus string `json:"linkStatus,omitempty"` // Indicates whether link is up or down + Source string `json:"source,omitempty"` // Device ID corresponding to the source device + StartPortID string `json:"startPortID,omitempty"` // Device port ID corresponding to start device + StartPortIPv4Address string `json:"startPortIpv4Address,omitempty"` // Interface port IPv4 address corresponding to start device + StartPortIPv4Mask string `json:"startPortIpv4Mask,omitempty"` // Interface port IPv4 mask corresponding to start device + StartPortName string `json:"startPortName,omitempty"` // Interface port name corresponding to start device + StartPortSpeed string `json:"startPortSpeed,omitempty"` // Interface port speed corresponding to start device + Tag string `json:"tag,omitempty"` // [Deprecated] + Target string `json:"target,omitempty"` // Device ID corresponding to the target device } type ResponseTopologyGetL3TopologyDetailsResponseLinksAdditionalInfo interface{} type ResponseTopologyGetL3TopologyDetailsResponseNodes struct { - ACLApplied *bool `json:"aclApplied,omitempty"` // - AdditionalInfo *ResponseTopologyGetL3TopologyDetailsResponseNodesAdditionalInfo `json:"additionalInfo,omitempty"` // - CustomParam *ResponseTopologyGetL3TopologyDetailsResponseNodesCustomParam `json:"customParam,omitempty"` // - DataPathID string `json:"dataPathId,omitempty"` // - DeviceType string `json:"deviceType,omitempty"` // - Family string `json:"family,omitempty"` // - Fixed *bool `json:"fixed,omitempty"` // - GreyOut *bool `json:"greyOut,omitempty"` // - ID string `json:"id,omitempty"` // - IP string `json:"ip,omitempty"` // - Label string `json:"label,omitempty"` // - NetworkType string `json:"networkType,omitempty"` // - NodeType string `json:"nodeType,omitempty"` // - Order *int `json:"order,omitempty"` // - OsType string `json:"osType,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - Tags []string `json:"tags,omitempty"` // - UpperNode string `json:"upperNode,omitempty"` // - UserID string `json:"userId,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - X *int `json:"x,omitempty"` // - Y *int `json:"y,omitempty"` // + ACLApplied *bool `json:"aclApplied,omitempty"` // Indicates if the Access Control List (ACL) is applied on the device + AdditionalInfo *ResponseTopologyGetL3TopologyDetailsResponseNodesAdditionalInfo `json:"additionalInfo,omitempty"` // Additional information about the node + CustomParam *ResponseTopologyGetL3TopologyDetailsResponseNodesCustomParam `json:"customParam,omitempty"` // + ConnectedDeviceID string `json:"connectedDeviceId,omitempty"` // ID of the connected device when the nodeType is HOST + DataPathID string `json:"dataPathId,omitempty"` // ID of the path between devices + DeviceType string `json:"deviceType,omitempty"` // Type of the device. + DeviceSeries string `json:"deviceSeries,omitempty"` // The series of the device + Family string `json:"family,omitempty"` // The product family of the device + Fixed *bool `json:"fixed,omitempty"` // Boolean value indicating whether the position is fixed or will use auto layout + GreyOut *bool `json:"greyOut,omitempty"` // Boolean value indicating whether the node is active for the topology view. + ID string `json:"id,omitempty"` // Unique identifier for the device + IP string `json:"ip,omitempty"` // IP address of the device + Label string `json:"label,omitempty"` // Label of the node, typically the hostname of the device + NetworkType string `json:"networkType,omitempty"` // Type of the network + NodeType string `json:"nodeType,omitempty"` // Type of the node can be 'device' or 'HOST' + Order *int `json:"order,omitempty"` // Device order by link number + OsType string `json:"osType,omitempty"` // OS type of the device + PlatformID string `json:"platformId,omitempty"` // Platform description of the device + Role string `json:"role,omitempty"` // Role of the device + RoleSource string `json:"roleSource,omitempty"` // Indicates whether the role is assigned manually or automatically + SoftwareVersion string `json:"softwareVersion,omitempty"` // Device OS version + Tags []string `json:"tags,omitempty"` // [Deprecated] + UpperNode string `json:"upperNode,omitempty"` // ID of the start node + UserID string `json:"userId,omitempty"` // ID of the host + VLANID string `json:"vlanId,omitempty"` // VLAN ID + X *int `json:"x,omitempty"` // [Deprecated] Please refer to customParam.x + Y *int `json:"y,omitempty"` // [Deprecated] Please refer to customerParam.y } type ResponseTopologyGetL3TopologyDetailsResponseNodesAdditionalInfo interface{} type ResponseTopologyGetL3TopologyDetailsResponseNodesCustomParam struct { - ID string `json:"id,omitempty"` // - Label string `json:"label,omitempty"` // - ParentNodeID string `json:"parentNodeId,omitempty"` // - X *int `json:"x,omitempty"` // - Y *int `json:"y,omitempty"` // + ID string `json:"id,omitempty"` // [Deprecated] Please refer to nodes.id + Label string `json:"label,omitempty"` // Label of the node + ParentNodeID string `json:"parentNodeId,omitempty"` // Id of the parent node + X *int `json:"x,omitempty"` // X coordinate for this node in the topology view + Y *int `json:"y,omitempty"` // Y coordinate for this node in the topology view } type ResponseTopologyGetPhysicalTopology struct { Response *ResponseTopologyGetPhysicalTopologyResponse `json:"response,omitempty"` // Version string `json:"version,omitempty"` // } type ResponseTopologyGetPhysicalTopologyResponse struct { - ID string `json:"id,omitempty"` // + ID string `json:"id,omitempty"` // [Deprecated] Links *[]ResponseTopologyGetPhysicalTopologyResponseLinks `json:"links,omitempty"` // Nodes *[]ResponseTopologyGetPhysicalTopologyResponseNodes `json:"nodes,omitempty"` // } type ResponseTopologyGetPhysicalTopologyResponseLinks struct { - AdditionalInfo *ResponseTopologyGetPhysicalTopologyResponseLinksAdditionalInfo `json:"additionalInfo,omitempty"` // - EndPortID string `json:"endPortID,omitempty"` // - EndPortIPv4Address string `json:"endPortIpv4Address,omitempty"` // - EndPortIPv4Mask string `json:"endPortIpv4Mask,omitempty"` // - EndPortName string `json:"endPortName,omitempty"` // - EndPortSpeed string `json:"endPortSpeed,omitempty"` // - GreyOut *bool `json:"greyOut,omitempty"` // - ID string `json:"id,omitempty"` // - LinkStatus string `json:"linkStatus,omitempty"` // - Source string `json:"source,omitempty"` // - StartPortID string `json:"startPortID,omitempty"` // - StartPortIPv4Address string `json:"startPortIpv4Address,omitempty"` // - StartPortIPv4Mask string `json:"startPortIpv4Mask,omitempty"` // - StartPortName string `json:"startPortName,omitempty"` // - StartPortSpeed string `json:"startPortSpeed,omitempty"` // - Tag string `json:"tag,omitempty"` // - Target string `json:"target,omitempty"` // + AdditionalInfo *ResponseTopologyGetPhysicalTopologyResponseLinksAdditionalInfo `json:"additionalInfo,omitempty"` // Additional information about the link + EndPortID string `json:"endPortID,omitempty"` // Device port ID corresponding to the end device + EndPortIPv4Address string `json:"endPortIpv4Address,omitempty"` // Interface port IPv4 address corresponding to the end device + EndPortIPv4Mask string `json:"endPortIpv4Mask,omitempty"` // Interface port IPv4 mask corresponding to the end device + EndPortName string `json:"endPortName,omitempty"` // Interface port name corresponding to the end device + EndPortSpeed string `json:"endPortSpeed,omitempty"` // Interface port speed corresponding to end device + GreyOut *bool `json:"greyOut,omitempty"` // Indicates if the link is greyed out + ID string `json:"id,omitempty"` // Id of the link + LinkStatus string `json:"linkStatus,omitempty"` // Indicates whether link is up or down + Source string `json:"source,omitempty"` // Device ID corresponding to the source device + StartPortID string `json:"startPortID,omitempty"` // Device port ID corresponding to start device + StartPortIPv4Address string `json:"startPortIpv4Address,omitempty"` // Interface port IPv4 address corresponding to start device + StartPortIPv4Mask string `json:"startPortIpv4Mask,omitempty"` // Interface port IPv4 mask corresponding to start device + StartPortName string `json:"startPortName,omitempty"` // Interface port name corresponding to start device + StartPortSpeed string `json:"startPortSpeed,omitempty"` // Interface port speed corresponding to start device + Tag string `json:"tag,omitempty"` // [Deprecated] + Target string `json:"target,omitempty"` // Device ID corresponding to the target device } type ResponseTopologyGetPhysicalTopologyResponseLinksAdditionalInfo interface{} type ResponseTopologyGetPhysicalTopologyResponseNodes struct { - ACLApplied *bool `json:"aclApplied,omitempty"` // - AdditionalInfo *ResponseTopologyGetPhysicalTopologyResponseNodesAdditionalInfo `json:"additionalInfo,omitempty"` // - CustomParam *ResponseTopologyGetPhysicalTopologyResponseNodesCustomParam `json:"customParam,omitempty"` // - DataPathID string `json:"dataPathId,omitempty"` // - DeviceType string `json:"deviceType,omitempty"` // - Family string `json:"family,omitempty"` // - Fixed *bool `json:"fixed,omitempty"` // - GreyOut *bool `json:"greyOut,omitempty"` // - ID string `json:"id,omitempty"` // - IP string `json:"ip,omitempty"` // - Label string `json:"label,omitempty"` // - NetworkType string `json:"networkType,omitempty"` // - NodeType string `json:"nodeType,omitempty"` // - Order *int `json:"order,omitempty"` // - OsType string `json:"osType,omitempty"` // - PlatformID string `json:"platformId,omitempty"` // - Role string `json:"role,omitempty"` // - RoleSource string `json:"roleSource,omitempty"` // - SoftwareVersion string `json:"softwareVersion,omitempty"` // - Tags []string `json:"tags,omitempty"` // - UpperNode string `json:"upperNode,omitempty"` // - UserID string `json:"userId,omitempty"` // - VLANID string `json:"vlanId,omitempty"` // - X *int `json:"x,omitempty"` // - Y *int `json:"y,omitempty"` // + ACLApplied *bool `json:"aclApplied,omitempty"` // Indicates if the Access Control List (ACL) is applied on the device + AdditionalInfo *ResponseTopologyGetPhysicalTopologyResponseNodesAdditionalInfo `json:"additionalInfo,omitempty"` // Additional information about the node + CustomParam *ResponseTopologyGetPhysicalTopologyResponseNodesCustomParam `json:"customParam,omitempty"` // + ConnectedDeviceID string `json:"connectedDeviceId,omitempty"` // ID of the connected device when the nodeType is HOST + DataPathID string `json:"dataPathId,omitempty"` // ID of the path between devices + DeviceType string `json:"deviceType,omitempty"` // Type of the device. + DeviceSeries string `json:"deviceSeries,omitempty"` // The series of the device + Family string `json:"family,omitempty"` // The product family of the device + Fixed *bool `json:"fixed,omitempty"` // Boolean value indicating whether the position is fixed or will use auto layout + GreyOut *bool `json:"greyOut,omitempty"` // Boolean value indicating whether the node is active for the topology view. + ID string `json:"id,omitempty"` // Unique identifier for the device + IP string `json:"ip,omitempty"` // IP address of the device + Label string `json:"label,omitempty"` // Label of the node, typically the hostname of the device + NetworkType string `json:"networkType,omitempty"` // Type of the network + NodeType string `json:"nodeType,omitempty"` // Type of the node can be 'device' or 'HOST' + Order *int `json:"order,omitempty"` // Device order by link number + OsType string `json:"osType,omitempty"` // OS type of the device + PlatformID string `json:"platformId,omitempty"` // Platform description of the device + Role string `json:"role,omitempty"` // Role of the device + RoleSource string `json:"roleSource,omitempty"` // Indicates whether the role is assigned manually or automatically + SoftwareVersion string `json:"softwareVersion,omitempty"` // Device OS version + Tags []string `json:"tags,omitempty"` // [Deprecated] + UpperNode string `json:"upperNode,omitempty"` // ID of the start node + UserID string `json:"userId,omitempty"` // ID of the host + VLANID string `json:"vlanId,omitempty"` // VLAN ID + X *int `json:"x,omitempty"` // [Deprecated] Please refer to customParam.x + Y *int `json:"y,omitempty"` // [Deprecated] Please refer to customerParam.y } type ResponseTopologyGetPhysicalTopologyResponseNodesAdditionalInfo interface{} type ResponseTopologyGetPhysicalTopologyResponseNodesCustomParam struct { - ID string `json:"id,omitempty"` // - Label string `json:"label,omitempty"` // - ParentNodeID string `json:"parentNodeId,omitempty"` // - X *int `json:"x,omitempty"` // - Y *int `json:"y,omitempty"` // + ID string `json:"id,omitempty"` // [Deprecated] Please refer to nodes.id + Label string `json:"label,omitempty"` // Label of the node + ParentNodeID string `json:"parentNodeId,omitempty"` // Id of the parent node + X *int `json:"x,omitempty"` // X coordinate for this node in the topology view + Y *int `json:"y,omitempty"` // Y coordinate for this node in the topology view } type ResponseTopologyGetSiteTopology struct { Response *ResponseTopologyGetSiteTopologyResponse `json:"response,omitempty"` // @@ -258,29 +275,29 @@ type ResponseTopologyGetSiteTopologyResponse struct { Sites *[]ResponseTopologyGetSiteTopologyResponseSites `json:"sites,omitempty"` // } type ResponseTopologyGetSiteTopologyResponseSites struct { - DisplayName string `json:"displayName,omitempty"` // - GroupNameHierarchy string `json:"groupNameHierarchy,omitempty"` // - ID string `json:"id,omitempty"` // - Latitude string `json:"latitude,omitempty"` // - LocationAddress string `json:"locationAddress,omitempty"` // - LocationCountry string `json:"locationCountry,omitempty"` // - LocationType string `json:"locationType,omitempty"` // - Longitude string `json:"longitude,omitempty"` // - Name string `json:"name,omitempty"` // - ParentID string `json:"parentId,omitempty"` // + DisplayName string `json:"displayName,omitempty"` // Group id of the site + GroupNameHierarchy string `json:"groupNameHierarchy,omitempty"` // Hierarchy of the site names from the root site to the current site. Each site name is separated by a '/'. Eg. 'Global/Site1/Building1/Floor1' + ID string `json:"id,omitempty"` // Unique identifier of the site + Latitude string `json:"latitude,omitempty"` // Latitude of the site + LocationAddress string `json:"locationAddress,omitempty"` // Address of the site + LocationCountry string `json:"locationCountry,omitempty"` // Country corresponding to the address of the site + LocationType string `json:"locationType,omitempty"` // Type of site, eg. 'building', 'area' or 'floor' + Longitude string `json:"longitude,omitempty"` // Longitude of the site + Name string `json:"name,omitempty"` // Name of the site + ParentID string `json:"parentId,omitempty"` // Unique identifier of the parent site } type ResponseTopologyGetVLANDetails struct { - Response []string `json:"response,omitempty"` // + Response []string `json:"response,omitempty"` // Lists of all available VLAN names Version string `json:"version,omitempty"` // } -//GetOverallNetworkHealth Get Overall Network Health - ca91-da84-401a-bba1 +//GetOverallNetworkHealth Get Overall Network Health - 7997-6a34-4409-bfbb /* Returns Overall Network Health information by Device category (Access, Distribution, Core, Router, Wireless) for any given point of time @param GetOverallNetworkHealthQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-overall-network-health +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-overall-network-health-v1 */ func (s *TopologyService) GetOverallNetworkHealth(GetOverallNetworkHealthQueryParams *GetOverallNetworkHealthQueryParams) (*ResponseTopologyGetOverallNetworkHealth, *resty.Response, error) { path := "/dna/intent/api/v1/network-health" @@ -318,7 +335,7 @@ func (s *TopologyService) GetOverallNetworkHealth(GetOverallNetworkHealthQueryPa @param vlanID vlanID path parameter. Vlan Name for e.g Vlan1, Vlan23 etc -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-topology-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-topology-details-v1 */ func (s *TopologyService) GetTopologyDetails(vlanID string) (*ResponseTopologyGetTopologyDetails, *resty.Response, error) { path := "/dna/intent/api/v1/topology/l2/{vlanID}" @@ -355,7 +372,7 @@ func (s *TopologyService) GetTopologyDetails(vlanID string) (*ResponseTopologyGe @param topologyType topologyType path parameter. Type of topology(OSPF,ISIS,etc) -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-l3-topology-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-l3-topology-details-v1 */ func (s *TopologyService) GetL3TopologyDetails(topologyType string) (*ResponseTopologyGetL3TopologyDetails, *resty.Response, error) { path := "/dna/intent/api/v1/topology/l3/{topologyType}" @@ -391,7 +408,7 @@ func (s *TopologyService) GetL3TopologyDetails(topologyType string) (*ResponseTo @param GetPhysicalTopologyQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-physical-topology +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-physical-topology-v1 */ func (s *TopologyService) GetPhysicalTopology(GetPhysicalTopologyQueryParams *GetPhysicalTopologyQueryParams) (*ResponseTopologyGetPhysicalTopology, *resty.Response, error) { path := "/dna/intent/api/v1/topology/physical-topology" @@ -427,7 +444,7 @@ func (s *TopologyService) GetPhysicalTopology(GetPhysicalTopologyQueryParams *Ge -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-topology +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-site-topology-v1 */ func (s *TopologyService) GetSiteTopology() (*ResponseTopologyGetSiteTopology, *resty.Response, error) { path := "/dna/intent/api/v1/topology/site-topology" @@ -457,11 +474,11 @@ func (s *TopologyService) GetSiteTopology() (*ResponseTopologyGetSiteTopology, * } //GetVLANDetails Get VLAN details - 6284-db46-49aa-8d31 -/* Returns the list of VLAN names +/* Returns the list of VLAN names that are involved in a loop as identified by the Spanning Tree Protocol -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-vlan-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-vlan-details-v1 */ func (s *TopologyService) GetVLANDetails() (*ResponseTopologyGetVLANDetails, *resty.Response, error) { path := "/dna/intent/api/v1/topology/vlan/vlan-names" diff --git a/sdk/user_and_roles.go b/sdk/user_and_roles.go index 88c2856..548ea76 100644 --- a/sdk/user_and_roles.go +++ b/sdk/user_and_roles.go @@ -3,6 +3,7 @@ package dnac import ( "fmt" "net/http" + "strings" "github.com/go-resty/resty/v2" "github.com/google/go-querystring/query" @@ -10,17 +11,32 @@ import ( type UserandRolesService service -type GetRolesApIHeaderParams struct { - InvokeSource string `url:"invokeSource,omitempty"` //Expects type string. The source that invoke this API +type GetRolesAPIHeaderParams struct { + InvokeSource string `url:"invokeSource,omitempty"` //Expects type string. The source that invokes this API. The value of this header must be set to "external". } -type GetUsersApIQueryParams struct { - InvokeSource string `url:"invokeSource,omitempty"` //The source that invokes this API +type GetUsersAPIQueryParams struct { + InvokeSource string `url:"invokeSource,omitempty"` //The source that invokes this API. The value of this query parameter must be set to "external". + AuthSource string `url:"authSource,omitempty"` //The source that authenticates the user. The value of this query parameter can be set to "internal" or "external". If not provided, then all users will be returned in the response. } -type GetExternalAuthenticationServersApIQueryParams struct { - InvokeSource string `url:"invokeSource,omitempty"` //The source that invokes this API +type GetExternalAuthenticationServersAPIQueryParams struct { + InvokeSource string `url:"invokeSource,omitempty"` //The source that invokes this API. The value of this query parameter must be set to "external". } -type ResponseUserandRolesGetPermissionsApI struct { +type ResponseUserandRolesAddRoleAPI struct { + Response *ResponseUserandRolesAddRoleAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesAddRoleAPIResponse struct { + RoleID string `json:"roleId,omitempty"` // Role Id + Message string `json:"message,omitempty"` // Message +} +type ResponseUserandRolesUpdateRoleAPI struct { + Response *ResponseUserandRolesUpdateRoleAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesUpdateRoleAPIResponse struct { + RoleID string `json:"roleId,omitempty"` // Role Id + Message string `json:"message,omitempty"` // Message +} +type ResponseUserandRolesGetPermissionsAPI struct { Response *ResponseUserandRolesGetPermissionsAPIResponse `json:"response,omitempty"` // } type ResponseUserandRolesGetPermissionsAPIResponse struct { @@ -32,7 +48,13 @@ type ResponseUserandRolesGetPermissionsAPIResponseResourceTypes struct { Description string `json:"description,omitempty"` // Description DefaultPermission string `json:"defaultPermission,omitempty"` // Default permission } -type ResponseUserandRolesGetRolesApI struct { +type ResponseUserandRolesDeleteRoleAPI struct { + Response *ResponseUserandRolesDeleteRoleAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesDeleteRoleAPIResponse struct { + Message string `json:"message,omitempty"` // Message +} +type ResponseUserandRolesGetRolesAPI struct { Response *ResponseUserandRolesGetRolesAPIResponse `json:"response,omitempty"` // } type ResponseUserandRolesGetRolesAPIResponse struct { @@ -55,7 +77,7 @@ type ResponseUserandRolesGetRolesAPIResponseRolesMeta struct { Created string `json:"created,omitempty"` // The timestamp that the resource type was created LastModified string `json:"lastModified,omitempty"` // The latestest timestamp that the resource type was updated } -type ResponseUserandRolesGetUsersApI struct { +type ResponseUserandRolesGetUsersAPI struct { Response *ResponseUserandRolesGetUsersAPIResponse `json:"response,omitempty"` // } type ResponseUserandRolesGetUsersAPIResponse struct { @@ -71,20 +93,41 @@ type ResponseUserandRolesGetUsersAPIResponseUsers struct { Email string `json:"email,omitempty"` // Email Username string `json:"username,omitempty"` // Username } -type ResponseUserandRolesAddUserApI struct { +type ResponseUserandRolesAddUserAPI struct { Response *ResponseUserandRolesAddUserAPIResponse `json:"response,omitempty"` // } type ResponseUserandRolesAddUserAPIResponse struct { Message string `json:"message,omitempty"` // Message UserID string `json:"userId,omitempty"` // User Id } -type ResponseUserandRolesUpdateUserApI struct { +type ResponseUserandRolesUpdateUserAPI struct { Response *ResponseUserandRolesUpdateUserAPIResponse `json:"response,omitempty"` // } type ResponseUserandRolesUpdateUserAPIResponse struct { Message string `json:"message,omitempty"` // Message } -type ResponseUserandRolesGetExternalAuthenticationServersApI struct { +type ResponseUserandRolesDeleteUserAPI struct { + Response *ResponseUserandRolesDeleteUserAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesDeleteUserAPIResponse struct { + Message string `json:"message,omitempty"` // Message +} +type ResponseUserandRolesGetExternalAuthenticationSettingAPI struct { + Response *ResponseUserandRolesGetExternalAuthenticationSettingAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesGetExternalAuthenticationSettingAPIResponse struct { + ExternalAuthenticationFlag *[]ResponseUserandRolesGetExternalAuthenticationSettingAPIResponseExternalAuthenticationFlag `json:"external-authentication-flag,omitempty"` // +} +type ResponseUserandRolesGetExternalAuthenticationSettingAPIResponseExternalAuthenticationFlag struct { + Enabled *bool `json:"enabled,omitempty"` // External Authentication is enabled/disabled. +} +type ResponseUserandRolesManageExternalAuthenticationSettingAPI struct { + Response *ResponseUserandRolesManageExternalAuthenticationSettingAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesManageExternalAuthenticationSettingAPIResponse struct { + Message string `json:"message,omitempty"` // Message +} +type ResponseUserandRolesGetExternalAuthenticationServersAPI struct { Response *ResponseUserandRolesGetExternalAuthenticationServersAPIResponse `json:"response,omitempty"` // } type ResponseUserandRolesGetExternalAuthenticationServersAPIResponse struct { @@ -102,7 +145,46 @@ type ResponseUserandRolesGetExternalAuthenticationServersAPIResponseAAAServers s AAAAttribute string `json:"aaaAttribute,omitempty"` // Aaa Attribute Role string `json:"role,omitempty"` // Role of AAA server, primary or secondary server } -type RequestUserandRolesAddUserApI struct { +type ResponseUserandRolesAddAndUpdateAAAAttributeAPI struct { + Response *ResponseUserandRolesAddAndUpdateAAAAttributeAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesAddAndUpdateAAAAttributeAPIResponse struct { + Message string `json:"message,omitempty"` // Message +} +type ResponseUserandRolesDeleteAAAAttributeAPI struct { + Response *ResponseUserandRolesDeleteAAAAttributeAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesDeleteAAAAttributeAPIResponse struct { + Message string `json:"message,omitempty"` // Message +} +type ResponseUserandRolesGetAAAAttributeAPI struct { + Response *ResponseUserandRolesGetAAAAttributeAPIResponse `json:"response,omitempty"` // +} +type ResponseUserandRolesGetAAAAttributeAPIResponse struct { + AAAAttributes *[]ResponseUserandRolesGetAAAAttributeAPIResponseAAAAttributes `json:"aaa-attributes,omitempty"` // +} +type ResponseUserandRolesGetAAAAttributeAPIResponseAAAAttributes struct { + AttributeName string `json:"attributeName,omitempty"` // Value of the custom AAA attribute name +} +type RequestUserandRolesAddRoleAPI struct { + Role string `json:"role,omitempty"` // Name of the role + Description string `json:"description,omitempty"` // Description of role + ResourceTypes *[]RequestUserandRolesAddRoleAPIResourceTypes `json:"resourceTypes,omitempty"` // +} +type RequestUserandRolesAddRoleAPIResourceTypes struct { + Type string `json:"type,omitempty"` // Name of the application in Cisco DNA Center System + Operations []string `json:"operations,omitempty"` // List of operations allowed for the application. Possible values are "gRead", "gCreate", "gUpdate", "gRemove", or some combination of these. +} +type RequestUserandRolesUpdateRoleAPI struct { + RoleID string `json:"roleId,omitempty"` // Id of the role + Description string `json:"description,omitempty"` // Description of the role + ResourceTypes *[]RequestUserandRolesUpdateRoleAPIResourceTypes `json:"resourceTypes,omitempty"` // +} +type RequestUserandRolesUpdateRoleAPIResourceTypes struct { + Type string `json:"type,omitempty"` // Name of application in Cisco DNA Center System + Operations []string `json:"operations,omitempty"` // List of operations allowed for the application. Possible values are "gRead", "gCreate", "gUpdate", "gRemove", or some combination of these. +} +type RequestUserandRolesAddUserAPI struct { FirstName string `json:"firstName,omitempty"` // First Name LastName string `json:"lastName,omitempty"` // Last Name Username string `json:"username,omitempty"` // Username @@ -110,7 +192,7 @@ type RequestUserandRolesAddUserApI struct { Email string `json:"email,omitempty"` // Email RoleList []string `json:"roleList,omitempty"` // Role id list } -type RequestUserandRolesUpdateUserApI struct { +type RequestUserandRolesUpdateUserAPI struct { FirstName string `json:"firstName,omitempty"` // firstName should be set if the original value is not empty LastName string `json:"lastName,omitempty"` // lastName should be set if the original value is not empty Email string `json:"email,omitempty"` // email should be set if the original value is not empty @@ -118,21 +200,27 @@ type RequestUserandRolesUpdateUserApI struct { UserID string `json:"userId,omitempty"` // User Id RoleList []string `json:"roleList,omitempty"` // Role id list } +type RequestUserandRolesManageExternalAuthenticationSettingAPI struct { + Enable *bool `json:"enable,omitempty"` // Enable/disable External Authentication. +} +type RequestUserandRolesAddAndUpdateAAAAttributeAPI struct { + AttributeName string `json:"attributeName,omitempty"` // name of the custom AAA attribute. +} -//GetPermissionsApI Get permissions API - 8a9c-6885-455b-a2db -/* Get permissions for a role from Cisco DNA Center System +//GetPermissionsAPI Get permissions API - 8a9c-6885-455b-a2db +/* Get permissions for a role from Cisco DNA Center System. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-permissions-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-permissions-api-v1 */ -func (s *UserandRolesService) GetPermissionsApI() (*ResponseUserandRolesGetPermissionsApI, *resty.Response, error) { +func (s *UserandRolesService) GetPermissionsAPI() (*ResponseUserandRolesGetPermissionsAPI, *resty.Response, error) { path := "/dna/system/api/v1/role/permissions" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetResult(&ResponseUserandRolesGetPermissionsApI{}). + SetResult(&ResponseUserandRolesGetPermissionsAPI{}). SetError(&Error). Get(path) @@ -143,25 +231,25 @@ func (s *UserandRolesService) GetPermissionsApI() (*ResponseUserandRolesGetPermi if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetPermissionsApI() + return s.GetPermissionsAPI() } return nil, response, fmt.Errorf("error with operation GetPermissionsApi") } - result := response.Result().(*ResponseUserandRolesGetPermissionsApI) + result := response.Result().(*ResponseUserandRolesGetPermissionsAPI) return result, response, err } -//GetRolesApI Get roles API - 7c86-da3f-4b08-8593 -/* Get all roles for the Cisco DNA Center system +//GetRolesAPI Get roles API - 7c86-da3f-4b08-8593 +/* Get all roles for the Cisco DNA Center System. -@param GetRolesApIHeaderParams Custom header parameters +@param GetRolesAPIHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-roles-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-roles-api-v1 */ -func (s *UserandRolesService) GetRolesApI(GetRolesApIHeaderParams *GetRolesApIHeaderParams) (*ResponseUserandRolesGetRolesApI, *resty.Response, error) { +func (s *UserandRolesService) GetRolesAPI(GetRolesAPIHeaderParams *GetRolesAPIHeaderParams) (*ResponseUserandRolesGetRolesAPI, *resty.Response, error) { path := "/dna/system/api/v1/roles" var response *resty.Response @@ -170,16 +258,16 @@ func (s *UserandRolesService) GetRolesApI(GetRolesApIHeaderParams *GetRolesApIHe SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json") - if GetRolesApIHeaderParams != nil { + if GetRolesAPIHeaderParams != nil { - if GetRolesApIHeaderParams.InvokeSource != "" { - clientRequest = clientRequest.SetHeader("invokeSource", GetRolesApIHeaderParams.InvokeSource) + if GetRolesAPIHeaderParams.InvokeSource != "" { + clientRequest = clientRequest.SetHeader("invokeSource", GetRolesAPIHeaderParams.InvokeSource) } } response, err = clientRequest. - SetResult(&ResponseUserandRolesGetRolesApI{}). + SetResult(&ResponseUserandRolesGetRolesAPI{}). SetError(&Error). Get(path) @@ -190,33 +278,33 @@ func (s *UserandRolesService) GetRolesApI(GetRolesApIHeaderParams *GetRolesApIHe if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetRolesApI(GetRolesApIHeaderParams) + return s.GetRolesAPI(GetRolesAPIHeaderParams) } return nil, response, fmt.Errorf("error with operation GetRolesApi") } - result := response.Result().(*ResponseUserandRolesGetRolesApI) + result := response.Result().(*ResponseUserandRolesGetRolesAPI) return result, response, err } -//GetUsersApI Get users API - 918c-89fa-4a98-a528 -/* Get all users for the Cisco DNA Center system +//GetUsersAPI Get users API - 918c-89fa-4a98-a528 +/* Get all users for the Cisco DNA Center System. -@param GetUsersApIQueryParams Filtering parameter +@param GetUsersAPIQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-users-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-users-api-v1 */ -func (s *UserandRolesService) GetUsersApI(GetUsersApIQueryParams *GetUsersApIQueryParams) (*ResponseUserandRolesGetUsersApI, *resty.Response, error) { +func (s *UserandRolesService) GetUsersAPI(GetUsersAPIQueryParams *GetUsersAPIQueryParams) (*ResponseUserandRolesGetUsersAPI, *resty.Response, error) { path := "/dna/system/api/v1/user" - queryString, _ := query.Values(GetUsersApIQueryParams) + queryString, _ := query.Values(GetUsersAPIQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseUserandRolesGetUsersApI{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseUserandRolesGetUsersAPI{}). SetError(&Error). Get(path) @@ -227,33 +315,67 @@ func (s *UserandRolesService) GetUsersApI(GetUsersApIQueryParams *GetUsersApIQue if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetUsersApI(GetUsersApIQueryParams) + return s.GetUsersAPI(GetUsersAPIQueryParams) } return nil, response, fmt.Errorf("error with operation GetUsersApi") } - result := response.Result().(*ResponseUserandRolesGetUsersApI) + result := response.Result().(*ResponseUserandRolesGetUsersAPI) return result, response, err } -//GetExternalAuthenticationServersApI Get external authentication servers API - 9dbd-0b01-4758-bde4 -/* Get external users authentication servers +//GetExternalAuthenticationSettingAPI Get External Authentication Setting API - e0a8-aa75-49cb-815c +/* Get the External Authentication setting. -@param GetExternalAuthenticationServersApIQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-external-authentication-servers-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-external-authentication-setting-api-v1 */ -func (s *UserandRolesService) GetExternalAuthenticationServersApI(GetExternalAuthenticationServersApIQueryParams *GetExternalAuthenticationServersApIQueryParams) (*ResponseUserandRolesGetExternalAuthenticationServersApI, *resty.Response, error) { +func (s *UserandRolesService) GetExternalAuthenticationSettingAPI() (*ResponseUserandRolesGetExternalAuthenticationSettingAPI, *resty.Response, error) { + path := "/dna/system/api/v1/users/external-authentication" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseUserandRolesGetExternalAuthenticationSettingAPI{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetExternalAuthenticationSettingAPI() + } + return nil, response, fmt.Errorf("error with operation GetExternalAuthenticationSettingApi") + } + + result := response.Result().(*ResponseUserandRolesGetExternalAuthenticationSettingAPI) + return result, response, err + +} + +//GetExternalAuthenticationServersAPI Get external authentication servers API - 9dbd-0b01-4758-bde4 +/* Get external users authentication servers. + + +@param GetExternalAuthenticationServersAPIQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-external-authentication-servers-api-v1 +*/ +func (s *UserandRolesService) GetExternalAuthenticationServersAPI(GetExternalAuthenticationServersAPIQueryParams *GetExternalAuthenticationServersAPIQueryParams) (*ResponseUserandRolesGetExternalAuthenticationServersAPI, *resty.Response, error) { path := "/dna/system/api/v1/users/external-servers" - queryString, _ := query.Values(GetExternalAuthenticationServersApIQueryParams) + queryString, _ := query.Values(GetExternalAuthenticationServersAPIQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetQueryString(queryString.Encode()).SetResult(&ResponseUserandRolesGetExternalAuthenticationServersApI{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseUserandRolesGetExternalAuthenticationServersAPI{}). SetError(&Error). Get(path) @@ -264,31 +386,102 @@ func (s *UserandRolesService) GetExternalAuthenticationServersApI(GetExternalAut if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.GetExternalAuthenticationServersApI(GetExternalAuthenticationServersApIQueryParams) + return s.GetExternalAuthenticationServersAPI(GetExternalAuthenticationServersAPIQueryParams) } return nil, response, fmt.Errorf("error with operation GetExternalAuthenticationServersApi") } - result := response.Result().(*ResponseUserandRolesGetExternalAuthenticationServersApI) + result := response.Result().(*ResponseUserandRolesGetExternalAuthenticationServersAPI) return result, response, err } -//AddUserApI Add user API - 6c9a-09c4-4a39-9e2b -/* Add a new user for Cisco DNA Center system +//GetAAAAttributeAPI Get AAA Attribute API - 2eb5-ea84-4d29-bf8b +/* Get the current value of the custom AAA attribute. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-user-api +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-a-a-a-attribute-api-v1 */ -func (s *UserandRolesService) AddUserApI(requestUserandRolesAddUserApI *RequestUserandRolesAddUserApI) (*ResponseUserandRolesAddUserApI, *resty.Response, error) { +func (s *UserandRolesService) GetAAAAttributeAPI() (*ResponseUserandRolesGetAAAAttributeAPI, *resty.Response, error) { + path := "/dna/system/api/v1/users/external-servers/aaa-attribute" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseUserandRolesGetAAAAttributeAPI{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAAAAttributeAPI() + } + return nil, response, fmt.Errorf("error with operation GetAAAAttributeApi") + } + + result := response.Result().(*ResponseUserandRolesGetAAAAttributeAPI) + return result, response, err + +} + +//AddRoleAPI Add role API - b697-0a1e-46a9-b542 +/* Add a new role in Cisco DNA Center System. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-role-api-v1 +*/ +func (s *UserandRolesService) AddRoleAPI(requestUserandRolesAddRoleAPI *RequestUserandRolesAddRoleAPI) (*ResponseUserandRolesAddRoleAPI, *resty.Response, error) { + path := "/dna/system/api/v1/role" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestUserandRolesAddRoleAPI). + SetResult(&ResponseUserandRolesAddRoleAPI{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddRoleAPI(requestUserandRolesAddRoleAPI) + } + + return nil, response, fmt.Errorf("error with operation AddRoleApi") + } + + result := response.Result().(*ResponseUserandRolesAddRoleAPI) + return result, response, err + +} + +//AddUserAPI Add user API - 6c9a-09c4-4a39-9e2b +/* Add a new user for Cisco DNA Center System. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-user-api-v1 +*/ +func (s *UserandRolesService) AddUserAPI(requestUserandRolesAddUserAPI *RequestUserandRolesAddUserAPI) (*ResponseUserandRolesAddUserAPI, *resty.Response, error) { path := "/dna/system/api/v1/user" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestUserandRolesAddUserApI). - SetResult(&ResponseUserandRolesAddUserApI{}). + SetBody(requestUserandRolesAddUserAPI). + SetResult(&ResponseUserandRolesAddUserAPI{}). SetError(&Error). Post(path) @@ -300,30 +493,139 @@ func (s *UserandRolesService) AddUserApI(requestUserandRolesAddUserApI *RequestU if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.AddUserApI(requestUserandRolesAddUserApI) + return s.AddUserAPI(requestUserandRolesAddUserAPI) } return nil, response, fmt.Errorf("error with operation AddUserApi") } - result := response.Result().(*ResponseUserandRolesAddUserApI) + result := response.Result().(*ResponseUserandRolesAddUserAPI) + return result, response, err + +} + +//ManageExternalAuthenticationSettingAPI Manage External Authentication Setting API - e09c-1806-48da-bb40 +/* Enable or disable external authentication on Cisco DNA Center System. +Please find the Administrator Guide for your particular release from the list linked below and follow the steps required to enable external authentication before trying to do so from this API. +https://www.cisco.com/c/en/us/support/cloud-systems-management/dna-center/products-maintenance-guides-list.html + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!manage-external-authentication-setting-api-v1 +*/ +func (s *UserandRolesService) ManageExternalAuthenticationSettingAPI(requestUserandRolesManageExternalAuthenticationSettingAPI *RequestUserandRolesManageExternalAuthenticationSettingAPI) (*ResponseUserandRolesManageExternalAuthenticationSettingAPI, *resty.Response, error) { + path := "/dna/system/api/v1/users/external-authentication" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestUserandRolesManageExternalAuthenticationSettingAPI). + SetResult(&ResponseUserandRolesManageExternalAuthenticationSettingAPI{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ManageExternalAuthenticationSettingAPI(requestUserandRolesManageExternalAuthenticationSettingAPI) + } + + return nil, response, fmt.Errorf("error with operation ManageExternalAuthenticationSettingApi") + } + + result := response.Result().(*ResponseUserandRolesManageExternalAuthenticationSettingAPI) + return result, response, err + +} + +//AddAndUpdateAAAAttributeAPI Add and Update AAA Attribute API - 808a-0aa0-491b-891f +/* Add or update the custom AAA attribute for external authentication. Note that if you decide not to set the custom AAA attribute, a default AAA attribute will be used for authentication based on the protocol supported by your server. For TACACS servers it will be "cisco-av-pair" and for RADIUS servers it will be "Cisco-AVPair". + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!add-and-update-a-a-a-attribute-api-v1 +*/ +func (s *UserandRolesService) AddAndUpdateAAAAttributeAPI(requestUserandRolesAddAndUpdateAAAAttributeAPI *RequestUserandRolesAddAndUpdateAAAAttributeAPI) (*ResponseUserandRolesAddAndUpdateAAAAttributeAPI, *resty.Response, error) { + path := "/dna/system/api/v1/users/external-servers/aaa-attribute" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestUserandRolesAddAndUpdateAAAAttributeAPI). + SetResult(&ResponseUserandRolesAddAndUpdateAAAAttributeAPI{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.AddAndUpdateAAAAttributeAPI(requestUserandRolesAddAndUpdateAAAAttributeAPI) + } + + return nil, response, fmt.Errorf("error with operation AddAndUpdateAAAAttributeApi") + } + + result := response.Result().(*ResponseUserandRolesAddAndUpdateAAAAttributeAPI) return result, response, err } -//UpdateUserApI Update user API - f596-6adc-492b-a2ff -/* Update a user for Cisco DNA Center system +//UpdateRoleAPI Update role API - 539c-ea73-400b-bf20 +/* Update a role in Cisco DNA Center System. */ -func (s *UserandRolesService) UpdateUserApI(requestUserandRolesUpdateUserApI *RequestUserandRolesUpdateUserApI) (*ResponseUserandRolesUpdateUserApI, *resty.Response, error) { +func (s *UserandRolesService) UpdateRoleAPI(requestUserandRolesUpdateRoleAPI *RequestUserandRolesUpdateRoleAPI) (*ResponseUserandRolesUpdateRoleAPI, *resty.Response, error) { + path := "/dna/system/api/v1/role" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestUserandRolesUpdateRoleAPI). + SetResult(&ResponseUserandRolesUpdateRoleAPI{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateRoleAPI(requestUserandRolesUpdateRoleAPI) + } + return nil, response, fmt.Errorf("error with operation UpdateRoleApi") + } + + result := response.Result().(*ResponseUserandRolesUpdateRoleAPI) + return result, response, err + +} + +//UpdateUserAPI Update user API - f596-6adc-492b-a2ff +/* Update a user for Cisco DNA Center System. + + + */ +func (s *UserandRolesService) UpdateUserAPI(requestUserandRolesUpdateUserAPI *RequestUserandRolesUpdateUserAPI) (*ResponseUserandRolesUpdateUserAPI, *resty.Response, error) { path := "/dna/system/api/v1/user" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestUserandRolesUpdateUserApI). - SetResult(&ResponseUserandRolesUpdateUserApI{}). + SetBody(requestUserandRolesUpdateUserAPI). + SetResult(&ResponseUserandRolesUpdateUserAPI{}). SetError(&Error). Put(path) @@ -334,12 +636,124 @@ func (s *UserandRolesService) UpdateUserApI(requestUserandRolesUpdateUserApI *Re if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.UpdateUserApI(requestUserandRolesUpdateUserApI) + return s.UpdateUserAPI(requestUserandRolesUpdateUserAPI) } return nil, response, fmt.Errorf("error with operation UpdateUserApi") } - result := response.Result().(*ResponseUserandRolesUpdateUserApI) + result := response.Result().(*ResponseUserandRolesUpdateUserAPI) + return result, response, err + +} + +//DeleteRoleAPI Delete role API - d3b9-8bdc-472b-b236 +/* Delete a role in Cisco DNA Center System + + +@param roleID roleId path parameter. The Id of the role to be deleted + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-role-api-v1 +*/ +func (s *UserandRolesService) DeleteRoleAPI(roleID string) (*ResponseUserandRolesDeleteRoleAPI, *resty.Response, error) { + //roleID string + path := "/dna/system/api/v1/role/{roleId}" + path = strings.Replace(path, "{roleId}", fmt.Sprintf("%v", roleID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseUserandRolesDeleteRoleAPI{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteRoleAPI( + roleID) + } + return nil, response, fmt.Errorf("error with operation DeleteRoleApi") + } + + result := response.Result().(*ResponseUserandRolesDeleteRoleAPI) + return result, response, err + +} + +//DeleteUserAPI Delete user API - 69b4-ba37-4aca-8e86 +/* Delete a user from Cisco DNA Center System. + + +@param userID userId path parameter. The id of the user to be deleted + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-user-api-v1 +*/ +func (s *UserandRolesService) DeleteUserAPI(userID string) (*ResponseUserandRolesDeleteUserAPI, *resty.Response, error) { + //userID string + path := "/dna/system/api/v1/user/{userId}" + path = strings.Replace(path, "{userId}", fmt.Sprintf("%v", userID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseUserandRolesDeleteUserAPI{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteUserAPI(userID) + } + return nil, response, fmt.Errorf("error with operation DeleteUserApi") + } + + result := response.Result().(*ResponseUserandRolesDeleteUserAPI) + return result, response, err + +} + +//DeleteAAAAttributeAPI Delete AAA Attribute API - d99e-c8df-4f1b-98fe +/* Delete the custom AAA attribute that was added. Note that by deleting the AAA attribute, a default AAA attribute will be used for authentication based on the protocol supported by your server. For TACACS servers it will be "cisco-av-pair" and for RADIUS servers it will be "Cisco-AVPair". + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-a-a-a-attribute-api-v1 +*/ +func (s *UserandRolesService) DeleteAAAAttributeAPI() (*ResponseUserandRolesDeleteAAAAttributeAPI, *resty.Response, error) { + // + path := "/dna/system/api/v1/users/external-servers/aaa-attribute" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseUserandRolesDeleteAAAAttributeAPI{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteAAAAttributeAPI() + } + return nil, response, fmt.Errorf("error with operation DeleteAAAAttributeApi") + } + + result := response.Result().(*ResponseUserandRolesDeleteAAAAttributeAPI) return result, response, err } diff --git a/sdk/users.go b/sdk/users.go index 12921f2..a26f814 100644 --- a/sdk/users.go +++ b/sdk/users.go @@ -10,8 +10,9 @@ import ( type UsersService service type GetUserEnrichmentDetailsHeaderParams struct { - EntityType string `url:"entity_type,omitempty"` //Expects type string. User enrichment details can be fetched based on either User ID or Client MAC address. This parameter value must either be network_user_id/mac_address - EntityValue string `url:"entity_value,omitempty"` //Expects type string. Contains the actual value for the entity type that has been defined + EntityType string `url:"entity_type,omitempty"` //Expects type string. User enrichment details can be fetched based on either User ID or Client MAC address. This parameter value must either be network_user_id/mac_address + EntityValue string `url:"entity_value,omitempty"` //Expects type string. Contains the actual value for the entity type that has been defined + Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type bool. } type ResponseUsersGetUserEnrichmentDetails []ResponseItemUsersGetUserEnrichmentDetails // Array of ResponseUsersGetUserEnrichmentDetails @@ -167,7 +168,7 @@ type ResponseItemUsersGetUserEnrichmentDetailsConnectedDeviceDeviceDetailsNeighb @param GetUserEnrichmentDetailsHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-user-enrichment-details +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-user-enrichment-details-v1 */ func (s *UsersService) GetUserEnrichmentDetails(GetUserEnrichmentDetailsHeaderParams *GetUserEnrichmentDetailsHeaderParams) (*ResponseUsersGetUserEnrichmentDetails, *resty.Response, error) { path := "/dna/intent/api/v1/user-enrichment-details" @@ -188,6 +189,10 @@ func (s *UsersService) GetUserEnrichmentDetails(GetUserEnrichmentDetailsHeaderPa clientRequest = clientRequest.SetHeader("entity_value", GetUserEnrichmentDetailsHeaderParams.EntityValue) } + if GetUserEnrichmentDetailsHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", GetUserEnrichmentDetailsHeaderParams.Persistbapioutput) + } + } response, err = clientRequest. diff --git a/sdk/wireless.go b/sdk/wireless.go index 41a3095..0f0a825 100644 --- a/sdk/wireless.go +++ b/sdk/wireless.go @@ -16,7 +16,7 @@ type SensorTestResultsQueryParams struct { SiteID string `url:"siteId,omitempty"` //Assurance site UUID StartTime float64 `url:"startTime,omitempty"` //The epoch time in milliseconds EndTime float64 `url:"endTime,omitempty"` //The epoch time in milliseconds - TestFailureBy string `url:"testFailureBy,omitempty"` //Obtain failure statistics group by "area", "building", or "floor" + TestFailureBy string `url:"testFailureBy,omitempty"` //Obtain failure statistics group by "area", "building", or "floor" (case insensitive) } type CreateAndProvisionSSIDHeaderParams struct { Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type string. Enable this parameter to execute the API and return a response asynchronously. @@ -30,23 +30,26 @@ type GetAccessPointRebootTaskResultQueryParams struct { type GetEnterpriseSSIDQueryParams struct { SSIDName string `url:"ssidName,omitempty"` //Enter the enterprise SSID name that needs to be retrieved. If not entered, all the enterprise SSIDs will be retrieved. } +type GetSSIDBySiteQueryParams struct { + Limit float64 `url:"limit,omitempty"` //Limit + Offset float64 `url:"offset,omitempty"` //Offset +} type GetAccessPointConfigurationQueryParams struct { Key string `url:"key,omitempty"` //The ethernet MAC address of Access point } -type ApProvisionHeaderParams struct { +type ApProvisionConnectivityHeaderParams struct { Persistbapioutput string `url:"__persistbapioutput,omitempty"` //Expects type string. } -type CreateUpdateDynamicInterfaceHeaderParams struct { +type DeleteDynamicInterfaceQueryParams struct { + InterfaceName string `url:"interfaceName,omitempty"` //valid interface-name to be deleted +} +type DeleteDynamicInterfaceHeaderParams struct { Runsync string `url:"__runsync,omitempty"` //Expects type bool. Enable this parameter to execute the API and return a response synchronously Timeout string `url:"__timeout,omitempty"` //Expects type float64. If __runsync is set to ā€˜trueā€™, this defines the maximum time before which if the API completes its execution, then a synchronous response is returned. If the time taken for the API to complete the execution, exceeds this time, then an asynchronous response is returned with an execution id, that can be used to get the status and response associated with the API execution } type GetDynamicInterfaceQueryParams struct { InterfaceName string `url:"interface-name,omitempty"` //dynamic-interface name, if not specified all the existing dynamic interfaces will be retrieved } -type DeleteDynamicInterfaceHeaderParams struct { - Runsync string `url:"__runsync,omitempty"` //Expects type bool. Enable this parameter to execute the API and return a response synchronously - Timeout string `url:"__timeout,omitempty"` //Expects type float64. If __runsync is set to ā€˜trueā€™, this defines the maximum time before which if the API completes its execution, then a synchronous response is returned. If the time taken for the API to complete the execution, exceeds this time, then an asynchronous response is returned with an execution id, that can be used to get the status and response associated with the API execution -} type GetWirelessProfileQueryParams struct { ProfileName string `url:"profileName,omitempty"` //Wireless Network Profile Name } @@ -56,92 +59,141 @@ type ProvisionUpdateHeaderParams struct { type RetrieveRfProfilesQueryParams struct { RfProfileName string `url:"rf-profile-name,omitempty"` //RF Profile Name } +type GetAccessPointsFactoryResetStatusQueryParams struct { + TaskID string `url:"taskId,omitempty"` //provide the task id which is returned in the response of ap factory reset post api +} +type GetAllMobilityGroupsQueryParams struct { + NetworkDeviceID string `url:"networkDeviceId,omitempty"` //Employ this query parameter to obtain the details of the Mobility Group corresponding to the provided networkDeviceId. Obtain the network device ID value by using the API GET call /dna/intent/api/v1/network-device/ip-address/${ipAddress}. +} +type GetAnchorManagedApLocationsForSpecificWirelessControllerQueryParams struct { + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. +} +type GetPrimaryManagedApLocationsForSpecificWirelessControllerQueryParams struct { + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. +} +type GetSecondaryManagedApLocationsForSpecificWirelessControllerQueryParams struct { + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. +} +type GetSSIDDetailsForSpecificWirelessControllerQueryParams struct { + SSIDName string `url:"ssidName,omitempty"` //Employ this query parameter to obtain the details of the SSID corresponding to the provided SSID name. + AdminStatus bool `url:"adminStatus,omitempty"` //Utilize this query parameter to obtain the administrative status. A 'true' value signifies that the admin status of the SSID is enabled, while a 'false' value indicates that the admin status of the SSID is disabled. + Managed bool `url:"managed,omitempty"` //If value is 'true' means SSIDs are configured through design.If the value is 'false' means out of band configuration from the Wireless Controller. + Limit float64 `url:"limit,omitempty"` //The number of records to show for this page. + Offset float64 `url:"offset,omitempty"` //The first record to show for this page; the first record is numbered 1. +} +type GetSSIDCountForSpecificWirelessControllerQueryParams struct { + AdminStatus bool `url:"adminStatus,omitempty"` //Utilize this query parameter to obtain the number of SSIDs according to their administrative status. A 'true' value signifies that the admin status of the SSID is enabled, while a 'false' value indicates that the admin status of the SSID is disabled. + Managed bool `url:"managed,omitempty"` //If value is 'true' means SSIDs are configured through design.If the value is 'false' means out of band configuration from the Wireless Controller. +} +type GetWirelessProfilesQueryParams struct { + Limit float64 `url:"limit,omitempty"` //Limit + Offset float64 `url:"offset,omitempty"` //Offset +} +type GetAll80211BeProfilesQueryParams struct { + Limit float64 `url:"limit,omitempty"` //Limit + Offset float64 `url:"offset,omitempty"` //Offset +} +type GetInterfacesQueryParams struct { + Limit float64 `url:"limit,omitempty"` //Limit + Offset float64 `url:"offset,omitempty"` //Offset +} +type GetRfProfilesQueryParams struct { + Limit float64 `url:"limit,omitempty"` //Limit + Offset float64 `url:"offset,omitempty"` //Offset +} type ResponseWirelessSensorTestResults struct { - Summary *ResponseWirelessSensorTestResultsSummary `json:"summary,omitempty"` // - FailureStats *[]ResponseWirelessSensorTestResultsFailureStats `json:"failureStats,omitempty"` // -} -type ResponseWirelessSensorTestResultsSummary struct { - TotalTestCount *int `json:"totalTestCount,omitempty"` // Total Test Count - OnBoarding *ResponseWirelessSensorTestResultsSummaryOnBoarding `json:"ONBOARDING,omitempty"` // - PERfORMAncE *ResponseWirelessSensorTestResultsSummaryPERfORMAncE `json:"PERFORMANCE,omitempty"` // - NETWORKSERVICES *ResponseWirelessSensorTestResultsSummaryNETWORKSERVICES `json:"NETWORK_SERVICES,omitempty"` // - ApPCONNECTIVITY *ResponseWirelessSensorTestResultsSummaryApPCONNECTIVITY `json:"APP_CONNECTIVITY,omitempty"` // - RfASSESSMENT *ResponseWirelessSensorTestResultsSummaryRfASSESSMENT `json:"RF_ASSESSMENT,omitempty"` // - Email *ResponseWirelessSensorTestResultsSummaryEmail `json:"EMAIL,omitempty"` // -} -type ResponseWirelessSensorTestResultsSummaryOnBoarding struct { - Auth *ResponseWirelessSensorTestResultsSummaryOnBoardingAuth `json:"AUTH,omitempty"` // - DHCP *ResponseWirelessSensorTestResultsSummaryOnBoardingDHCP `json:"DHCP,omitempty"` // - Assoc *ResponseWirelessSensorTestResultsSummaryOnBoardingAssoc `json:"ASSOC,omitempty"` // -} -type ResponseWirelessSensorTestResultsSummaryOnBoardingAuth struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *int `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryOnBoardingDHCP struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *float64 `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryOnBoardingAssoc struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *int `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryPERfORMAncE struct { - IPSLASENDER *ResponseWirelessSensorTestResultsSummaryPERfORMAncEIPSLASENDER `json:"IPSLASENDER,omitempty"` // -} -type ResponseWirelessSensorTestResultsSummaryPERfORMAncEIPSLASENDER struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *int `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryNETWORKSERVICES struct { - DNS *ResponseWirelessSensorTestResultsSummaryNETWORKSERVICESDNS `json:"DNS,omitempty"` // -} -type ResponseWirelessSensorTestResultsSummaryNETWORKSERVICESDNS struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *float64 `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryApPCONNECTIVITY struct { - HOSTREACHABILITY *ResponseWirelessSensorTestResultsSummaryApPCONNECTIVITYHOSTREACHABILITY `json:"HOST_REACHABILITY,omitempty"` // - WebServer *ResponseWirelessSensorTestResultsSummaryApPCONNECTIVITYWebServer `json:"WEBSERVER,omitempty"` // - FileTransfer *ResponseWirelessSensorTestResultsSummaryApPCONNECTIVITYFileTransfer `json:"FILETRANSFER,omitempty"` // -} -type ResponseWirelessSensorTestResultsSummaryApPCONNECTIVITYHOSTREACHABILITY struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *float64 `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryApPCONNECTIVITYWebServer struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *int `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryApPCONNECTIVITYFileTransfer struct { - PassCount *float64 `json:"passCount,omitempty"` // Pass Count - FailCount *int `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryRfASSESSMENT struct { - DATARATE *ResponseWirelessSensorTestResultsSummaryRfASSESSMENTDATARATE `json:"DATA_RATE,omitempty"` // - SNR *ResponseWirelessSensorTestResultsSummaryRfASSESSMENTSNR `json:"SNR,omitempty"` // -} -type ResponseWirelessSensorTestResultsSummaryRfASSESSMENTDATARATE struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *int `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryRfASSESSMENTSNR struct { - PassCount *int `json:"passCount,omitempty"` // Pass Count - FailCount *float64 `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsSummaryEmail struct { - MailServer *ResponseWirelessSensorTestResultsSummaryEmailMailServer `json:"MAILSERVER,omitempty"` // -} -type ResponseWirelessSensorTestResultsSummaryEmailMailServer struct { - PassCount *float64 `json:"passCount,omitempty"` // Pass Count - FailCount *int `json:"failCount,omitempty"` // Fail Count -} -type ResponseWirelessSensorTestResultsFailureStats struct { - ErrorCode *int `json:"errorCode,omitempty"` // Error Code - ErrorTitle string `json:"errorTitle,omitempty"` // Error Title - TestType string `json:"testType,omitempty"` // Test Type - TestCategory string `json:"testCategory,omitempty"` // Test Category + Version string `json:"version,omitempty"` // Version + Response *ResponseWirelessSensorTestResultsResponse `json:"response,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponse struct { + Summary *ResponseWirelessSensorTestResultsResponseSummary `json:"summary,omitempty"` // + FailureStats *[]ResponseWirelessSensorTestResultsResponseFailureStats `json:"failureStats,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponseSummary struct { + TotalTestCount *int `json:"totalTestCount,omitempty"` // Total test count + OnBoarding *ResponseWirelessSensorTestResultsResponseSummaryOnBoarding `json:"ONBOARDING,omitempty"` // + PERfORMAncE *ResponseWirelessSensorTestResultsResponseSummaryPERfORMAncE `json:"PERFORMANCE,omitempty"` // + NETWORKSERVICES *ResponseWirelessSensorTestResultsResponseSummaryNETWORKSERVICES `json:"NETWORK_SERVICES,omitempty"` // + ApPCONNECTIVITY *ResponseWirelessSensorTestResultsResponseSummaryApPCONNECTIVITY `json:"APP_CONNECTIVITY,omitempty"` // + RfASSESSMENT *ResponseWirelessSensorTestResultsResponseSummaryRfASSESSMENT `json:"RF_ASSESSMENT,omitempty"` // + Email *ResponseWirelessSensorTestResultsResponseSummaryEmail `json:"EMAIL,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponseSummaryOnBoarding struct { + Auth *ResponseWirelessSensorTestResultsResponseSummaryOnBoardingAuth `json:"AUTH,omitempty"` // + DHCP *ResponseWirelessSensorTestResultsResponseSummaryOnBoardingDHCP `json:"DHCP,omitempty"` // + Assoc *ResponseWirelessSensorTestResultsResponseSummaryOnBoardingAssoc `json:"ASSOC,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponseSummaryOnBoardingAuth struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *int `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryOnBoardingDHCP struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *float64 `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryOnBoardingAssoc struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *int `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryPERfORMAncE struct { + IPSLASENDER *ResponseWirelessSensorTestResultsResponseSummaryPERfORMAncEIPSLASENDER `json:"IPSLASENDER,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponseSummaryPERfORMAncEIPSLASENDER struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *int `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryNETWORKSERVICES struct { + DNS *ResponseWirelessSensorTestResultsResponseSummaryNETWORKSERVICESDNS `json:"DNS,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponseSummaryNETWORKSERVICESDNS struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *float64 `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryApPCONNECTIVITY struct { + HOSTREACHABILITY *ResponseWirelessSensorTestResultsResponseSummaryApPCONNECTIVITYHOSTREACHABILITY `json:"HOST_REACHABILITY,omitempty"` // + WebServer *ResponseWirelessSensorTestResultsResponseSummaryApPCONNECTIVITYWebServer `json:"WEBSERVER,omitempty"` // + FileTransfer *ResponseWirelessSensorTestResultsResponseSummaryApPCONNECTIVITYFileTransfer `json:"FILETRANSFER,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponseSummaryApPCONNECTIVITYHOSTREACHABILITY struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *float64 `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryApPCONNECTIVITYWebServer struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *int `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryApPCONNECTIVITYFileTransfer struct { + PassCount *float64 `json:"passCount,omitempty"` // Total passed test count + FailCount *int `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryRfASSESSMENT struct { + DATARATE *ResponseWirelessSensorTestResultsResponseSummaryRfASSESSMENTDATARATE `json:"DATA_RATE,omitempty"` // + SNR *ResponseWirelessSensorTestResultsResponseSummaryRfASSESSMENTSNR `json:"SNR,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponseSummaryRfASSESSMENTDATARATE struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *int `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryRfASSESSMENTSNR struct { + PassCount *int `json:"passCount,omitempty"` // Total passed test count + FailCount *float64 `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseSummaryEmail struct { + MailServer *ResponseWirelessSensorTestResultsResponseSummaryEmailMailServer `json:"MAILSERVER,omitempty"` // +} +type ResponseWirelessSensorTestResultsResponseSummaryEmailMailServer struct { + PassCount *float64 `json:"passCount,omitempty"` // Total passed test count + FailCount *int `json:"failCount,omitempty"` // Total failed test count +} +type ResponseWirelessSensorTestResultsResponseFailureStats struct { + ErrorCode *int `json:"errorCode,omitempty"` // The error code + ErrorTitle string `json:"errorTitle,omitempty"` // The error title + TestType string `json:"testType,omitempty"` // The test type + TestCategory string `json:"testCategory,omitempty"` // The test category } type ResponseWirelessCreateAndProvisionSSID struct { ExecutionID string `json:"executionId,omitempty"` // Execution Id @@ -182,26 +234,34 @@ type ResponseItemWirelessGetEnterpriseSSID struct { InheritedGroupName string `json:"inheritedGroupName,omitempty"` // Inherited Group Name } type ResponseItemWirelessGetEnterpriseSSIDSSIDDetails struct { - Name string `json:"name,omitempty"` // SSID Name - WLANType string `json:"wlanType,omitempty"` // Wlan Type - EnableFastLane *bool `json:"enableFastLane,omitempty"` // Enable Fast Lane - SecurityLevel string `json:"securityLevel,omitempty"` // Security Level - AuthServer string `json:"authServer,omitempty"` // Auth Server - Passphrase string `json:"passphrase,omitempty"` // Passphrase - TrafficType string `json:"trafficType,omitempty"` // Traffic Type - EnableMacFiltering *bool `json:"enableMACFiltering,omitempty"` // Enable MAC Filtering - IsEnabled *bool `json:"isEnabled,omitempty"` // Is Enabled - IsFabric *bool `json:"isFabric,omitempty"` // Is Fabric - FastTransition string `json:"fastTransition,omitempty"` // Fast Transition - RadioPolicy string `json:"radioPolicy,omitempty"` // Radio Policy - EnableBroadcastSSID *bool `json:"enableBroadcastSSID,omitempty"` // Enable Broadcast SSID - NasOptions []string `json:"nasOptions,omitempty"` // Nas Options - AAAOverride *bool `json:"aaaOverride,omitempty"` // Aaa Override - CoverageHoleDetectionEnable *bool `json:"coverageHoleDetectionEnable,omitempty"` // Coverage Hole Detection Enable - ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // Protected Management Frame - MfpClientProtection string `json:"mfpClientProtection,omitempty"` // Protected Management Frame - MultipSKSettings *[]ResponseItemWirelessGetEnterpriseSSIDSSIDDetailsMultipSKSettings `json:"multiPSKSettings,omitempty"` // - ClientRateLimit *float64 `json:"clientRateLimit,omitempty"` // Client Rate Limit. (in bits per second) + Name string `json:"name,omitempty"` // SSID Name + WLANType string `json:"wlanType,omitempty"` // Wlan Type + EnableFastLane *bool `json:"enableFastLane,omitempty"` // Enable Fast Lane + SecurityLevel string `json:"securityLevel,omitempty"` // Security Level + AuthServer string `json:"authServer,omitempty"` // Auth Server + Passphrase string `json:"passphrase,omitempty"` // Passphrase + TrafficType string `json:"trafficType,omitempty"` // Traffic Type + EnableMacFiltering *bool `json:"enableMACFiltering,omitempty"` // Enable MAC Filtering + IsEnabled *bool `json:"isEnabled,omitempty"` // Is Enabled + IsFabric *bool `json:"isFabric,omitempty"` // Is Fabric + FastTransition string `json:"fastTransition,omitempty"` // Fast Transition + RadioPolicy string `json:"radioPolicy,omitempty"` // Radio Policy + EnableBroadcastSSID *bool `json:"enableBroadcastSSID,omitempty"` // Enable Broadcast SSID + NasOptions []string `json:"nasOptions,omitempty"` // Nas Options + AAAOverride *bool `json:"aaaOverride,omitempty"` // Aaa Override + CoverageHoleDetectionEnable *bool `json:"coverageHoleDetectionEnable,omitempty"` // Coverage Hole Detection Enable + ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // Protected Management Frame + MultipSKSettings *[]ResponseItemWirelessGetEnterpriseSSIDSSIDDetailsMultipSKSettings `json:"multiPSKSettings,omitempty"` // + ClientRateLimit *float64 `json:"clientRateLimit,omitempty"` // Client Rate Limit. (in bits per second) + EnableSessionTimeOut *bool `json:"enableSessionTimeOut,omitempty"` // Enable Session Time Out + SessionTimeOut *float64 `json:"sessionTimeOut,omitempty"` // sessionTimeOut + EnableClientExclusion *bool `json:"enableClientExclusion,omitempty"` // Enable Client Exclusion + ClientExclusionTimeout *float64 `json:"clientExclusionTimeout,omitempty"` // Client Exclusion Timeout + EnableBasicServiceSetMaxIDle *bool `json:"enableBasicServiceSetMaxIdle,omitempty"` // Enable Basic Service Set Max Idle + BasicServiceSetClientIDleTimeout *float64 `json:"basicServiceSetClientIdleTimeout,omitempty"` // Basic Service Set ClientIdle Timeout + EnableDirectedMulticastService *bool `json:"enableDirectedMulticastService,omitempty"` // Enable Directed MulticastService + EnableNeighborList *bool `json:"enableNeighborList,omitempty"` // Enable NeighborList + MfpClientProtection string `json:"mfpClientProtection,omitempty"` // Mfp Client Protection } type ResponseItemWirelessGetEnterpriseSSIDSSIDDetailsMultipSKSettings struct { Priority *int `json:"priority,omitempty"` // Priority @@ -223,6 +283,203 @@ type ResponseWirelessDeleteEnterpriseSSID struct { ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url Message string `json:"message,omitempty"` // Message } +type ResponseWirelessCreateSSID struct { + Response *ResponseWirelessCreateSSIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessCreateSSIDResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetSSIDBySite struct { + Response *[]ResponseWirelessGetSSIDBySiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the response +} +type ResponseWirelessGetSSIDBySiteResponse struct { + SSID string `json:"ssid,omitempty"` // Name of the SSID + AuthType string `json:"authType,omitempty"` // L2 Authentication Type (If authType is not open , then atleast one RSN Cipher Suite and corresponding valid AKM must be enabled) + Passphrase string `json:"passphrase,omitempty"` // Passphrase (Only applicable for SSID with PERSONAL security level). Passphrase needs to be between 8 and 63 characters for ASCII type. HEX passphrase needs to be 64 characters + IsFastLaneEnabled *bool `json:"isFastLaneEnabled,omitempty"` // When set to true, MAC Filtering will be activated, allowing control over network access based on the MAC address of the device + IsMacFilteringEnabled *bool `json:"isMacFilteringEnabled,omitempty"` // True if MAC Filtering is enabled, else False + SSIDRadioType string `json:"ssidRadioType,omitempty"` // Radio Policy Enum (default: Triple band operation(2.4GHz, 5GHz and 6GHz)) + IsBroadcastSSID *bool `json:"isBroadcastSSID,omitempty"` // When activated by setting it to true, the Broadcast SSID feature will make the SSID publicly visible to wireless devices searching for available networks + FastTransition string `json:"fastTransition,omitempty"` // Fast Transition + SessionTimeOutEnable *bool `json:"sessionTimeOutEnable,omitempty"` // Turn on the feature that imposes a time limit on user sessions + SessionTimeOut *int `json:"sessionTimeOut,omitempty"` // This denotes the allotted time span, expressed in seconds, before a session is automatically terminated due to inactivity + ClientExclusionEnable *bool `json:"clientExclusionEnable,omitempty"` // Activate the feature that allows for the exclusion of clients + ClientExclusionTimeout *int `json:"clientExclusionTimeout,omitempty"` // This refers to the length of time, in seconds, a client is excluded or blocked from accessing the network after a specified number of unsuccessful attempts + BasicServiceSetMaxIDleEnable *bool `json:"basicServiceSetMaxIdleEnable,omitempty"` // Activate the maximum idle feature for the Basic Service Set + BasicServiceSetClientIDleTimeout *int `json:"basicServiceSetClientIdleTimeout,omitempty"` // This refers to the duration of inactivity, measured in seconds, before a client connected to the Basic Service Set is considered idle and timed out + DirectedMulticastServiceEnable *bool `json:"directedMulticastServiceEnable,omitempty"` // The Directed Multicast Service feature becomes operational when it is set to true + NeighborListEnable *bool `json:"neighborListEnable,omitempty"` // The Neighbor List feature is enabled when it is set to true + ManagementFrameProtectionClientprotection string `json:"managementFrameProtectionClientprotection,omitempty"` // Management Frame Protection Client + NasOptions []string `json:"nasOptions,omitempty"` // Pre-Defined NAS Options : AP ETH Mac Address, AP IP address, AP Location , AP MAC Address, AP Name, AP Policy Tag, AP Site Tag, SSID, System IP Address, System MAC Address, System Name. + ProfileName string `json:"profileName,omitempty"` // WLAN Profile Name, if not passed autogenerated profile name will be assigned + PolicyProfileName string `json:"policyProfileName,omitempty"` // Policy Profile Name. If not passed, profileName value will be used to populate this parameter + AAAOverride *bool `json:"aaaOverride,omitempty"` // Activate the AAA Override feature when set to true + CoverageHoleDetectionEnable *bool `json:"coverageHoleDetectionEnable,omitempty"` // Activate Coverage Hole Detection feature when set to true + ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // (REQUIRED is applicable for authType WPA3_PERSONAL, WPA3_ENTERPRISE, OPEN_SECURED) and (OPTIONAL/REQUIRED is applicable for authType WPA2_WPA3_PERSONAL and WPA2_WPA3_ENTERPRISE) + MultipSKSettings *[]ResponseWirelessGetSSIDBySiteResponseMultipSKSettings `json:"multiPSKSettings,omitempty"` // + ClientRateLimit *int `json:"clientRateLimit,omitempty"` // This pertains to the maximum data transfer rate, specified in bits per second, that a client is permitted to achieve + RsnCipherSuiteGcmp256 *bool `json:"rsnCipherSuiteGcmp256,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite GCMP256 encryption protocol is activated + RsnCipherSuiteCcmp256 *bool `json:"rsnCipherSuiteCcmp256,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite CCMP256 encryption protocol is activated + RsnCipherSuiteGcmp128 *bool `json:"rsnCipherSuiteGcmp128,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite GCMP128 encryption protocol is activated + RsnCipherSuiteCcmp128 *bool `json:"rsnCipherSuiteCcmp128,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite CCMP128 encryption protocol is activated + Ghz6PolicyClientSteering *bool `json:"ghz6PolicyClientSteering,omitempty"` // True if 6 GHz Policy Client Steering is enabled, else False + IsAuthKey8021X *bool `json:"isAuthKey8021x,omitempty"` // When set to true, the 802.1X authentication key is in use + IsAuthKey8021XPlusFT *bool `json:"isAuthKey8021xPlusFT,omitempty"` // When set to true, the 802.1X-Plus-FT authentication key is in use + IsAuthKey8021XSHA256 *bool `json:"isAuthKey8021x_SHA256,omitempty"` // When set to true, the feature that enables 802.1X authentication using the SHA256 algorithm is turned on + IsAuthKeySae *bool `json:"isAuthKeySae,omitempty"` // When set to true, the feature enabling the Simultaneous Authentication of Equals (SAE) authentication key is activated + IsAuthKeySaePlusFT *bool `json:"isAuthKeySaePlusFT,omitempty"` // Activating this setting by switching it to true turns on the authentication key feature that supports both Simultaneous Authentication of Equals (SAE) and Fast Transition (FT) + IsAuthKeyPSK *bool `json:"isAuthKeyPSK,omitempty"` // When set to true, the Pre-shared Key (PSK) authentication feature is enabled + IsAuthKeyPSKPlusFT *bool `json:"isAuthKeyPSKPlusFT,omitempty"` // When set to true, the feature that enables the combination of Pre-shared Key (PSK) and Fast Transition (FT) authentication keys is activated + IsAuthKeyOWE *bool `json:"isAuthKeyOWE,omitempty"` // When set to true, the Opportunistic Wireless Encryption (OWE) authentication key feature is turned on + IsAuthKeyEasyPSK *bool `json:"isAuthKeyEasyPSK,omitempty"` // When set to true, the feature that enables the use of Easy Pre-shared Key (PSK) authentication is activated + IsAuthKeyPSKSHA256 *bool `json:"isAuthKeyPSKSHA256,omitempty"` // The feature that allows the use of Pre-shared Key (PSK) authentication with the SHA256 algorithm is enabled when it is set to true + OpenSSID string `json:"openSsid,omitempty"` // Open SSID which is already created in the design and not associated to any other OPEN-SECURED SSID + IsCustomNasIDOptions *bool `json:"isCustomNasIdOptions,omitempty"` // Set to true if Custom NAS ID Options provided + WLANBandSelectEnable *bool `json:"wlanBandSelectEnable,omitempty"` // Band select is allowed only when band options selected contains at least 2.4 GHz and 5 GHz band + IsEnabled *bool `json:"isEnabled,omitempty"` // Set SSID's admin status as 'Enabled' when set to true + AuthServers []string `json:"authServers,omitempty"` // List of Authentication/Authorization server IpAddresses + AcctServers []string `json:"acctServers,omitempty"` // List of Accounting server IpAddresses + EgressQos string `json:"egressQos,omitempty"` // Egress QOS + IngressQos string `json:"ingressQos,omitempty"` // Ingress QOS + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Site UUID from where the SSID is inherited + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Site Name from where the SSID is inherited + WLANType string `json:"wlanType,omitempty"` // Wlan Type + L3AuthType string `json:"l3AuthType,omitempty"` // L3 Authentication Type + AuthServer string `json:"authServer,omitempty"` // Authentication Server, Mandatory for Guest SSIDs with wlanType=Guest and l3AuthType=web_auth + ExternalAuthIPAddress string `json:"externalAuthIpAddress,omitempty"` // External WebAuth URL (Mandatory for Guest SSIDs with wlanType = Guest, l3AuthType = web_auth and authServer = auth_external) + WebPassthrough *bool `json:"webPassthrough,omitempty"` // When set to true, the Web-Passthrough feature will be activated for the Guest SSID, allowing guests to bypass certain login requirements + SleepingClientEnable *bool `json:"sleepingClientEnable,omitempty"` // When set to true, this will activate the timeout settings that apply to clients in sleep mode + SleepingClientTimeout *int `json:"sleepingClientTimeout,omitempty"` // This refers to the amount of time, measured in minutes, before a sleeping (inactive) client is timed out of the network + ACLName string `json:"aclName,omitempty"` // Pre-Auth Access Control List (ACL) Name + IsPosturingEnabled *bool `json:"isPosturingEnabled,omitempty"` // Applicable only for Enterprise SSIDs. When set to True, Posturing will enabled. Required to be set to True if ACL needs to be mapped for Enterprise SSID. + IsAuthKeySuiteB1X *bool `json:"isAuthKeySuiteB1x,omitempty"` // When activated by setting it to true, the SuiteB-1x authentication key feature is engaged. + IsAuthKeySuiteB1921X *bool `json:"isAuthKeySuiteB1921x,omitempty"` // When set to true, the SuiteB192-1x authentication key feature is enabled. + IsAuthKeySaeExt *bool `json:"isAuthKeySaeExt,omitempty"` // When set to true, the Simultaneous Authentication of Equals (SAE) Extended Authentication key feature is turned on. + IsAuthKeySaeExtPlusFT *bool `json:"isAuthKeySaeExtPlusFT,omitempty"` // When set to true, the Simultaneous Authentication of Equals (SAE) combined with Fast Transition (FT) Authentication Key feature is enabled. + IsApBeaconProtectionEnabled *bool `json:"isApBeaconProtectionEnabled,omitempty"` // When set to true, the Access Point (AP) Beacon Protection feature is activated, enhancing the security of the network. + Ghz24Policy string `json:"ghz24Policy,omitempty"` // 2.4 Ghz Band Policy value. Allowed only when 2.4 Radio Band is enabled in ssidRadioType + CckmTsfTolerance *int `json:"cckmTsfTolerance,omitempty"` // Cckm TImestamp Tolerance(in milliseconds) + IsCckmEnabled *bool `json:"isCckmEnabled,omitempty"` // True if CCKM is enabled, else False + IsHex *bool `json:"isHex,omitempty"` // True if passphrase is in Hex format, else False. + IsSensorPnp *bool `json:"isSensorPnp,omitempty"` // True if SSID is a sensor SSID + ID string `json:"id,omitempty"` // SSID ID + IsRandomMacFilterEnabled *bool `json:"isRandomMacFilterEnabled,omitempty"` // Deny clients using randomized MAC addresses when set to true + FastTransitionOverTheDistributedSystemEnable *bool `json:"fastTransitionOverTheDistributedSystemEnable,omitempty"` // Enable Fast Transition over the Distributed System when set to true +} +type ResponseWirelessGetSSIDBySiteResponseMultipSKSettings struct { + Priority *int `json:"priority,omitempty"` // Priority + PassphraseType string `json:"passphraseType,omitempty"` // Passphrase Type + Passphrase string `json:"passphrase,omitempty"` // Passphrase needs to be between 8 and 63 characters for ASCII type. HEX passphrase needs to be 64 characters +} +type ResponseWirelessGetSSIDCountBySite struct { + Response *ResponseWirelessGetSSIDCountBySiteResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseWirelessGetSSIDCountBySiteResponse struct { + Count *int `json:"count,omitempty"` // Count of the requested resource +} +type ResponseWirelessGetSSIDByID struct { + Response *ResponseWirelessGetSSIDByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version of the response +} +type ResponseWirelessGetSSIDByIDResponse struct { + SSID string `json:"ssid,omitempty"` // Name of the SSID + AuthType string `json:"authType,omitempty"` // L2 Authentication Type (If authType is not open , then atleast one RSN Cipher Suite and corresponding valid AKM must be enabled) + Passphrase string `json:"passphrase,omitempty"` // Passphrase (Only applicable for SSID with PERSONAL security level). Passphrase needs to be between 8 and 63 characters for ASCII type. HEX passphrase needs to be 64 characters + IsFastLaneEnabled *bool `json:"isFastLaneEnabled,omitempty"` // True if FastLane is enabled, else False + IsMacFilteringEnabled *bool `json:"isMacFilteringEnabled,omitempty"` // When set to true, MAC Filtering will be activated, allowing control over network access based on the MAC address of the device + SSIDRadioType string `json:"ssidRadioType,omitempty"` // Radio Policy Enum (default: Triple band operation(2.4GHz, 5GHz and 6GHz)) + IsBroadcastSSID *bool `json:"isBroadcastSSID,omitempty"` // When activated by setting it to true, the Broadcast SSID feature will make the SSID publicly visible to wireless devices searching for available networks + FastTransition string `json:"fastTransition,omitempty"` // Fast Transition + SessionTimeOutEnable *bool `json:"sessionTimeOutEnable,omitempty"` // Turn on the feature that imposes a time limit on user sessions + SessionTimeOut *int `json:"sessionTimeOut,omitempty"` // This denotes the allotted time span, expressed in seconds, before a session is automatically terminated due to inactivity + ClientExclusionEnable *bool `json:"clientExclusionEnable,omitempty"` // Activate the feature that allows for the exclusion of clients + ClientExclusionTimeout *int `json:"clientExclusionTimeout,omitempty"` // This refers to the length of time, in seconds, a client is excluded or blocked from accessing the network after a specified number of unsuccessful attempts + BasicServiceSetMaxIDleEnable *bool `json:"basicServiceSetMaxIdleEnable,omitempty"` // Activate the maximum idle feature for the Basic Service Set + BasicServiceSetClientIDleTimeout *int `json:"basicServiceSetClientIdleTimeout,omitempty"` // This refers to the duration of inactivity, measured in seconds, before a client connected to the Basic Service Set is considered idle and timed out + DirectedMulticastServiceEnable *bool `json:"directedMulticastServiceEnable,omitempty"` // The Directed Multicast Service feature becomes operational when it is set to true + NeighborListEnable *bool `json:"neighborListEnable,omitempty"` // The Neighbor List feature is enabled when it is set to true + ManagementFrameProtectionClientprotection string `json:"managementFrameProtectionClientprotection,omitempty"` // Management Frame Protection Client + NasOptions []string `json:"nasOptions,omitempty"` // Pre-Defined NAS Options : AP ETH Mac Address, AP IP address, AP Location , AP MAC Address, AP Name, AP Policy Tag, AP Site Tag, SSID, System IP Address, System MAC Address, System Name. + ProfileName string `json:"profileName,omitempty"` // WLAN Profile Name, if not passed autogenerated profile name will be assigned + PolicyProfileName string `json:"policyProfileName,omitempty"` // Policy Profile Name. If not passed, profileName value will be used to populate this parameter + AAAOverride *bool `json:"aaaOverride,omitempty"` // Activate the AAA Override feature when set to true + CoverageHoleDetectionEnable *bool `json:"coverageHoleDetectionEnable,omitempty"` // Activate Coverage Hole Detection feature when set to true + ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // (REQUIRED is applicable for authType WPA3_PERSONAL, WPA3_ENTERPRISE, OPEN_SECURED) and (OPTIONAL/REQUIRED is applicable for authType WPA2_WPA3_PERSONAL and WPA2_WPA3_ENTERPRISE) + MultipSKSettings *[]ResponseWirelessGetSSIDByIDResponseMultipSKSettings `json:"multiPSKSettings,omitempty"` // + ClientRateLimit *int `json:"clientRateLimit,omitempty"` // This pertains to the maximum data transfer rate, specified in bits per second, that a client is permitted to achieve + RsnCipherSuiteGcmp256 *bool `json:"rsnCipherSuiteGcmp256,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite GCMP256 encryption protocol is activated + RsnCipherSuiteCcmp256 *bool `json:"rsnCipherSuiteCcmp256,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite CCMP256 encryption protocol is activated + RsnCipherSuiteGcmp128 *bool `json:"rsnCipherSuiteGcmp128,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite GCMP128 encryption protocol is activatedTrue if RSN Cipher Suite GCMP128 is enabled, else False + RsnCipherSuiteCcmp128 *bool `json:"rsnCipherSuiteCcmp128,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite CCMP128 encryption protocol is activated + Ghz6PolicyClientSteering *bool `json:"ghz6PolicyClientSteering,omitempty"` // True if 6 GHz Policy Client Steering is enabled, else False + IsAuthKey8021X *bool `json:"isAuthKey8021x,omitempty"` // When set to true, the 802.1X authentication key is in use + IsAuthKey8021XPlusFT *bool `json:"isAuthKey8021xPlusFT,omitempty"` // When set to true, the 802.1X-Plus-FT authentication key is in use + IsAuthKey8021XSHA256 *bool `json:"isAuthKey8021x_SHA256,omitempty"` // When set to true, the feature that enables 802.1X authentication using the SHA256 algorithm is turned on + IsAuthKeySae *bool `json:"isAuthKeySae,omitempty"` // When set to true, the feature enabling the Simultaneous Authentication of Equals (SAE) authentication key is activated + IsAuthKeySaePlusFT *bool `json:"isAuthKeySaePlusFT,omitempty"` // Activating this setting by switching it to true turns on the authentication key feature that supports both Simultaneous Authentication of Equals (SAE) and Fast Transition (FT) + IsAuthKeyPSK *bool `json:"isAuthKeyPSK,omitempty"` // When set to true, the Pre-shared Key (PSK) authentication feature is enabled + IsAuthKeyPSKPlusFT *bool `json:"isAuthKeyPSKPlusFT,omitempty"` // When set to true, the feature that enables the combination of Pre-shared Key (PSK) and Fast Transition (FT) authentication keys is activated + IsAuthKeyOWE *bool `json:"isAuthKeyOWE,omitempty"` // When set to true, the Opportunistic Wireless Encryption (OWE) authentication key feature is turned on + IsAuthKeyEasyPSK *bool `json:"isAuthKeyEasyPSK,omitempty"` // When set to true, the feature that enables the use of Easy Pre-shared Key (PSK) authentication is activated + IsAuthKeyPSKSHA256 *bool `json:"isAuthKeyPSKSHA256,omitempty"` // The feature that allows the use of Pre-shared Key (PSK) authentication with the SHA256 algorithm is enabled when it is set to true + OpenSSID string `json:"openSsid,omitempty"` // Open SSID which is already created in the design and not associated to any other OPEN-SECURED SSID + IsCustomNasIDOptions *bool `json:"isCustomNasIdOptions,omitempty"` // Set to true if Custom NAS ID Options provided + WLANBandSelectEnable *bool `json:"wlanBandSelectEnable,omitempty"` // Band select is allowed only when band options selected contains at least 2.4 GHz and 5 GHz band + IsEnabled *bool `json:"isEnabled,omitempty"` // Set SSID's admin status as 'Enabled' when set to true + AuthServers []string `json:"authServers,omitempty"` // List of Authentication/Authorization server IpAddresses + AcctServers []string `json:"acctServers,omitempty"` // List of Accounting server IpAddresses + EgressQos string `json:"egressQos,omitempty"` // Egress QOS + IngressQos string `json:"ingressQos,omitempty"` // Ingress QOS + InheritedSiteID string `json:"inheritedSiteId,omitempty"` // Site UUID from where the SSID is inherited + InheritedSiteName string `json:"inheritedSiteName,omitempty"` // Site Name from where the SSID is inherited + WLANType string `json:"wlanType,omitempty"` // Wlan Type + L3AuthType string `json:"l3AuthType,omitempty"` // L3 Authentication Type + AuthServer string `json:"authServer,omitempty"` // Authentication Server, Mandatory for Guest SSIDs with wlanType=Guest and l3AuthType=web_auth + ExternalAuthIPAddress string `json:"externalAuthIpAddress,omitempty"` // External WebAuth URL (Mandatory for Guest SSIDs with wlanType = Guest, l3AuthType = web_auth and authServer = auth_external) + WebPassthrough *bool `json:"webPassthrough,omitempty"` // When set to true, the Web-Passthrough feature will be activated for the Guest SSID, allowing guests to bypass certain login requirements + SleepingClientEnable *bool `json:"sleepingClientEnable,omitempty"` // When set to true, this will activate the timeout settings that apply to clients in sleep mode + SleepingClientTimeout *int `json:"sleepingClientTimeout,omitempty"` // This refers to the amount of time, measured in minutes, before a sleeping (inactive) client is timed out of the network + ACLName string `json:"aclName,omitempty"` // Pre-Auth Access Control List (ACL) Name + IsPosturingEnabled *bool `json:"isPosturingEnabled,omitempty"` // Applicable only for Enterprise SSIDs. When set to True, Posturing will enabled. Required to be set to True if ACL needs to be mapped for Enterprise SSID. + IsAuthKeySuiteB1X *bool `json:"isAuthKeySuiteB1x,omitempty"` // When activated by setting it to true, the SuiteB-1x authentication key feature is engaged. + IsAuthKeySuiteB1921X *bool `json:"isAuthKeySuiteB1921x,omitempty"` // When set to true, the SuiteB192-1x authentication key feature is enabled. + IsAuthKeySaeExt *bool `json:"isAuthKeySaeExt,omitempty"` // When set to true, the Simultaneous Authentication of Equals (SAE) Extended Authentication key feature is turned on. + IsAuthKeySaeExtPlusFT *bool `json:"isAuthKeySaeExtPlusFT,omitempty"` // When set to true, the Simultaneous Authentication of Equals (SAE) combined with Fast Transition (FT) Authentication Key feature is enabled. + IsApBeaconProtectionEnabled *bool `json:"isApBeaconProtectionEnabled,omitempty"` // When set to true, the Access Point (AP) Beacon Protection feature is activated, enhancing the security of the network. + Ghz24Policy string `json:"ghz24Policy,omitempty"` // 2.4 Ghz Band Policy value. Allowed only when 2.4 Radio Band is enabled in ssidRadioType + CckmTsfTolerance *int `json:"cckmTsfTolerance,omitempty"` // Cckm TImestamp Tolerance(in milliseconds) + IsCckmEnabled *bool `json:"isCckmEnabled,omitempty"` // True if CCKM is enabled, else False + IsHex *bool `json:"isHex,omitempty"` // True if passphrase is in Hex format, else False. + IsSensorPnp *bool `json:"isSensorPnp,omitempty"` // True if SSID is a sensor SSID + ID string `json:"id,omitempty"` // SSID ID + IsRandomMacFilterEnabled *bool `json:"isRandomMacFilterEnabled,omitempty"` // Deny clients using randomized MAC addresses when set to true + FastTransitionOverTheDistributedSystemEnable *bool `json:"fastTransitionOverTheDistributedSystemEnable,omitempty"` // Enable Fast Transition over the Distributed System when set to true +} +type ResponseWirelessGetSSIDByIDResponseMultipSKSettings struct { + Priority *int `json:"priority,omitempty"` // Priority + PassphraseType string `json:"passphraseType,omitempty"` // Passphrase Type + Passphrase string `json:"passphrase,omitempty"` // Passphrase needs to be between 8 and 63 characters for ASCII type. HEX passphrase needs to be 64 characters +} +type ResponseWirelessUpdateSSID struct { + Response *ResponseWirelessUpdateSSIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessUpdateSSIDResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessDeleteSSID struct { + Response *ResponseWirelessDeleteSSIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessDeleteSSIDResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} type ResponseWirelessDeleteWirelessProfile struct { ExecutionID string `json:"executionId,omitempty"` // Execution Id ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url @@ -386,16 +643,20 @@ type ResponseWirelessGetAccessPointConfigurationInternalKey struct { LongType string `json:"longType,omitempty"` // URL string `json:"url,omitempty"` // } -type ResponseWirelessApProvision struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionURL string `json:"executionUrl,omitempty"` // Execution URL - Message string `json:"message,omitempty"` // Response +type ResponseWirelessApProvisionConnectivity struct { + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status URL + Message string `json:"message,omitempty"` // Message +} +type ResponseWirelessDeleteDynamicInterface struct { + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status URL + Message string `json:"message,omitempty"` // Message } -type ResponseWirelessCreateUpdateDynamicInterface []ResponseItemWirelessCreateUpdateDynamicInterface // Array of ResponseWirelessCreateUpdateDynamicInterface -type ResponseItemWirelessCreateUpdateDynamicInterface struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionURL string `json:"executionUrl,omitempty"` // Execution URL - Message string `json:"message,omitempty"` // Response +type ResponseWirelessCreateUpdateDynamicInterface struct { + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status URL + Message string `json:"message,omitempty"` // Message } type ResponseWirelessGetDynamicInterface []ResponseItemWirelessGetDynamicInterface // Array of ResponseWirelessGetDynamicInterface type ResponseItemWirelessGetDynamicInterface struct { @@ -467,22 +728,14 @@ type ResponseItemWirelessGetWirelessProfileProfileDetailsSSIDDetailsFlexConnect LocalToVLAN *int `json:"localToVlan,omitempty"` // Local To VLAN ID } type ResponseWirelessProvisionUpdate struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionURL string `json:"executionUrl,omitempty"` // Execution Url - ProvisioningTasks *ResponseWirelessProvisionUpdateProvisioningTasks `json:"provisioningTasks,omitempty"` // -} -type ResponseWirelessProvisionUpdateProvisioningTasks struct { - Success []string `json:"success,omitempty"` // Success - Failed []string `json:"failed,omitempty"` // Failed + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url + Message string `json:"message,omitempty"` // Message } type ResponseWirelessProvision struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionURL string `json:"executionUrl,omitempty"` // Execution Url - ProvisioningTasks *ResponseWirelessProvisionProvisioningTasks `json:"provisioningTasks,omitempty"` // -} -type ResponseWirelessProvisionProvisioningTasks struct { - Success []string `json:"success,omitempty"` // Success - Failed []string `json:"failed,omitempty"` // Failed + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url + Message string `json:"message,omitempty"` // Message } type ResponseWirelessPSKOverride struct { ExecutionID string `json:"executionId,omitempty"` // Execution Id @@ -490,60 +743,581 @@ type ResponseWirelessPSKOverride struct { Message string `json:"message,omitempty"` // Message } type ResponseWirelessRetrieveRfProfiles struct { - Response *[]ResponseWirelessRetrieveRfProfilesResponse `json:"response,omitempty"` // -} -type ResponseWirelessRetrieveRfProfilesResponse struct { - Name string `json:"name,omitempty"` // RF Profile Name - DefaultRfProfile *bool `json:"defaultRfProfile,omitempty"` // is Default Rf Profile - EnableRadioTypeA *bool `json:"enableRadioTypeA,omitempty"` // Enable Radio Type A - EnableRadioTypeB *bool `json:"enableRadioTypeB,omitempty"` // Enable Radio Type B - ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width - EnableCustom *bool `json:"enableCustom,omitempty"` // Enable Custom - EnableBrownField *bool `json:"enableBrownField,omitempty"` // Enable Brown Field - RadioTypeAProperties *ResponseWirelessRetrieveRfProfilesResponseRadioTypeAProperties `json:"radioTypeAProperties,omitempty"` // - RadioTypeBProperties *ResponseWirelessRetrieveRfProfilesResponseRadioTypeBProperties `json:"radioTypeBProperties,omitempty"` // - RadioTypeCProperties *ResponseWirelessRetrieveRfProfilesResponseRadioTypeCProperties `json:"radioTypeCProperties,omitempty"` // - EnableRadioTypeC *bool `json:"enableRadioTypeC,omitempty"` // Enable Radio Type C (6GHz) -} -type ResponseWirelessRetrieveRfProfilesResponseRadioTypeAProperties struct { - ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile - RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels - DataRates string `json:"dataRates,omitempty"` // Data Rates - MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates - PowerThresholdV1 *float64 `json:"powerThresholdV1,omitempty"` // Power Threshold V1 - RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold - MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Rx Sop Threshold - MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level -} -type ResponseWirelessRetrieveRfProfilesResponseRadioTypeBProperties struct { - ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile - RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels - DataRates string `json:"dataRates,omitempty"` // Data Rates - MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates - PowerThresholdV1 *float64 `json:"powerThresholdV1,omitempty"` // Power Threshold V1 - RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold - MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Min Power Level - MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level -} -type ResponseWirelessRetrieveRfProfilesResponseRadioTypeCProperties struct { - ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile - RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels - DataRates string `json:"dataRates,omitempty"` // Data Rates - MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates - RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold - MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Min Power Level - MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level - PowerThresholdV1 *float64 `json:"powerThresholdV1,omitempty"` // Power Threshold V1 + Name string `json:"name,omitempty"` // RF Profile Name + DefaultRfProfile *bool `json:"defaultRfProfile,omitempty"` // is Default Rf Profile + EnableRadioTypeA *bool `json:"enableRadioTypeA,omitempty"` // Enable Radio Type A + EnableRadioTypeB *bool `json:"enableRadioTypeB,omitempty"` // Enable Radio Type B + ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width + EnableCustom *bool `json:"enableCustom,omitempty"` // Enable Custom + EnableBrownField *bool `json:"enableBrownField,omitempty"` // Enable Brown Field + RadioTypeAProperties *ResponseWirelessRetrieveRfProfilesRadioTypeAProperties `json:"radioTypeAProperties,omitempty"` // + RadioTypeBProperties *ResponseWirelessRetrieveRfProfilesRadioTypeBProperties `json:"radioTypeBProperties,omitempty"` // + RadioTypeCProperties *ResponseWirelessRetrieveRfProfilesRadioTypeCProperties `json:"radioTypeCProperties,omitempty"` // + EnableRadioTypeC *bool `json:"enableRadioTypeC,omitempty"` // Enable Radio Type C (6GHz) +} +type ResponseWirelessRetrieveRfProfilesRadioTypeAProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile (Default : CUSTOM) + RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels (Default : "36,40,44,48,52,56,60,64,149,153,157,161") + DataRates string `json:"dataRates,omitempty"` // Data Rates (Default : "6,9,12,18,24,36,48,54") + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates (Default: "6,12,24") + PowerThreshold *float64 `json:"powerThreshold,omitempty"` // Power Threshold ( (Default: -70) + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold (Default: "AUTO") + MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Rx Sop Threshold (Default: -10) + MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level (Default: 30) +} +type ResponseWirelessRetrieveRfProfilesRadioTypeBProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile (Default : CUSTOM) + RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels (Default : "9,11,12,18,24,36,48,54") + DataRates string `json:"dataRates,omitempty"` // Data Rates (Default: "9,11,12,18,24,36,48,54") + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates (Default: "12") + PowerThreshold *float64 `json:"powerThreshold,omitempty"` // Power Threshold (Default: -70) + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold (Default: "AUTO") + MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Min Power Level (Default: -10) + MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level (Default: 30) +} +type ResponseWirelessRetrieveRfProfilesRadioTypeCProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile (Default : CUSTOM) + RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels (Default : "5,21,37,53,69,85,101,117,133,149,165,181,197,213,229") + DataRates string `json:"dataRates,omitempty"` // Data Rates (Default: "6,9,12,18,24,36,48,54") + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates (Default: "6,12,24") + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold (Default: "AUTO") + MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Min Power Level (Default: -10) + MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level (Default: 30) + PowerThreshold *float64 `json:"powerThreshold,omitempty"` // Power Threshold (Default: -70) } type ResponseWirelessCreateOrUpdateRfProfile struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionURL string `json:"executionUrl,omitempty"` // Execution Url - Message string `json:"message,omitempty"` // Message + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url + Message string `json:"message,omitempty"` // Message } type ResponseWirelessDeleteRfProfiles struct { - ExecutionID string `json:"executionId,omitempty"` // Execution Id - ExecutionURL string `json:"executionUrl,omitempty"` // Execution Url - Message string `json:"message,omitempty"` // Message + ExecutionID string `json:"executionId,omitempty"` // Execution Id + ExecutionStatusURL string `json:"executionStatusUrl,omitempty"` // Execution Status Url + Message string `json:"message,omitempty"` // Message +} +type ResponseWirelessFactoryResetAccessPoints struct { + Response *ResponseWirelessFactoryResetAccessPointsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessFactoryResetAccessPointsResponse struct { + TaskID string `json:"taskId,omitempty"` // Task Id + URL string `json:"url,omitempty"` // Url +} +type ResponseWirelessGetAccessPointsFactoryResetStatus struct { + Response *[]ResponseWirelessGetAccessPointsFactoryResetStatusResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetAccessPointsFactoryResetStatusResponse struct { + WlcIP string `json:"wlcIP,omitempty"` // Wireless Controller IP address + WlcName string `json:"wlcName,omitempty"` // Wireless Controller name + ApResponseInfoList *[]ResponseWirelessGetAccessPointsFactoryResetStatusResponseApResponseInfoList `json:"apResponseInfoList,omitempty"` // +} +type ResponseWirelessGetAccessPointsFactoryResetStatusResponseApResponseInfoList struct { + ApName string `json:"apName,omitempty"` // Access Point name + ApFactoryResetStatus string `json:"apFactoryResetStatus,omitempty"` // AP factory reset status, "Success" or "Failure" or "In Progress" + FailureReason string `json:"failureReason,omitempty"` // Reason for failure if the factory reset status is "Failure" + RadioMacAddress string `json:"radioMacAddress,omitempty"` // AP Radio Mac Address + EthernetMacAddress string `json:"ethernetMacAddress,omitempty"` // AP Ethernet Mac Address +} +type ResponseWirelessApProvision struct { + Response *ResponseWirelessApProvisionResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessApProvisionResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetAllMobilityGroups struct { + Response *[]ResponseWirelessGetAllMobilityGroupsResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version. +} +type ResponseWirelessGetAllMobilityGroupsResponse struct { + MobilityGroupName string `json:"mobilityGroupName,omitempty"` // Self device Group Name. Must be alphanumeric without {!,<,space,?/'} and maximum of 31 characters. + MacAddress string `json:"macAddress,omitempty"` // Device mobility MAC Address. Allowed formats are:0a0b.0c01.0211, 0a0b0c010211, 0a:0b:0c:01:02:11 + ManagementIP string `json:"managementIp,omitempty"` // Self device wireless Management IP. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Obtain the network device ID value by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress}. + DtlsHighCipher *bool `json:"dtlsHighCipher,omitempty"` // DTLS High Cipher. + DataLinkEncryption *bool `json:"dataLinkEncryption,omitempty"` // A secure link in which data is encrypted using CAPWAP DTLS protocol can be established between two controllers. This value will be applied to all peers during POST operation. + MobilityPeers *[]ResponseWirelessGetAllMobilityGroupsResponseMobilityPeers `json:"mobilityPeers,omitempty"` // +} +type ResponseWirelessGetAllMobilityGroupsResponseMobilityPeers struct { + MobilityGroupName string `json:"mobilityGroupName,omitempty"` // Peer device mobility group Name. Must be alphanumeric without {!,<,space,?/'} and maximum of 31 characters. + PeerNetworkDeviceID string `json:"peerNetworkDeviceId,omitempty"` // Peer device Id. The possible values are UNKNOWN or valid UUID of Network device ID. UNKNOWN represents out of band device which is not managed internally. Valid UUID represents WLC network device ID. + MemberMacAddress string `json:"memberMacAddress,omitempty"` // Peer device mobility MAC Address. Allowed formats are:0a0b.0c01.0211, 0a0b0c010211, 0a:0b:0c:01:02:11 + DeviceSeries string `json:"deviceSeries,omitempty"` // Peer device mobility belongs to AireOS or IOX-XE family. 0 - indicates AireOS and 1 - indicates C9800. + DataLinkEncryption *bool `json:"dataLinkEncryption,omitempty"` // A secure link in which data is encrypted using CAPWAP DTLS protocol can be established between two controllers. + HashKey string `json:"hashKey,omitempty"` // SSC hash string must be 40 characters. + Status string `json:"status,omitempty"` // Possible values are - Control and Data Path Down, Data Path Down, Control Path Down, UP. + PeerIP string `json:"peerIp,omitempty"` // This indicates public IP address. + PrivateIPAddress string `json:"privateIpAddress,omitempty"` // This indicates private/management IP address. +} +type ResponseWirelessGetMobilityGroupsCount struct { + Response *ResponseWirelessGetMobilityGroupsCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response version. +} +type ResponseWirelessGetMobilityGroupsCountResponse struct { + Count *int `json:"count,omitempty"` // Total number of mobility groups available. +} +type ResponseWirelessMobilityProvision struct { + Response *ResponseWirelessMobilityProvisionResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessMobilityProvisionResponse struct { + TaskID string `json:"taskId,omitempty"` // Asynchronous Task Id + URL string `json:"url,omitempty"` // Asynchronous Task URL for further tracking +} +type ResponseWirelessMobilityReset struct { + Response *ResponseWirelessMobilityResetResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessMobilityResetResponse struct { + TaskID string `json:"taskId,omitempty"` // Asynchronous Task Id + URL string `json:"url,omitempty"` // Asynchronous Task URL for further tracking +} +type ResponseWirelessAssignManagedApLocationsForWLC struct { + Response *ResponseWirelessAssignManagedApLocationsForWLCResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessAssignManagedApLocationsForWLCResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessWirelessControllerProvision struct { + Response *ResponseWirelessWirelessControllerProvisionResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessWirelessControllerProvisionResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetAnchorManagedApLocationsForSpecificWirelessController struct { + Response *[]ResponseWirelessGetAnchorManagedApLocationsForSpecificWirelessControllerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetAnchorManagedApLocationsForSpecificWirelessControllerResponse struct { + ManagedApLocations *[]ResponseWirelessGetAnchorManagedApLocationsForSpecificWirelessControllerResponseManagedApLocations `json:"managedApLocations,omitempty"` // +} +type ResponseWirelessGetAnchorManagedApLocationsForSpecificWirelessControllerResponseManagedApLocations struct { + SiteID string `json:"siteId,omitempty"` // The site id of the managed ap location. + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // The site name hierarchy of the managed ap location. +} +type ResponseWirelessGetManagedApLocationsCountForSpecificWirelessController struct { + Response *ResponseWirelessGetManagedApLocationsCountForSpecificWirelessControllerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetManagedApLocationsCountForSpecificWirelessControllerResponse struct { + PrimaryManagedApLocationsCount *int `json:"primaryManagedApLocationsCount,omitempty"` // The count of the Primary managed ap locations. + SecondaryManagedApLocationsCount *int `json:"secondaryManagedApLocationsCount,omitempty"` // The count of the Secondary managed ap locations. + AnchorManagedApLocationsCount *int `json:"anchorManagedApLocationsCount,omitempty"` // The count of the Anchor managed ap locations. +} +type ResponseWirelessGetPrimaryManagedApLocationsForSpecificWirelessController struct { + Response *[]ResponseWirelessGetPrimaryManagedApLocationsForSpecificWirelessControllerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetPrimaryManagedApLocationsForSpecificWirelessControllerResponse struct { + ManagedApLocations *[]ResponseWirelessGetPrimaryManagedApLocationsForSpecificWirelessControllerResponseManagedApLocations `json:"managedApLocations,omitempty"` // +} +type ResponseWirelessGetPrimaryManagedApLocationsForSpecificWirelessControllerResponseManagedApLocations struct { + SiteID string `json:"siteId,omitempty"` // The site id of the managed ap location. + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // The site name hierarchy of the managed ap location. +} +type ResponseWirelessGetSecondaryManagedApLocationsForSpecificWirelessController struct { + Response *[]ResponseWirelessGetSecondaryManagedApLocationsForSpecificWirelessControllerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetSecondaryManagedApLocationsForSpecificWirelessControllerResponse struct { + ManagedApLocations *[]ResponseWirelessGetSecondaryManagedApLocationsForSpecificWirelessControllerResponseManagedApLocations `json:"managedApLocations,omitempty"` // +} +type ResponseWirelessGetSecondaryManagedApLocationsForSpecificWirelessControllerResponseManagedApLocations struct { + SiteID string `json:"siteId,omitempty"` // The site id of the managed ap location. + SiteNameHierarchy string `json:"siteNameHierarchy,omitempty"` // The site name hierarchy of the managed ap location. +} +type ResponseWirelessGetSSIDDetailsForSpecificWirelessController struct { + Response *[]ResponseWirelessGetSSIDDetailsForSpecificWirelessControllerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetSSIDDetailsForSpecificWirelessControllerResponse struct { + SSIDName string `json:"ssidName,omitempty"` // Name of the SSID. + WLANID *int `json:"wlanId,omitempty"` // WLAN ID. + WLANProfileName string `json:"wlanProfileName,omitempty"` // WLAN Profile Name. + L2Security string `json:"l2Security,omitempty"` // This represents the identifier for the Layer 2 authentication type. The authentication types supported include wpa2_enterprise, wpa2_personal, open, wpa3_enterprise, wpa3_personal, wpa2_wpa3_personal, wpa2_wpa3_enterprise, and open-secured. + L3Security string `json:"l3Security,omitempty"` // This represents the identifier for the Layer 3 authentication type. The authentication types supported are 'open' and 'webauth'. + RadioPolicy string `json:"radioPolicy,omitempty"` // This represents the identifier for the radio policy. The policies supported include 2.4GHz, 5GHz, and 6GHz. + AdminStatus *bool `json:"adminStatus,omitempty"` // Utilize this query parameter to obtain the administrative status. A 'true' value signifies that the admin status of the SSID is enabled, while a 'false' value indicates that the admin status of the SSID is disabled. + Managed *bool `json:"managed,omitempty"` // If the value is 'true,' the SSID is configured through design; if 'false,' it indicates out-of-band configuration on the Wireless LAN Controller. +} +type ResponseWirelessGetSSIDCountForSpecificWirelessController struct { + Response *ResponseWirelessGetSSIDCountForSpecificWirelessControllerResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetSSIDCountForSpecificWirelessControllerResponse struct { + Count *int `json:"count,omitempty"` // The count of the SSIDs. +} +type ResponseWirelessGetWirelessProfiles struct { + Response *[]ResponseWirelessGetWirelessProfilesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetWirelessProfilesResponse struct { + WirelessProfileName string `json:"wirelessProfileName,omitempty"` // Wireless Profile Name + SSIDDetails *[]ResponseWirelessGetWirelessProfilesResponseSSIDDetails `json:"ssidDetails,omitempty"` // + ID string `json:"id,omitempty"` // Id +} +type ResponseWirelessGetWirelessProfilesResponseSSIDDetails struct { + SSIDName string `json:"ssidName,omitempty"` // SSID Name + FlexConnect *ResponseWirelessGetWirelessProfilesResponseSSIDDetailsFlexConnect `json:"flexConnect,omitempty"` // + EnableFabric *bool `json:"enableFabric,omitempty"` // True if fabric is enabled, else False. Flex and fabric cannot be enabled simultaneously and a profile can only contain either flex SSIDs or fabric SSIDs and not both at the same time + WLANProfileName string `json:"wlanProfileName,omitempty"` // WLAN Profile Name + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + PolicyProfileName string `json:"policyProfileName,omitempty"` // Policy Profile Name + Dot11BeProfileID string `json:"dot11beProfileId,omitempty"` // 802.11be Profile ID +} +type ResponseWirelessGetWirelessProfilesResponseSSIDDetailsFlexConnect struct { + EnableFlexConnect *bool `json:"enableFlexConnect,omitempty"` // True if flex connect is enabled, else False. Flex and fabric cannot be enabled simultaneously and a profile can only contain either flex SSIDs or fabric SSIDs and not both at the same time + LocalToVLAN *int `json:"localToVlan,omitempty"` // Local to VLAN ID +} +type ResponseWirelessCreateWirelessProfileConnectivity struct { + Response *ResponseWirelessCreateWirelessProfileConnectivityResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessCreateWirelessProfileConnectivityResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetWirelessProfilesCount struct { + Response *ResponseWirelessGetWirelessProfilesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseWirelessGetWirelessProfilesCountResponse struct { + Count *int `json:"count,omitempty"` // Count of the requested resource +} +type ResponseWirelessUpdateWirelessProfileConnectivity struct { + Response *ResponseWirelessUpdateWirelessProfileConnectivityResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessUpdateWirelessProfileConnectivityResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetWirelessProfileByID struct { + Response *ResponseWirelessGetWirelessProfileByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetWirelessProfileByIDResponse struct { + WirelessProfileName string `json:"wirelessProfileName,omitempty"` // Wireless Profile Name + SSIDDetails *[]ResponseWirelessGetWirelessProfileByIDResponseSSIDDetails `json:"ssidDetails,omitempty"` // + ID string `json:"id,omitempty"` // Id +} +type ResponseWirelessGetWirelessProfileByIDResponseSSIDDetails struct { + SSIDName string `json:"ssidName,omitempty"` // SSID Name + FlexConnect *ResponseWirelessGetWirelessProfileByIDResponseSSIDDetailsFlexConnect `json:"flexConnect,omitempty"` // + EnableFabric *bool `json:"enableFabric,omitempty"` // True if fabric is enabled, else False. Flex and fabric cannot be enabled simultaneously and a profile can only contain either flex SSIDs or fabric SSIDs and not both at the same time + WLANProfileName string `json:"wlanProfileName,omitempty"` // WLAN Profile Name + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + PolicyProfileName string `json:"policyProfileName,omitempty"` // Policy Profile Name + Dot11BeProfileID string `json:"dot11beProfileId,omitempty"` // 802.11be Profile ID +} +type ResponseWirelessGetWirelessProfileByIDResponseSSIDDetailsFlexConnect struct { + EnableFlexConnect *bool `json:"enableFlexConnect,omitempty"` // True if flex connect is enabled, else False. Flex and fabric cannot be enabled simultaneously and a profile can only contain either flex SSIDs or fabric SSIDs and not both at the same time + LocalToVLAN *int `json:"localToVlan,omitempty"` // Local to VLAN ID +} +type ResponseWirelessDeleteWirelessProfileConnectivity struct { + Response *ResponseWirelessDeleteWirelessProfileConnectivityResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessDeleteWirelessProfileConnectivityResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetAll80211BeProfiles struct { + Response *[]ResponseWirelessGetAll80211BeProfilesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseWirelessGetAll80211BeProfilesResponse struct { + ID string `json:"id,omitempty"` // 802.11be Profile ID + ProfileName string `json:"profileName,omitempty"` // 802.11be Profile Name + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + OfdmaMultiRu *bool `json:"ofdmaMultiRu,omitempty"` // OFDMA Multi-RU + Default *bool `json:"default,omitempty"` // 802.11be Profile is marked default or custom (Read only field) +} +type ResponseWirelessCreateA80211BeProfile struct { + Response *ResponseWirelessCreateA80211BeProfileResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessCreateA80211BeProfileResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGet80211BeProfilesCount struct { + Response *ResponseWirelessGet80211BeProfilesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseWirelessGet80211BeProfilesCountResponse struct { + Count *int `json:"count,omitempty"` // Count of the requested resource +} +type ResponseWirelessDeleteA80211BeProfile struct { + Response *ResponseWirelessDeleteA80211BeProfileResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessDeleteA80211BeProfileResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessUpdate80211BeProfile struct { + Response *ResponseWirelessUpdate80211BeProfileResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessUpdate80211BeProfileResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGet80211BeProfileByID struct { + Response *ResponseWirelessGet80211BeProfileByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseWirelessGet80211BeProfileByIDResponse struct { + ID string `json:"id,omitempty"` // 802.11be Profile ID + ProfileName string `json:"profileName,omitempty"` // 802.11be Profile Name + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + OfdmaMultiRu *bool `json:"ofdmaMultiRu,omitempty"` // OFDMA Multi-RU + Default *bool `json:"default,omitempty"` // Is 802.11be Profile marked as default in System . (Read only field) +} +type ResponseWirelessGetInterfaces struct { + Response *[]ResponseWirelessGetInterfacesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetInterfacesResponse struct { + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + VLANID *int `json:"vlanId,omitempty"` // VLAN ID + ID string `json:"id,omitempty"` // Interface ID +} +type ResponseWirelessCreateInterface struct { + Response *ResponseWirelessCreateInterfaceResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessCreateInterfaceResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetInterfacesCount struct { + Response *ResponseWirelessGetInterfacesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseWirelessGetInterfacesCountResponse struct { + Count *int `json:"count,omitempty"` // Count of the requested resource +} +type ResponseWirelessGetInterfaceByID struct { + Response *ResponseWirelessGetInterfaceByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetInterfaceByIDResponse struct { + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + VLANID *int `json:"vlanId,omitempty"` // VLAN ID + ID string `json:"id,omitempty"` // Interface ID +} +type ResponseWirelessDeleteInterface struct { + Response *ResponseWirelessDeleteInterfaceResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessDeleteInterfaceResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessUpdateInterface struct { + Response *ResponseWirelessUpdateInterfaceResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessUpdateInterfaceResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessCreateRfProfile struct { + Response *ResponseWirelessCreateRfProfileResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessCreateRfProfileResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetRfProfiles struct { + Response *[]ResponseWirelessGetRfProfilesResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetRfProfilesResponse struct { + RfProfileName string `json:"rfProfileName,omitempty"` // RF Profile Name + DefaultRfProfile *bool `json:"defaultRfProfile,omitempty"` // True if RF Profile is default, else False. Maximum of only 1 RF Profile can be marked as default at any given time + EnableRadioTypeA *bool `json:"enableRadioTypeA,omitempty"` // True if 5 GHz radio band is enabled in the RF Profile, else False + EnableRadioTypeB *bool `json:"enableRadioTypeB,omitempty"` // True if 2.4 GHz radio band is enabled in the RF Profile, else False + EnableRadioType6GHz *bool `json:"enableRadioType6GHz,omitempty"` // True if 6 GHz radio band is enabled in the RF Profile, else False + EnableCustom *bool `json:"enableCustom,omitempty"` // True if RF Profile is custom, else False for system RF profiles like Low, High and Medium (Typical) + RadioTypeAProperties *ResponseWirelessGetRfProfilesResponseRadioTypeAProperties `json:"radioTypeAProperties,omitempty"` // + RadioTypeBProperties *ResponseWirelessGetRfProfilesResponseRadioTypeBProperties `json:"radioTypeBProperties,omitempty"` // + RadioType6GHzProperties *ResponseWirelessGetRfProfilesResponseRadioType6GHzProperties `json:"radioType6GHzProperties,omitempty"` // + ID string `json:"id,omitempty"` // RF Profile ID +} +type ResponseWirelessGetRfProfilesResponseRadioTypeAProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 5 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 5 GHz radio band passed in comma separated format without any spaces. Permissible values: 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165, 169, 173 + DataRates string `json:"dataRates,omitempty"` // Data rates of 5 GHz radio band passed in comma separated format without any spaces. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 5 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 5 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 5 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 5 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 5 GHz radio band + ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width + PreamblePuncture *bool `json:"preamblePuncture,omitempty"` // Enable or Disable Preamble Puncturing. This Wifi 7 configuration is applicable to wireless IOS devices supporting 17.15 and higher +} +type ResponseWirelessGetRfProfilesResponseRadioTypeBProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 2.4 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 2.4 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 + DataRates string `json:"dataRates,omitempty"` // Data rates of 2.4 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 2.4 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 2.4 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 2.4 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 2.4 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 2.4 GHz radio band +} +type ResponseWirelessGetRfProfilesResponseRadioType6GHzProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 6 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 6 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 233 + DataRates string `json:"dataRates,omitempty"` // Data rates of 6 GHz radio band passed in comma separated format without any spaces. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 6 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 6 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 6 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 6 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 6 GHz radio band + EnableStandardPowerService *bool `json:"enableStandardPowerService,omitempty"` // True if Standard Power Service is enabled, else False + MultiBssidProperties *ResponseWirelessGetRfProfilesResponseRadioType6GHzPropertiesMultiBssidProperties `json:"multiBssidProperties,omitempty"` // + PreamblePuncture *bool `json:"preamblePuncture,omitempty"` // Enable or Disable Preamble Puncturing. This Wifi 7 configuration is applicable to wireless IOS devices supporting 17.15 and higher + MinDbsWidth *int `json:"minDbsWidth,omitempty"` // Minimum DBS Width ( Permissible values : 20,40,80,160,320) + MaxDbsWidth *int `json:"maxDbsWidth,omitempty"` // Maximum DBS Width (Permissible Values: 20,40,80,160,320) +} +type ResponseWirelessGetRfProfilesResponseRadioType6GHzPropertiesMultiBssidProperties struct { + Dot11AxParameters *ResponseWirelessGetRfProfilesResponseRadioType6GHzPropertiesMultiBssidPropertiesDot11AxParameters `json:"dot11axParameters,omitempty"` // + Dot11BeParameters *ResponseWirelessGetRfProfilesResponseRadioType6GHzPropertiesMultiBssidPropertiesDot11BeParameters `json:"dot11beParameters,omitempty"` // + TargetWakeTime *bool `json:"targetWakeTime,omitempty"` // Target Wake Time + TwtBroadcastSupport *bool `json:"twtBroadcastSupport,omitempty"` // TWT Broadcast Support +} +type ResponseWirelessGetRfProfilesResponseRadioType6GHzPropertiesMultiBssidPropertiesDot11AxParameters struct { + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink +} +type ResponseWirelessGetRfProfilesResponseRadioType6GHzPropertiesMultiBssidPropertiesDot11BeParameters struct { + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink + OfdmaMultiRu *bool `json:"ofdmaMultiRu,omitempty"` // OFDMA Multi-RU +} +type ResponseWirelessGetRfProfilesCount struct { + Response *ResponseWirelessGetRfProfilesCountResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Response Version +} +type ResponseWirelessGetRfProfilesCountResponse struct { + Count *int `json:"count,omitempty"` // Count of the requested resource +} +type ResponseWirelessDeleteRfProfile struct { + Response *ResponseWirelessDeleteRfProfileResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessDeleteRfProfileResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessGetRfProfileByID struct { + Response *ResponseWirelessGetRfProfileByIDResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessGetRfProfileByIDResponse struct { + RfProfileName string `json:"rfProfileName,omitempty"` // RF Profile Name + DefaultRfProfile *bool `json:"defaultRfProfile,omitempty"` // True if RF Profile is default, else False. Maximum of only 1 RF Profile can be marked as default at any given time + EnableRadioTypeA *bool `json:"enableRadioTypeA,omitempty"` // True if 5 GHz radio band is enabled in the RF Profile, else False + EnableRadioTypeB *bool `json:"enableRadioTypeB,omitempty"` // True if 2.4 GHz radio band is enabled in the RF Profile, else False + EnableRadioType6GHz *bool `json:"enableRadioType6GHz,omitempty"` // True if 6 GHz radio band is enabled in the RF Profile, else False + EnableCustom *bool `json:"enableCustom,omitempty"` // True if RF Profile is custom, else False for system RF profiles like Low, High and Medium (Typical) + RadioTypeAProperties *ResponseWirelessGetRfProfileByIDResponseRadioTypeAProperties `json:"radioTypeAProperties,omitempty"` // + RadioTypeBProperties *ResponseWirelessGetRfProfileByIDResponseRadioTypeBProperties `json:"radioTypeBProperties,omitempty"` // + RadioType6GHzProperties *ResponseWirelessGetRfProfileByIDResponseRadioType6GHzProperties `json:"radioType6GHzProperties,omitempty"` // + ID string `json:"id,omitempty"` // RF Profile ID +} +type ResponseWirelessGetRfProfileByIDResponseRadioTypeAProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 5 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 5 GHz radio band passed in comma separated format without any spaces. Permissible values: 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165, 169, 173 + DataRates string `json:"dataRates,omitempty"` // Data rates of 5 GHz radio band passed in comma separated format without any spaces. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 5 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 5 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 5 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 5 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 5 GHz radio band + ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width + PreamblePuncture *bool `json:"preamblePuncture,omitempty"` // Enable or Disable Preamble Puncturing. This Wifi 7 configuration is applicable to wireless IOS devices supporting 17.15 and higher +} +type ResponseWirelessGetRfProfileByIDResponseRadioTypeBProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 2.4 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 2.4 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 + DataRates string `json:"dataRates,omitempty"` // Data rates of 2.4 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 2.4 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 2.4 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 2.4 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 2.4 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 2.4 GHz radio band +} +type ResponseWirelessGetRfProfileByIDResponseRadioType6GHzProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 6 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 6 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 233 + DataRates string `json:"dataRates,omitempty"` // Data rates of 6 GHz radio band passed in comma separated format without any spaces. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 6 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 6 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 6 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 6 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 6 GHz radio band + EnableStandardPowerService *bool `json:"enableStandardPowerService,omitempty"` // True if Standard Power Service is enabled, else False + MultiBssidProperties *ResponseWirelessGetRfProfileByIDResponseRadioType6GHzPropertiesMultiBssidProperties `json:"multiBssidProperties,omitempty"` // + PreamblePuncture *bool `json:"preamblePuncture,omitempty"` // Enable or Disable Preamble Puncturing. This Wifi 7 configuration is applicable to wireless IOS devices supporting 17.15 and higher + MinDbsWidth *int `json:"minDbsWidth,omitempty"` // Minimum DBS Width ( Permissible values : 20,40,80,160,320) + MaxDbsWidth *int `json:"maxDbsWidth,omitempty"` // Maximum DBS Width (Permissible Values: 20,40,80,160,320) +} +type ResponseWirelessGetRfProfileByIDResponseRadioType6GHzPropertiesMultiBssidProperties struct { + Dot11AxParameters *ResponseWirelessGetRfProfileByIDResponseRadioType6GHzPropertiesMultiBssidPropertiesDot11AxParameters `json:"dot11axParameters,omitempty"` // + Dot11BeParameters *ResponseWirelessGetRfProfileByIDResponseRadioType6GHzPropertiesMultiBssidPropertiesDot11BeParameters `json:"dot11beParameters,omitempty"` // + TargetWakeTime *bool `json:"targetWakeTime,omitempty"` // Target Wake Time + TwtBroadcastSupport *bool `json:"twtBroadcastSupport,omitempty"` // TWT Broadcast Support +} +type ResponseWirelessGetRfProfileByIDResponseRadioType6GHzPropertiesMultiBssidPropertiesDot11AxParameters struct { + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink +} +type ResponseWirelessGetRfProfileByIDResponseRadioType6GHzPropertiesMultiBssidPropertiesDot11BeParameters struct { + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink + OfdmaMultiRu *bool `json:"ofdmaMultiRu,omitempty"` // OFDMA Multi-RU +} +type ResponseWirelessUpdateRfProfile struct { + Response *ResponseWirelessUpdateRfProfileResponse `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // Version +} +type ResponseWirelessUpdateRfProfileResponse struct { + TaskID string `json:"taskId,omitempty"` // Task ID + URL string `json:"url,omitempty"` // Task URL +} +type ResponseWirelessConfigureAccessPointsV2 struct { + Response *ResponseWirelessConfigureAccessPointsV2Response `json:"response,omitempty"` // + Version string `json:"version,omitempty"` // +} +type ResponseWirelessConfigureAccessPointsV2Response struct { + TaskID string `json:"taskId,omitempty"` // + URL string `json:"url,omitempty"` // } type RequestWirelessCreateAndProvisionSSID struct { ManagedApLocations []string `json:"managedAPLocations,omitempty"` // Managed AP Locations (Enter entire Site(s) hierarchy) @@ -553,16 +1327,22 @@ type RequestWirelessCreateAndProvisionSSID struct { FlexConnect *RequestWirelessCreateAndProvisionSSIDFlexConnect `json:"flexConnect,omitempty"` // } type RequestWirelessCreateAndProvisionSSIDSSIDDetails struct { - Name string `json:"name,omitempty"` // SSID Name - SecurityLevel string `json:"securityLevel,omitempty"` // Security Level(For guest SSID OPEN/WEB_AUTH, For Enterprise SSID ENTERPRISE/PERSONAL/OPEN) - EnableFastLane *bool `json:"enableFastLane,omitempty"` // Enable Fast Lane - Passphrase string `json:"passphrase,omitempty"` // Pass Phrase ( Only applicable for SSID with PERSONAL auth type ) - TrafficType string `json:"trafficType,omitempty"` // Traffic Type - EnableBroadcastSSID *bool `json:"enableBroadcastSSID,omitempty"` // Enable Broadcast SSID - RadioPolicy string `json:"radioPolicy,omitempty"` // Radio Policy - EnableMacFiltering *bool `json:"enableMACFiltering,omitempty"` // Enable MAC Filtering - FastTransition string `json:"fastTransition,omitempty"` // Fast Transition - WebAuthURL string `json:"webAuthURL,omitempty"` // Web Auth URL + Name string `json:"name,omitempty"` // SSID Name + SecurityLevel string `json:"securityLevel,omitempty"` // Security Level(For guest SSID OPEN/WEB_AUTH, For Enterprise SSID ENTERPRISE/PERSONAL/OPEN) + EnableFastLane *bool `json:"enableFastLane,omitempty"` // Enable Fast Lane + Passphrase string `json:"passphrase,omitempty"` // Pass Phrase ( Only applicable for SSID with PERSONAL auth type ) + TrafficType string `json:"trafficType,omitempty"` // Traffic Type + EnableBroadcastSSID *bool `json:"enableBroadcastSSID,omitempty"` // Enable Broadcast SSID + RadioPolicy string `json:"radioPolicy,omitempty"` // Radio Policy + EnableMacFiltering *bool `json:"enableMACFiltering,omitempty"` // Enable MAC Filtering + FastTransition string `json:"fastTransition,omitempty"` // Fast Transition + WebAuthURL string `json:"webAuthURL,omitempty"` // Web Auth URL + AuthKeyMgmt []string `json:"authKeyMgmt,omitempty"` // Takes string inputs for the AKMs that should be set true. Possible AKM values : dot1x,dot1x_ft, dot1x_sha, psk, psk_ft, psk_sha, owe, sae, sae_ft + RsnCipherSuiteGcmp256 *bool `json:"rsnCipherSuiteGcmp256,omitempty"` // Rsn Cipher Suite Gcmp256 + RsnCipherSuiteGcmp128 *bool `json:"rsnCipherSuiteGcmp128,omitempty"` // Rsn Cipher Suite Gcmp128 + RsnCipherSuiteCcmp256 *bool `json:"rsnCipherSuiteCcmp256,omitempty"` // Rsn Cipher Suite Ccmp256 + Ghz6PolicyClientSteering *bool `json:"ghz6PolicyClientSteering,omitempty"` // 6 Ghz Client Steering + Ghz24Policy string `json:"ghz24Policy,omitempty"` // 2.4 GHz Policy } type RequestWirelessCreateAndProvisionSSIDFlexConnect struct { EnableFlexConnect *bool `json:"enableFlexConnect,omitempty"` // Enable Flex Connect @@ -572,48 +1352,228 @@ type RequestWirelessRebootAccessPoints struct { ApMacAddresses []string `json:"apMacAddresses,omitempty"` // The ethernet MAC address of the access point. } type RequestWirelessCreateEnterpriseSSID struct { - Name string `json:"name,omitempty"` // SSID NAME - SecurityLevel string `json:"securityLevel,omitempty"` // Security Level - Passphrase string `json:"passphrase,omitempty"` // Passphrase - EnableFastLane *bool `json:"enableFastLane,omitempty"` // Enable FastLane - EnableMacFiltering *bool `json:"enableMACFiltering,omitempty"` // Enable MAC Filtering - TrafficType string `json:"trafficType,omitempty"` // Traffic Type Enum (voicedata or data ) - RadioPolicy string `json:"radioPolicy,omitempty"` // Radio Policy Enum (enum: Triple band operation (2.4GHz, 5GHz and 6GHz), Triple band operation with band select, 5GHz only, 2.4GHz only, 6GHz only) - EnableBroadcastSSID *bool `json:"enableBroadcastSSID,omitempty"` // Enable Broadcase SSID - FastTransition string `json:"fastTransition,omitempty"` // Fast Transition - EnableSessionTimeOut *bool `json:"enableSessionTimeOut,omitempty"` // Enable Session Timeout - SessionTimeOut *int `json:"sessionTimeOut,omitempty"` // Session Time Out - EnableClientExclusion *bool `json:"enableClientExclusion,omitempty"` // Enable Client Exclusion - ClientExclusionTimeout *int `json:"clientExclusionTimeout,omitempty"` // Client Exclusion Timeout - EnableBasicServiceSetMaxIDle *bool `json:"enableBasicServiceSetMaxIdle,omitempty"` // Enable Basic Service Set Max Idle - BasicServiceSetClientIDleTimeout *int `json:"basicServiceSetClientIdleTimeout,omitempty"` // Basic Service Set Client Idle Timeout - EnableDirectedMulticastService *bool `json:"enableDirectedMulticastService,omitempty"` // Enable Directed Multicast Service - EnableNeighborList *bool `json:"enableNeighborList,omitempty"` // Enable Neighbor List - MfpClientProtection string `json:"mfpClientProtection,omitempty"` // Management Frame Protection Client - NasOptions []string `json:"nasOptions,omitempty"` // Nas Options - ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // Nas Options + Name string `json:"name,omitempty"` // SSID NAME + SecurityLevel string `json:"securityLevel,omitempty"` // Security Level + Passphrase string `json:"passphrase,omitempty"` // Passphrase + EnableFastLane *bool `json:"enableFastLane,omitempty"` // Enable FastLane + EnableMacFiltering *bool `json:"enableMACFiltering,omitempty"` // Enable MAC Filtering + TrafficType string `json:"trafficType,omitempty"` // Traffic Type Enum (voicedata or data ) + RadioPolicy string `json:"radioPolicy,omitempty"` // Radio Policy Enum + EnableBroadcastSSID *bool `json:"enableBroadcastSSID,omitempty"` // Enable Broadcase SSID + FastTransition string `json:"fastTransition,omitempty"` // Fast Transition + EnableSessionTimeOut *bool `json:"enableSessionTimeOut,omitempty"` // Enable Session Timeout + SessionTimeOut *int `json:"sessionTimeOut,omitempty"` // Session Time Out + EnableClientExclusion *bool `json:"enableClientExclusion,omitempty"` // Enable Client Exclusion + ClientExclusionTimeout *int `json:"clientExclusionTimeout,omitempty"` // Client Exclusion Timeout + EnableBasicServiceSetMaxIDle *bool `json:"enableBasicServiceSetMaxIdle,omitempty"` // Enable Basic Service Set Max Idle + BasicServiceSetClientIDleTimeout *int `json:"basicServiceSetClientIdleTimeout,omitempty"` // Basic Service Set Client Idle Timeout + EnableDirectedMulticastService *bool `json:"enableDirectedMulticastService,omitempty"` // Enable Directed Multicast Service + EnableNeighborList *bool `json:"enableNeighborList,omitempty"` // Enable Neighbor List + MfpClientProtection string `json:"mfpClientProtection,omitempty"` // Management Frame Protection Client + NasOptions []string `json:"nasOptions,omitempty"` // Nas Options + ProfileName string `json:"profileName,omitempty"` // Profile Name + PolicyProfileName string `json:"policyProfileName,omitempty"` // Policy Profile Name + AAAOverride *bool `json:"aaaOverride,omitempty"` // Aaa Override + CoverageHoleDetectionEnable *bool `json:"coverageHoleDetectionEnable,omitempty"` // Coverage Hole Detection Enable + ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // (Required applicable for Security Type WPA3_PERSONAL, WPA3_ENTERPRISE, OPEN_SECURED) and (Optional, Required Applicable for Security Type WPA2_WPA3_PERSONAL and WPA2_WPA3_ENTERPRISE) + MultipSKSettings *[]RequestWirelessCreateEnterpriseSSIDMultipSKSettings `json:"multiPSKSettings,omitempty"` // + ClientRateLimit *float64 `json:"clientRateLimit,omitempty"` // Client Rate Limit (in bits per second) + AuthKeyMgmt []string `json:"authKeyMgmt,omitempty"` // Takes string inputs for the AKMs that should be set true. Possible AKM values : dot1x,dot1x_ft, dot1x_sha, psk, psk_ft, psk_sha, owe, sae, sae_ft + RsnCipherSuiteGcmp256 *bool `json:"rsnCipherSuiteGcmp256,omitempty"` // Rsn Cipher Suite Gcmp256 + RsnCipherSuiteCcmp256 *bool `json:"rsnCipherSuiteCcmp256,omitempty"` // Rsn Cipher Suite Ccmp256 + RsnCipherSuiteGcmp128 *bool `json:"rsnCipherSuiteGcmp128,omitempty"` // Rsn Cipher Suite Gcmp 128 + Ghz6PolicyClientSteering *bool `json:"ghz6PolicyClientSteering,omitempty"` // Ghz6 Policy Client Steering + Ghz24Policy string `json:"ghz24Policy,omitempty"` // Ghz24 Policy +} +type RequestWirelessCreateEnterpriseSSIDMultipSKSettings struct { + Priority *int `json:"priority,omitempty"` // Priority + PassphraseType string `json:"passphraseType,omitempty"` // Passphrase Type + Passphrase string `json:"passphrase,omitempty"` // Passphrase } type RequestWirelessUpdateEnterpriseSSID struct { - Name string `json:"name,omitempty"` // SSID NAME - SecurityLevel string `json:"securityLevel,omitempty"` // Security Level - Passphrase string `json:"passphrase,omitempty"` // Passphrase - EnableFastLane *bool `json:"enableFastLane,omitempty"` // Enable FastLane - EnableMacFiltering *bool `json:"enableMACFiltering,omitempty"` // Enable MAC Filtering - TrafficType string `json:"trafficType,omitempty"` // Traffic Type Enum (voicedata or data ) - RadioPolicy string `json:"radioPolicy,omitempty"` // Radio Policy Enum (enum: Triple band operation (2.4GHz, 5GHz and 6GHz), Triple band operation with band select, 5GHz only, 2.4GHz only, 6GHz only) - EnableBroadcastSSID *bool `json:"enableBroadcastSSID,omitempty"` // Enable Broadcase SSID - FastTransition string `json:"fastTransition,omitempty"` // Fast Transition - EnableSessionTimeOut *bool `json:"enableSessionTimeOut,omitempty"` // Enable Session Timeout - SessionTimeOut *int `json:"sessionTimeOut,omitempty"` // Session Time Out - EnableClientExclusion *bool `json:"enableClientExclusion,omitempty"` // Enable Client Exclusion - ClientExclusionTimeout *int `json:"clientExclusionTimeout,omitempty"` // Client Exclusion Timeout - EnableBasicServiceSetMaxIDle *bool `json:"enableBasicServiceSetMaxIdle,omitempty"` // Enable Basic Service Set Max Idle - BasicServiceSetClientIDleTimeout *int `json:"basicServiceSetClientIdleTimeout,omitempty"` // Basic Service Set Client Idle Timeout - EnableDirectedMulticastService *bool `json:"enableDirectedMulticastService,omitempty"` // Enable Directed Multicast Service - EnableNeighborList *bool `json:"enableNeighborList,omitempty"` // Enable Neighbor List - MfpClientProtection string `json:"mfpClientProtection,omitempty"` // Management Frame Protection Client - NasOptions []string `json:"nasOptions,omitempty"` // Nas Options - ProtectedManagementFrame string `json:"protectedManagementFrame:,omitempty"` // Nas Options + Name string `json:"name,omitempty"` // SSID NAME + SecurityLevel string `json:"securityLevel,omitempty"` // Security Level + Passphrase string `json:"passphrase,omitempty"` // Passphrase + EnableFastLane *bool `json:"enableFastLane,omitempty"` // Enable FastLane + EnableMacFiltering *bool `json:"enableMACFiltering,omitempty"` // Enable MAC Filtering + TrafficType string `json:"trafficType,omitempty"` // Traffic Type Enum (voicedata or data ) + RadioPolicy string `json:"radioPolicy,omitempty"` // Radio Policy Enum + EnableBroadcastSSID *bool `json:"enableBroadcastSSID,omitempty"` // Enable Broadcase SSID + FastTransition string `json:"fastTransition,omitempty"` // Fast Transition + EnableSessionTimeOut *bool `json:"enableSessionTimeOut,omitempty"` // Enable Session Timeout + SessionTimeOut *int `json:"sessionTimeOut,omitempty"` // Session Time Out + EnableClientExclusion *bool `json:"enableClientExclusion,omitempty"` // Enable Client Exclusion + ClientExclusionTimeout *int `json:"clientExclusionTimeout,omitempty"` // Client Exclusion Timeout + EnableBasicServiceSetMaxIDle *bool `json:"enableBasicServiceSetMaxIdle,omitempty"` // Enable Basic Service Set Max Idle + BasicServiceSetClientIDleTimeout *int `json:"basicServiceSetClientIdleTimeout,omitempty"` // Basic Service Set Client Idle Timeout + EnableDirectedMulticastService *bool `json:"enableDirectedMulticastService,omitempty"` // Enable Directed Multicast Service + EnableNeighborList *bool `json:"enableNeighborList,omitempty"` // Enable Neighbor List + MfpClientProtection string `json:"mfpClientProtection,omitempty"` // Management Frame Protection Client + NasOptions []string `json:"nasOptions,omitempty"` // Nas Options + ProfileName string `json:"profileName,omitempty"` // Profile Name + PolicyProfileName string `json:"policyProfileName,omitempty"` // Policy Profile Name + AAAOverride *bool `json:"aaaOverride,omitempty"` // Aaa Override + CoverageHoleDetectionEnable *bool `json:"coverageHoleDetectionEnable,omitempty"` // Coverage Hole Detection Enable + ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // (Required applicable for Security Type WPA3_PERSONAL, WPA3_ENTERPRISE, OPEN_SECURED) and (Optional, Required Applicable for Security Type WPA2_WPA3_PERSONAL and WPA2_WPA3_ENTERPRISE) + MultipSKSettings *[]RequestWirelessUpdateEnterpriseSSIDMultipSKSettings `json:"multiPSKSettings,omitempty"` // + ClientRateLimit *float64 `json:"clientRateLimit,omitempty"` // Client Rate Limit (in bits per second) + AuthKeyMgmt []string `json:"authKeyMgmt,omitempty"` // Takes string inputs for the AKMs that should be set true. Possible AKM values : dot1x,dot1x_ft, dot1x_sha, psk, psk_ft, psk_sha, owe, sae, sae_ft + RsnCipherSuiteGcmp256 *bool `json:"rsnCipherSuiteGcmp256,omitempty"` // Rsn Cipher Suite Gcmp256 + RsnCipherSuiteCcmp256 *bool `json:"rsnCipherSuiteCcmp256,omitempty"` // Rsn Cipher Suite Ccmp256 + RsnCipherSuiteGcmp128 *bool `json:"rsnCipherSuiteGcmp128,omitempty"` // Rsn Cipher Suite Gcmp 128 + Ghz6PolicyClientSteering *bool `json:"ghz6PolicyClientSteering,omitempty"` // Ghz6 Policy Client Steering + Ghz24Policy string `json:"ghz24Policy,omitempty"` // Ghz24 Policy +} +type RequestWirelessUpdateEnterpriseSSIDMultipSKSettings struct { + Priority *int `json:"priority,omitempty"` // Priority + PassphraseType string `json:"passphraseType,omitempty"` // Passphrase Type + Passphrase string `json:"passphrase,omitempty"` // Passphrase +} +type RequestWirelessCreateSSID struct { + SSID string `json:"ssid,omitempty"` // Name of the SSID + AuthType string `json:"authType,omitempty"` // L2 Authentication Type (If authType is not open , then atleast one RSN Cipher Suite and corresponding valid AKM must be enabled) + Passphrase string `json:"passphrase,omitempty"` // Passphrase (Only applicable for SSID with PERSONAL security level). Passphrase needs to be between 8 and 63 characters for ASCII type. HEX passphrase needs to be 64 characters + IsFastLaneEnabled *bool `json:"isFastLaneEnabled,omitempty"` // True if FastLane is enabled, else False + IsMacFilteringEnabled *bool `json:"isMacFilteringEnabled,omitempty"` // When set to true, MAC Filtering will be activated, allowing control over network access based on the MAC address of the device + SSIDRadioType string `json:"ssidRadioType,omitempty"` // Radio Policy Enum (default: Triple band operation(2.4GHz, 5GHz and 6GHz)) + IsBroadcastSSID *bool `json:"isBroadcastSSID,omitempty"` // When activated by setting it to true, the Broadcast SSID feature will make the SSID publicly visible to wireless devices searching for available networks + FastTransition string `json:"fastTransition,omitempty"` // Fast Transition + SessionTimeOutEnable *bool `json:"sessionTimeOutEnable,omitempty"` // Turn on the feature that imposes a time limit on user sessions + SessionTimeOut *int `json:"sessionTimeOut,omitempty"` // This denotes the allotted time span, expressed in seconds, before a session is automatically terminated due to inactivity + ClientExclusionEnable *bool `json:"clientExclusionEnable,omitempty"` // Activate the feature that allows for the exclusion of clients + ClientExclusionTimeout *int `json:"clientExclusionTimeout,omitempty"` // This refers to the length of time, in seconds, a client is excluded or blocked from accessing the network after a specified number of unsuccessful attempts + BasicServiceSetMaxIDleEnable *bool `json:"basicServiceSetMaxIdleEnable,omitempty"` // Activate the maximum idle feature for the Basic Service Set + BasicServiceSetClientIDleTimeout *int `json:"basicServiceSetClientIdleTimeout,omitempty"` // This refers to the duration of inactivity, measured in seconds, before a client connected to the Basic Service Set is considered idle and timed out + DirectedMulticastServiceEnable *bool `json:"directedMulticastServiceEnable,omitempty"` // The Directed Multicast Service feature becomes operational when it is set to true + NeighborListEnable *bool `json:"neighborListEnable,omitempty"` // The Neighbor List feature is enabled when it is set to true + ManagementFrameProtectionClientprotection string `json:"managementFrameProtectionClientprotection,omitempty"` // Management Frame Protection Client + NasOptions []string `json:"nasOptions,omitempty"` // Pre-Defined NAS Options : AP ETH Mac Address, AP IP address, AP Location , AP MAC Address, AP Name, AP Policy Tag, AP Site Tag, SSID, System IP Address, System MAC Address, System Name. + ProfileName string `json:"profileName,omitempty"` // WLAN Profile Name, if not passed autogenerated profile name will be assigned. The same wlanProfileName will also be used for policyProfileName + AAAOverride *bool `json:"aaaOverride,omitempty"` // Activate the AAA Override feature when set to true + CoverageHoleDetectionEnable *bool `json:"coverageHoleDetectionEnable,omitempty"` // Activate Coverage Hole Detection feature when set to true + ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // (REQUIRED is applicable for authType WPA3_PERSONAL, WPA3_ENTERPRISE, OPEN_SECURED) and (OPTIONAL/REQUIRED is applicable for authType WPA2_WPA3_PERSONAL and WPA2_WPA3_ENTERPRISE) + MultipSKSettings *[]RequestWirelessCreateSSIDMultipSKSettings `json:"multiPSKSettings,omitempty"` // + ClientRateLimit *int `json:"clientRateLimit,omitempty"` // This pertains to the maximum data transfer rate, specified in bits per second, that a client is permitted to achieve + RsnCipherSuiteGcmp256 *bool `json:"rsnCipherSuiteGcmp256,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite GCMP256 encryption protocol is activated + RsnCipherSuiteCcmp256 *bool `json:"rsnCipherSuiteCcmp256,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite CCMP256 encryption protocol is activated + RsnCipherSuiteGcmp128 *bool `json:"rsnCipherSuiteGcmp128,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite GCMP128 encryption protocol is activated + RsnCipherSuiteCcmp128 *bool `json:"rsnCipherSuiteCcmp128,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite CCMP128 encryption protocol is activated + Ghz6PolicyClientSteering *bool `json:"ghz6PolicyClientSteering,omitempty"` // True if 6 GHz Policy Client Steering is enabled, else False + IsAuthKey8021X *bool `json:"isAuthKey8021x,omitempty"` // When set to true, the 802.1X authentication key is in use + IsAuthKey8021XPlusFT *bool `json:"isAuthKey8021xPlusFT,omitempty"` // When set to true, the 802.1X-Plus-FT authentication key is in use + IsAuthKey8021XSHA256 *bool `json:"isAuthKey8021x_SHA256,omitempty"` // When set to true, the feature that enables 802.1X authentication using the SHA256 algorithm is turned on + IsAuthKeySae *bool `json:"isAuthKeySae,omitempty"` // When set to true, the feature enabling the Simultaneous Authentication of Equals (SAE) authentication key is activated + IsAuthKeySaePlusFT *bool `json:"isAuthKeySaePlusFT,omitempty"` // Activating this setting by switching it to true turns on the authentication key feature that supports both Simultaneous Authentication of Equals (SAE) and Fast Transition (FT) + IsAuthKeyPSK *bool `json:"isAuthKeyPSK,omitempty"` // When set to true, the Pre-shared Key (PSK) authentication feature is enabled + IsAuthKeyPSKPlusFT *bool `json:"isAuthKeyPSKPlusFT,omitempty"` // When set to true, the feature that enables the combination of Pre-shared Key (PSK) and Fast Transition (FT) authentication keys is activated + IsAuthKeyOWE *bool `json:"isAuthKeyOWE,omitempty"` // When set to true, the Opportunistic Wireless Encryption (OWE) authentication key feature is turned on + IsAuthKeyEasyPSK *bool `json:"isAuthKeyEasyPSK,omitempty"` // When set to true, the feature that enables the use of Easy Pre-shared Key (PSK) authentication is activated + IsAuthKeyPSKSHA256 *bool `json:"isAuthKeyPSKSHA256,omitempty"` // The feature that allows the use of Pre-shared Key (PSK) authentication with the SHA256 algorithm is enabled when it is set to true + OpenSSID string `json:"openSsid,omitempty"` // Open SSID which is already created in the design and not associated to any other OPEN-SECURED SSID + WLANBandSelectEnable *bool `json:"wlanBandSelectEnable,omitempty"` // Band select is allowed only when band options selected contains at least 2.4 GHz and 5 GHz band + IsEnabled *bool `json:"isEnabled,omitempty"` // Set SSID's admin status as 'Enabled' when set to true + AuthServers []string `json:"authServers,omitempty"` // List of Authentication/Authorization server IpAddresses + AcctServers []string `json:"acctServers,omitempty"` // List of Accounting server IpAddresses + EgressQos string `json:"egressQos,omitempty"` // Egress QOS + IngressQos string `json:"ingressQos,omitempty"` // Ingress QOS + WLANType string `json:"wlanType,omitempty"` // Wlan Type + L3AuthType string `json:"l3AuthType,omitempty"` // L3 Authentication Type + AuthServer string `json:"authServer,omitempty"` // Authentication Server, Mandatory for Guest SSIDs with wlanType=Guest and l3AuthType=web_auth + ExternalAuthIPAddress string `json:"externalAuthIpAddress,omitempty"` // External WebAuth URL (Mandatory for Guest SSIDs with wlanType = Guest, l3AuthType = web_auth and authServer = auth_external) + WebPassthrough *bool `json:"webPassthrough,omitempty"` // When set to true, the Web-Passthrough feature will be activated for the Guest SSID, allowing guests to bypass certain login requirements + SleepingClientEnable *bool `json:"sleepingClientEnable,omitempty"` // When set to true, this will activate the timeout settings that apply to clients in sleep mode + SleepingClientTimeout *int `json:"sleepingClientTimeout,omitempty"` // This refers to the amount of time, measured in minutes, before a sleeping (inactive) client is timed out of the network + ACLName string `json:"aclName,omitempty"` // Pre-Auth Access Control List (ACL) Name + IsPosturingEnabled *bool `json:"isPosturingEnabled,omitempty"` // Applicable only for Enterprise SSIDs. When set to True, Posturing will enabled. Required to be set to True if ACL needs to be mapped for Enterprise SSID. + IsAuthKeySuiteB1X *bool `json:"isAuthKeySuiteB1x,omitempty"` // When activated by setting it to true, the SuiteB-1x authentication key feature is engaged. + IsAuthKeySuiteB1921X *bool `json:"isAuthKeySuiteB1921x,omitempty"` // When set to true, the SuiteB192-1x authentication key feature is enabled. + IsAuthKeySaeExt *bool `json:"isAuthKeySaeExt,omitempty"` // When set to true, the Simultaneous Authentication of Equals (SAE) Extended Authentication key feature is turned on. + IsAuthKeySaeExtPlusFT *bool `json:"isAuthKeySaeExtPlusFT,omitempty"` // When set to true, the Simultaneous Authentication of Equals (SAE) combined with Fast Transition (FT) Authentication Key feature is enabled. + IsApBeaconProtectionEnabled *bool `json:"isApBeaconProtectionEnabled,omitempty"` // When set to true, the Access Point (AP) Beacon Protection feature is activated, enhancing the security of the network. + Ghz24Policy string `json:"ghz24Policy,omitempty"` // 2.4 Ghz Band Policy value. Allowed only when 2.4 Radio Band is enabled in ssidRadioType + CckmTsfTolerance *int `json:"cckmTsfTolerance,omitempty"` // Cckm TImestamp Tolerance(in milliseconds) + IsCckmEnabled *bool `json:"isCckmEnabled,omitempty"` // True if CCKM is enabled, else False + IsHex *bool `json:"isHex,omitempty"` // True if passphrase is in Hex format, else False. + IsRandomMacFilterEnabled *bool `json:"isRandomMacFilterEnabled,omitempty"` // Deny clients using randomized MAC addresses when set to true + FastTransitionOverTheDistributedSystemEnable *bool `json:"fastTransitionOverTheDistributedSystemEnable,omitempty"` // Enable Fast Transition over the Distributed System when set to true +} +type RequestWirelessCreateSSIDMultipSKSettings struct { + Priority *int `json:"priority,omitempty"` // Priority + PassphraseType string `json:"passphraseType,omitempty"` // Passphrase Type + Passphrase string `json:"passphrase,omitempty"` // Passphrase needs to be between 8 and 63 characters for ASCII type. HEX passphrase needs to be 64 characters +} +type RequestWirelessUpdateSSID struct { + SSID string `json:"ssid,omitempty"` // Name of the SSID + AuthType string `json:"authType,omitempty"` // L2 Authentication Type (If authType is not open , then atleast one RSN Cipher Suite and corresponding valid AKM must be enabled) + Passphrase string `json:"passphrase,omitempty"` // Passphrase (Only applicable for SSID with PERSONAL security level). Passphrase needs to be between 8 and 63 characters for ASCII type. HEX passphrase needs to be 64 characters + IsFastLaneEnabled *bool `json:"isFastLaneEnabled,omitempty"` // True if FastLane is enabled, else False + IsMacFilteringEnabled *bool `json:"isMacFilteringEnabled,omitempty"` // When set to true, MAC Filtering will be activated, allowing control over network access based on the MAC address of the device + SSIDRadioType string `json:"ssidRadioType,omitempty"` // Radio Policy Enum (default: Triple band operation(2.4GHz, 5GHz and 6GHz)) + IsBroadcastSSID *bool `json:"isBroadcastSSID,omitempty"` // When activated by setting it to true, the Broadcast SSID feature will make the SSID publicly visible to wireless devices searching for available networks + FastTransition string `json:"fastTransition,omitempty"` // Fast Transition + SessionTimeOutEnable *bool `json:"sessionTimeOutEnable,omitempty"` // Turn on the feature that imposes a time limit on user sessions + SessionTimeOut *int `json:"sessionTimeOut,omitempty"` // This denotes the allotted time span, expressed in seconds, before a session is automatically terminated due to inactivity + ClientExclusionEnable *bool `json:"clientExclusionEnable,omitempty"` // Activate the feature that allows for the exclusion of clients + ClientExclusionTimeout *int `json:"clientExclusionTimeout,omitempty"` // This refers to the length of time, in seconds, a client is excluded or blocked from accessing the network after a specified number of unsuccessful attempts + BasicServiceSetMaxIDleEnable *bool `json:"basicServiceSetMaxIdleEnable,omitempty"` // Activate the maximum idle feature for the Basic Service Set + BasicServiceSetClientIDleTimeout *int `json:"basicServiceSetClientIdleTimeout,omitempty"` // This refers to the duration of inactivity, measured in seconds, before a client connected to the Basic Service Set is considered idle and timed out + DirectedMulticastServiceEnable *bool `json:"directedMulticastServiceEnable,omitempty"` // The Directed Multicast Service feature becomes operational when it is set to true + NeighborListEnable *bool `json:"neighborListEnable,omitempty"` // The Neighbor List feature is enabled when it is set to true + ManagementFrameProtectionClientprotection string `json:"managementFrameProtectionClientprotection,omitempty"` // Management Frame Protection Client + NasOptions []string `json:"nasOptions,omitempty"` // Pre-Defined NAS Options : AP ETH Mac Address, AP IP address, AP Location , AP MAC Address, AP Name, AP Policy Tag, AP Site Tag, SSID, System IP Address, System MAC Address, System Name. + ProfileName string `json:"profileName,omitempty"` // WLAN Profile Name, if not passed autogenerated profile name will be assigned. The same wlanProfileName will also be used for policyProfileName + AAAOverride *bool `json:"aaaOverride,omitempty"` // Activate the AAA Override feature when set to true + CoverageHoleDetectionEnable *bool `json:"coverageHoleDetectionEnable,omitempty"` // Activate Coverage Hole Detection feature when set to true + ProtectedManagementFrame string `json:"protectedManagementFrame,omitempty"` // (REQUIRED is applicable for authType WPA3_PERSONAL, WPA3_ENTERPRISE, OPEN_SECURED) and (OPTIONAL/REQUIRED is applicable for authType WPA2_WPA3_PERSONAL and WPA2_WPA3_ENTERPRISE) + MultipSKSettings *[]RequestWirelessUpdateSSIDMultipSKSettings `json:"multiPSKSettings,omitempty"` // + ClientRateLimit *int `json:"clientRateLimit,omitempty"` // This pertains to the maximum data transfer rate, specified in bits per second, that a client is permitted to achieve + RsnCipherSuiteGcmp256 *bool `json:"rsnCipherSuiteGcmp256,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite GCMP256 encryption protocol is activated + RsnCipherSuiteCcmp256 *bool `json:"rsnCipherSuiteCcmp256,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite CCMP256 encryption protocol is activated + RsnCipherSuiteGcmp128 *bool `json:"rsnCipherSuiteGcmp128,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite GCMP128 encryption protocol is activated + RsnCipherSuiteCcmp128 *bool `json:"rsnCipherSuiteCcmp128,omitempty"` // When set to true, the Robust Security Network (RSN) Cipher Suite CCMP128 encryption protocol is activated + Ghz6PolicyClientSteering *bool `json:"ghz6PolicyClientSteering,omitempty"` // True if 6 GHz Policy Client Steering is enabled, else False + IsAuthKey8021X *bool `json:"isAuthKey8021x,omitempty"` // When set to true, the 802.1X authentication key is in use + IsAuthKey8021XPlusFT *bool `json:"isAuthKey8021xPlusFT,omitempty"` // When set to true, the 802.1X-Plus-FT authentication key is in use + IsAuthKey8021XSHA256 *bool `json:"isAuthKey8021x_SHA256,omitempty"` // When set to true, the feature that enables 802.1X authentication using the SHA256 algorithm is turned on + IsAuthKeySae *bool `json:"isAuthKeySae,omitempty"` // When set to true, the feature enabling the Simultaneous Authentication of Equals (SAE) authentication key is activated + IsAuthKeySaePlusFT *bool `json:"isAuthKeySaePlusFT,omitempty"` // Activating this setting by switching it to true turns on the authentication key feature that supports both Simultaneous Authentication of Equals (SAE) and Fast Transition (FT) + IsAuthKeyPSK *bool `json:"isAuthKeyPSK,omitempty"` // When set to true, the Pre-shared Key (PSK) authentication feature is enabled + IsAuthKeyPSKPlusFT *bool `json:"isAuthKeyPSKPlusFT,omitempty"` // When set to true, the feature that enables the combination of Pre-shared Key (PSK) and Fast Transition (FT) authentication keys is activated + IsAuthKeyOWE *bool `json:"isAuthKeyOWE,omitempty"` // When set to true, the Opportunistic Wireless Encryption (OWE) authentication key feature is turned on + IsAuthKeyEasyPSK *bool `json:"isAuthKeyEasyPSK,omitempty"` // When set to true, the feature that enables the use of Easy Pre-shared Key (PSK) authentication is activated + IsAuthKeyPSKSHA256 *bool `json:"isAuthKeyPSKSHA256,omitempty"` // The feature that allows the use of Pre-shared Key (PSK) authentication with the SHA256 algorithm is enabled when it is set to true + OpenSSID string `json:"openSsid,omitempty"` // Open SSID which is already created in the design and not associated to any other OPEN-SECURED SSID + WLANBandSelectEnable *bool `json:"wlanBandSelectEnable,omitempty"` // Band select is allowed only when band options selected contains at least 2.4 GHz and 5 GHz band + IsEnabled *bool `json:"isEnabled,omitempty"` // Set SSID's admin status as 'Enabled' when set to true + AuthServers []string `json:"authServers,omitempty"` // List of Authentication/Authorization server IpAddresses + AcctServers []string `json:"acctServers,omitempty"` // List of Accounting server IpAddresses + EgressQos string `json:"egressQos,omitempty"` // Egress QOS + IngressQos string `json:"ingressQos,omitempty"` // Ingress QOS + WLANType string `json:"wlanType,omitempty"` // Wlan Type + L3AuthType string `json:"l3AuthType,omitempty"` // L3 Authentication Type + AuthServer string `json:"authServer,omitempty"` // Authentication Server, Mandatory for Guest SSIDs with wlanType=Guest and l3AuthType=web_auth + ExternalAuthIPAddress string `json:"externalAuthIpAddress,omitempty"` // External WebAuth URL (Mandatory for Guest SSIDs with wlanType = Guest, l3AuthType = web_auth and authServer = auth_external) + WebPassthrough *bool `json:"webPassthrough,omitempty"` // When set to true, the Web-Passthrough feature will be activated for the Guest SSID, allowing guests to bypass certain login requirements + SleepingClientEnable *bool `json:"sleepingClientEnable,omitempty"` // When set to true, this will activate the timeout settings that apply to clients in sleep mode + SleepingClientTimeout *int `json:"sleepingClientTimeout,omitempty"` // This refers to the amount of time, measured in minutes, before a sleeping (inactive) client is timed out of the network + ACLName string `json:"aclName,omitempty"` // Pre-Auth Access Control List (ACL) Name + IsPosturingEnabled *bool `json:"isPosturingEnabled,omitempty"` // Applicable only for Enterprise SSIDs. When set to True, Posturing will enabled. Required to be set to True if ACL needs to be mapped for Enterprise SSID. + IsAuthKeySuiteB1X *bool `json:"isAuthKeySuiteB1x,omitempty"` // When activated by setting it to true, the SuiteB-1x authentication key feature is engaged. + IsAuthKeySuiteB1921X *bool `json:"isAuthKeySuiteB1921x,omitempty"` // When set to true, the SuiteB192-1x authentication key feature is enabled. + IsAuthKeySaeExt *bool `json:"isAuthKeySaeExt,omitempty"` // When set to true, the Simultaneous Authentication of Equals (SAE) Extended Authentication key feature is turned on. + IsAuthKeySaeExtPlusFT *bool `json:"isAuthKeySaeExtPlusFT,omitempty"` // When set to true, the Simultaneous Authentication of Equals (SAE) combined with Fast Transition (FT) Authentication Key feature is enabled. + IsApBeaconProtectionEnabled *bool `json:"isApBeaconProtectionEnabled,omitempty"` // When set to true, the Access Point (AP) Beacon Protection feature is activated, enhancing the security of the network. + Ghz24Policy string `json:"ghz24Policy,omitempty"` // 2.4 Ghz Band Policy value. Allowed only when 2.4 Radio Band is enabled in ssidRadioType + CckmTsfTolerance *int `json:"cckmTsfTolerance,omitempty"` // Cckm TImestamp Tolerance(in milliseconds) + IsCckmEnabled *bool `json:"isCckmEnabled,omitempty"` // True if CCKM is enabled, else False + IsHex *bool `json:"isHex,omitempty"` // True if passphrase is in Hex format, else False. + IsRandomMacFilterEnabled *bool `json:"isRandomMacFilterEnabled,omitempty"` // Deny clients using randomized MAC addresses when set to true + FastTransitionOverTheDistributedSystemEnable *bool `json:"fastTransitionOverTheDistributedSystemEnable,omitempty"` // Enable Fast Transition over the Distributed System when set to true +} +type RequestWirelessUpdateSSIDMultipSKSettings struct { + Priority *int `json:"priority,omitempty"` // Priority + PassphraseType string `json:"passphraseType,omitempty"` // Passphrase Type + Passphrase string `json:"passphrase,omitempty"` // Passphrase needs to be between 8 and 63 characters for ASCII type. HEX passphrase needs to be 64 characters } type RequestWirelessConfigureAccessPoints struct { ApList *[]RequestWirelessConfigureAccessPointsApList `json:"apList,omitempty"` // @@ -621,8 +1581,6 @@ type RequestWirelessConfigureAccessPoints struct { AdminStatus *bool `json:"adminStatus,omitempty"` // Configure the access point's admin status. Set this parameter's value to "true" to enable it and "false" to disable it. ConfigureApMode *bool `json:"configureApMode,omitempty"` // To change the access point's mode, set this parameter's value to "true". ApMode *int `json:"apMode,omitempty"` // Configure the access point's mode: for local/flexconnect mode, set "0"; for monitor mode, set "1"; for sniffer mode, set "4"; and for bridge/flex+bridge mode, set "5". - ConfigureApHeight *bool `json:"configureApHeight,omitempty"` // To change the access point's height, set this parameter's value to "true". - ApHeight *float64 `json:"apHeight,omitempty"` // Configure the height of the access point by setting a value between 3 and height of the floor. ConfigureFailoverPriority *bool `json:"configureFailoverPriority,omitempty"` // To change the access point's failover priority, set this parameter's value to "true". FailoverPriority *int `json:"failoverPriority,omitempty"` // Configure the acess point's failover priority: for low, set "1"; for medium, set "2"; for high, set "3"; and for critical, set "4". ConfigureLedStatus *bool `json:"configureLedStatus,omitempty"` // To change the access point's LED status, set this parameter's value to "true". @@ -639,6 +1597,7 @@ type RequestWirelessConfigureAccessPoints struct { TertiaryControllerName string `json:"tertiaryControllerName,omitempty"` // Configure the hostname for an access point's tertiary controller. TertiaryIPAddress *RequestWirelessConfigureAccessPointsTertiaryIPAddress `json:"tertiaryIpAddress,omitempty"` // RadioConfigurations *[]RequestWirelessConfigureAccessPointsRadioConfigurations `json:"radioConfigurations,omitempty"` // + IsAssignedSiteAsLocation *bool `json:"isAssignedSiteAsLocation,omitempty"` // If AP is assigned to a site, then to assign AP location as the site name, set this parameter's value to "true". } type RequestWirelessConfigureAccessPointsApList struct { ApName string `json:"apName,omitempty"` // The current host name of the access point. @@ -656,18 +1615,13 @@ type RequestWirelessConfigureAccessPointsTertiaryIPAddress struct { } type RequestWirelessConfigureAccessPointsRadioConfigurations struct { ConfigureRadioRoleAssignment *bool `json:"configureRadioRoleAssignment,omitempty"` // To change the radio role on the specified radio for an access point, set this parameter's value to "true". - RadioRoleAssignment string `json:"radioRoleAssignment,omitempty"` // Configure one of the following roles on the specified radio for an access point: "auto", "serving", or "monitor". - RadioBand string `json:"radioBand,omitempty"` // Configure the band on the specified radio for an access point: for 2.4 GHz, set "RADIO24"; for 5 GHz, set "RADIO5". + RadioRoleAssignment string `json:"radioRoleAssignment,omitempty"` // Configure only one of the following roles on the specified radio for an access point as "AUTO", "SERVING", or "MONITOR". Any other string is invalid, including empty string + RadioBand string `json:"radioBand,omitempty"` // Configure the band on the specified radio for an access point: for 2.4 GHz, set "RADIO24"; for 5 GHz, set "RADIO5". Any other string is invalid, including empty string ConfigureAdminStatus *bool `json:"configureAdminStatus,omitempty"` // To change the admin status on the specified radio for an access point, set this parameter's value to "true". AdminStatus *bool `json:"adminStatus,omitempty"` // Configure the admin status on the specified radio for an access point. Set this parameter's value to "true" to enable it and "false" to disable it. - ConfigureAntennaDegree *bool `json:"configureAntennaDegree,omitempty"` // To change the antenna degree on the specified radio for an access point, set this parameter's value to "true". - AntennaDegree *int `json:"antennaDegree,omitempty"` // Configure the antenna degree on the specified radio for an access point. - ConfigureElevAngleDegree *bool `json:"configureElevAngleDegree,omitempty"` // To change the elevation angle degree on the specified radio for an access point, set this parameter's value to "true". - AntennaElevAngleDegree *int `json:"antennaElevAngleDegree,omitempty"` // Configure the antenna elevation angle on the specified radio for an access point. - AntennaElevAngleSign *int `json:"antennaElevAngleSign,omitempty"` // Configure the antenna elevation angle direction on the specified radio for an access point: for up, set "1"; for down, set "-1". - ConfigureAntennaPatternName *bool `json:"configureAntennaPatternName,omitempty"` // To change the antenna pattern name on the specified radio for an access point, set the value for this parameter to "true". - AntennaPatternName string `json:"antennaPatternName,omitempty"` // Configure the antenna pattern name on the specified radio for an access point. If antenna gain needs to be configured, set this parameter's value to "other". - AntennaGain *int `json:"antennaGain,omitempty"` // Configure the antenna gain on the specified radio for an access point by setting a decimal value (in dBi). + ConfigureAntennaPatternName *bool `json:"configureAntennaPatternName,omitempty"` // To change the antenna gain on the specified radio for an access point, set the value for this parameter to "true". + AntennaPatternName string `json:"antennaPatternName,omitempty"` // Specify the antenna name on the specified radio for an access point. The antenna name is used to calculate the gain on the radio slot. + AntennaGain *int `json:"antennaGain,omitempty"` // Configure the antenna gain on the specified radio for an access point by setting a decimal value (in dBi). To configure "antennaGain", set "antennaPatternName" value to "other". ConfigureAntennaCable *bool `json:"configureAntennaCable,omitempty"` // To change the antenna cable name on the specified radio for an access point, set this parameter's value to "true". AntennaCableName string `json:"antennaCableName,omitempty"` // Configure the antenna cable name on the specified radio for an access point. If cable loss needs to be configured, set this parameter's value to "other". CableLoss *float64 `json:"cableLoss,omitempty"` // Configure the cable loss on the specified radio for an access point by setting a decimal value (in dBi). @@ -675,7 +1629,7 @@ type RequestWirelessConfigureAccessPointsRadioConfigurations struct { ChannelAssignmentMode *int `json:"channelAssignmentMode,omitempty"` // Configure the channel assignment mode on the specified radio for an access point: for global mode, set "1"; and for custom mode, set "2". ChannelNumber *int `json:"channelNumber,omitempty"` // Configure the channel number on the specified radio for an access point. ConfigureChannelWidth *bool `json:"configureChannelWidth,omitempty"` // To change the channel width on the specified radio for an access point, set this parameter's value to "true". - ChannelWidth *int `json:"channelWidth,omitempty"` // Configure the channel width on the specified radio for an access point: for 20 MHz, set "3"; for 40 MHz, set "4"; for 80 MHz, set "5"; and for 160 MHz, set "6". + ChannelWidth *int `json:"channelWidth,omitempty"` // Configure the channel width on the specified radio for an access point: for 20 MHz, set "3"; for 40 MHz, set "4"; for 80 MHz, set "5"; for 160 MHz, set "6", and for 320 MHz, set "7". ConfigurePower *bool `json:"configurePower,omitempty"` // To change the power assignment mode on the specified radio for an access point, set this parameter's value to "true". PowerAssignmentMode *int `json:"powerAssignmentMode,omitempty"` // Configure the power assignment mode on the specified radio for an access point: for global mode, set "1"; and for custom mode, set "2". Powerlevel *int `json:"powerlevel,omitempty"` // Configure the power level on the specified radio for an access point by setting a value between 1 and 8. @@ -683,10 +1637,9 @@ type RequestWirelessConfigureAccessPointsRadioConfigurations struct { CleanAirSI *int `json:"cleanAirSI,omitempty"` // Configure CleanAir or Spectrum Intelligence on the specified radio for an access point. Set this parameter's value to "0" to disable the feature or "1" to enable it. RadioType *int `json:"radioType,omitempty"` // Configure an access point's radio band: for 2.4 GHz, set "1"; for 5 GHz, set "2"; for XOR, set "3"; and for 6 GHz, set "6". } -type RequestWirelessApProvision []RequestItemWirelessApProvision // Array of RequestWirelessAPProvision -type RequestItemWirelessApProvision struct { +type RequestWirelessApProvisionConnectivity []RequestItemWirelessApProvisionConnectivity // Array of RequestWirelessAPProvisionConnectivity +type RequestItemWirelessApProvisionConnectivity struct { RfProfile string `json:"rfProfile,omitempty"` // Radio frequency profile name - SiteID string `json:"siteId,omitempty"` // Site name hierarchy(ex: Global/...) DeviceName string `json:"deviceName,omitempty"` // Device name CustomApGroupName string `json:"customApGroupName,omitempty"` // Custom AP group name CustomFlexGroupName []string `json:"customFlexGroupName,omitempty"` // ["Custom flex group name"] @@ -707,7 +1660,6 @@ type RequestWirelessUpdateWirelessProfileProfileDetails struct { } type RequestWirelessUpdateWirelessProfileProfileDetailsSSIDDetails struct { Name string `json:"name,omitempty"` // Ssid Name - Type string `json:"type,omitempty"` // Ssid Type(enum: Enterprise/Guest) EnableFabric *bool `json:"enableFabric,omitempty"` // true if ssid is fabric else false FlexConnect *RequestWirelessUpdateWirelessProfileProfileDetailsSSIDDetailsFlexConnect `json:"flexConnect,omitempty"` // InterfaceName string `json:"interfaceName,omitempty"` // Interface Name @@ -728,7 +1680,6 @@ type RequestWirelessCreateWirelessProfileProfileDetails struct { } type RequestWirelessCreateWirelessProfileProfileDetailsSSIDDetails struct { Name string `json:"name,omitempty"` // Ssid Name - Type string `json:"type,omitempty"` // Ssid Type(enum: Enterprise/Guest) EnableFabric *bool `json:"enableFabric,omitempty"` // true if ssid is fabric else false FlexConnect *RequestWirelessCreateWirelessProfileProfileDetailsSSIDDetailsFlexConnect `json:"flexConnect,omitempty"` // InterfaceName string `json:"interfaceName,omitempty"` // Interface Name @@ -741,17 +1692,17 @@ type RequestWirelessCreateWirelessProfileProfileDetailsSSIDDetailsFlexConnect st } type RequestWirelessProvisionUpdate []RequestItemWirelessProvisionUpdate // Array of RequestWirelessProvisionUpdate type RequestItemWirelessProvisionUpdate struct { - DeviceName string `json:"deviceName,omitempty"` // Device Name - ManagedApLocations []string `json:"managedAPLocations,omitempty"` // Managed APLocations + DeviceName string `json:"deviceName,omitempty"` // Controller Name + ManagedApLocations []string `json:"managedAPLocations,omitempty"` // List of managed AP locations (Site Hierarchies) DynamicInterfaces *[]RequestItemWirelessProvisionUpdateDynamicInterfaces `json:"dynamicInterfaces,omitempty"` // } type RequestItemWirelessProvisionUpdateDynamicInterfaces struct { - InterfaceIPAddress string `json:"interfaceIPAddress,omitempty"` // Interface IPAddress - InterfaceNetmaskInCIDR *int `json:"interfaceNetmaskInCIDR,omitempty"` // Interface Netmask In CIDR - InterfaceGateway string `json:"interfaceGateway,omitempty"` // Interface Gateway - LagOrPortNumber *int `json:"lagOrPortNumber,omitempty"` // Lag Or Port Number - VLANID *int `json:"vlanId,omitempty"` // Vlan Id - InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + InterfaceIPAddress string `json:"interfaceIPAddress,omitempty"` // Interface IP Address. Required for AireOS. + InterfaceNetmaskInCIDR *int `json:"interfaceNetmaskInCIDR,omitempty"` // Interface Netmask In CIDR. Required for AireOS. + InterfaceGateway string `json:"interfaceGateway,omitempty"` // Interface Gateway. Required for AireOS. + LagOrPortNumber *int `json:"lagOrPortNumber,omitempty"` // Lag Or Port Number. Required for AireOS. + VLANID *int `json:"vlanId,omitempty"` // VLAN ID. Required for AireOS and EWLC. + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name. Required for AireOS and EWLC. } type RequestWirelessProvision []RequestItemWirelessProvision // Array of RequestWirelessProvision type RequestItemWirelessProvision struct { @@ -761,12 +1712,12 @@ type RequestItemWirelessProvision struct { DynamicInterfaces *[]RequestItemWirelessProvisionDynamicInterfaces `json:"dynamicInterfaces,omitempty"` // } type RequestItemWirelessProvisionDynamicInterfaces struct { - InterfaceIPAddress string `json:"interfaceIPAddress,omitempty"` // Interface IP Address - InterfaceNetmaskInCIDR *int `json:"interfaceNetmaskInCIDR,omitempty"` // Interface Netmask In CIDR - InterfaceGateway string `json:"interfaceGateway,omitempty"` // Interface Gateway - LagOrPortNumber *int `json:"lagOrPortNumber,omitempty"` // Lag Or Port Number - VLANID *int `json:"vlanId,omitempty"` // VLAN ID - InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + InterfaceIPAddress string `json:"interfaceIPAddress,omitempty"` // Interface IP Address. Required for AireOS. + InterfaceNetmaskInCIDR *int `json:"interfaceNetmaskInCIDR,omitempty"` // Interface Netmask In CIDR. Required for AireOS. + InterfaceGateway string `json:"interfaceGateway,omitempty"` // Interface Gateway. Required for AireOS. + LagOrPortNumber *int `json:"lagOrPortNumber,omitempty"` // Lag Or Port Number. Required for AireOS. + VLANID *int `json:"vlanId,omitempty"` // VLAN ID. Required for both AireOS and EWLC. + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name. Required for both AireOS and EWLC. } type RequestWirelessPSKOverride []RequestItemWirelessPSKOverride // Array of RequestWirelessPSKOverride type RequestItemWirelessPSKOverride struct { @@ -789,34 +1740,345 @@ type RequestWirelessCreateOrUpdateRfProfile struct { EnableRadioTypeC *bool `json:"enableRadioTypeC,omitempty"` // Enable Radio Type C (6GHz) } type RequestWirelessCreateOrUpdateRfProfileRadioTypeAProperties struct { - ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile - RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels - DataRates string `json:"dataRates,omitempty"` // Data Rates - MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates - PowerThresholdV1 *float64 `json:"powerThresholdV1,omitempty"` // Power Threshold V1 - RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold - MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Rx Sop Threshold - MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level + ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile (Default : CUSTOM) + RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels (Default : "36,40,44,48,52,56,60,64,149,153,157,161") + DataRates string `json:"dataRates,omitempty"` // Data Rates (Default : "6,9,12,18,24,36,48,54") + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates (Default: "6,12,24") + PowerThreshold *float64 `json:"powerThreshold,omitempty"` // Power Threshold ( (Default: -70) + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold (Default: "AUTO") + MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Rx Sop Threshold (Default: -10) + MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level (Default: 30) } type RequestWirelessCreateOrUpdateRfProfileRadioTypeBProperties struct { - ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile - RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels - DataRates string `json:"dataRates,omitempty"` // Data Rates - MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates - PowerThresholdV1 *float64 `json:"powerThresholdV1,omitempty"` // Power Threshold V1 - RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold - MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Min Power Level - MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level + ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile (Default : CUSTOM) + RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels (Default : "9,11,12,18,24,36,48,54") + DataRates string `json:"dataRates,omitempty"` // Data Rates (Default: "9,11,12,18,24,36,48,54") + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates (Default: "12") + PowerThreshold *float64 `json:"powerThreshold,omitempty"` // Power Threshold (Default: -70) + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold (Default: "AUTO") + MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Min Power Level (Default: -10) + MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level (Default: 30) } type RequestWirelessCreateOrUpdateRfProfileRadioTypeCProperties struct { - ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile - RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels - DataRates string `json:"dataRates,omitempty"` // Data Rates - MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates - RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold - MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Min Power Level - MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level - PowerThresholdV1 *float64 `json:"powerThresholdV1,omitempty"` // Power Threshold V1 + ParentProfile string `json:"parentProfile,omitempty"` // Parent Profile (Default : CUSTOM) + RadioChannels string `json:"radioChannels,omitempty"` // Radio Channels (Default : "5,21,37,53,69,85,101,117,133,149,165,181,197,213,229") + DataRates string `json:"dataRates,omitempty"` // Data Rates (Default: "6,9,12,18,24,36,48,54") + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory Data Rates (Default: "6,12,24") + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // Rx Sop Threshold (Default: "AUTO") + MinPowerLevel *float64 `json:"minPowerLevel,omitempty"` // Min Power Level (Default: -10) + MaxPowerLevel *float64 `json:"maxPowerLevel,omitempty"` // Max Power Level (Default: 30) + PowerThreshold *float64 `json:"powerThreshold,omitempty"` // Power Threshold (Default: -70) +} +type RequestWirelessFactoryResetAccessPoints struct { + KeepStaticIPConfig *bool `json:"keepStaticIPConfig,omitempty"` // Set the value of keepStaticIPConfig to false, to clear all configurations from Access Points and set the value of keepStaticIPConfig to true, to clear all configurations from Access Points without clearing static IP configuration. + ApMacAddresses []string `json:"apMacAddresses,omitempty"` // List of Access Point's Ethernet MAC addresses, set maximum 100 ethernet MAC addresses per request. +} +type RequestWirelessApProvision struct { + NetworkDevices *[]RequestWirelessApProvisionNetworkDevices `json:"networkDevices,omitempty"` // + RfProfileName string `json:"rfProfileName,omitempty"` // RF Profile Name. RF Profile is not allowed for custom AP Zones. + ApZoneName string `json:"apZoneName,omitempty"` // AP Zone Name. A custom AP Zone should be passed if no rfProfileName is provided. + SiteID string `json:"siteId,omitempty"` // Site ID +} +type RequestWirelessApProvisionNetworkDevices struct { + DeviceID string `json:"deviceId,omitempty"` // Network device ID of access points + MeshRole string `json:"meshRole,omitempty"` // Mesh Role (Applicable only when AP is in Bridge Mode) +} +type RequestWirelessMobilityProvision struct { + MobilityGroupName string `json:"mobilityGroupName,omitempty"` // Self device Group Name. Must be alphanumeric without {!,<,space,?/'}
and maximum of 31 characters. + MacAddress string `json:"macAddress,omitempty"` // Device mobility MAC Address. Allowed formats are: 0a0b.0c01.0211, 0a0b0c010211, 0a:0b:0c:01:02:11 + ManagementIP string `json:"managementIp,omitempty"` // Self device wireless Management IP. + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Obtain the network device ID value by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress}. + DtlsHighCipher *bool `json:"dtlsHighCipher,omitempty"` // DTLS High Cipher. + DataLinkEncryption *bool `json:"dataLinkEncryption,omitempty"` // A secure link in which data is encrypted using CAPWAP DTLS protocol can be established between two controllers. This value will be applied to all peers during POST operation. + MobilityPeers *[]RequestWirelessMobilityProvisionMobilityPeers `json:"mobilityPeers,omitempty"` // +} +type RequestWirelessMobilityProvisionMobilityPeers struct { + PeerIP string `json:"peerIp,omitempty"` // This indicates public ip address. + PrivateIPAddress string `json:"privateIpAddress,omitempty"` // This indicates private/management ip address. + PeerDeviceName string `json:"peerDeviceName,omitempty"` // Peer device Host Name. + PeerNetworkDeviceID string `json:"peerNetworkDeviceId,omitempty"` // The possible values are: UNKNOWN or valid UUID of Network device Id. UNKNOWN represents out of band device which is not managed internally. Valid UUID represents WLC network device id. + MobilityGroupName string `json:"mobilityGroupName,omitempty"` // Peer Device mobility group Name. Must be alphanumeric without {!,<,space,?/'}
and maximum of 31 characters. + MemberMacAddress string `json:"memberMacAddress,omitempty"` // Peer device mobility MAC Address. Allowed formats are: 0a0b.0c01.0211, 0a0b0c010211, 0a:0b:0c:01:02:11 + DeviceSeries string `json:"deviceSeries,omitempty"` // Indicates peer device mobility belongs to AireOS or IOX-XE family. 0 - indicates AireOS and 1 - indicates C9800. + HashKey string `json:"hashKey,omitempty"` // SSC hash string must be 40 characters. +} +type RequestWirelessMobilityReset struct { + NetworkDeviceID string `json:"networkDeviceId,omitempty"` // Network device Id of Cisco wireless controller.Obtain the network device ID value by using the API call GET - /dna/intent/api/v1/network-device/ip-address/${ipAddress}. +} +type RequestWirelessAssignManagedApLocationsForWLC struct { + PrimaryManagedApLocationsSiteIDs []string `json:"primaryManagedAPLocationsSiteIds,omitempty"` // Site IDs of Primary Managed AP Locations. These values can be obtained by using the API call GET: /dna/intent/api/v1/site + SecondaryManagedApLocationsSiteIDs []string `json:"secondaryManagedAPLocationsSiteIds,omitempty"` // Site IDs of Secondary Managed AP Locations. These values can be obtained by using the API call GET: /dna/intent/api/v1/site +} +type RequestWirelessWirelessControllerProvision struct { + Interfaces *[]RequestWirelessWirelessControllerProvisionInterfaces `json:"interfaces,omitempty"` // + SkipApProvision *bool `json:"skipApProvision,omitempty"` // True if Skip AP Provision is enabled, else False + RollingApUpgrade *RequestWirelessWirelessControllerProvisionRollingApUpgrade `json:"rollingApUpgrade,omitempty"` // +} +type RequestWirelessWirelessControllerProvisionInterfaces struct { + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + VLANID *int `json:"vlanId,omitempty"` // VLAN ID range is 1 - 4094 + InterfaceIPAddress string `json:"interfaceIPAddress,omitempty"` // Interface IP Address + InterfaceNetmaskInCIDR *int `json:"interfaceNetmaskInCIDR,omitempty"` // Interface Netmask In CIDR, range is 1-30 + InterfaceGateway string `json:"interfaceGateway,omitempty"` // Interface Gateway + LagOrPortNumber *int `json:"lagOrPortNumber,omitempty"` // Lag Or Port Number +} +type RequestWirelessWirelessControllerProvisionRollingApUpgrade struct { + EnableRollingApUpgrade *bool `json:"enableRollingApUpgrade,omitempty"` // True if Rolling AP Upgrade is enabled, else False + ApRebootPercentage *int `json:"apRebootPercentage,omitempty"` // AP Reboot Percentage. Permissible values - 5, 15, 25 +} +type RequestWirelessCreateWirelessProfileConnectivity struct { + WirelessProfileName string `json:"wirelessProfileName,omitempty"` // Wireless Network Profile Name + SSIDDetails *[]RequestWirelessCreateWirelessProfileConnectivitySSIDDetails `json:"ssidDetails,omitempty"` // +} +type RequestWirelessCreateWirelessProfileConnectivitySSIDDetails struct { + SSIDName string `json:"ssidName,omitempty"` // SSID Name + FlexConnect *RequestWirelessCreateWirelessProfileConnectivitySSIDDetailsFlexConnect `json:"flexConnect,omitempty"` // + EnableFabric *bool `json:"enableFabric,omitempty"` // True if fabric is enabled, else False. Flex and fabric cannot be enabled simultaneously and a profile can only contain either flex SSIDs or fabric SSIDs and not both at the same time + WLANProfileName string `json:"wlanProfileName,omitempty"` // WLAN Profile Name + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name. Default Value: management + Dot11BeProfileID string `json:"dot11beProfileId,omitempty"` // 802.11be Profile Id. Applicable to IOS controllers with version 17.15 and higher. 802.11be Profiles if passed, should be same across all SSIDs in network profile being configured +} +type RequestWirelessCreateWirelessProfileConnectivitySSIDDetailsFlexConnect struct { + EnableFlexConnect *bool `json:"enableFlexConnect,omitempty"` // True if flex connect is enabled, else False. Flex and fabric cannot be enabled simultaneously and a profile can only contain either flex SSIDs or fabric SSIDs and not both at the same time + LocalToVLAN *int `json:"localToVlan,omitempty"` // Local to VLAN ID +} +type RequestWirelessUpdateWirelessProfileConnectivity struct { + WirelessProfileName string `json:"wirelessProfileName,omitempty"` // Wireless Network Profile Name + SSIDDetails *[]RequestWirelessUpdateWirelessProfileConnectivitySSIDDetails `json:"ssidDetails,omitempty"` // +} +type RequestWirelessUpdateWirelessProfileConnectivitySSIDDetails struct { + SSIDName string `json:"ssidName,omitempty"` // SSID Name + FlexConnect *RequestWirelessUpdateWirelessProfileConnectivitySSIDDetailsFlexConnect `json:"flexConnect,omitempty"` // + EnableFabric *bool `json:"enableFabric,omitempty"` // True if fabric is enabled, else False. Flex and fabric cannot be enabled simultaneously and a profile can only contain either flex SSIDs or fabric SSIDs and not both at the same time + WLANProfileName string `json:"wlanProfileName,omitempty"` // WLAN Profile Name + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name. Default Value: management + Dot11BeProfileID string `json:"dot11beProfileId,omitempty"` // 802.11be Profile Id. Applicable to IOS controllers with version 17.15 and higher. 802.11be Profiles if passed, should be same across all SSIDs in network profile being configured +} +type RequestWirelessUpdateWirelessProfileConnectivitySSIDDetailsFlexConnect struct { + EnableFlexConnect *bool `json:"enableFlexConnect,omitempty"` // True if flex connect is enabled, else False. Flex and fabric cannot be enabled simultaneously and a profile can only contain either flex SSIDs or fabric SSIDs and not both at the same time + LocalToVLAN *int `json:"localToVlan,omitempty"` // Local to VLAN ID +} +type RequestWirelessCreateA80211BeProfile struct { + ProfileName string `json:"profileName,omitempty"` // 802.11be Profile Name + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink (Default: true) + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink (Default: true) + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink (Default: false) + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink (Default: false) + OfdmaMultiRu *bool `json:"ofdmaMultiRu,omitempty"` // OFDMA Multi-RU (Default: false) +} +type RequestWirelessUpdate80211BeProfile struct { + ProfileName string `json:"profileName,omitempty"` // 802.11be Profile Name + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink (Default: true) + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink (Default: true) + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink (Default: false) + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink (Default: false) + OfdmaMultiRu *bool `json:"ofdmaMultiRu,omitempty"` // OFDMA Multi-RU (Default: false) +} +type RequestWirelessCreateInterface struct { + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + VLANID *int `json:"vlanId,omitempty"` // VLAN ID range is 1-4094 +} +type RequestWirelessUpdateInterface struct { + InterfaceName string `json:"interfaceName,omitempty"` // Interface Name + VLANID *int `json:"vlanId,omitempty"` // VLAN ID range is 1-4094 +} +type RequestWirelessCreateRfProfile struct { + RfProfileName string `json:"rfProfileName,omitempty"` // RF Profile Name + DefaultRfProfile *bool `json:"defaultRfProfile,omitempty"` // True if RF Profile is default, else False. Maximum of only 1 RF Profile can be marked as default at any given time + EnableRadioTypeA *bool `json:"enableRadioTypeA,omitempty"` // True if 5 GHz radio band is enabled in the RF Profile, else False + EnableRadioTypeB *bool `json:"enableRadioTypeB,omitempty"` // True if 2.4 GHz radio band is enabled in the RF Profile, else False + EnableRadioType6GHz *bool `json:"enableRadioType6GHz,omitempty"` // True if 6 GHz radio band is enabled in the RF Profile, else False + RadioTypeAProperties *RequestWirelessCreateRfProfileRadioTypeAProperties `json:"radioTypeAProperties,omitempty"` // + RadioTypeBProperties *RequestWirelessCreateRfProfileRadioTypeBProperties `json:"radioTypeBProperties,omitempty"` // + RadioType6GHzProperties *RequestWirelessCreateRfProfileRadioType6GHzProperties `json:"radioType6GHzProperties,omitempty"` // +} +type RequestWirelessCreateRfProfileRadioTypeAProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 5 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 5 GHz radio band passed in comma separated format without any spaces. Permissible values: 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165, 169, 173 + DataRates string `json:"dataRates,omitempty"` // Data rates of 5 GHz radio band passed in comma separated format without any spaces. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 5 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 5 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 5 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 5 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 5 GHz radio band + ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width + PreamblePuncture *bool `json:"preamblePuncture,omitempty"` // Enable or Disable Preamble Puncturing. This Wifi 7 configuration is applicable to wireless IOS devices supporting 17.15 and higher +} +type RequestWirelessCreateRfProfileRadioTypeBProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 2.4 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 2.4 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 + DataRates string `json:"dataRates,omitempty"` // Data rates of 2.4 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 2.4 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 2.4 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 2.4 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 2.4 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 2.4 GHz radio band +} +type RequestWirelessCreateRfProfileRadioType6GHzProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 6 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 6 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 233 + DataRates string `json:"dataRates,omitempty"` // Data rates of 6 GHz radio band passed in comma separated format without any spaces. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 6 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 6 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 6 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 6 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 6 GHz radio band + EnableStandardPowerService *bool `json:"enableStandardPowerService,omitempty"` // True if Standard Power Service is enabled, else False + MultiBssidProperties *RequestWirelessCreateRfProfileRadioType6GHzPropertiesMultiBssidProperties `json:"multiBssidProperties,omitempty"` // + PreamblePuncture *bool `json:"preamblePuncture,omitempty"` // Enable or Disable Preamble Puncturing. This Wifi 7 configuration is applicable to wireless IOS devices supporting 17.15 and higher + MinDbsWidth *int `json:"minDbsWidth,omitempty"` // Minimum DBS Width (Permissible Values:20,40,80,160,320) + MaxDbsWidth *int `json:"maxDbsWidth,omitempty"` // Maximum DBS Width (Permissible Values:20,40,80,160,320) +} +type RequestWirelessCreateRfProfileRadioType6GHzPropertiesMultiBssidProperties struct { + Dot11AxParameters *RequestWirelessCreateRfProfileRadioType6GHzPropertiesMultiBssidPropertiesDot11AxParameters `json:"dot11axParameters,omitempty"` // + Dot11BeParameters *RequestWirelessCreateRfProfileRadioType6GHzPropertiesMultiBssidPropertiesDot11BeParameters `json:"dot11beParameters,omitempty"` // + TargetWakeTime *bool `json:"targetWakeTime,omitempty"` // Target Wake Time + TwtBroadcastSupport *bool `json:"twtBroadcastSupport,omitempty"` // TWT Broadcast Support +} +type RequestWirelessCreateRfProfileRadioType6GHzPropertiesMultiBssidPropertiesDot11AxParameters struct { + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink +} +type RequestWirelessCreateRfProfileRadioType6GHzPropertiesMultiBssidPropertiesDot11BeParameters struct { + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink + OfdmaMultiRu *bool `json:"ofdmaMultiRu,omitempty"` // OFDMA Multi-RU +} +type RequestWirelessUpdateRfProfile struct { + RfProfileName string `json:"rfProfileName,omitempty"` // RF Profile Name + DefaultRfProfile *bool `json:"defaultRfProfile,omitempty"` // True if RF Profile is default, else False. Maximum of only 1 RF Profile can be marked as default at any given time + EnableRadioTypeA *bool `json:"enableRadioTypeA,omitempty"` // True if 5 GHz radio band is enabled in the RF Profile, else False + EnableRadioTypeB *bool `json:"enableRadioTypeB,omitempty"` // True if 2.4 GHz radio band is enabled in the RF Profile, else False + EnableRadioType6GHz *bool `json:"enableRadioType6GHz,omitempty"` // True if 6 GHz radio band is enabled in the RF Profile, else False + RadioTypeAProperties *RequestWirelessUpdateRfProfileRadioTypeAProperties `json:"radioTypeAProperties,omitempty"` // + RadioTypeBProperties *RequestWirelessUpdateRfProfileRadioTypeBProperties `json:"radioTypeBProperties,omitempty"` // + RadioType6GHzProperties *RequestWirelessUpdateRfProfileRadioType6GHzProperties `json:"radioType6GHzProperties,omitempty"` // +} +type RequestWirelessUpdateRfProfileRadioTypeAProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 5 GHz radio band. In case of brownfield learnt RF Profile if the parent profile is GLOBAL, any change in RF Profile configurations will not be provisioned to device. Existing parent profile with values of HIGH, TYPICAL, LOW or CUSTOM cannot be modified to GLOBAL + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 5 GHz radio band passed in comma separated format without any spaces. Permissible values: 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165, 169, 173 + DataRates string `json:"dataRates,omitempty"` // Data rates of 5 GHz radio band passed in comma separated format without any spaces. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 5 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 5 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 5 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 5 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 5 GHz radio band + ChannelWidth string `json:"channelWidth,omitempty"` // Channel Width + PreamblePuncture *bool `json:"preamblePuncture,omitempty"` // Enable or Disable Preamble Puncturing. This Wifi 7 configuration is applicable to wireless IOS devices supporting 17.15 and higher +} +type RequestWirelessUpdateRfProfileRadioTypeBProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 2.4 GHz radio band. In case of brownfield learnt RF Profile if the parent profile is GLOBAL, any change in RF Profile configurations will not be provisioned to device. Existing parent profile with values of HIGH, TYPICAL, LOW or CUSTOM cannot be modified to GLOBAL + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 2.4 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 + DataRates string `json:"dataRates,omitempty"` // Data rates of 2.4 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 2.4 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 2.4 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 2.4 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 2.4 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 2.4 GHz radio band +} +type RequestWirelessUpdateRfProfileRadioType6GHzProperties struct { + ParentProfile string `json:"parentProfile,omitempty"` // Parent profile of 6 GHz radio band + RadioChannels string `json:"radioChannels,omitempty"` // DCA channels of 6 GHz radio band passed in comma separated format without any spaces. Permissible values: 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 233 + DataRates string `json:"dataRates,omitempty"` // Data rates of 6 GHz radio band passed in comma separated format without any spaces. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + MandatoryDataRates string `json:"mandatoryDataRates,omitempty"` // Mandatory data rates of 6 GHz radio band passed in comma separated format without any spaces and must be a subset of selected dataRates with maximum of 2 values. Permissible values: 6, 9, 12, 18, 24, 36, 48, 54 + PowerThreshold *int `json:"powerThreshold,omitempty"` // Power threshold of 6 GHz radio band + RxSopThreshold string `json:"rxSopThreshold,omitempty"` // RX-SOP threshold of 6 GHz radio band + MinPowerLevel *int `json:"minPowerLevel,omitempty"` // Minimum power level of 6 GHz radio band + MaxPowerLevel *int `json:"maxPowerLevel,omitempty"` // Maximum power level of 6 GHz radio band + EnableStandardPowerService *bool `json:"enableStandardPowerService,omitempty"` // True if Standard Power Service is enabled, else False + MultiBssidProperties *RequestWirelessUpdateRfProfileRadioType6GHzPropertiesMultiBssidProperties `json:"multiBssidProperties,omitempty"` // + PreamblePuncture *bool `json:"preamblePuncture,omitempty"` // Enable or Disable Preamble Puncturing. This Wifi 7 configuration is applicable to wireless IOS devices supporting 17.15 and higher + MinDbsWidth *int `json:"minDbsWidth,omitempty"` // Minimum DBS Width (Permissible Values:20,40,80,160,320) + MaxDbsWidth *int `json:"maxDbsWidth,omitempty"` // Maximum DBS Width (Permissible Values:20,40,80,160,320) +} +type RequestWirelessUpdateRfProfileRadioType6GHzPropertiesMultiBssidProperties struct { + Dot11AxParameters *RequestWirelessUpdateRfProfileRadioType6GHzPropertiesMultiBssidPropertiesDot11AxParameters `json:"dot11axParameters,omitempty"` // + Dot11BeParameters *RequestWirelessUpdateRfProfileRadioType6GHzPropertiesMultiBssidPropertiesDot11BeParameters `json:"dot11beParameters,omitempty"` // + TargetWakeTime *bool `json:"targetWakeTime,omitempty"` // Target Wake Time + TwtBroadcastSupport *bool `json:"twtBroadcastSupport,omitempty"` // TWT Broadcast Support +} +type RequestWirelessUpdateRfProfileRadioType6GHzPropertiesMultiBssidPropertiesDot11AxParameters struct { + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink +} +type RequestWirelessUpdateRfProfileRadioType6GHzPropertiesMultiBssidPropertiesDot11BeParameters struct { + OfdmaDownLink *bool `json:"ofdmaDownLink,omitempty"` // OFDMA Downlink + OfdmaUpLink *bool `json:"ofdmaUpLink,omitempty"` // OFDMA Uplink + MuMimoUpLink *bool `json:"muMimoUpLink,omitempty"` // MU-MIMO Uplink + MuMimoDownLink *bool `json:"muMimoDownLink,omitempty"` // MU-MIMO Downlink + OfdmaMultiRu *bool `json:"ofdmaMultiRu,omitempty"` // OFDMA Multi-RU +} +type RequestWirelessConfigureAccessPointsV2 struct { + ApList *[]RequestWirelessConfigureAccessPointsV2ApList `json:"apList,omitempty"` // + ConfigureAdminStatus *bool `json:"configureAdminStatus,omitempty"` // To change the access point's admin status, set this parameter's value to "true". + AdminStatus *bool `json:"adminStatus,omitempty"` // Configure the access point's admin status. Set this parameter's value to "true" to enable it and "false" to disable it. + ConfigureApMode *bool `json:"configureApMode,omitempty"` // To change the access point's mode, set this parameter's value to "true". + ApMode *int `json:"apMode,omitempty"` // Configure the access point's mode: for local/flexconnect mode, set "0"; for monitor mode, set "1"; for sniffer mode, set "4"; and for bridge/flex+bridge mode, set "5". + ConfigureFailoverPriority *bool `json:"configureFailoverPriority,omitempty"` // To change the access point's failover priority, set this parameter's value to "true". + FailoverPriority *int `json:"failoverPriority,omitempty"` // Configure the acess point's failover priority: for low, set "1"; for medium, set "2"; for high, set "3"; and for critical, set "4". + ConfigureLedStatus *bool `json:"configureLedStatus,omitempty"` // To change the access point's LED status, set this parameter's value to "true". + LedStatus *bool `json:"ledStatus,omitempty"` // Configure the access point's LED status. Set "true" to enable its status and "false" to disable it. + ConfigureLedBrightnessLevel *bool `json:"configureLedBrightnessLevel,omitempty"` // To change the access point's LED brightness level, set this parameter's value to "true". + LedBrightnessLevel *int `json:"ledBrightnessLevel,omitempty"` // Configure the access point's LED brightness level by setting a value between 1 and 8. + ConfigureLocation *bool `json:"configureLocation,omitempty"` // To change the access point's location, set this parameter's value to "true". + Location string `json:"location,omitempty"` // Configure the access point's location. + ConfigureHAController *bool `json:"configureHAController,omitempty"` // To change the access point's HA controller, set this parameter's value to "true". + PrimaryControllerName string `json:"primaryControllerName,omitempty"` // Configure the hostname for an access point's primary controller. + PrimaryIPAddress *RequestWirelessConfigureAccessPointsV2PrimaryIPAddress `json:"primaryIpAddress,omitempty"` // + SecondaryControllerName string `json:"secondaryControllerName,omitempty"` // Configure the hostname for an access point's secondary controller. + SecondaryIPAddress *RequestWirelessConfigureAccessPointsV2SecondaryIPAddress `json:"secondaryIpAddress,omitempty"` // + TertiaryControllerName string `json:"tertiaryControllerName,omitempty"` // Configure the hostname for an access point's tertiary controller. + TertiaryIPAddress *RequestWirelessConfigureAccessPointsV2TertiaryIPAddress `json:"tertiaryIpAddress,omitempty"` // + RadioConfigurations *[]RequestWirelessConfigureAccessPointsV2RadioConfigurations `json:"radioConfigurations,omitempty"` // + ConfigureCleanAirSI24Ghz *bool `json:"configureCleanAirSI24Ghz,omitempty"` // To change the clean air status for radios that are in 2.4 Ghz band, set this parameter's value to "true". + CleanAirSI24 *bool `json:"cleanAirSI24,omitempty"` // Configure clean air status for radios that are in 2.4 Ghz band. Set this parameter's value to "true" to enable it and "false" to disable it. + ConfigureCleanAirSI5Ghz *bool `json:"configureCleanAirSI5Ghz,omitempty"` // To change the clean air status for radios that are in 5 Ghz band, set this parameter's value to "true". + CleanAirSI5 *bool `json:"cleanAirSI5,omitempty"` // Configure clean air status for radios that are in 5 Ghz band. Set this parameter's value to "true" to enable it and "false" to disable it. + ConfigureCleanAirSI6Ghz *bool `json:"configureCleanAirSI6Ghz,omitempty"` // To change the clean air status for radios that are in 6 Ghz band, set this parameter's value to "true". + CleanAirSI6 *bool `json:"cleanAirSI6,omitempty"` // Configure clean air status for radios that are in 6 Ghz band. Set this parameter's value to "true" to enable it and "false" to disable it. + IsAssignedSiteAsLocation *bool `json:"isAssignedSiteAsLocation,omitempty"` // To configure the access point's location as the site assigned to the access point, set this parameter's value to "true". +} +type RequestWirelessConfigureAccessPointsV2ApList struct { + ApName string `json:"apName,omitempty"` // The current host name of the access point. + MacAddress string `json:"macAddress,omitempty"` // The ethernet MAC address of the access point. + ApNameNew string `json:"apNameNew,omitempty"` // The modified hostname of the access point. +} +type RequestWirelessConfigureAccessPointsV2PrimaryIPAddress struct { + Address string `json:"address,omitempty"` // Configure the IP address for an access point's primary controller. +} +type RequestWirelessConfigureAccessPointsV2SecondaryIPAddress struct { + Address string `json:"address,omitempty"` // Configure the IP address for an access point's secondary controller. +} +type RequestWirelessConfigureAccessPointsV2TertiaryIPAddress struct { + Address string `json:"address,omitempty"` // Configure the IP address for an access point's tertiary controller. +} +type RequestWirelessConfigureAccessPointsV2RadioConfigurations struct { + ConfigureRadioRoleAssignment *bool `json:"configureRadioRoleAssignment,omitempty"` // To change the radio role on the specified radio for an access point, set this parameter's value to "true". + RadioRoleAssignment string `json:"radioRoleAssignment,omitempty"` // Configure only one of the following roles on the specified radio for an access point as "AUTO", "SERVING", or "MONITOR". Any other string is invalid, including empty string + RadioBand string `json:"radioBand,omitempty"` // Configure the band on the specified radio for an access point: for 2.4 GHz, set "RADIO24"; for 5 GHz, set "RADIO5". Any other string is invalid, including empty string + ConfigureAdminStatus *bool `json:"configureAdminStatus,omitempty"` // To change the admin status on the specified radio for an access point, set this parameter's value to "true". + AdminStatus *bool `json:"adminStatus,omitempty"` // Configure the admin status on the specified radio for an access point. Set this parameter's value to "true" to enable it and "false" to disable it. + ConfigureAntennaPatternName *bool `json:"configureAntennaPatternName,omitempty"` // To change the antenna gain on the specified radio for an access point, set the value for this parameter to "true". + AntennaPatternName string `json:"antennaPatternName,omitempty"` // Specify the antenna name on the specified radio for an access point. The antenna name is used to calculate the gain on the radio slot. + AntennaGain *int `json:"antennaGain,omitempty"` // Configure the antenna gain on the specified radio for an access point by setting a decimal value (in dBi). To configure "antennaGain", set "antennaPatternName" value to "other". + ConfigureAntennaCable *bool `json:"configureAntennaCable,omitempty"` // To change the antenna cable name on the specified radio for an access point, set this parameter's value to "true". + AntennaCableName string `json:"antennaCableName,omitempty"` // Configure the antenna cable name on the specified radio for an access point. If cable loss needs to be configured, set this parameter's value to "other". + CableLoss *float64 `json:"cableLoss,omitempty"` // Configure the cable loss on the specified radio for an access point by setting a decimal value (in dBi). + ConfigureChannel *bool `json:"configureChannel,omitempty"` // To change the channel on the specified radio for an access point, set this parameter's value to "true". + ChannelAssignmentMode *int `json:"channelAssignmentMode,omitempty"` // Configure the channel assignment mode on the specified radio for an access point: for global mode, set "1"; and for custom mode, set "2". + ChannelNumber *int `json:"channelNumber,omitempty"` // Configure the channel number on the specified radio for an access point. + ConfigureChannelWidth *bool `json:"configureChannelWidth,omitempty"` // To change the channel width on the specified radio for an access point, set this parameter's value to "true". + ChannelWidth *int `json:"channelWidth,omitempty"` // Configure the channel width on the specified radio for an access point: for 20 MHz, set "3"; for 40 MHz, set "4"; for 80 MHz, set "5"; for 160 MHz, set "6", and for 320 MHz, set "7". + ConfigurePower *bool `json:"configurePower,omitempty"` // To change the power assignment mode on the specified radio for an access point, set this parameter's value to "true". + PowerAssignmentMode *int `json:"powerAssignmentMode,omitempty"` // Configure the power assignment mode on the specified radio for an access point: for global mode, set "1"; and for custom mode, set "2". + Powerlevel *int `json:"powerlevel,omitempty"` // Configure the power level on the specified radio for an access point by setting a value between 1 and 8. + RadioType *int `json:"radioType,omitempty"` // Configure an access point's radio band: for 2.4 GHz, set "1"; for 5 GHz, set "2"; for XOR, set "3"; and for 6 GHz, set "6". } //SensorTestResults Sensor Test Results - 87ae-7b21-4f0b-a838 @@ -825,7 +2087,7 @@ type RequestWirelessCreateOrUpdateRfProfileRadioTypeCProperties struct { @param SensorTestResultsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!sensor-test-results +Documentation Link: https://developer.cisco.com/docs/dna-center/#!sensor-test-results-v1 */ func (s *WirelessService) SensorTestResults(SensorTestResultsQueryParams *SensorTestResultsQueryParams) (*ResponseWirelessSensorTestResults, *resty.Response, error) { path := "/dna/intent/api/v1/AssuranceGetSensorTestResults" @@ -862,7 +2124,7 @@ func (s *WirelessService) SensorTestResults(SensorTestResultsQueryParams *Sensor @param GetAccessPointRebootTaskResultQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-access-point-reboot-task-result +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-access-point-reboot-task-result-v1 */ func (s *WirelessService) GetAccessPointRebootTaskResult(GetAccessPointRebootTaskResultQueryParams *GetAccessPointRebootTaskResultQueryParams) (*ResponseWirelessGetAccessPointRebootTaskResult, *resty.Response, error) { path := "/dna/intent/api/v1/device-reboot/apreboot/status" @@ -894,12 +2156,12 @@ func (s *WirelessService) GetAccessPointRebootTaskResult(GetAccessPointRebootTas } //GetEnterpriseSSID Get Enterprise SSID - cca5-19ba-45eb-b423 -/* Gets either one or all the enterprise SSID +/* Get Enterprise SSID @param GetEnterpriseSSIDQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-enterprise-ssid +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-enterprise-ssid-v1 */ func (s *WirelessService) GetEnterpriseSSID(GetEnterpriseSSIDQueryParams *GetEnterpriseSSIDQueryParams) (*ResponseWirelessGetEnterpriseSSID, *resty.Response, error) { path := "/dna/intent/api/v1/enterprise-ssid" @@ -930,6 +2192,123 @@ func (s *WirelessService) GetEnterpriseSSID(GetEnterpriseSSIDQueryParams *GetEnt } +//GetSSIDBySite Get SSID by Site - bb92-f946-4e19-a187 +/* This API allows the user to get all SSIDs (Service Set Identifier) at the given site + + +@param siteID siteId path parameter. Site UUID + +@param GetSSIDBySiteQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ssid-by-site-v1 +*/ +func (s *WirelessService) GetSSIDBySite(siteID string, GetSSIDBySiteQueryParams *GetSSIDBySiteQueryParams) (*ResponseWirelessGetSSIDBySite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{siteId}/wirelessSettings/ssids" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + queryString, _ := query.Values(GetSSIDBySiteQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetSSIDBySite{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSSIDBySite(siteID, GetSSIDBySiteQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSsidBySite") + } + + result := response.Result().(*ResponseWirelessGetSSIDBySite) + return result, response, err + +} + +//GetSSIDCountBySite Get SSID Count by Site - 52ae-589a-48ab-9116 +/* This API allows the user to get count of all SSIDs (Service Set Identifier) present at global site. + + +@param siteID siteId path parameter. Site UUID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ssid-count-by-site-v1 +*/ +func (s *WirelessService) GetSSIDCountBySite(siteID string) (*ResponseWirelessGetSSIDCountBySite, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{siteId}/wirelessSettings/ssids/count" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetSSIDCountBySite{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSSIDCountBySite(siteID) + } + return nil, response, fmt.Errorf("error with operation GetSsidCountBySite") + } + + result := response.Result().(*ResponseWirelessGetSSIDCountBySite) + return result, response, err + +} + +//GetSSIDByID Get SSID by ID - 78a1-2804-47a9-a6a8 +/* This API allows the user to get an SSID (Service Set Identifier) by ID at the given site + + +@param siteID siteId path parameter. Site UUID + +@param id id path parameter. SSID ID. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ssid-by-id-v1 +*/ +func (s *WirelessService) GetSSIDByID(siteID string, id string) (*ResponseWirelessGetSSIDByID, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{siteId}/wirelessSettings/ssids/{id}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetSSIDByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSSIDByID(siteID, id) + } + return nil, response, fmt.Errorf("error with operation GetSsidById") + } + + result := response.Result().(*ResponseWirelessGetSSIDByID) + return result, response, err + +} + //GetAccessPointConfigurationTaskResult Get Access Point Configuration task result - fb90-69dc-4aeb-9afb /* Users can query the access point configuration result using this intent API @@ -937,7 +2316,7 @@ func (s *WirelessService) GetEnterpriseSSID(GetEnterpriseSSIDQueryParams *GetEnt @param taskTypeID task_id path parameter. task id information of ap config -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-access-point-configuration-task-result +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-access-point-configuration-task-result-v1 */ func (s *WirelessService) GetAccessPointConfigurationTaskResult(taskTypeID string) (*ResponseWirelessGetAccessPointConfigurationTaskResult, *resty.Response, error) { path := "/dna/intent/api/v1/wireless/accesspoint-configuration/details/{task_id}" @@ -973,7 +2352,7 @@ func (s *WirelessService) GetAccessPointConfigurationTaskResult(taskTypeID strin @param GetAccessPointConfigurationQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-access-point-configuration +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-access-point-configuration-v1 */ func (s *WirelessService) GetAccessPointConfiguration(GetAccessPointConfigurationQueryParams *GetAccessPointConfigurationQueryParams) (*ResponseWirelessGetAccessPointConfiguration, *resty.Response, error) { path := "/dna/intent/api/v1/wireless/accesspoint-configuration/summary" @@ -1010,7 +2389,7 @@ func (s *WirelessService) GetAccessPointConfiguration(GetAccessPointConfiguratio @param GetDynamicInterfaceQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-dynamic-interface +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-dynamic-interface-v1 */ func (s *WirelessService) GetDynamicInterface(GetDynamicInterfaceQueryParams *GetDynamicInterfaceQueryParams) (*ResponseWirelessGetDynamicInterface, *resty.Response, error) { path := "/dna/intent/api/v1/wireless/dynamic-interface" @@ -1047,7 +2426,7 @@ func (s *WirelessService) GetDynamicInterface(GetDynamicInterfaceQueryParams *Ge @param GetWirelessProfileQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-wireless-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-wireless-profile-v1 */ func (s *WirelessService) GetWirelessProfile(GetWirelessProfileQueryParams *GetWirelessProfileQueryParams) (*ResponseWirelessGetWirelessProfile, *resty.Response, error) { path := "/dna/intent/api/v1/wireless/profile" @@ -1084,7 +2463,7 @@ func (s *WirelessService) GetWirelessProfile(GetWirelessProfileQueryParams *GetW @param RetrieveRFProfilesQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-rf-profiles +Documentation Link: https://developer.cisco.com/docs/dna-center/#!retrieve-rf-profiles-v1 */ func (s *WirelessService) RetrieveRfProfiles(RetrieveRFProfilesQueryParams *RetrieveRfProfilesQueryParams) (*ResponseWirelessRetrieveRfProfiles, *resty.Response, error) { path := "/dna/intent/api/v1/wireless/rf-profile" @@ -1115,36 +2494,25 @@ func (s *WirelessService) RetrieveRfProfiles(RetrieveRFProfilesQueryParams *Retr } -//CreateAndProvisionSSID Create and Provision SSID - 1eb7-2ad3-4e09-8990 -/* Creates SSID, updates the SSID to the corresponding site profiles and provision it to the devices matching the given sites +//GetAccessPointsFactoryResetStatus Get Access Point(s) Factory Reset status - 46bf-881b-45b8-a62f +/* This API returns each AP Factory Reset initiation status. -@param CreateAndProvisionSSIDHeaderParams Custom header parameters +@param GetAccessPointsFactoryResetStatusQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-and-provision-ssid +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-access-points-factory-reset-status-v1 */ -func (s *WirelessService) CreateAndProvisionSSID(requestWirelessCreateAndProvisionSSID *RequestWirelessCreateAndProvisionSSID, CreateAndProvisionSSIDHeaderParams *CreateAndProvisionSSIDHeaderParams) (*ResponseWirelessCreateAndProvisionSSID, *resty.Response, error) { - path := "/dna/intent/api/v1/business/ssid" - - var response *resty.Response - var err error - clientRequest := s.client.R(). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") - - if CreateAndProvisionSSIDHeaderParams != nil { - - if CreateAndProvisionSSIDHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", CreateAndProvisionSSIDHeaderParams.Persistbapioutput) - } +func (s *WirelessService) GetAccessPointsFactoryResetStatus(GetAccessPointsFactoryResetStatusQueryParams *GetAccessPointsFactoryResetStatusQueryParams) (*ResponseWirelessGetAccessPointsFactoryResetStatus, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessAccessPoints/factoryResetRequestStatus" - } + queryString, _ := query.Values(GetAccessPointsFactoryResetStatusQueryParams) - response, err = clientRequest. - SetBody(requestWirelessCreateAndProvisionSSID). - SetResult(&ResponseWirelessCreateAndProvisionSSID{}). + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetAccessPointsFactoryResetStatus{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1152,36 +2520,36 @@ func (s *WirelessService) CreateAndProvisionSSID(requestWirelessCreateAndProvisi } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateAndProvisionSSID(requestWirelessCreateAndProvisionSSID, CreateAndProvisionSSIDHeaderParams) + return s.GetAccessPointsFactoryResetStatus(GetAccessPointsFactoryResetStatusQueryParams) } - - return nil, response, fmt.Errorf("error with operation CreateAndProvisionSsid") + return nil, response, fmt.Errorf("error with operation GetAccessPointsFactoryResetStatus") } - result := response.Result().(*ResponseWirelessCreateAndProvisionSSID) + result := response.Result().(*ResponseWirelessGetAccessPointsFactoryResetStatus) return result, response, err } -//RebootAccessPoints Reboot Access Points - 6092-d8f1-468b-99ab -/* Users can reboot multiple access points up-to 200 at a time using this API +//GetAllMobilityGroups Get All MobilityGroups - 628f-38bf-4f5a-a48c +/* Retrieve all configured mobility groups if no Network Device Id is provided as a query parameter. If a Network Device Id is given and a mobility group is configured for it, return the configured details; otherwise, return the default values from the device. +@param GetAllMobilityGroupsQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!reboot-access-points +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all-mobility-groups-v1 */ -func (s *WirelessService) RebootAccessPoints(requestWirelessRebootAccessPoints *RequestWirelessRebootAccessPoints) (*ResponseWirelessRebootAccessPoints, *resty.Response, error) { - path := "/dna/intent/api/v1/device-reboot/apreboot" +func (s *WirelessService) GetAllMobilityGroups(GetAllMobilityGroupsQueryParams *GetAllMobilityGroupsQueryParams) (*ResponseWirelessGetAllMobilityGroups, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/wirelessMobilityGroups" + + queryString, _ := query.Values(GetAllMobilityGroupsQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestWirelessRebootAccessPoints). - SetResult(&ResponseWirelessRebootAccessPoints{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetAllMobilityGroups{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1189,36 +2557,33 @@ func (s *WirelessService) RebootAccessPoints(requestWirelessRebootAccessPoints * } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.RebootAccessPoints(requestWirelessRebootAccessPoints) + return s.GetAllMobilityGroups(GetAllMobilityGroupsQueryParams) } - - return nil, response, fmt.Errorf("error with operation RebootAccessPoints") + return nil, response, fmt.Errorf("error with operation GetAllMobilityGroups") } - result := response.Result().(*ResponseWirelessRebootAccessPoints) + result := response.Result().(*ResponseWirelessGetAllMobilityGroups) return result, response, err } -//CreateEnterpriseSSID Create Enterprise SSID - 8a96-fb95-4d09-a349 -/* Creates enterprise SSID +//GetMobilityGroupsCount Get MobilityGroups Count - 29b2-08fb-420a-8970 +/* Retrieves count of mobility groups configured -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-enterprise-ssid +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-mobility-groups-count-v1 */ -func (s *WirelessService) CreateEnterpriseSSID(requestWirelessCreateEnterpriseSSID *RequestWirelessCreateEnterpriseSSID) (*ResponseWirelessCreateEnterpriseSSID, *resty.Response, error) { - path := "/dna/intent/api/v1/enterprise-ssid" +func (s *WirelessService) GetMobilityGroupsCount() (*ResponseWirelessGetMobilityGroupsCount, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/wirelessMobilityGroups/count" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestWirelessCreateEnterpriseSSID). - SetResult(&ResponseWirelessCreateEnterpriseSSID{}). + SetResult(&ResponseWirelessGetMobilityGroupsCount{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1226,36 +2591,39 @@ func (s *WirelessService) CreateEnterpriseSSID(requestWirelessCreateEnterpriseSS } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateEnterpriseSSID(requestWirelessCreateEnterpriseSSID) + return s.GetMobilityGroupsCount() } - - return nil, response, fmt.Errorf("error with operation CreateEnterpriseSsid") + return nil, response, fmt.Errorf("error with operation GetMobilityGroupsCount") } - result := response.Result().(*ResponseWirelessCreateEnterpriseSSID) + result := response.Result().(*ResponseWirelessGetMobilityGroupsCount) return result, response, err } -//ConfigureAccessPoints Configure Access Points - 0081-cb89-4708-888f -/* User can configure multiple access points with required options using this intent API +//GetAnchorManagedApLocationsForSpecificWirelessController Get Anchor Managed AP Locations for specific Wireless Controller - 8dad-59b4-44b8-8995 +/* Retrieves all the details of Anchor Managed AP locations associated with the specific Wireless Controller. +@param networkDeviceID networkDeviceId path parameter. Obtain the network device ID value by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress}. -Documentation Link: https://developer.cisco.com/docs/dna-center/#!configure-access-points +@param GetAnchorManagedAPLocationsForSpecificWirelessControllerQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-anchor-managed-ap-locations-for-specific-wireless-controller-v1 */ -func (s *WirelessService) ConfigureAccessPoints(requestWirelessConfigureAccessPoints *RequestWirelessConfigureAccessPoints) (*ResponseWirelessConfigureAccessPoints, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/accesspoint-configuration" +func (s *WirelessService) GetAnchorManagedApLocationsForSpecificWirelessController(networkDeviceID string, GetAnchorManagedAPLocationsForSpecificWirelessControllerQueryParams *GetAnchorManagedApLocationsForSpecificWirelessControllerQueryParams) (*ResponseWirelessGetAnchorManagedApLocationsForSpecificWirelessController, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/{networkDeviceId}/anchorManagedApLocations" + path = strings.Replace(path, "{networkDeviceId}", fmt.Sprintf("%v", networkDeviceID), -1) + + queryString, _ := query.Values(GetAnchorManagedAPLocationsForSpecificWirelessControllerQueryParams) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestWirelessConfigureAccessPoints). - SetResult(&ResponseWirelessConfigureAccessPoints{}). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetAnchorManagedApLocationsForSpecificWirelessController{}). SetError(&Error). - Post(path) + Get(path) if err != nil { return nil, nil, err @@ -1263,12 +2631,840 @@ func (s *WirelessService) ConfigureAccessPoints(requestWirelessConfigureAccessPo } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.ConfigureAccessPoints(requestWirelessConfigureAccessPoints) + return s.GetAnchorManagedApLocationsForSpecificWirelessController(networkDeviceID, GetAnchorManagedAPLocationsForSpecificWirelessControllerQueryParams) } - - return nil, response, fmt.Errorf("error with operation ConfigureAccessPoints") + return nil, response, fmt.Errorf("error with operation GetAnchorManagedApLocationsForSpecificWirelessController") + } + + result := response.Result().(*ResponseWirelessGetAnchorManagedApLocationsForSpecificWirelessController) + return result, response, err + +} + +//GetManagedApLocationsCountForSpecificWirelessController Get Managed AP Locations Count for specific Wireless Controller - f490-6a9b-4c29-bc6a +/* Retrieves the count of Managed AP locations, including Primary Managed AP Locations, Secondary Managed AP Locations, and Anchor Managed AP Locations, associated with the specific Wireless Controller. + + +@param networkDeviceID networkDeviceId path parameter. Obtain the network device ID value by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress}. + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-managed-ap-locations-count-for-specific-wireless-controller-v1 +*/ +func (s *WirelessService) GetManagedApLocationsCountForSpecificWirelessController(networkDeviceID string) (*ResponseWirelessGetManagedApLocationsCountForSpecificWirelessController, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/{networkDeviceId}/managedApLocations/count" + path = strings.Replace(path, "{networkDeviceId}", fmt.Sprintf("%v", networkDeviceID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetManagedApLocationsCountForSpecificWirelessController{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetManagedApLocationsCountForSpecificWirelessController(networkDeviceID) + } + return nil, response, fmt.Errorf("error with operation GetManagedApLocationsCountForSpecificWirelessController") + } + + result := response.Result().(*ResponseWirelessGetManagedApLocationsCountForSpecificWirelessController) + return result, response, err + +} + +//GetPrimaryManagedApLocationsForSpecificWirelessController Get Primary Managed AP Locations for specific Wireless Controller - 1dba-89f4-40ab-abda +/* Retrieves all the details of Primary Managed AP locations associated with the specific Wireless Controller. + + +@param networkDeviceID networkDeviceId path parameter. Obtain the network device ID value by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress}. + +@param GetPrimaryManagedAPLocationsForSpecificWirelessControllerQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-primary-managed-ap-locations-for-specific-wireless-controller-v1 +*/ +func (s *WirelessService) GetPrimaryManagedApLocationsForSpecificWirelessController(networkDeviceID string, GetPrimaryManagedAPLocationsForSpecificWirelessControllerQueryParams *GetPrimaryManagedApLocationsForSpecificWirelessControllerQueryParams) (*ResponseWirelessGetPrimaryManagedApLocationsForSpecificWirelessController, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/{networkDeviceId}/primaryManagedApLocations" + path = strings.Replace(path, "{networkDeviceId}", fmt.Sprintf("%v", networkDeviceID), -1) + + queryString, _ := query.Values(GetPrimaryManagedAPLocationsForSpecificWirelessControllerQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetPrimaryManagedApLocationsForSpecificWirelessController{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetPrimaryManagedApLocationsForSpecificWirelessController(networkDeviceID, GetPrimaryManagedAPLocationsForSpecificWirelessControllerQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetPrimaryManagedApLocationsForSpecificWirelessController") + } + + result := response.Result().(*ResponseWirelessGetPrimaryManagedApLocationsForSpecificWirelessController) + return result, response, err + +} + +//GetSecondaryManagedApLocationsForSpecificWirelessController Get Secondary Managed AP Locations for specific Wireless Controller - b589-7bd6-4f1b-9efb +/* Retrieves all the details of Secondary Managed AP locations associated with the specific Wireless Controller. + + +@param networkDeviceID networkDeviceId path parameter. Obtain the network device ID value by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress}. + +@param GetSecondaryManagedAPLocationsForSpecificWirelessControllerQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-secondary-managed-ap-locations-for-specific-wireless-controller-v1 +*/ +func (s *WirelessService) GetSecondaryManagedApLocationsForSpecificWirelessController(networkDeviceID string, GetSecondaryManagedAPLocationsForSpecificWirelessControllerQueryParams *GetSecondaryManagedApLocationsForSpecificWirelessControllerQueryParams) (*ResponseWirelessGetSecondaryManagedApLocationsForSpecificWirelessController, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/{networkDeviceId}/secondaryManagedApLocations" + path = strings.Replace(path, "{networkDeviceId}", fmt.Sprintf("%v", networkDeviceID), -1) + + queryString, _ := query.Values(GetSecondaryManagedAPLocationsForSpecificWirelessControllerQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetSecondaryManagedApLocationsForSpecificWirelessController{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSecondaryManagedApLocationsForSpecificWirelessController(networkDeviceID, GetSecondaryManagedAPLocationsForSpecificWirelessControllerQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSecondaryManagedApLocationsForSpecificWirelessController") + } + + result := response.Result().(*ResponseWirelessGetSecondaryManagedApLocationsForSpecificWirelessController) + return result, response, err + +} + +//GetSSIDDetailsForSpecificWirelessController Get SSID Details for specific Wireless Controller - 70b6-393d-4899-ad4d +/* Retrieves all details of SSIDs associated with the specific Wireless Controller. + + +@param networkDeviceID networkDeviceId path parameter. Obtain the network device ID value by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress}. + +@param GetSSIDDetailsForSpecificWirelessControllerQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ssid-details-for-specific-wireless-controller-v1 +*/ +func (s *WirelessService) GetSSIDDetailsForSpecificWirelessController(networkDeviceID string, GetSSIDDetailsForSpecificWirelessControllerQueryParams *GetSSIDDetailsForSpecificWirelessControllerQueryParams) (*ResponseWirelessGetSSIDDetailsForSpecificWirelessController, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/{networkDeviceId}/ssidDetails" + path = strings.Replace(path, "{networkDeviceId}", fmt.Sprintf("%v", networkDeviceID), -1) + + queryString, _ := query.Values(GetSSIDDetailsForSpecificWirelessControllerQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetSSIDDetailsForSpecificWirelessController{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSSIDDetailsForSpecificWirelessController(networkDeviceID, GetSSIDDetailsForSpecificWirelessControllerQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSsidDetailsForSpecificWirelessController") + } + + result := response.Result().(*ResponseWirelessGetSSIDDetailsForSpecificWirelessController) + return result, response, err + +} + +//GetSSIDCountForSpecificWirelessController Get SSID Count for specific Wireless Controller - 3e98-c91d-42eb-a469 +/* Retrieves the count of SSIDs associated with the specific Wireless Controller. + + +@param networkDeviceID networkDeviceId path parameter. Obtain the network device ID value by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress}. + +@param GetSSIDCountForSpecificWirelessControllerQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-ssid-count-for-specific-wireless-controller-v1 +*/ +func (s *WirelessService) GetSSIDCountForSpecificWirelessController(networkDeviceID string, GetSSIDCountForSpecificWirelessControllerQueryParams *GetSSIDCountForSpecificWirelessControllerQueryParams) (*ResponseWirelessGetSSIDCountForSpecificWirelessController, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/{networkDeviceId}/ssidDetails/count" + path = strings.Replace(path, "{networkDeviceId}", fmt.Sprintf("%v", networkDeviceID), -1) + + queryString, _ := query.Values(GetSSIDCountForSpecificWirelessControllerQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetSSIDCountForSpecificWirelessController{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetSSIDCountForSpecificWirelessController(networkDeviceID, GetSSIDCountForSpecificWirelessControllerQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetSsidCountForSpecificWirelessController") + } + + result := response.Result().(*ResponseWirelessGetSSIDCountForSpecificWirelessController) + return result, response, err + +} + +//GetWirelessProfiles Get Wireless Profiles - 7988-fac4-447b-8e3d +/* This API allows the user to get all Wireless Network Profiles + + +@param GetWirelessProfilesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-wireless-profiles-v1 +*/ +func (s *WirelessService) GetWirelessProfiles(GetWirelessProfilesQueryParams *GetWirelessProfilesQueryParams) (*ResponseWirelessGetWirelessProfiles, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessProfiles" + + queryString, _ := query.Values(GetWirelessProfilesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetWirelessProfiles{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetWirelessProfiles(GetWirelessProfilesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetWirelessProfiles") + } + + result := response.Result().(*ResponseWirelessGetWirelessProfiles) + return result, response, err + +} + +//GetWirelessProfilesCount Get Wireless Profiles Count - 48a7-1883-48fb-93a5 +/* This API allows the user to get count of all wireless profiles + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-wireless-profiles-count-v1 +*/ +func (s *WirelessService) GetWirelessProfilesCount() (*ResponseWirelessGetWirelessProfilesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessProfiles/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetWirelessProfilesCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetWirelessProfilesCount() + } + return nil, response, fmt.Errorf("error with operation GetWirelessProfilesCount") + } + + result := response.Result().(*ResponseWirelessGetWirelessProfilesCount) + return result, response, err + +} + +//GetWirelessProfileByID Get Wireless Profile by ID - f5b9-fab9-4b79-b0f3 +/* This API allows the user to get a Wireless Network Profile by ID + + +@param id id path parameter. Wireless Profile Id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-wireless-profile-by-id-v1 +*/ +func (s *WirelessService) GetWirelessProfileByID(id string) (*ResponseWirelessGetWirelessProfileByID, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetWirelessProfileByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetWirelessProfileByID(id) + } + return nil, response, fmt.Errorf("error with operation GetWirelessProfileById") + } + + result := response.Result().(*ResponseWirelessGetWirelessProfileByID) + return result, response, err + +} + +//GetAll80211BeProfiles Get all 802.11be Profiles - 1895-aac1-4428-bd0d +/* This API allows the user to get all 802.11be Profile(s) configured under Wireless Settings + + +@param GetAll80211beProfilesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-all80211be-profiles-v1 +*/ +func (s *WirelessService) GetAll80211BeProfiles(GetAll80211beProfilesQueryParams *GetAll80211BeProfilesQueryParams) (*ResponseWirelessGetAll80211BeProfiles, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/dot11beProfiles" + + queryString, _ := query.Values(GetAll80211beProfilesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetAll80211BeProfiles{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetAll80211BeProfiles(GetAll80211beProfilesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetAll80211BeProfiles") + } + + result := response.Result().(*ResponseWirelessGetAll80211BeProfiles) + return result, response, err + +} + +//Get80211BeProfilesCount Get 802.11be Profiles Count - a0b7-da85-4faa-95b7 +/* This API allows the user to get count of all 802.11be Profile(s) + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get80211be-profiles-count-v1 +*/ +func (s *WirelessService) Get80211BeProfilesCount() (*ResponseWirelessGet80211BeProfilesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/dot11beProfiles/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGet80211BeProfilesCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.Get80211BeProfilesCount() + } + return nil, response, fmt.Errorf("error with operation Get80211BeProfilesCount") + } + + result := response.Result().(*ResponseWirelessGet80211BeProfilesCount) + return result, response, err + +} + +//Get80211BeProfileByID Get 802.11be Profile by ID - fa93-88ce-49eb-a5d7 +/* This API allows the user to get 802.11be Profile by ID + + +@param id id path parameter. 802.11be Profile ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get80211be-profile-by-id-v1 +*/ +func (s *WirelessService) Get80211BeProfileByID(id string) (*ResponseWirelessGet80211BeProfileByID, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/dot11beProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGet80211BeProfileByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.Get80211BeProfileByID(id) + } + return nil, response, fmt.Errorf("error with operation Get80211BeProfileById") + } + + result := response.Result().(*ResponseWirelessGet80211BeProfileByID) + return result, response, err + +} + +//GetInterfaces Get Interfaces - 3793-ea73-438a-b243 +/* This API allows the user to get all Interfaces + + +@param GetInterfacesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interfaces-v1 +*/ +func (s *WirelessService) GetInterfaces(GetInterfacesQueryParams *GetInterfacesQueryParams) (*ResponseWirelessGetInterfaces, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/interfaces" + + queryString, _ := query.Values(GetInterfacesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetInterfaces{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetInterfaces(GetInterfacesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetInterfaces") + } + + result := response.Result().(*ResponseWirelessGetInterfaces) + return result, response, err + +} + +//GetInterfacesCount Get Interfaces Count - fd81-f950-424b-b992 +/* This API allows the user to get count of all interfaces + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interfaces-count-v1 +*/ +func (s *WirelessService) GetInterfacesCount() (*ResponseWirelessGetInterfacesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/interfaces/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetInterfacesCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetInterfacesCount() + } + return nil, response, fmt.Errorf("error with operation GetInterfacesCount") + } + + result := response.Result().(*ResponseWirelessGetInterfacesCount) + return result, response, err + +} + +//GetInterfaceByID Get Interface by ID - 3fa4-19ab-482a-ad07 +/* This API allows the user to get an interface by ID + + +@param id id path parameter. Interface ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-interface-by-id-v1 +*/ +func (s *WirelessService) GetInterfaceByID(id string) (*ResponseWirelessGetInterfaceByID, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/interfaces/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetInterfaceByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetInterfaceByID(id) + } + return nil, response, fmt.Errorf("error with operation GetInterfaceById") + } + + result := response.Result().(*ResponseWirelessGetInterfaceByID) + return result, response, err + +} + +//GetRfProfiles Get RF Profiles - 15a6-e823-49ca-a9cc +/* This API allows the user to get all RF Profiles + + +@param GetRFProfilesQueryParams Filtering parameter + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-rf-profiles-v1 +*/ +func (s *WirelessService) GetRfProfiles(GetRFProfilesQueryParams *GetRfProfilesQueryParams) (*ResponseWirelessGetRfProfiles, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/rfProfiles" + + queryString, _ := query.Values(GetRFProfilesQueryParams) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessGetRfProfiles{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetRfProfiles(GetRFProfilesQueryParams) + } + return nil, response, fmt.Errorf("error with operation GetRfProfiles") + } + + result := response.Result().(*ResponseWirelessGetRfProfiles) + return result, response, err + +} + +//GetRfProfilesCount Get RF Profiles Count - f996-2b80-477a-9de2 +/* This API allows the user to get count of all RF profiles + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-rf-profiles-count-v1 +*/ +func (s *WirelessService) GetRfProfilesCount() (*ResponseWirelessGetRfProfilesCount, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/rfProfiles/count" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetRfProfilesCount{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetRfProfilesCount() + } + return nil, response, fmt.Errorf("error with operation GetRfProfilesCount") + } + + result := response.Result().(*ResponseWirelessGetRfProfilesCount) + return result, response, err + +} + +//GetRfProfileByID Get RF Profile by ID - 3298-aa56-4ec9-b510 +/* This API allows the user to get a RF Profile by RF Profile ID + + +@param id id path parameter. RF Profile ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!get-rf-profile-by-id-v1 +*/ +func (s *WirelessService) GetRfProfileByID(id string) (*ResponseWirelessGetRfProfileByID, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/rfProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessGetRfProfileByID{}). + SetError(&Error). + Get(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.GetRfProfileByID(id) + } + return nil, response, fmt.Errorf("error with operation GetRfProfileById") + } + + result := response.Result().(*ResponseWirelessGetRfProfileByID) + return result, response, err + +} + +//CreateAndProvisionSSID Create and Provision SSID - 1eb7-2ad3-4e09-8990 +/* Creates SSID, updates the SSID to the corresponding site profiles and provision it to the devices matching the given sites + + +@param CreateAndProvisionSSIDHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-and-provision-ssid-v1 +*/ +func (s *WirelessService) CreateAndProvisionSSID(requestWirelessCreateAndProvisionSSID *RequestWirelessCreateAndProvisionSSID, CreateAndProvisionSSIDHeaderParams *CreateAndProvisionSSIDHeaderParams) (*ResponseWirelessCreateAndProvisionSSID, *resty.Response, error) { + path := "/dna/intent/api/v1/business/ssid" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if CreateAndProvisionSSIDHeaderParams != nil { + + if CreateAndProvisionSSIDHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", CreateAndProvisionSSIDHeaderParams.Persistbapioutput) + } + + } + + response, err = clientRequest. + SetBody(requestWirelessCreateAndProvisionSSID). + SetResult(&ResponseWirelessCreateAndProvisionSSID{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateAndProvisionSSID(requestWirelessCreateAndProvisionSSID, CreateAndProvisionSSIDHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation CreateAndProvisionSsid") + } + + result := response.Result().(*ResponseWirelessCreateAndProvisionSSID) + return result, response, err + +} + +//RebootAccessPoints Reboot Access Points - 6092-d8f1-468b-99ab +/* Users can reboot multiple access points up-to 200 at a time using this API + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!reboot-access-points-v1 +*/ +func (s *WirelessService) RebootAccessPoints(requestWirelessRebootAccessPoints *RequestWirelessRebootAccessPoints) (*ResponseWirelessRebootAccessPoints, *resty.Response, error) { + path := "/dna/intent/api/v1/device-reboot/apreboot" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessRebootAccessPoints). + SetResult(&ResponseWirelessRebootAccessPoints{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.RebootAccessPoints(requestWirelessRebootAccessPoints) + } + + return nil, response, fmt.Errorf("error with operation RebootAccessPoints") + } + + result := response.Result().(*ResponseWirelessRebootAccessPoints) + return result, response, err + +} + +//CreateEnterpriseSSID Create Enterprise SSID - 8a96-fb95-4d09-a349 +/* Creates enterprise SSID + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-enterprise-ssid-v1 +*/ +func (s *WirelessService) CreateEnterpriseSSID(requestWirelessCreateEnterpriseSSID *RequestWirelessCreateEnterpriseSSID) (*ResponseWirelessCreateEnterpriseSSID, *resty.Response, error) { + path := "/dna/intent/api/v1/enterprise-ssid" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessCreateEnterpriseSSID). + SetResult(&ResponseWirelessCreateEnterpriseSSID{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateEnterpriseSSID(requestWirelessCreateEnterpriseSSID) + } + + return nil, response, fmt.Errorf("error with operation CreateEnterpriseSsid") + } + + result := response.Result().(*ResponseWirelessCreateEnterpriseSSID) + return result, response, err + +} + +//CreateSSID Create SSID - 0193-8858-4789-9a53 +/* This API allows the user to create an SSID (Service Set Identifier) at the Global site + + +@param siteID siteId path parameter. Site UUID of Global site + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-ssid-v1 +*/ +func (s *WirelessService) CreateSSID(siteID string, requestWirelessCreateSSID *RequestWirelessCreateSSID) (*ResponseWirelessCreateSSID, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{siteId}/wirelessSettings/ssids" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessCreateSSID). + SetResult(&ResponseWirelessCreateSSID{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateSSID(siteID, requestWirelessCreateSSID) + } + + return nil, response, fmt.Errorf("error with operation CreateSsid") + } + + result := response.Result().(*ResponseWirelessCreateSSID) + return result, response, err + +} + +//ConfigureAccessPoints Configure Access Points - 0081-cb89-4708-888f +/* User can configure multiple access points with required options using this intent API. This API does not support configuration of CleanAir or SI for IOS-XE devices with version greater than or equal to 17.9 + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!configure-access-points-v1 +*/ +func (s *WirelessService) ConfigureAccessPoints(requestWirelessConfigureAccessPoints *RequestWirelessConfigureAccessPoints) (*ResponseWirelessConfigureAccessPoints, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/accesspoint-configuration" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessConfigureAccessPoints). + SetResult(&ResponseWirelessConfigureAccessPoints{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ConfigureAccessPoints(requestWirelessConfigureAccessPoints) + } + + return nil, response, fmt.Errorf("error with operation ConfigureAccessPoints") } result := response.Result().(*ResponseWirelessConfigureAccessPoints) @@ -1276,34 +3472,367 @@ func (s *WirelessService) ConfigureAccessPoints(requestWirelessConfigureAccessPo } -//ApProvision AP Provision - d897-19b8-47aa-a9c4 -/* Access Point Provision and ReProvision +//ApProvisionConnectivity AP Provision - d897-19b8-47aa-a9c4 +/* Access Point Provision and ReProvision + + +@param APProvisionConnectivityHeaderParams Custom header parameters + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!ap-provision-connectivity-v1 +*/ +func (s *WirelessService) ApProvisionConnectivity(requestWirelessAPProvisionConnectivity *RequestWirelessApProvisionConnectivity, APProvisionConnectivityHeaderParams *ApProvisionConnectivityHeaderParams) (*ResponseWirelessApProvisionConnectivity, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/ap-provision" + + var response *resty.Response + var err error + clientRequest := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json") + + if APProvisionConnectivityHeaderParams != nil { + + if APProvisionConnectivityHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", APProvisionConnectivityHeaderParams.Persistbapioutput) + } + + } + + response, err = clientRequest. + SetBody(requestWirelessAPProvisionConnectivity). + SetResult(&ResponseWirelessApProvisionConnectivity{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ApProvisionConnectivity(requestWirelessAPProvisionConnectivity, APProvisionConnectivityHeaderParams) + } + + return nil, response, fmt.Errorf("error with operation ApProvisionConnectivity") + } + + result := response.Result().(*ResponseWirelessApProvisionConnectivity) + return result, response, err + +} + +//CreateUpdateDynamicInterface Create Update Dynamic interface - daa0-bb75-4e2a-8da6 +/* API to create or update an dynamic interface + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-update-dynamic-interface-v1 +*/ +func (s *WirelessService) CreateUpdateDynamicInterface(requestWirelessCreateUpdateDynamicInterface *RequestWirelessCreateUpdateDynamicInterface) (*ResponseWirelessCreateUpdateDynamicInterface, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/dynamic-interface" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessCreateUpdateDynamicInterface). + SetResult(&ResponseWirelessCreateUpdateDynamicInterface{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateUpdateDynamicInterface(requestWirelessCreateUpdateDynamicInterface) + } + + return nil, response, fmt.Errorf("error with operation CreateUpdateDynamicInterface") + } + + result := response.Result().(*ResponseWirelessCreateUpdateDynamicInterface) + return result, response, err + +} + +//CreateWirelessProfile Create Wireless Profile - 7097-6962-4bf9-88d5 +/* Creates Wireless Network Profile on Cisco DNA Center and associates sites and SSIDs to it. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-wireless-profile-v1 +*/ +func (s *WirelessService) CreateWirelessProfile(requestWirelessCreateWirelessProfile *RequestWirelessCreateWirelessProfile) (*ResponseWirelessCreateWirelessProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/profile" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessCreateWirelessProfile). + SetResult(&ResponseWirelessCreateWirelessProfile{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateWirelessProfile(requestWirelessCreateWirelessProfile) + } + + return nil, response, fmt.Errorf("error with operation CreateWirelessProfile") + } + + result := response.Result().(*ResponseWirelessCreateWirelessProfile) + return result, response, err + +} + +//Provision Provision - d09b-08a3-447a-a3b9 +/* Provision wireless device + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!provision-v1 +*/ +func (s *WirelessService) Provision(requestWirelessProvision *RequestWirelessProvision) (*ResponseWirelessProvision, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/provision" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessProvision). + SetResult(&ResponseWirelessProvision{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.Provision(requestWirelessProvision) + } + + return nil, response, fmt.Errorf("error with operation Provision") + } + + result := response.Result().(*ResponseWirelessProvision) + return result, response, err + +} + +//PSKOverride PSK override - 46ad-ab75-47c9-8762 +/* Update/Override passphrase of SSID + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!p-s-k-override-v1 +*/ +func (s *WirelessService) PSKOverride(requestWirelessPSKOverride *RequestWirelessPSKOverride) (*ResponseWirelessPSKOverride, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/psk-override" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessPSKOverride). + SetResult(&ResponseWirelessPSKOverride{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.PSKOverride(requestWirelessPSKOverride) + } + + return nil, response, fmt.Errorf("error with operation PSKOverride") + } + + result := response.Result().(*ResponseWirelessPSKOverride) + return result, response, err + +} + +//CreateOrUpdateRfProfile Create or Update RF profile - b783-2967-4878-b815 +/* Create or Update RF profile + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-or-update-rf-profile-v1 +*/ +func (s *WirelessService) CreateOrUpdateRfProfile(requestWirelessCreateOrUpdateRFProfile *RequestWirelessCreateOrUpdateRfProfile) (*ResponseWirelessCreateOrUpdateRfProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/rf-profile" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessCreateOrUpdateRFProfile). + SetResult(&ResponseWirelessCreateOrUpdateRfProfile{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateOrUpdateRfProfile(requestWirelessCreateOrUpdateRFProfile) + } + + return nil, response, fmt.Errorf("error with operation CreateOrUpdateRfProfile") + } + + result := response.Result().(*ResponseWirelessCreateOrUpdateRfProfile) + return result, response, err + +} + +//FactoryResetAccessPoints Factory Reset Access Point(s) - b09d-4bbc-482b-aeb7 +/* This API is used to factory reset Access Points. It is supported for maximum 100 Access Points per request. Factory reset clears all configurations from the Access Points. After factory reset the Access Point may become unreachable from the currently associated Wireless Controller and may or may not join back the same controller. + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!factory-reset-access-points-v1 +*/ +func (s *WirelessService) FactoryResetAccessPoints(requestWirelessFactoryResetAccessPoints *RequestWirelessFactoryResetAccessPoints) (*ResponseWirelessFactoryResetAccessPoints, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessAccessPoints/factoryResetRequest/provision" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessFactoryResetAccessPoints). + SetResult(&ResponseWirelessFactoryResetAccessPoints{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.FactoryResetAccessPoints(requestWirelessFactoryResetAccessPoints) + } + + return nil, response, fmt.Errorf("error with operation FactoryResetAccessPoints") + } + + result := response.Result().(*ResponseWirelessFactoryResetAccessPoints) + return result, response, err + +} + +//ApProvision AP Provision - 11af-897a-413b-925a +/* This API is used to provision access points + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!ap-provision-v1 +*/ +func (s *WirelessService) ApProvision(requestWirelessAPProvision *RequestWirelessApProvision) (*ResponseWirelessApProvision, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessAccessPoints/provision" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessAPProvision). + SetResult(&ResponseWirelessApProvision{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ApProvision(requestWirelessAPProvision) + } + + return nil, response, fmt.Errorf("error with operation ApProvision") + } + + result := response.Result().(*ResponseWirelessApProvision) + return result, response, err + +} + +//MobilityProvision Mobility Provision - 6c8b-6bd5-40bb-ac31 +/* This API is used to provision/deploy wireless mobility into Cisco wireless controllers. -@param APProvisionHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!ap-provision +Documentation Link: https://developer.cisco.com/docs/dna-center/#!mobility-provision-v1 */ -func (s *WirelessService) ApProvision(requestWirelessAPProvision *RequestWirelessApProvision, APProvisionHeaderParams *ApProvisionHeaderParams) (*ResponseWirelessApProvision, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/ap-provision" +func (s *WirelessService) MobilityProvision(requestWirelessMobilityProvision *RequestWirelessMobilityProvision) (*ResponseWirelessMobilityProvision, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/wirelessMobilityGroups/mobilityProvision" - var response *resty.Response - var err error - clientRequest := s.client.R(). + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") + SetHeader("Accept", "application/json"). + SetBody(requestWirelessMobilityProvision). + SetResult(&ResponseWirelessMobilityProvision{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } - if APProvisionHeaderParams != nil { + if response.IsError() { - if APProvisionHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", APProvisionHeaderParams.Persistbapioutput) + if response.StatusCode() == http.StatusUnauthorized { + return s.MobilityProvision(requestWirelessMobilityProvision) } + return nil, response, fmt.Errorf("error with operation MobilityProvision") } - response, err = clientRequest. - SetBody(requestWirelessAPProvision). - SetResult(&ResponseWirelessApProvision{}). + result := response.Result().(*ResponseWirelessMobilityProvision) + return result, response, err + +} + +//MobilityReset Mobility Reset - e589-6baf-4caa-9bbc +/* This API is used to reset wireless mobility which in turn sets mobility group name as 'default' + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!mobility-reset-v1 +*/ +func (s *WirelessService) MobilityReset(requestWirelessMobilityReset *RequestWirelessMobilityReset) (*ResponseWirelessMobilityReset, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/wirelessMobilityGroups/mobilityReset" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessMobilityReset). + SetResult(&ResponseWirelessMobilityReset{}). SetError(&Error). Post(path) @@ -1315,49 +3844,112 @@ func (s *WirelessService) ApProvision(requestWirelessAPProvision *RequestWireles if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.ApProvision(requestWirelessAPProvision, APProvisionHeaderParams) + return s.MobilityReset(requestWirelessMobilityReset) } - return nil, response, fmt.Errorf("error with operation ApProvision") + return nil, response, fmt.Errorf("error with operation MobilityReset") } - result := response.Result().(*ResponseWirelessApProvision) + result := response.Result().(*ResponseWirelessMobilityReset) return result, response, err } -//CreateUpdateDynamicInterface Create Update Dynamic interface - daa0-bb75-4e2a-8da6 -/* API to create or update an dynamic interface +//AssignManagedApLocationsForWLC Assign Managed AP Locations For WLC - afbd-d880-488a-83e4 +/* This API allows user to assign Managed AP Locations for WLC by device ID. The payload should always be a complete list. The Managed AP Locations included in the payload will be fully processed for both addition and deletion. + +@param deviceID deviceId path parameter. Network Device ID. This value can be obtained by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress} -@param CreateUpdateDynamicInterfaceHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-update-dynamic-interface +Documentation Link: https://developer.cisco.com/docs/dna-center/#!assign-managed-ap-locations-for-w-l-c-v1 */ -func (s *WirelessService) CreateUpdateDynamicInterface(requestWirelessCreateUpdateDynamicInterface *RequestWirelessCreateUpdateDynamicInterface, CreateUpdateDynamicInterfaceHeaderParams *CreateUpdateDynamicInterfaceHeaderParams) (*ResponseWirelessCreateUpdateDynamicInterface, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/dynamic-interface" +func (s *WirelessService) AssignManagedApLocationsForWLC(deviceID string, requestWirelessAssignManagedAPLocationsForWLC *RequestWirelessAssignManagedApLocationsForWLC) (*ResponseWirelessAssignManagedApLocationsForWLC, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/{deviceId}/assignManagedApLocations" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) - var response *resty.Response - var err error - clientRequest := s.client.R(). + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") + SetHeader("Accept", "application/json"). + SetBody(requestWirelessAssignManagedAPLocationsForWLC). + SetResult(&ResponseWirelessAssignManagedApLocationsForWLC{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } - if CreateUpdateDynamicInterfaceHeaderParams != nil { + if response.IsError() { - if CreateUpdateDynamicInterfaceHeaderParams.Runsync != "" { - clientRequest = clientRequest.SetHeader("__runsync", CreateUpdateDynamicInterfaceHeaderParams.Runsync) + if response.StatusCode() == http.StatusUnauthorized { + return s.AssignManagedApLocationsForWLC(deviceID, requestWirelessAssignManagedAPLocationsForWLC) } - if CreateUpdateDynamicInterfaceHeaderParams.Timeout != "" { - clientRequest = clientRequest.SetHeader("__timeout", CreateUpdateDynamicInterfaceHeaderParams.Timeout) + return nil, response, fmt.Errorf("error with operation AssignManagedApLocationsForWLC") + } + + result := response.Result().(*ResponseWirelessAssignManagedApLocationsForWLC) + return result, response, err + +} + +//WirelessControllerProvision Wireless Controller Provision - 9e9c-386b-4069-9e7c +/* This API is used to provision wireless controller + + +@param deviceID deviceId path parameter. Network Device ID. This value can be obtained by using the API call GET: /dna/intent/api/v1/network-device/ip-address/${ipAddress} + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!wireless-controller-provision-v1 +*/ +func (s *WirelessService) WirelessControllerProvision(deviceID string, requestWirelessWirelessControllerProvision *RequestWirelessWirelessControllerProvision) (*ResponseWirelessWirelessControllerProvision, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessControllers/{deviceId}/provision" + path = strings.Replace(path, "{deviceId}", fmt.Sprintf("%v", deviceID), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessWirelessControllerProvision). + SetResult(&ResponseWirelessWirelessControllerProvision{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.WirelessControllerProvision(deviceID, requestWirelessWirelessControllerProvision) } + return nil, response, fmt.Errorf("error with operation WirelessControllerProvision") } - response, err = clientRequest. - SetBody(requestWirelessCreateUpdateDynamicInterface). - SetResult(&ResponseWirelessCreateUpdateDynamicInterface{}). + result := response.Result().(*ResponseWirelessWirelessControllerProvision) + return result, response, err + +} + +//CreateWirelessProfileConnectivity Create Wireless Profile - dd88-bb37-492a-888b +/* This API allows the user to create a Wireless Network Profile + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-wireless-profile-connectivity-v1 +*/ +func (s *WirelessService) CreateWirelessProfileConnectivity(requestWirelessCreateWirelessProfileConnectivity *RequestWirelessCreateWirelessProfileConnectivity) (*ResponseWirelessCreateWirelessProfileConnectivity, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessProfiles" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessCreateWirelessProfileConnectivity). + SetResult(&ResponseWirelessCreateWirelessProfileConnectivity{}). SetError(&Error). Post(path) @@ -1369,32 +3961,32 @@ func (s *WirelessService) CreateUpdateDynamicInterface(requestWirelessCreateUpda if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.CreateUpdateDynamicInterface(requestWirelessCreateUpdateDynamicInterface, CreateUpdateDynamicInterfaceHeaderParams) + return s.CreateWirelessProfileConnectivity(requestWirelessCreateWirelessProfileConnectivity) } - return nil, response, fmt.Errorf("error with operation CreateUpdateDynamicInterface") + return nil, response, fmt.Errorf("error with operation CreateWirelessProfileConnectivity") } - result := response.Result().(*ResponseWirelessCreateUpdateDynamicInterface) + result := response.Result().(*ResponseWirelessCreateWirelessProfileConnectivity) return result, response, err } -//CreateWirelessProfile Create Wireless Profile - 7097-6962-4bf9-88d5 -/* Creates Wireless Network Profile on Cisco DNA Center and associates sites and SSIDs to it. +//CreateA80211BeProfile Create a 802.11be Profile - efab-bbaf-4388-a046 +/* This API allows the user to create a 802.11be Profile.Catalyst Center will push this profile to device's "default-dot11be-profileā€.Also please note , 802.11be Profile is supported only on IOS-XE controllers since device version 17.15 -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-wireless-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-a80211be-profile-v1 */ -func (s *WirelessService) CreateWirelessProfile(requestWirelessCreateWirelessProfile *RequestWirelessCreateWirelessProfile) (*ResponseWirelessCreateWirelessProfile, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/profile" +func (s *WirelessService) CreateA80211BeProfile(requestWirelessCreateA80211beProfile *RequestWirelessCreateA80211BeProfile) (*ResponseWirelessCreateA80211BeProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/dot11beProfiles" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestWirelessCreateWirelessProfile). - SetResult(&ResponseWirelessCreateWirelessProfile{}). + SetBody(requestWirelessCreateA80211beProfile). + SetResult(&ResponseWirelessCreateA80211BeProfile{}). SetError(&Error). Post(path) @@ -1406,34 +3998,215 @@ func (s *WirelessService) CreateWirelessProfile(requestWirelessCreateWirelessPro if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.CreateWirelessProfile(requestWirelessCreateWirelessProfile) + return s.CreateA80211BeProfile(requestWirelessCreateA80211beProfile) } - return nil, response, fmt.Errorf("error with operation CreateWirelessProfile") + return nil, response, fmt.Errorf("error with operation CreateA80211BeProfile") } - result := response.Result().(*ResponseWirelessCreateWirelessProfile) + result := response.Result().(*ResponseWirelessCreateA80211BeProfile) return result, response, err } -//Provision Provision - d09b-08a3-447a-a3b9 -/* Provision wireless devices +//CreateInterface Create Interface - a098-6877-44e8-ba31 +/* This API allows the user to create an interface -Documentation Link: https://developer.cisco.com/docs/dna-center/#!provision +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-interface-v1 */ -func (s *WirelessService) Provision(requestWirelessProvision *RequestWirelessProvision) (*ResponseWirelessProvision, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/provision" +func (s *WirelessService) CreateInterface(requestWirelessCreateInterface *RequestWirelessCreateInterface) (*ResponseWirelessCreateInterface, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/interfaces" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessCreateInterface). + SetResult(&ResponseWirelessCreateInterface{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateInterface(requestWirelessCreateInterface) + } + + return nil, response, fmt.Errorf("error with operation CreateInterface") + } + + result := response.Result().(*ResponseWirelessCreateInterface) + return result, response, err + +} + +//CreateRfProfile Create RF Profile - 3cb0-ca20-45d9-8d07 +/* This API allows the user to create a custom RF Profile + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-rf-profile-v1 +*/ +func (s *WirelessService) CreateRfProfile(requestWirelessCreateRFProfile *RequestWirelessCreateRfProfile) (*ResponseWirelessCreateRfProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/rfProfiles" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessCreateRFProfile). + SetResult(&ResponseWirelessCreateRfProfile{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.CreateRfProfile(requestWirelessCreateRFProfile) + } + + return nil, response, fmt.Errorf("error with operation CreateRfProfile") + } + + result := response.Result().(*ResponseWirelessCreateRfProfile) + return result, response, err + +} + +//ConfigureAccessPointsV2 Configure Access Points V2 - 5ca7-4a81-4329-9506 +/* User can configure multiple access points with required options using this intent API + + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!configure-access-points-v2 +*/ +func (s *WirelessService) ConfigureAccessPointsV2(requestWirelessConfigureAccessPointsV2 *RequestWirelessConfigureAccessPointsV2) (*ResponseWirelessConfigureAccessPointsV2, *resty.Response, error) { + path := "/dna/intent/api/v2/wireless/accesspoint-configuration" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessConfigureAccessPointsV2). + SetResult(&ResponseWirelessConfigureAccessPointsV2{}). + SetError(&Error). + Post(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + + if response.StatusCode() == http.StatusUnauthorized { + return s.ConfigureAccessPointsV2(requestWirelessConfigureAccessPointsV2) + } + + return nil, response, fmt.Errorf("error with operation ConfigureAccessPointsV2") + } + + result := response.Result().(*ResponseWirelessConfigureAccessPointsV2) + return result, response, err + +} + +//UpdateEnterpriseSSID Update Enterprise SSID - c493-991f-40ca-ba44 +/* Update enterprise SSID + + + */ +func (s *WirelessService) UpdateEnterpriseSSID(requestWirelessUpdateEnterpriseSSID *RequestWirelessUpdateEnterpriseSSID) (*ResponseWirelessUpdateEnterpriseSSID, *resty.Response, error) { + path := "/dna/intent/api/v1/enterprise-ssid" + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessUpdateEnterpriseSSID). + SetResult(&ResponseWirelessUpdateEnterpriseSSID{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateEnterpriseSSID(requestWirelessUpdateEnterpriseSSID) + } + return nil, response, fmt.Errorf("error with operation UpdateEnterpriseSsid") + } + + result := response.Result().(*ResponseWirelessUpdateEnterpriseSSID) + return result, response, err + +} + +//UpdateSSID Update SSID - 2496-7ad2-4b8a-913b +/* This API allows the user to update an SSID (Service Set Identifier) at the given site + + +@param siteID siteId path parameter. Site UUID + +@param id id path parameter. SSID ID. Inputs containing special characters should be encoded + +*/ +func (s *WirelessService) UpdateSSID(siteID string, id string, requestWirelessUpdateSSID *RequestWirelessUpdateSSID) (*ResponseWirelessUpdateSSID, *resty.Response, error) { + path := "/dna/intent/api/v1/sites/{siteId}/wirelessSettings/ssids/{id}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessUpdateSSID). + SetResult(&ResponseWirelessUpdateSSID{}). + SetError(&Error). + Put(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.UpdateSSID(siteID, id, requestWirelessUpdateSSID) + } + return nil, response, fmt.Errorf("error with operation UpdateSsid") + } + + result := response.Result().(*ResponseWirelessUpdateSSID) + return result, response, err + +} + +//UpdateWirelessProfile Update Wireless Profile - cfbd-3870-405a-ad55 +/* Updates the wireless Network Profile with updated details provided. All sites to be present in the network profile should be provided. + + + */ +func (s *WirelessService) UpdateWirelessProfile(requestWirelessUpdateWirelessProfile *RequestWirelessUpdateWirelessProfile) (*ResponseWirelessUpdateWirelessProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/profile" response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestWirelessProvision). - SetResult(&ResponseWirelessProvision{}). + SetBody(requestWirelessUpdateWirelessProfile). + SetResult(&ResponseWirelessUpdateWirelessProfile{}). SetError(&Error). - Post(path) + Put(path) if err != nil { return nil, nil, err @@ -1441,36 +4214,45 @@ func (s *WirelessService) Provision(requestWirelessProvision *RequestWirelessPro } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.Provision(requestWirelessProvision) + return s.UpdateWirelessProfile(requestWirelessUpdateWirelessProfile) } - - return nil, response, fmt.Errorf("error with operation Provision") + return nil, response, fmt.Errorf("error with operation UpdateWirelessProfile") } - result := response.Result().(*ResponseWirelessProvision) + result := response.Result().(*ResponseWirelessUpdateWirelessProfile) return result, response, err } -//PSKOverride PSK override - 46ad-ab75-47c9-8762 -/* Update/override pass phrase of enterprise SSID - +//ProvisionUpdate Provision update - 87a5-ab04-4139-862d +/* Updates wireless provisioning -Documentation Link: https://developer.cisco.com/docs/dna-center/#!p-s-k-override +@param ProvisionUpdateHeaderParams Custom header parameters */ -func (s *WirelessService) PSKOverride(requestWirelessPSKOverride *RequestWirelessPSKOverride) (*ResponseWirelessPSKOverride, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/psk-override" +func (s *WirelessService) ProvisionUpdate(requestWirelessProvisionUpdate *RequestWirelessProvisionUpdate, ProvisionUpdateHeaderParams *ProvisionUpdateHeaderParams) (*ResponseWirelessProvisionUpdate, *resty.Response, error) { + path := "/dna/intent/api/v1/wireless/provision" - response, err := s.client.R(). + var response *resty.Response + var err error + clientRequest := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetBody(requestWirelessPSKOverride). - SetResult(&ResponseWirelessPSKOverride{}). + SetHeader("Accept", "application/json") + + if ProvisionUpdateHeaderParams != nil { + + if ProvisionUpdateHeaderParams.Persistbapioutput != "" { + clientRequest = clientRequest.SetHeader("__persistbapioutput", ProvisionUpdateHeaderParams.Persistbapioutput) + } + + } + + response, err = clientRequest. + SetBody(requestWirelessProvisionUpdate). + SetResult(&ResponseWirelessProvisionUpdate{}). SetError(&Error). - Post(path) + Put(path) if err != nil { return nil, nil, err @@ -1478,36 +4260,35 @@ func (s *WirelessService) PSKOverride(requestWirelessPSKOverride *RequestWireles } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.PSKOverride(requestWirelessPSKOverride) + return s.ProvisionUpdate(requestWirelessProvisionUpdate, ProvisionUpdateHeaderParams) } - - return nil, response, fmt.Errorf("error with operation PSKOverride") + return nil, response, fmt.Errorf("error with operation ProvisionUpdate") } - result := response.Result().(*ResponseWirelessPSKOverride) + result := response.Result().(*ResponseWirelessProvisionUpdate) return result, response, err } -//CreateOrUpdateRfProfile Create or Update RF profile - b783-2967-4878-b815 -/* Create or Update RF profile +//UpdateWirelessProfileConnectivity Update Wireless Profile - 4f88-d9a3-4ef8-8e2e +/* This API allows the user to update a Wireless Network Profile by ID +@param id id path parameter. Wireless Profile Id -Documentation Link: https://developer.cisco.com/docs/dna-center/#!create-or-update-rf-profile */ -func (s *WirelessService) CreateOrUpdateRfProfile(requestWirelessCreateOrUpdateRFProfile *RequestWirelessCreateOrUpdateRfProfile) (*ResponseWirelessCreateOrUpdateRfProfile, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/rf-profile" +func (s *WirelessService) UpdateWirelessProfileConnectivity(id string, requestWirelessUpdateWirelessProfileConnectivity *RequestWirelessUpdateWirelessProfileConnectivity) (*ResponseWirelessUpdateWirelessProfileConnectivity, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestWirelessCreateOrUpdateRFProfile). - SetResult(&ResponseWirelessCreateOrUpdateRfProfile{}). + SetBody(requestWirelessUpdateWirelessProfileConnectivity). + SetResult(&ResponseWirelessUpdateWirelessProfileConnectivity{}). SetError(&Error). - Post(path) + Put(path) if err != nil { return nil, nil, err @@ -1515,32 +4296,33 @@ func (s *WirelessService) CreateOrUpdateRfProfile(requestWirelessCreateOrUpdateR } if response.IsError() { - if response.StatusCode() == http.StatusUnauthorized { - return s.CreateOrUpdateRfProfile(requestWirelessCreateOrUpdateRFProfile) + return s.UpdateWirelessProfileConnectivity(id, requestWirelessUpdateWirelessProfileConnectivity) } - - return nil, response, fmt.Errorf("error with operation CreateOrUpdateRfProfile") + return nil, response, fmt.Errorf("error with operation UpdateWirelessProfileConnectivity") } - result := response.Result().(*ResponseWirelessCreateOrUpdateRfProfile) + result := response.Result().(*ResponseWirelessUpdateWirelessProfileConnectivity) return result, response, err } -//UpdateEnterpriseSSID Update Enterprise SSID - c493-991f-40ca-ba44 -/* Update enterprise SSID +//Update80211BeProfile Update 802.11be Profile - 699b-b8e0-48bb-9b90 +/* This API allows the user to update a 802.11be Profile - */ -func (s *WirelessService) UpdateEnterpriseSSID(requestWirelessUpdateEnterpriseSSID *RequestWirelessUpdateEnterpriseSSID) (*ResponseWirelessUpdateEnterpriseSSID, *resty.Response, error) { - path := "/dna/intent/api/v1/enterprise-ssid" +@param id id path parameter. 802.11be Profile ID + +*/ +func (s *WirelessService) Update80211BeProfile(id string, requestWirelessUpdate80211beProfile *RequestWirelessUpdate80211BeProfile) (*ResponseWirelessUpdate80211BeProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/dot11beProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestWirelessUpdateEnterpriseSSID). - SetResult(&ResponseWirelessUpdateEnterpriseSSID{}). + SetBody(requestWirelessUpdate80211beProfile). + SetResult(&ResponseWirelessUpdate80211BeProfile{}). SetError(&Error). Put(path) @@ -1551,29 +4333,32 @@ func (s *WirelessService) UpdateEnterpriseSSID(requestWirelessUpdateEnterpriseSS if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.UpdateEnterpriseSSID(requestWirelessUpdateEnterpriseSSID) + return s.Update80211BeProfile(id, requestWirelessUpdate80211beProfile) } - return nil, response, fmt.Errorf("error with operation UpdateEnterpriseSsid") + return nil, response, fmt.Errorf("error with operation Update80211BeProfile") } - result := response.Result().(*ResponseWirelessUpdateEnterpriseSSID) + result := response.Result().(*ResponseWirelessUpdate80211BeProfile) return result, response, err } -//UpdateWirelessProfile Update Wireless Profile - cfbd-3870-405a-ad55 -/* Updates the wireless Network Profile with updated details provided. All sites to be present in the network profile should be provided. +//UpdateInterface Update Interface - 0f93-9868-454b-a943 +/* This API allows the user to update an interface by ID - */ -func (s *WirelessService) UpdateWirelessProfile(requestWirelessUpdateWirelessProfile *RequestWirelessUpdateWirelessProfile) (*ResponseWirelessUpdateWirelessProfile, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/profile" +@param id id path parameter. Interface ID + +*/ +func (s *WirelessService) UpdateInterface(id string, requestWirelessUpdateInterface *RequestWirelessUpdateInterface) (*ResponseWirelessUpdateInterface, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/interfaces/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) response, err := s.client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Accept", "application/json"). - SetBody(requestWirelessUpdateWirelessProfile). - SetResult(&ResponseWirelessUpdateWirelessProfile{}). + SetBody(requestWirelessUpdateInterface). + SetResult(&ResponseWirelessUpdateInterface{}). SetError(&Error). Put(path) @@ -1584,42 +4369,32 @@ func (s *WirelessService) UpdateWirelessProfile(requestWirelessUpdateWirelessPro if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.UpdateWirelessProfile(requestWirelessUpdateWirelessProfile) + return s.UpdateInterface(id, requestWirelessUpdateInterface) } - return nil, response, fmt.Errorf("error with operation UpdateWirelessProfile") + return nil, response, fmt.Errorf("error with operation UpdateInterface") } - result := response.Result().(*ResponseWirelessUpdateWirelessProfile) + result := response.Result().(*ResponseWirelessUpdateInterface) return result, response, err } -//ProvisionUpdate Provision update - 87a5-ab04-4139-862d -/* Updates wireless provisioning +//UpdateRfProfile Update RF Profile - 2984-b995-4ae9-b3c3 +/* This API allows the user to update a custom RF Profile -@param ProvisionUpdateHeaderParams Custom header parameters +@param id id path parameter. RF Profile ID + */ -func (s *WirelessService) ProvisionUpdate(requestWirelessProvisionUpdate *RequestWirelessProvisionUpdate, ProvisionUpdateHeaderParams *ProvisionUpdateHeaderParams) (*ResponseWirelessProvisionUpdate, *resty.Response, error) { - path := "/dna/intent/api/v1/wireless/provision" +func (s *WirelessService) UpdateRfProfile(id string, requestWirelessUpdateRFProfile *RequestWirelessUpdateRfProfile) (*ResponseWirelessUpdateRfProfile, *resty.Response, error) { + path := "/dna/intent/api/v1/wirelessSettings/rfProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) - var response *resty.Response - var err error - clientRequest := s.client.R(). + response, err := s.client.R(). SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json") - - if ProvisionUpdateHeaderParams != nil { - - if ProvisionUpdateHeaderParams.Persistbapioutput != "" { - clientRequest = clientRequest.SetHeader("__persistbapioutput", ProvisionUpdateHeaderParams.Persistbapioutput) - } - - } - - response, err = clientRequest. - SetBody(requestWirelessProvisionUpdate). - SetResult(&ResponseWirelessProvisionUpdate{}). + SetHeader("Accept", "application/json"). + SetBody(requestWirelessUpdateRFProfile). + SetResult(&ResponseWirelessUpdateRfProfile{}). SetError(&Error). Put(path) @@ -1630,12 +4405,12 @@ func (s *WirelessService) ProvisionUpdate(requestWirelessProvisionUpdate *Reques if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.ProvisionUpdate(requestWirelessProvisionUpdate, ProvisionUpdateHeaderParams) + return s.UpdateRfProfile(id, requestWirelessUpdateRFProfile) } - return nil, response, fmt.Errorf("error with operation ProvisionUpdate") + return nil, response, fmt.Errorf("error with operation UpdateRfProfile") } - result := response.Result().(*ResponseWirelessProvisionUpdate) + result := response.Result().(*ResponseWirelessUpdateRfProfile) return result, response, err } @@ -1644,11 +4419,13 @@ func (s *WirelessService) ProvisionUpdate(requestWirelessProvisionUpdate *Reques /* Removes SSID or WLAN from the network profile, reprovision the device(s) and deletes the SSID or WLAN from DNA Center -@param ssidName ssidName path parameter. -@param managedAPLocations managedAPLocations path parameter. +@param ssidName ssidName path parameter. SSID Name. This parameter needs to be encoded as per UTF-8 encoding. + +@param managedAPLocations managedAPLocations path parameter. List of managed AP locations (Site Hierarchies). This parameter needs to be encoded as per UTF-8 encoding + @param DeleteSSIDAndProvisionItToDevicesHeaderParams Custom header parameters -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-ssid-and-provision-it-to-devices +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-ssid-and-provision-it-to-devices-v1 */ func (s *WirelessService) DeleteSSIDAndProvisionItToDevices(ssidName string, managedAPLocations string, DeleteSSIDAndProvisionItToDevicesHeaderParams *DeleteSSIDAndProvisionItToDevicesHeaderParams) (*ResponseWirelessDeleteSSIDAndProvisionItToDevices, *resty.Response, error) { //ssidName string,managedAPLocations string,DeleteSSIDAndProvisionItToDevicesHeaderParams *DeleteSSIDAndProvisionItToDevicesHeaderParams @@ -1699,7 +4476,7 @@ func (s *WirelessService) DeleteSSIDAndProvisionItToDevices(ssidName string, man @param ssidName ssidName path parameter. Enter the SSID name to be deleted -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-enterprise-ssid +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-enterprise-ssid-v1 */ func (s *WirelessService) DeleteEnterpriseSSID(ssidName string) (*ResponseWirelessDeleteEnterpriseSSID, *resty.Response, error) { //ssidName string @@ -1730,14 +4507,55 @@ func (s *WirelessService) DeleteEnterpriseSSID(ssidName string) (*ResponseWirele } +//DeleteSSID Delete SSID - acbe-8b6f-4e8b-9f6a +/* This API allows the user to delete an SSID (Service Set Identifier) at the global level, if the SSID is not mapped to any Wireless Profile + + +@param siteID siteId path parameter. Site UUID where SSID is to be deleted + +@param id id path parameter. SSID ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-ssid-v1 +*/ +func (s *WirelessService) DeleteSSID(siteID string, id string) (*ResponseWirelessDeleteSSID, *resty.Response, error) { + //siteID string,id string + path := "/dna/intent/api/v1/sites/{siteId}/wirelessSettings/ssids/{id}" + path = strings.Replace(path, "{siteId}", fmt.Sprintf("%v", siteID), -1) + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessDeleteSSID{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteSSID(siteID, id) + } + return nil, response, fmt.Errorf("error with operation DeleteSsid") + } + + result := response.Result().(*ResponseWirelessDeleteSSID) + return result, response, err + +} + //DeleteWirelessProfile Delete Wireless Profile - e395-88a5-4949-82c4 -/* Delete the Wireless Profile from Cisco DNA Center whose name is provided. +/* Delete the Wireless Profile whose name is provided. @param wirelessProfileName wirelessProfileName path parameter. Wireless Profile Name -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-wireless-profile +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-wireless-profile-v1 */ func (s *WirelessService) DeleteWirelessProfile(wirelessProfileName string) (*ResponseWirelessDeleteWirelessProfile, *resty.Response, error) { //wirelessProfileName string @@ -1772,16 +4590,16 @@ func (s *WirelessService) DeleteWirelessProfile(wirelessProfileName string) (*Re /* Delete a dynamic interface -@param interfaceName interfaceName path parameter. valid interface-name to be deleted - @param DeleteDynamicInterfaceHeaderParams Custom header parameters +@param DeleteDynamicInterfaceQueryParams Filtering parameter -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-dynamic-interface +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-dynamic-interface-v1 */ -func (s *WirelessService) DeleteDynamicInterface(interfaceName string, DeleteDynamicInterfaceHeaderParams *DeleteDynamicInterfaceHeaderParams) (*resty.Response, error) { - //interfaceName string,DeleteDynamicInterfaceHeaderParams *DeleteDynamicInterfaceHeaderParams - path := "/dna/intent/api/v1/wireless/dynamic-interface/{interfaceName}" - path = strings.Replace(path, "{interfaceName}", fmt.Sprintf("%v", interfaceName), -1) +func (s *WirelessService) DeleteDynamicInterface(DeleteDynamicInterfaceHeaderParams *DeleteDynamicInterfaceHeaderParams, DeleteDynamicInterfaceQueryParams *DeleteDynamicInterfaceQueryParams) (*ResponseWirelessDeleteDynamicInterface, *resty.Response, error) { + //DeleteDynamicInterfaceHeaderParams *DeleteDynamicInterfaceHeaderParams,DeleteDynamicInterfaceQueryParams *DeleteDynamicInterfaceQueryParams + path := "/dna/intent/api/v1/wireless/dynamic-interface" + + queryString, _ := query.Values(DeleteDynamicInterfaceQueryParams) var response *resty.Response var err error @@ -1802,33 +4620,35 @@ func (s *WirelessService) DeleteDynamicInterface(interfaceName string, DeleteDyn } response, err = clientRequest. + SetQueryString(queryString.Encode()).SetResult(&ResponseWirelessDeleteDynamicInterface{}). SetError(&Error). Delete(path) if err != nil { - return nil, err + return nil, nil, err } if response.IsError() { if response.StatusCode() == http.StatusUnauthorized { - return s.DeleteDynamicInterface(interfaceName, DeleteDynamicInterfaceHeaderParams) + return s.DeleteDynamicInterface(DeleteDynamicInterfaceHeaderParams, DeleteDynamicInterfaceQueryParams) } - return response, fmt.Errorf("error with operation DeleteDynamicInterface") + return nil, response, fmt.Errorf("error with operation DeleteDynamicInterface") } - return response, err + result := response.Result().(*ResponseWirelessDeleteDynamicInterface) + return result, response, err } //DeleteRfProfiles Delete RF profiles - 28b2-4a74-4a99-94be -/* Delete RF profile(s) +/* Delete RF profile @param rfProfileName rfProfileName path parameter. RF profile name to be deleted(required) *non-custom RF profile cannot be deleted -Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-rf-profiles +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-rf-profiles-v1 */ func (s *WirelessService) DeleteRfProfiles(rfProfileName string) (*ResponseWirelessDeleteRfProfiles, *resty.Response, error) { //rfProfileName string @@ -1858,3 +4678,155 @@ func (s *WirelessService) DeleteRfProfiles(rfProfileName string) (*ResponseWirel return result, response, err } + +//DeleteWirelessProfileConnectivity Delete Wireless Profile - 289c-f9f5-4f78-b84c +/* This API allows the user to delete Wireless Network Profile by ID + + +@param id id path parameter. Wireless Profile Id + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-wireless-profile-connectivity-v1 +*/ +func (s *WirelessService) DeleteWirelessProfileConnectivity(id string) (*ResponseWirelessDeleteWirelessProfileConnectivity, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/wirelessProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessDeleteWirelessProfileConnectivity{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteWirelessProfileConnectivity(id) + } + return nil, response, fmt.Errorf("error with operation DeleteWirelessProfileConnectivity") + } + + result := response.Result().(*ResponseWirelessDeleteWirelessProfileConnectivity) + return result, response, err + +} + +//DeleteA80211BeProfile Delete a 802.11be Profile - e9b0-98c2-4b49-8fe6 +/* This API allows the user to delete a 802.11be Profile,if the 802.11be Profile is not mapped to any Wireless Network Profile + + +@param id id path parameter. 802.11be Profile ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-a80211be-profile-v1 +*/ +func (s *WirelessService) DeleteA80211BeProfile(id string) (*ResponseWirelessDeleteA80211BeProfile, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/wirelessSettings/dot11beProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessDeleteA80211BeProfile{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteA80211BeProfile(id) + } + return nil, response, fmt.Errorf("error with operation DeleteA80211BeProfile") + } + + result := response.Result().(*ResponseWirelessDeleteA80211BeProfile) + return result, response, err + +} + +//DeleteInterface Delete Interface - 0999-c9cd-4159-a6a1 +/* This API allows the user to delete an interface by ID + + +@param id id path parameter. Interface ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-interface-v1 +*/ +func (s *WirelessService) DeleteInterface(id string) (*ResponseWirelessDeleteInterface, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/wirelessSettings/interfaces/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessDeleteInterface{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteInterface(id) + } + return nil, response, fmt.Errorf("error with operation DeleteInterface") + } + + result := response.Result().(*ResponseWirelessDeleteInterface) + return result, response, err + +} + +//DeleteRfProfile Delete RF Profile - 2f8a-799d-4fa9-ac0e +/* This API allows the user to delete a custom RF Profile + + +@param id id path parameter. RF Profile ID + + +Documentation Link: https://developer.cisco.com/docs/dna-center/#!delete-rf-profile-v1 +*/ +func (s *WirelessService) DeleteRfProfile(id string) (*ResponseWirelessDeleteRfProfile, *resty.Response, error) { + //id string + path := "/dna/intent/api/v1/wirelessSettings/rfProfiles/{id}" + path = strings.Replace(path, "{id}", fmt.Sprintf("%v", id), -1) + + response, err := s.client.R(). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetResult(&ResponseWirelessDeleteRfProfile{}). + SetError(&Error). + Delete(path) + + if err != nil { + return nil, nil, err + + } + + if response.IsError() { + if response.StatusCode() == http.StatusUnauthorized { + return s.DeleteRfProfile(id) + } + return nil, response, fmt.Errorf("error with operation DeleteRfProfile") + } + + result := response.Result().(*ResponseWirelessDeleteRfProfile) + return result, response, err + +}