appdrest

package module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 15, 2024 License: MIT Imports: 17 Imported by: 0

README

AppDynamics Go Client

This project provides access to the AppDynamics REST API in Go language.

Usage

import "github.com/cisco-open/appd-client-go"

Create a client, get every Business Transaction for every Application

client, _ :=  appdrest.NewClient("http", "192.168.33.10", 8090, "admin", "password", "customer1")

apps, err := client.Application.GetApplications()
	if err != nil {
		panic(err.Error())
	}
	for _, app := range apps {

		bts, err := client.BusinessTransaction.GetBusinessTransactions(app.ID)
		if err != nil {
			panic(err.Error())
		}
		for _, bt := range bts {
			fmt.Printf("App: %s, Tier: %s, BT: %s, Type: %s\n", app.Name, bt.TierName, bt.Name, bt.EntryPointType)
		}

	}

Projects using this library

Support

We welcome feedback, questions, issue reports and pull requests.

Maintainer's email address: mdivis@cisco.com

GitHub Issues

Acknowledgements

Based on work of https://github.com/dlopes7/go-appdynamics-rest-api

License

MIT License

Copyright (c) 2023 David Lopes
Copyright (c) 2023 Cisco Systems, Inc. and its affiliates

Documentation

Index

Constants

View Source
const (
	TimeBEFORENOW    = "BEFORE_NOW"
	TimeBEFORETIME   = "BEFORE_TIME"
	TimeAFTERTIME    = "AFTER_TIME"
	TimeBETWEENTIMES = "BETWEEN_TIMES"
)

Consts for the technique used to obtain metric data

View Source
const (
	DeepDivePolicySLAFAILURE                     = "SLA_FAILURE"
	DeepDivePolicyTIMESAMPLING                   = "TIME_SAMPLING"
	DeepDivePolicyERRORSAMPLING                  = "ERROR_SAMPLING"
	DeepDivePolicyOCCURRENCESAMPLING             = "OCCURRENCE_SAMPLING "
	DeepDivePolicyONDEMAND                       = "ON_DEMAND"
	DeepDivePolicyHOTSPOT                        = "HOTSPOT"
	DeepDivePolicyHOTSPOTLEARN                   = "HOTSPOT_LEARN"
	DeepDivePolicyAPPLICATIONSTARTUP             = "APPLICATION_STARTUP"
	DeepDivePolicySLOWDIAGNOSTICSESSION          = "SLOW_DIAGNOSTIC_SESSION"
	DeepDivePolicyERRORDIAGNOSTICSESSION         = "ERROR_DIAGNOSTIC_SESSION"
	DeepDivePolicyPOLICYFAILUREDIAGNOSTICSESSION = "POLICY_FAILURE_DIAGNOSTIC_SESSION"
	DeepDivePolicyDIAGNOSTICSESSION              = "DIAGNOSTIC_SESSION"
	DeepDivePolicyINFLIGHTSLOWSESSION            = "INFLIGHT_SLOW_SESSION"
)

Consts for the deepDivePolicy argument

View Source
const (
	UserExperienceNORMAL   = "NORMAL"
	UserExperienceSLOW     = "SLOW"
	UserExperienceVERYSLOW = "VERYSLOW"
	UserExperienceSTALL    = "STALL"
	UserExperienceERROR    = "ERROR"
)

Consts to the userExperience argument

Variables

View Source
var EMPTSTR = ""

Functions

This section is empty.

Types

type APIError

type APIError struct {
	Message string
	Code    int
}

APIError to get HTTP response code to expected errors

func (*APIError) Error

func (e *APIError) Error() string

type Account

type Account struct {
	ID    string `json:"id"`
	Name  string `json:"name"`
	Links []Link `json:"links"`
}

Account is needed to access all operations here

type AccountService

type AccountService service

AccountService intermediates Account requests

func (*AccountService) GetLicenseModules

func (s *AccountService) GetLicenseModules(accID string) ([]*LicenseModule, error)

GetLicenseModules obtains all license modules and links

func (*AccountService) GetLicenseProperties

func (s *AccountService) GetLicenseProperties(accID string, agentType string) ([]*Property, error)

GetLicenseProperties obtains all properties for one agent type

func (*AccountService) GetLicenseUsages

func (s *AccountService) GetLicenseUsages(accID string, agentType string) ([]*Usage, error)

GetLicenseUsages obtains usage data for one agent type

func (*AccountService) GetMyAccount

func (s *AccountService) GetMyAccount() (*Account, error)

GetMyAccount obtains an Account object

type AffectsDetail

type AffectsDetail struct {
	AffectedEntityType  *string `json:"affectedEntityType"`
	AffectedEntityScope struct {
		EntityScope        *string `json:"entityScope"`
		EntityType         *string `json:"entityType"`
		AffectedEntityName *string `json:"affectedEntityName"`
	} `json:"affectedEntityScope"`
}

type AllInternalApplications added in v1.1.0

type AllInternalApplications struct {
	ApmApplications              []GenericApplication `json:"apmApplications"`
	EumWebApplications           []GenericApplication `json:"eumWebApplications"`
	DbMonApplication             GenericApplication   `json:"dbMonApplication"`
	OverageMonitoringApplication GenericApplication   `json:"overageMonitoringApplication"`
	SimApplication               GenericApplication   `json:"simApplication"`
	AnalyticsApplication         GenericApplication   `json:"analyticsApplication"`
	MobileAppContainers          []GenericApplication `json:"mobileAppContainers"`
	IotApplications              []GenericApplication `json:"iotApplications"`
	CloudMonitoringApplication   GenericApplication   `json:"cloudMonitoringApplication"`
	APIMonitoringApplications    []GenericApplication `json:"apiMonitoringApplications"`
	CoreWebVitalsApplication     GenericApplication   `json:"coreWebVitalsApplication"`
}

DANGER ZONE following types are used for UNPUBLISHED api call and it may change in the future

type AnalyticsSearch

type AnalyticsSearch struct {
	ID                 int               `json:"id"`
	Version            int               `json:"version"`
	Name               string            `json:"name"`
	NameUnique         bool              `json:"nameUnique"`
	BuiltIn            bool              `json:"builtIn"`
	CreatedBy          string            `json:"createdBy"`
	CreatedOn          int64             `json:"createdOn"`
	ModifiedBy         string            `json:"modifiedBy"`
	ModifiedOn         int64             `json:"modifiedOn"`
	SearchName         string            `json:"searchName"`
	SearchDescription  interface{}       `json:"searchDescription"`
	SearchType         string            `json:"searchType"`
	SearchMode         string            `json:"searchMode"`
	ViewMode           string            `json:"viewMode"`
	Visualization      string            `json:"visualization"`
	SelectedFields     []string          `json:"selectedFields"`
	TimeRangeSpecifier interface{}       `json:"timeRangeSpecifier"`
	AdqlQueries        []string          `json:"adqlQueries"`
	Widgets            []AnalyticsWidget `json:"widgets"`
	GridState          interface{}       `json:"gridState"`
}

AnalyticsSearch represents a Saved Analytics Search, as of 4.4.3 this can only be accessed through the RestUI

type AnalyticsService

type AnalyticsService service

AnalyticsService intermediates Analytics Queries

func (*AnalyticsService) GetAnalyticsSearches

func (s *AnalyticsService) GetAnalyticsSearches() ([]*AnalyticsSearch, error)

GetAnalyticsSearches obtains all Analytics Serches saved

type AnalyticsWidget

type AnalyticsWidget struct {
	ID         int         `json:"id"`
	Version    int         `json:"version"`
	Name       string      `json:"name"`
	NameUnique bool        `json:"nameUnique"`
	ViewState  interface{} `json:"viewState"`
	Properties struct {
		MinSizeY        string `json:"minSizeY"`
		Col             string `json:"col"`
		SizeX           string `json:"sizeX"`
		BackgroundColor string `json:"backgroundColor"`
		MinSizeX        string `json:"minSizeX"`
		Color           string `json:"color"`
		LegendsLayout   string `json:"legendsLayout"`
		FontSize        string `json:"fontSize"`
		Row             string `json:"row"`
		Type            string `json:"type"`
		Title           string `json:"title"`
		SizeY           string `json:"sizeY"`
	} `json:"properties"`
	TimeRangeSpecifier struct {
		Type              string      `json:"type"`
		DurationInMinutes int         `json:"durationInMinutes"`
		StartTime         interface{} `json:"startTime"`
		EndTime           interface{} `json:"endTime"`
		TimeRange         struct {
			StartTime int64 `json:"startTime"`
			EndTime   int64 `json:"endTime"`
		} `json:"timeRange"`
		TimeRangeAdjusted bool `json:"timeRangeAdjusted"`
	} `json:"timeRangeSpecifier"`
	AdqlQueries []string `json:"adqlQueries"`
}

AnalyticsWidget is a widget inside an Analytics Search

type Application

type Application struct {
	ID                    int           `json:"id"`
	Version               int           `json:"version"`
	Name                  string        `json:"name"`
	NameUnique            bool          `json:"nameUnique"`
	BuiltIn               bool          `json:"builtIn"`
	CreatedBy             string        `json:"createdBy"`
	CreatedOn             int64         `json:"createdOn"`
	ModifiedBy            string        `json:"modifiedBy"`
	ModifiedOn            int64         `json:"modifiedOn"`
	Description           string        `json:"description"`
	Template              bool          `json:"template"`
	Active                bool          `json:"active"`
	Running               bool          `json:"running"`
	RunningSince          interface{}   `json:"runningSince"`
	DeployWorkflowID      int           `json:"deployWorkflowId"`
	UndeployWorkflowID    int           `json:"undeployWorkflowId"`
	Visualization         interface{}   `json:"visualization"`
	EnvironmentProperties []interface{} `json:"environmentProperties"`
	EumAppName            string        `json:"eumAppName"`
	ApplicationTypeInfo   struct {
		ApplicationTypes   []string `json:"applicationTypes"`
		EumEnabled         bool     `json:"eumEnabled"`
		EumWebEnabled      bool     `json:"eumWebEnabled"`
		EumMobileEnabled   bool     `json:"eumMobileEnabled"`
		EumIotEnabled      bool     `json:"eumIotEnabled"`
		HasEumWebEntities  bool     `json:"hasEumWebEntities"`
		HasMobileApps      bool     `json:"hasMobileApps"`
		HasTiers           bool     `json:"hasTiers"`
		NumberOfMobileApps int      `json:"numberOfMobileApps"`
	} `json:"applicationTypeInfo"`
}

Application represents a single Business Application within AppDynamics Note that the REST version only has ID, Name and Description

func (Application) String

func (a Application) String() string

type ApplicationService

type ApplicationService service

ApplicationService intermediates Application requests

func (*ApplicationService) ExportApplicationConfig

func (s *ApplicationService) ExportApplicationConfig(appID int) ([]byte, error)

ExportApplicationConfig will export an Application to the io.Writer specified

func (*ApplicationService) GetAllInternalApplications added in v1.1.0

func (s *ApplicationService) GetAllInternalApplications() (*AllInternalApplications, error)

DANGER ZONE this is an UNPUBLISHED API call - it may change in the future

func (*ApplicationService) GetApplication

func (s *ApplicationService) GetApplication(appNameOrID string) (*Application, error)

GetApplication gets an Application by Name or ID

func (*ApplicationService) GetApplications

func (s *ApplicationService) GetApplications() ([]*Application, error)

GetApplications obtains all applications from a controller

func (*ApplicationService) GetApplicationsAllTypes

func (s *ApplicationService) GetApplicationsAllTypes() ([]*Application, error)

GetApplicationsAllTypes is a RESTUI call. It might break in future versions of AppDynamics

type ApplicationTypeInfo added in v1.1.0

type ApplicationTypeInfo struct {
	ApplicationTypes        []string `json:"applicationTypes"`
	EumEnabled              bool     `json:"eumEnabled"`
	EumWebEnabled           bool     `json:"eumWebEnabled"`
	EumMobileEnabled        bool     `json:"eumMobileEnabled"`
	EumIotEnabled           bool     `json:"eumIotEnabled"`
	EumAPIMonitoringEnabled bool     `json:"eumApiMonitoringEnabled"`
	HasEumWebEntities       bool     `json:"hasEumWebEntities"`
	HasMobileApps           bool     `json:"hasMobileApps"`
	HasTiers                bool     `json:"hasTiers"`
	NumberOfMobileApps      int      `json:"numberOfMobileApps"`
}

type AssociatedEntityTemplate

type AssociatedEntityTemplate struct {
	ApplicationName   *string `json:"applicationName"`
	EntityType        *string `json:"entityType"`
	EntityName        *string `json:"entityName"`
	ScopingEntityType *string `json:"scopingEntityType"`
	ScopingEntityName *string `json:"scopingEntityName"`
	Subtype           *string `json:"subtype"`
}

AssociatedEntityTemplate - associated entity type in exported dashboard Added 2023 Cisco Systems, Inc.

type Backend

type Backend struct {
	ID                         int    `json:"id"`
	TierID                     int    `json:"tierId"`
	Name                       string `json:"name"`
	ApplicationComponentNodeID int    `json:"applicationComponentNodeId"`
	Properties                 []struct {
		Name  string `json:"name"`
		ID    int    `json:"id"`
		Value string `json:"value"`
	} `json:"properties"`
}

Backend represents a single Backend within AppDynamics application Note that the REST version only has ID, Name and Description

type BackendService

type BackendService service

BackendService intermediates Application requests

func (*BackendService) GetBackends

func (s *BackendService) GetBackends(app string) ([]*Backend, error)

GetBackends obtains all backends for an application from a controller

func (*BackendService) ResolveBackendToTier

func (s *BackendService) ResolveBackendToTier(backendID int, tierID int) error

ResolveBackendToTier - resolves Backend to an application Tier It might break in future versions of AppDynamics

func (*BackendService) UnresolveBackendToTier

func (s *BackendService) UnresolveBackendToTier(backendID int) error

UnresolveBackendToTier - resolves Backend to an application Tier It might break in future versions of AppDynamics !!! this is unfinished !!! - explore how to send body request with POST in a form [<<backendID>>]

type BusinessTransaction

type BusinessTransaction struct {
	InternalName   string `json:"internalName"`
	TierID         int    `json:"tierId"`
	EntryPointType string `json:"entryPointType"`
	Background     bool   `json:"background"`
	TierName       string `json:"tierName"`
	Name           string `json:"name"`
	ID             int    `json:"id"`
}

BusinessTransaction represents one BT within one Application

type BusinessTransactionService

type BusinessTransactionService service

BusinessTransactionService intermediates BusinessTransaction requests

func (*BusinessTransactionService) GetBusinessTransactions

func (s *BusinessTransactionService) GetBusinessTransactions(appID int) ([]*BusinessTransaction, error)

GetBusinessTransactions obtains all BTs from an application

type CfgBusinessTransaction

type CfgBusinessTransaction struct {
	Id int `xml:"id"`
}

type CfgBusinessTransactions

type CfgBusinessTransactions struct {
	XMLName             xml.Name                 `xml:"business-transactions"`
	BusinessTransaction []CfgBusinessTransaction `xml:"business-transaction"`
}

type Client

type Client struct {
	Controller *Controller

	Account             *AccountService
	Analytics           *AnalyticsService
	Application         *ApplicationService
	BusinessTransaction *BusinessTransactionService
	Dashboard           *DashboardService
	MetricData          *MetricDataService
	Snapshot            *SnapshotService
	Tier                *TierService
	Node                *NodeService
	TimeRange           *TimeRangeService
	Configuration       *Configuration
	Backend             *BackendService
	HealthRule          *HealthRuleService
	Event               *EventService
	TxDetectionRule     *TransactionRulesService
	// contains filtered or unexported fields
}

Client manages communication with AppDynamics

func NewClient

func NewClient(protocol string, controllerHost string, port int, username string, password string, account string) (*Client, error)

NewClient Returns a Client, this is needed for any communication For backward compatibility Added 2023 Cisco Systems, Inc.

func NewClientProxy

func NewClientProxy(protocol string, controllerHost string, port int, username string, password string, account string,
	useProxy bool, proxyHost string, proxyPort int, proxySecure bool) (*Client, error)

NewClientProxy Returns a Client, this is needed for any communication Modified by 2023 Cisco Systems, Inc.

func (*Client) DoRawRequest

func (c *Client) DoRawRequest(method string, url string, body interface{}) ([]byte, error)

DoRawRequest makes an HTTP request and returns the response

func (*Client) Rest

func (c *Client) Rest(method string, url string, model interface{}, body interface{}) error

Rest makes a call using the standard Rest API

func (*Client) RestInternal

func (c *Client) RestInternal(method string, url string, model interface{}, body interface{}) error

RestInternal makes a call using the internal API that requires authorization

func (*Client) RestInternalHdr

func (c *Client) RestInternalHdr(method string, url string, model interface{}, body *bytes.Buffer, headers map[string]string) error

RestInternalHdr makes a call using the internal API that requires authorization with additional headers Added 2023 Cisco Systems, Inc.

func (*Client) SetLoggingBackend added in v1.1.1

func (c *Client) SetLoggingBackend(bck []logging.Backend)

SetLoggingBackend Resets the logger backend(s). Can be Added by 2024 Cisco Systems, Inc.

type Condition

type Condition struct {
	Name                   *string `json:"name"`
	ShortName              *string `json:"shortName"`
	EvaluateToTrueOnNoData *bool   `json:"evaluateToTrueOnNoData"`
	EvalDetail             struct {
		EvalDetailType          *string `json:"evalDetailType"`
		MetricAggregateFunction *string `json:"metricAggregateFunction"`
		MetricPath              *string `json:"metricPath"`
		MetricEvalDetail        struct {
			CompareCondition     *string `json:"compareCondition"`
			CompareValue         *int    `json:"compareValue"`
			MetricEvalDetailType *string `json:"metricEvalDetailType"`
			BaselineCondition    *string `json:"baselineCondition"`
			BaselineName         *string `json:"baselineName"`
			BaselineUnit         *string `json:"baselineUnit"`
		} `json:"metricEvalDetail"`
	} `json:"evalDetail"`
	TriggerEnabled  *bool `json:"triggerEnabled"`
	MinimumTriggers *int  `json:"minimumTriggers"`
}

type Configuration

type Configuration service

This is going to be the service for configuration

func (*Configuration) MarkNodeHistorical

func (c *Configuration) MarkNodeHistorical(nodes string) (int, error)

-- Have not been tested yet

func (c *Configuration) PostCreateUser(u User) (int, error) {
	url := fmt.Sprintf("controller/rest/user")
	user, err := u.GetParams(true)
	if err != nil {
		return 500, err
	}
	url += user

	err = c.client.Rest("POST", url, nil, nil)
	if err != nil {
		return 500, err
	}

	return 200, nil
}

func (c *Configuration) PostUpdateUser(u User) (int, error) {
	url := fmt.Sprintf("controller/rest/user")
	user, err := u.GetParams(false)
	if err != nil {
		return 500, err
	}
	url += user

	err = c.client.Rest("POST", url, nil, nil)
	if err != nil {
		return 500, err
	}

	return 200, nil
}

func (c *Configuration) ExIncludeBTs(appId string, excl bool, b CfgBusinessTransactions) (int, error) {
	url := fmt.Sprintf("controller/rest/applications/%s/business-transactions?exclude=%t", appId, excl)

	err := c.client.Rest("POST", url, nil, b) // we need to unmarshal the object
	if err != nil {
		return 500, err
	}

	return 200, nil
}

type Controller

type Controller struct {
	Host     string `json:"host"`
	Port     int    `json:"port"`
	User     string `json:"user"`
	Password string `json:"password"`
	Account  string `json:"account"`
	Protocol string `json:"protocol"`
	BaseURL  *url.URL
}

Controller represents the AppDynamics Controller

type Dashboard

type Dashboard struct {
	ID                        int           `json:"id"`
	Version                   int           `json:"version"`
	Name                      string        `json:"name"`
	NameUnique                bool          `json:"nameUnique"`
	BuiltIn                   bool          `json:"builtIn"`
	CreatedBy                 string        `json:"createdBy"`
	CreatedOn                 int64         `json:"createdOn"`
	ModifiedBy                string        `json:"modifiedBy"`
	ModifiedOn                int64         `json:"modifiedOn"`
	Description               interface{}   `json:"description"`
	MissingAssociatedEntities interface{}   `json:"missingAssociatedEntities"`
	Widgets                   []Widget      `json:"widgets"`
	SecurityToken             interface{}   `json:"securityToken"`
	SharingRevoked            bool          `json:"sharingRevoked"`
	WarRoom                   bool          `json:"warRoom"`
	Template                  bool          `json:"template"`
	TemplateEntityType        string        `json:"templateEntityType"`
	MinutesBeforeAnchorTime   int           `json:"minutesBeforeAnchorTime"`
	StartTime                 int           `json:"startTime"`
	EndTime                   int           `json:"endTime"`
	RefreshInterval           int           `json:"refreshInterval"`
	BackgroundColor           int           `json:"backgroundColor"`
	Color                     int           `json:"color"`
	Height                    int           `json:"height"`
	Width                     int           `json:"width"`
	Disabled                  bool          `json:"disabled"`
	CanvasType                string        `json:"canvasType"`
	LayoutType                string        `json:"layoutType"`
	Properties                []interface{} `json:"properties"`
}

Dashboard represents a single Dashboard within AppDynamics

type DashboardExport

type DashboardExport struct {
	Name                      *string                     `json:"name"`
	Description               interface{}                 `json:"description"`
	DashboardFormatVersion    *string                     `json:"dashboardFormatVersion"`
	SchemaVersion             *string                     `json:"schemaVersion"`
	WidgetTemplates           []WidgetExported            `json:"widgetTemplates"`
	WarRoom                   *bool                       `json:"warRoom"`
	Template                  *bool                       `json:"template"`
	TemplateEntityType        *string                     `json:"templateEntityType"`
	AssociatedEntityTemplates []*AssociatedEntityTemplate `json:"associatedEntityTemplates"`
	MinutesBeforeAnchorTime   *int                        `json:"minutesBeforeAnchorTime"`
	StartTime                 *int                        `json:"startTime"`
	EndTime                   *int                        `json:"endTime"`
	RefreshInterval           *int                        `json:"refreshInterval"`
	BackgroundColor           *int                        `json:"backgroundColor"`
	Color                     *int                        `json:"color"`
	Height                    *int                        `json:"height"`
	Width                     *int                        `json:"width"`
	CanvasType                *string                     `json:"canvasType"`
	LayoutType                *string                     `json:"layoutType"`
	Properties                []interface{}               `json:"properties"`
}

DashboardExport represents a single Dashboard within AppDynamics as exported by Export function in json format Added 2023 Cisco Systems, Inc.

type DashboardService

type DashboardService service

DashboardService intermediates Dashboard requests

func (*DashboardService) DeleteDashboard

func (s *DashboardService) DeleteDashboard(tierID int) error

DeleteDashboard - delete a dashboards by Id Added 2023 Cisco Systems, Inc.

func (*DashboardService) GetDashboard

func (s *DashboardService) GetDashboard(ID int) (*Dashboard, error)

GetDashboard obtains a single dashboard from a controller

func (*DashboardService) GetDashboardExport

func (s *DashboardService) GetDashboardExport(dashboardID int) (*DashboardExport, error)

GetDashboardExport - get dashboard in export/import format Added 2023 Cisco Systems, Inc.

func (*DashboardService) GetDashboardListForTier

func (s *DashboardService) GetDashboardListForTier(tierID int) ([]*Dashboard, error)

GetDashboardListForTier - get list of dashboards for a given application tier Added 2023 Cisco Systems, Inc.

func (*DashboardService) GetDashboards

func (s *DashboardService) GetDashboards() ([]*Dashboard, error)

GetDashboards obtains all dashboards from a controller

func (*DashboardService) UploadDashboardExport

func (s *DashboardService) UploadDashboardExport(dashboard *DashboardExport) (*DashboardUploadResponse, error)

UploadDashboardExport - upload a new dashboard in export/import format Added 2023 Cisco Systems, Inc.

type DashboardUploadResponse

type DashboardUploadResponse struct {
	Success              bool          `json:"success"`
	Errors               []interface{} `json:"errors"`
	Warnings             []interface{} `json:"warnings"`
	Dashboard            Dashboard     `json:"dashboard"`
	CreatedDashboardName string        `json:"createdDashboardName"`
}

Added 2023 Cisco Systems, Inc.

type DataSeriesTemplate

type DataSeriesTemplate struct {
	SeriesType                  *string     `json:"seriesType"`
	MetricType                  *string     `json:"metricType"`
	ShowRawMetricName           *bool       `json:"showRawMetricName"`
	ColorPalette                interface{} `json:"colorPalette"`
	Name                        *string     `json:"name"`
	MetricMatchCriteriaTemplate struct {
		EntityMatchCriteria      *string `json:"entityMatchCriteria"`
		MetricExpressionTemplate struct {
			MetricExpressionType *string `json:"metricExpressionType"`
			FunctionType         *string `json:"functionType"`
			DisplayName          *string `json:"displayName"`
			InputMetricText      *bool   `json:"inputMetricText"`
			InputMetricPath      *string `json:"inputMetricPath"`
			MetricPath           *string `json:"metricPath"`
			ScopeEntity          struct {
				ApplicationName   *string `json:"applicationName"`
				EntityType        *string `json:"entityType"`
				EntityName        *string `json:"entityName"`
				ScopingEntityType *string `json:"scopingEntityType"`
				ScopingEntityName *string `json:"scopingEntityName"`
				Subtype           *string `json:"subtype"`
			} `json:"scopeEntity"`
		} `json:"metricExpressionTemplate"`
		RollupMetricData              *bool   `json:"rollupMetricData"`
		ExpressionString              *string `json:"expressionString"`
		UseActiveBaseline             *bool   `json:"useActiveBaseline"`
		SortResultsAscending          *bool   `json:"sortResultsAscending"`
		MaxResults                    *int    `json:"maxResults"`
		EvaluationScopeType           *string `json:"evaluationScopeType"`
		BaselineName                  *string `json:"baselineName"`
		ApplicationName               *string `json:"applicationName"`
		MetricDisplayNameStyle        *string `json:"metricDisplayNameStyle"`
		MetricDisplayNameCustomFormat *string `json:"metricDisplayNameCustomFormat"`
	} `json:"metricMatchCriteriaTemplate"`
	AxisPosition *string `json:"axisPosition"`
}

DataSeriesTemplate - described data series for timeseries widgets Added 2023 Cisco Systems, Inc.

type EnvironmentProperties added in v1.1.0

type EnvironmentProperties struct {
	ID      int    `json:"id"`
	Version int    `json:"version"`
	Name    string `json:"name"`
	Value   string `json:"value"`
}

type ErrorDetail

type ErrorDetail struct {
	Name  string `json:"name"`
	ID    int    `json:"id"`
	Value string `json:"value"`
}

ErrorDetail details the errors that are present on the Snapshot

type EvalCriteriaDetail

type EvalCriteriaDetail struct {
	ConditionAggregationType *string      `json:"conditionAggregationType"`
	ConditionExpression      *string      `json:"conditionExpression"`
	Conditions               []*Condition `json:"conditions"`
	EvalMatchingCriteria     struct {
		MatchType *string `json:"matchType"`
		Value     *string `json:"value"`
	} `json:"evalMatchingCriteria"`
}

type EvalCriteriasSet

type EvalCriteriasSet struct {
	CriticalCriteria *EvalCriteriaDetail `json:"criticalCriteria"`
	WarningCriteria  *EvalCriteriaDetail `json:"warningCriteria"`
}

type Event

type Event struct {
	AppIdOrName     string            `json:"appId"`
	Severity        string            `json:"severity"`
	Summary         string            `json:"summary"`
	Comment         string            `json:"comment"`
	CustomEventType string            `json:"customEventType"`
	Tier            string            `json:"tier"`
	Node            string            `json:"node"`
	Properties      map[string]string `json:"properties"`
}

type EventService

type EventService service

EventService provides event API

func (*EventService) CreateEvent

func (s *EventService) CreateEvent(event *Event) error

CreateEvent - creates event

type GenericApplication added in v1.1.0

type GenericApplication struct {
	ID                    int                     `json:"id"`
	Version               int                     `json:"version"`
	Name                  string                  `json:"name"`
	NameUnique            bool                    `json:"nameUnique"`
	BuiltIn               bool                    `json:"builtIn"`
	CreatedBy             string                  `json:"createdBy"`
	CreatedOn             int64                   `json:"createdOn"`
	ModifiedBy            string                  `json:"modifiedBy"`
	ModifiedOn            int64                   `json:"modifiedOn"`
	Description           string                  `json:"description"`
	Template              bool                    `json:"template"`
	Active                bool                    `json:"active"`
	Running               bool                    `json:"running"`
	RunningSince          any                     `json:"runningSince"`
	DeployWorkflowID      int                     `json:"deployWorkflowId"`
	UndeployWorkflowID    int                     `json:"undeployWorkflowId"`
	Visualization         any                     `json:"visualization"`
	EnvironmentProperties []EnvironmentProperties `json:"environmentProperties"`
	EumAppName            string                  `json:"eumAppName"`
	AccountGUID           string                  `json:"accountGuid"`
	ApplicationTypeInfo   ApplicationTypeInfo     `json:"applicationTypeInfo"`
}

type HealthRule

type HealthRule struct {
	ID                 int    `json:"id"`
	Name               string `json:"name"`
	Enabled            bool   `json:"enabled"`
	AffectedEntityType string `json:"affectedEntityType"`
}

HealthRule describes basic info about Helth rules attached to an application as returned by query for all health rules

type HealthRuleAffectedEntity added in v1.1.0

type HealthRuleAffectedEntity struct {
	ID             int    `json:"id"`
	Version        int    `json:"version"`
	EntityType     string `json:"entityType"`
	EntityID       int    `json:"entityId"`
	PrettyToString any    `json:"prettyToString"`
}

type HealthRuleAggregationScope added in v1.1.0

type HealthRuleAggregationScope struct {
	ID             int    `json:"id"`
	Version        int    `json:"version"`
	EntityType     string `json:"entityType"`
	EntityID       int    `json:"entityId"`
	PrettyToString any    `json:"prettyToString"`
}

type HealthRuleAggregationScopesStates added in v1.1.0

type HealthRuleAggregationScopesStates struct {
	AggregationScope    HealthRuleAggregationScope `json:"aggregationScope"`
	JmxAggregationScope any                        `json:"jmxAggregationScope"`
	State               HealthRuleState            `json:"state"`
}

type HealthRuleDetail

type HealthRuleDetail struct {
	ID                      *int              `json:"id"`
	Name                    *string           `json:"name"`
	Enabled                 *bool             `json:"enabled"`
	UseDataFromLastNMinutes *int              `json:"useDataFromLastNMinutes"`
	WaitTimeAfterViolation  *int              `json:"waitTimeAfterViolation"`
	ScheduleName            *string           `json:"scheduleName"`
	Affects                 *AffectsDetail    `json:"affects"`
	EvalCriterias           *EvalCriteriasSet `json:"evalCriterias"`
}

HealthRuleDetail describes detail information about specific health rule

func (HealthRuleDetail) String

func (t HealthRuleDetail) String() string

type HealthRuleEvaluationResponse added in v1.1.0

type HealthRuleEvaluationResponse []struct {
	AffectedEntity          HealthRuleAffectedEntity            `json:"affectedEntity"`
	Health                  string                              `json:"health"`
	EvaluationStatus        string                              `json:"evaluationStatus"`
	AggregationScopesStates []HealthRuleAggregationScopesStates `json:"aggregationScopesStates"`
	Name                    string                              `json:"name"`
	TierName                any                                 `json:"tierName"`
}

DANGER ZONE this is an UNPUBLISHED API call - it may change in the future

type HealthRuleService

type HealthRuleService service

HealthRuleService intermediates Health Rules requests

func (*HealthRuleService) CreateHealthRule

func (s *HealthRuleService) CreateHealthRule(appID int, hr *HealthRuleDetail) error

CreateHealthRule - create health rule for an application

func (*HealthRuleService) CreateHealthRuleStr

func (s *HealthRuleService) CreateHealthRuleStr(appID int, hr *bytes.Buffer) error

CreateHealthRule - create health rule for an application

func (*HealthRuleService) DeleteHealthRule

func (s *HealthRuleService) DeleteHealthRule(appID int, ruleID int) error

DeleteHealthRule - create health rule for an application TODO - test

func (*HealthRuleService) GetHealthRuleDetails

func (s *HealthRuleService) GetHealthRuleDetails(appID int, ruleID int) (*HealthRuleDetail, error)

GetHealthRuleDetails obtains all backends for an application from a controller

func (*HealthRuleService) GetHealthRuleEvaluationState added in v1.1.0

func (s *HealthRuleService) GetHealthRuleEvaluationState(appID int, ruleID int) (*HealthRuleEvaluationResponse, error)

DANGER ZONE this is an UNPUBLISHED API call - it may change in the future GET /controller/restui/healthRules/getHealthRuleCurrentEvaluationStatus/app/3503/healthRuleID/22196

func (*HealthRuleService) GetHealthRules

func (s *HealthRuleService) GetHealthRules(appID int) ([]*HealthRule, error)

GetHealthRules obtains all backends for an application from a controller

func (*HealthRuleService) UpdateHealthRule

func (s *HealthRuleService) UpdateHealthRule(appID int, ruleID int, hr *HealthRuleDetail) error

UpdateHealthRule - create health rule for an application TODO - test

type HealthRuleState added in v1.1.0

type HealthRuleState struct {
	Result              string `json:"result"`
	Severity            string `json:"severity"`
	TriggeredConditions []any  `json:"triggeredConditions"`
}

type LicenseModule

type LicenseModule struct {
	Name  string `json:"name"`
	Links []Link `json:"links"`
}

LicenseModule has an agent type and links to the properties and usage

type Link struct {
	Href string `json:"href"`
	Name string `json:"name"`
}

Link has a name and a location

type MdsData

type MdsData struct {
	XMLName              xml.Name             `xml:"mds-data"`
	Text                 string               `xml:",chardata"`
	ControllerVersion    string               `xml:"controller-version,attr"`
	ScopeList            ScopeList            `xml:"scope-list"`
	RuleList             RuleList             `xml:"rule-list"`
	ScopeRuleMappingList ScopeRuleMappingList `xml:"scope-rule-mapping-list"`
}

type Metric

type Metric struct {
	Name string `json:"name"`
	Type string `json:"type"`
}

Metric represents a Metric object that might be a folder or child

type MetricData

type MetricData struct {
	MetricName   string        `json:"metricName"`
	MetricID     int           `json:"metricId"`
	MetricPath   string        `json:"metricPath"`
	Frequency    string        `json:"frequency"`
	MetricValues []MetricValue `json:"metricValues"`
}

MetricData contains metric values for a single metric

type MetricDataService

type MetricDataService service

MetricDataService intermediates MetricData requests

func (*MetricDataService) GetMetricData

func (s *MetricDataService) GetMetricData(appIDOrName string, metricPath string, rollup bool, timeRangeType string, durationInMins int, startTime time.Time, endTime time.Time) ([]*MetricData, error)

GetMetricData obtains metrics matching a pattern

func (*MetricDataService) GetMetricHierarchy

func (s *MetricDataService) GetMetricHierarchy(appIDOrName string, metricPath string) ([]*Metric, error)

GetMetricHierarchy obtains the Metric Browser hierarchy Added 2023 Cisco Systems, Inc.

type MetricValue

type MetricValue struct {
	Occurrences       int   `json:"occurrences"`
	Current           int   `json:"current"`
	Min               int   `json:"min"`
	Max               int   `json:"max"`
	StartTimeInMillis int64 `json:"startTimeInMillis"`
	UseRange          bool  `json:"useRange"`
	Count             int   `json:"count"`
	Sum               int   `json:"sum"`
	Value             int   `json:"value"`
	StandardDeviation int   `json:"standardDeviation"`
}

MetricValue is always part of an array of metrics, inside a MetricData struct

type Node

type Node struct {
	AppAgentVersion     string      `json:"appAgentVersion"`
	MachineAgentVersion string      `json:"machineAgentVersion"`
	AgentType           string      `json:"agentType"`
	Type                string      `json:"type"`
	MachineName         string      `json:"machineName"`
	AppAgentPresent     bool        `json:"appAgentPresent"`
	NodeUniqueLocalID   string      `json:"nodeUniqueLocalId"`
	MachineID           int         `json:"machineId"`
	MachineOSType       string      `json:"machineOSType"`
	TierID              int         `json:"tierId"`
	TierName            string      `json:"tierName"`
	MachineAgentPresent bool        `json:"machineAgentPresent"`
	Name                string      `json:"name"`
	IPAddresses         interface{} `json:"ipAddresses"`
	ID                  int         `json:"id"`
}

Node represents one node within one Application

type NodeService

type NodeService service

NodeService intermediates Node requests

func (*NodeService) GetNode

func (s *NodeService) GetNode(appIDOrName string, nodeNameOrID string) (*Node, error)

GetNode obtains a single Node from an Application

func (*NodeService) GetNodes

func (s *NodeService) GetNodes(appIDOrName string) ([]*Node, error)

GetNodes obtains all Nodes from an Application

type Property

type Property struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

Property is a simple license property

type Rule

type Rule struct {
	Text            string         `xml:",chardata"`
	AgentType       string         `xml:"agent-type,attr"`
	Enabled         bool           `xml:"enabled,attr"`
	Priority        string         `xml:"priority,attr"`
	RuleDescription string         `xml:"rule-description,attr"`
	RuleName        string         `xml:"rule-name,attr"`
	RuleType        string         `xml:"rule-type,attr"`
	Version         string         `xml:"version,attr"`
	TxMatchRule     TxMatchRuleStr `xml:"tx-match-rule"`
}

type RuleList

type RuleList struct {
	Text string `xml:",chardata"`
	Rule []Rule `xml:"rule"`
}

type RuleMatchHttpmatch

type RuleMatchHttpmatch struct {
	Httpmethod string        `json:"httpmethod"`
	URI        RuleMatchURI  `json:"uri"`
	Parameters []interface{} `json:"parameters"`
	Headers    []interface{} `json:"headers"`
	Cookies    []interface{} `json:"cookies"`
}

type RuleMatchMatchconditions

type RuleMatchMatchconditions struct {
	Type      string             `json:"type"`
	Httpmatch RuleMatchHttpmatch `json:"httpmatch"`
}

type RuleMatchTxMatchRule

type RuleMatchTxMatchRule struct {
	Type                string                       `json:"type"`
	Txautodiscoveryrule RuleMatchTxautodiscoveryrule `json:"txautodiscoveryrule"`
	Txcustomrule        RuleMatchTxcustomrule        `json:"txcustomrule"`
	Agenttype           string                       `json:"agenttype"`
}

type RuleMatchTxautodiscoveryrule

type RuleMatchTxautodiscoveryrule struct {
	Autodiscoveryconfigs []interface{} `json:"autodiscoveryconfigs"`
}

type RuleMatchTxcustomrule

type RuleMatchTxcustomrule struct {
	Type             string                     `json:"type"`
	Txentrypointtype string                     `json:"txentrypointtype"`
	Matchconditions  []RuleMatchMatchconditions `json:"matchconditions"`
	Actions          []interface{}              `json:"actions"`
	Properties       []interface{}              `json:"properties"`
}

type RuleMatchURI

type RuleMatchURI struct {
	Type         string   `json:"type"`
	Matchstrings []string `json:"matchstrings"`
}

type Scope

type Scope struct {
	Text             string `xml:",chardata"`
	ScopeDescription string `xml:"scope-description,attr"`
	ScopeName        string `xml:"scope-name,attr"`
	ScopeType        string `xml:"scope-type,attr"`
	ScopeVersion     string `xml:"scope-version,attr"`
}

type ScopeIncludedTiers

type ScopeIncludedTiers struct {
	ID        string `json:"id"`
	Type      string `json:"type"`
	AccountID string `json:"accountId"`
	Name      string `json:"name"`
}

type ScopeList

type ScopeList struct {
	Text  string  `xml:",chardata"`
	Scope []Scope `xml:"scope"`
}

type ScopeRule

type ScopeRule struct {
	Text            string `xml:",chardata"`
	RuleDescription string `xml:"rule-description,attr"`
	RuleName        string `xml:"rule-name,attr"`
}

type ScopeRuleMapping

type ScopeRuleMapping struct {
	Text      string      `xml:",chardata"`
	ScopeName string      `xml:"scope-name,attr"`
	ScopeRule []ScopeRule `xml:"rule"`
}

type ScopeRuleMappingList

type ScopeRuleMappingList struct {
	Text             string             `xml:",chardata"`
	ScopeRuleMapping []ScopeRuleMapping `xml:"scope-rule-mapping"`
}

type ScopeSummary

type ScopeSummary struct {
	ID          string `json:"id"`
	Type        string `json:"type"`
	AccountID   string `json:"accountId"`
	Name        string `json:"name"`
	Description string `json:"description"`
	CreatedOn   int64  `json:"createdOn"`
	UpdatedOn   int64  `json:"updatedOn"`
}

type Scopes

type Scopes struct {
	Type          string               `json:"type"`
	Summary       ScopeSummary         `json:"summary"`
	Version       int                  `json:"version"`
	IncludedTiers []ScopeIncludedTiers `json:"includedTiers,omitempty"`
}

type ScopesResponse

type ScopesResponse struct {
	Scopes []Scopes `json:"scopes"`
}

type Snapshot

type Snapshot struct {
	FirstInChain                   bool          `json:"firstInChain"`
	TransactionProperties          []interface{} `json:"transactionProperties"`
	ErrorIDs                       []interface{} `json:"errorIDs"`
	CriticalThreshold              string        `json:"criticalThreshold"`
	HTTPHeaders                    []interface{} `json:"httpHeaders"`
	ServerStartTime                int64         `json:"serverStartTime"`
	SessionKeys                    []interface{} `json:"sessionKeys"`
	EndToEndUserExperience         string        `json:"endToEndUserExperience"`
	TimeTakenInMilliSecs           int           `json:"timeTakenInMilliSecs"`
	CallChain                      string        `json:"callChain"`
	LocalStartTime                 int64         `json:"localStartTime"`
	ID                             int           `json:"id"`
	LogMessages                    []interface{} `json:"logMessages"`
	RequestGUID                    string        `json:"requestGUID"`
	HTTPSessionID                  string        `json:"httpSessionID"`
	HasDeepDiveData                bool          `json:"hasDeepDiveData"`
	WarningThreshold               string        `json:"warningThreshold"`
	DeepDivePolicy                 string        `json:"deepDivePolicy"`
	SnapshotExitCalls              []interface{} `json:"snapshotExitCalls"`
	ExitCallsDataTruncated         bool          `json:"exitCallsDataTruncated"`
	ResponseHeaders                []interface{} `json:"responseHeaders"`
	ApplicationComponentNodeID     int           `json:"applicationComponentNodeId"`
	ApplicationID                  int           `json:"applicationId"`
	ExitCallsDataTruncationMessage string        `json:"exitCallsDataTruncationMessage"`
	HTTPParameters                 []interface{} `json:"httpParameters"`
	ErrorDetails                   []ErrorDetail `json:"errorDetails"`
	ApplicationComponentID         int           `json:"applicationComponentId"`
	DelayedDeepDiveOffSet          int           `json:"delayedDeepDiveOffSet"`
	UserExperience                 string        `json:"userExperience"`
	URL                            string        `json:"URL"`
	BusinessTransactionID          int           `json:"businessTransactionId"`
	Cookies                        []interface{} `json:"cookies"`
	Archived                       bool          `json:"archived"`
	DiagnosticSessionGUID          string        `json:"diagnosticSessionGUID"`
	StallDump                      string        `json:"stallDump"`
	BusinessData                   []interface{} `json:"businessData"`
	SnapshotExitSequence           string        `json:"snapshotExitSequence"`
	TransactionEvents              []interface{} `json:"transactionEvents"`
	ErrorOccured                   bool          `json:"errorOccured"`
	UnresolvedCallInCallChain      bool          `json:"unresolvedCallInCallChain"`
	Summary                        string        `json:"summary"`
	DelayedDeepDive                bool          `json:"delayedDeepDive"`
	EndToEndLatency                int           `json:"endToEndLatency"`
	ErrorSummary                   string        `json:"errorSummary"`
	LocalID                        int           `json:"localID"`
	ThreadName                     string        `json:"threadName"`
	ThreadID                       string        `json:"threadID"`
	Async                          bool          `json:"async"`
	DotnetProperty                 []interface{} `json:"dotnetProperty"`
	CPUTimeTakenInMilliSecs        int           `json:"cpuTimeTakenInMilliSecs"`
	StackTraces                    []interface{} `json:"stackTraces"`
}

Snapshot represents one Snapshot within one Application

type SnapshotFilters

type SnapshotFilters struct {
	Guids                       []string // Array of comma-separated guids for the transaction snapshots. If not specified, retrieves all snapshots in the specified time range
	Archived                    bool     // True to retrieve archived snapshots. Default is false.
	DeepDivePolicy              []string // Array of comma-separated snapshot policy filters to apply.
	ApplicationComponentIds     []int    // Array of comma-separated tier IDs to filters. Default is all the tiers in the application
	ApplicationComponentNodeIds []int    // Array of comma-separated node ID filters. Default is all the nodes in the application
	BusinessTransactionIds      []int    // Array of comma-separated business transaction ID filters. Default is all the business transactions in the application.
	UserExperience              []string // Array of comma-separated user experiences filters
	FirstInChain                bool     // If true, retrieve only the first request from the chain. Default is false.
	NeedProps                   bool     // If true, the values of the following snapshot properties are included in the output. These values correspond to the values of the data-collector-type parameter. If false, the default, these values are empty in the output.
	NeedExitCalls               bool     // If true, exit calls are included in the result. Default is false.
	ExecutionTimeInMilis        int      // If set, retrieves only data for requests with execution times greater than this value.
	SessionID                   string   // If set, retrieves data only for this session id.
	UserPrincipalID             string   // If set, retrieves data only for this user login.
	ErrorIDs                    []int    // Array of comma-separated error codes to filter by. Default is to retrieve all error codes.
	StartingRequestID           string   // If set, retrieves data only for this range of request IDs.
	EndingRequestID             string   // If set, retrieves data only for this range of request IDs.
	ErrorOccurred               bool     // If true, retrieves only error requests. Default is false.
	DiagnosticSnapshot          bool     // If true, retrieves only diagnostic snapshots. Default is false.
	BadRequest                  bool     // If true, retrieves only slow and error requests. Default is false.
	DiagnosticSessionGUID       []string // Array of comma-separated diagnostic session guids to filters.
	DataCollectorName           string   // Used with data-collector-value to filter snapshot collection based on the value of a data collector.
	DataCollectorValue          string   // Used with data-collector-name to filter snapshot collection based on the value of a data collector.
	DataCollectorType           string   // Used with data-collector-name and data-collector-value to filter snapshot collection based on the value of a data collector. Some of the values contain spaces. All are case-sensitive and where indicated the spaces are required.
	MaximumResults              int      // A number, if specified, this number of maximum results will be returned. If not specified, default 600 results can be returned at most.
}

SnapshotFilters can be used to obtain a list of snapshots

type SnapshotService

type SnapshotService service

SnapshotService intermediates Snapshot requests

func (*SnapshotService) GetSnapshots

func (s *SnapshotService) GetSnapshots(appID int, timeRangeType string, durationInMins int, startTime time.Time, endTime time.Time, filters *SnapshotFilters) ([]*Snapshot, error)

GetSnapshots can be called by passing an AppID and a SnapshotFilters struct

type Tier

type Tier struct {
	AgentType     string `json:"agentType"`
	Name          string `json:"name"`
	Description   string `json:"description"`
	ID            int    `json:"id"`
	NumberOfNodes int    `json:"numberOfNodes"`
	Type          string `json:"type"`
}

Tier represents one tier within one Application

func (Tier) String

func (t Tier) String() string

type TierService

type TierService service

TierService intermediates Tier requests

func (*TierService) GetTiers

func (s *TierService) GetTiers(appID int) ([]*Tier, error)

GetTiers obtains all Tiers from an Application

type TimeRange

type TimeRange struct {
	ID          int    `json:"id"`
	Version     int    `json:"version"`
	Name        string `json:"name"`
	NameUnique  bool   `json:"nameUnique"`
	BuiltIn     bool   `json:"builtIn"`
	CreatedBy   string `json:"createdBy"`
	CreatedOn   int64  `json:"createdOn"`
	ModifiedBy  string `json:"modifiedBy"`
	ModifiedOn  int64  `json:"modifiedOn"`
	Description string `json:"description"`
	TimeRange   struct {
		Type              string `json:"type"`
		DurationInMinutes int    `json:"durationInMinutes"`
		StartTime         int64  `json:"startTime"`
		EndTime           int64  `json:"endTime"`
		TimeRange         struct {
			StartTime int64 `json:"startTime"`
			EndTime   int64 `json:"endTime"`
		} `json:"timeRange"`
		TimeRangeAdjusted bool `json:"timeRangeAdjusted"`
	} `json:"timeRange"`
	Shared     bool `json:"shared"`
	Modifiable bool `json:"modifiable"`
}

TimeRange represents a TimeRange on the controller Modified 2023 Cisco Systems, Inc.

type TimeRangeService

type TimeRangeService service

TimeRangeService intermediates TimeRange operations

func (*TimeRangeService) GetTimeRangeByName

func (s *TimeRangeService) GetTimeRangeByName(name string) (*TimeRange, error)

GetTimeRangeByName is a helper function that gets all time ranges But only returns the one that matches the name

func (*TimeRangeService) GetTimeRanges

func (s *TimeRangeService) GetTimeRanges() ([]*TimeRange, error)

GetTimeRanges will return an array with all time ranges on the controller

func (*TimeRangeService) UpdateTimeRange

func (s *TimeRangeService) UpdateTimeRange(tr TimeRange) (*TimeRange, error)

UpdateTimeRange will update an existing Time Range

type TransactionRulesService

type TransactionRulesService service

TransactionRulesService provides transaction detection rules services

func (*TransactionRulesService) DeleteTransactionDetectionRule

func (s *TransactionRulesService) DeleteTransactionDetectionRule(ruleId string) error

DeleteTransactionDetectionRule - delete transaction detection rule by id

func (*TransactionRulesService) GetApplicationsScopes

func (s *TransactionRulesService) GetApplicationsScopes(appId int) (*ScopesResponse, error)

GetTransactionDetectionRules - get list of transaction detection rules

func (*TransactionRulesService) GetTransactionDetectionRules

func (s *TransactionRulesService) GetTransactionDetectionRules(appId string) (*TxRulesResponse, error)

GetTransactionDetectionRules - get list of transaction detection rules

func (*TransactionRulesService) UploadTransactionRules

func (s *TransactionRulesService) UploadTransactionRules(appNameOrId string, rules *MdsData) error

UploadTransactionRules - upload transaction detection rules for an application

type TxCustomRule

type TxCustomRule struct {
	Type             string              `json:"type"`
	TxEntryPointType string              `json:"txEntryPointType"`
	MatchConditions  []TxMatchConditions `json:"matchConditions"`
	Actions          []interface{}       `json:"actions"`
	Properties       []interface{}       `json:"properties"`
}

type TxHttpMatch

type TxHttpMatch struct {
	HttpMethod string         `json:"httpMethod"`
	Uri        TxMatchStrings `json:"uri"`
}

type TxMatchConditions

type TxMatchConditions struct {
	Type      string      `json:"type"`
	HttpMatch TxHttpMatch `json:"httpMatch"`
}

type TxMatchRule

type TxMatchRule struct {
	Type         string       `json:"type"`
	TxCustomRule TxCustomRule `json:"txCustomRule"`
	AgentType    string       `json:"agentType"`
}

type TxMatchRuleStr

type TxMatchRuleStr struct {
	Text string `xml:",innerxml"`
}

type TxMatchStrings

type TxMatchStrings struct {
	MatchStrings []string `json:"matchStrings"`
}

type TxRule

type TxRule struct {
	Type        string        `json:"type"`
	Summary     TxRuleSummary `json:"summary"`
	Enabled     bool          `json:"enabled"`
	Priority    int           `json:"priority"`
	Version     int           `json:"version"`
	AgentType   string        `json:"agentType"`
	TxMatchRule TxMatchRule   `json:"txMatchRule"`
}

type TxRuleScopeSummaries

type TxRuleScopeSummaries struct {
	ID        string `json:"id"`
	Type      string `json:"type"`
	AccountID string `json:"accountId"`
	Name      string `json:"name"`
}

type TxRuleScopeSummaryMappings

type TxRuleScopeSummaryMappings struct {
	Rule           TxRule                 `json:"rule"`
	ScopeSummaries []TxRuleScopeSummaries `json:"scopeSummaries"`
}

type TxRuleSummary

type TxRuleSummary struct {
	ID          string `json:"id"`
	Type        string `json:"type"`
	AccountID   string `json:"accountId"`
	Name        string `json:"name"`
	Description string `json:"description"`
	CreatedOn   int64  `json:"createdOn"`
	UpdatedOn   int64  `json:"updatedOn"`
}

type TxRuleUploadResult

type TxRuleUploadResult struct {
	Status string `json:"status"`
}

type TxRulesResponse

type TxRulesResponse struct {
	RuleScopeSummaryMappings []TxRuleScopeSummaryMappings `json:"ruleScopeSummaryMappings"`
}

type Usage

type Usage struct {
	ID                  string    `json:"id"`
	MaxUnitsUsed        float64   `json:"maxUnitsUsed"`
	MinUnitsUsed        float64   `json:"minUnitsUsed"`
	AvgUnitsUsed        float64   `json:"avgUnitsUsed"`
	TotalUnitsUsed      float64   `json:"totalUnitsUsed"`
	SampleCount         float64   `json:"sampleCount"`
	AvgUnitsAllowed     float64   `json:"avgUnitsAllowed"`
	AvgUnitsProvisioned float64   `json:"avgUnitsProvisioned"`
	AccountID           float64   `json:"accountId"`
	AgentType           string    `json:"agentType"`
	CreatedOn           int64     `json:"createdOn"`
	CreatedOnIsoDate    time.Time `json:"createdOnIsoDate"`
}

Usage has the usage details for a license type

type User

type User struct {
	Username, UserId, UserDisplayName, UserRoles, UserPassword, UserEmail string
}

func (*User) GetParams

func (u *User) GetParams(create bool) (string, error)

type Widget

type Widget struct {
	Type                        string        `json:"type"`
	ID                          int           `json:"id"`
	Version                     int           `json:"version"`
	GUID                        string        `json:"guid"`
	Title                       string        `json:"title"`
	DashboardID                 int           `json:"dashboardId"`
	WidgetsMetricMatchCriterias interface{}   `json:"widgetsMetricMatchCriterias"`
	Height                      int           `json:"height"`
	Width                       int           `json:"width"`
	MinHeight                   int           `json:"minHeight"`
	MinWidth                    int           `json:"minWidth"`
	X                           int           `json:"x"`
	Y                           int           `json:"y"`
	Label                       string        `json:"label"`
	Description                 string        `json:"description"`
	DrillDownURL                string        `json:"drillDownUrl"`
	UseMetricBrowserAsDrillDown bool          `json:"useMetricBrowserAsDrillDown"`
	DrillDownActionType         interface{}   `json:"drillDownActionType"`
	BackgroundColor             int           `json:"backgroundColor"`
	Color                       int           `json:"color"`
	FontSize                    int           `json:"fontSize"`
	UseAutomaticFontSize        bool          `json:"useAutomaticFontSize"`
	BorderEnabled               bool          `json:"borderEnabled"`
	BorderThickness             int           `json:"borderThickness"`
	BorderColor                 int           `json:"borderColor"`
	BackgroundAlpha             float64       `json:"backgroundAlpha"`
	ShowValues                  bool          `json:"showValues"`
	BackgroundColors            interface{}   `json:"backgroundColors"`
	CompactMode                 bool          `json:"compactMode"`
	ShowTimeRange               bool          `json:"showTimeRange"`
	RenderIn3D                  bool          `json:"renderIn3D"`
	ShowLegend                  bool          `json:"showLegend"`
	LegendPosition              interface{}   `json:"legendPosition"`
	LegendColumnCount           interface{}   `json:"legendColumnCount"`
	StartTime                   interface{}   `json:"startTime"`
	EndTime                     interface{}   `json:"endTime"`
	MinutesBeforeAnchorTime     int           `json:"minutesBeforeAnchorTime"`
	IsGlobal                    bool          `json:"isGlobal"`
	Properties                  []interface{} `json:"properties"`
	MissingEntities             interface{}   `json:"missingEntities"`
	AdqlQueries                 []string      `json:"adqlQueries"`
	AnalyticsType               string        `json:"analyticsType"`
	SearchMode                  string        `json:"searchMode"`
	IsStackingEnabled           bool          `json:"isStackingEnabled"`
	LegendsLayout               string        `json:"legendsLayout"`
	MaxAllowedYAxisFields       int           `json:"maxAllowedYAxisFields"`
	MaxAllowedXAxisFields       int           `json:"maxAllowedXAxisFields"`
	Min                         interface{}   `json:"min"`
	Max                         interface{}   `json:"max"`
	MinType                     interface{}   `json:"minType"`
	MaxType                     interface{}   `json:"maxType"`
	ShowMinExtremes             bool          `json:"showMinExtremes"`
	ShowMaxExtremes             bool          `json:"showMaxExtremes"`
	IntervalType                interface{}   `json:"intervalType"`
	Interval                    interface{}   `json:"interval"`
	DisplayPercentileMarkers    bool          `json:"displayPercentileMarkers"`
	PercentileValue1            interface{}   `json:"percentileValue1"`
	PercentileValue2            interface{}   `json:"percentileValue2"`
	PercentileValue3            interface{}   `json:"percentileValue3"`
	PercentileValue4            interface{}   `json:"percentileValue4"`
	Resolution                  interface{}   `json:"resolution"`
	DataFetchSize               interface{}   `json:"dataFetchSize"`
	PercentileLine              interface{}   `json:"percentileLine"`
	TimeRangeInterval           interface{}   `json:"timeRangeInterval"`
	PollingInterval             interface{}   `json:"pollingInterval"`
	Unit                        int           `json:"unit"`
	IsRawQuery                  bool          `json:"isRawQuery"`
	ViewState                   interface{}   `json:"viewState"`
	GridState                   interface{}   `json:"gridState"`
}

Widget - One Dashboard contains multiple Widgets

type WidgetExported

type WidgetExported struct {
	WidgetType                  *string               `json:"widgetType"`
	Title                       *string               `json:"title"`
	Height                      *int                  `json:"height"`
	Width                       *int                  `json:"width"`
	MinHeight                   *int                  `json:"minHeight"`
	MinWidth                    *int                  `json:"minWidth"`
	X                           *int                  `json:"x"`
	Y                           *int                  `json:"y"`
	Label                       *string               `json:"label"`
	Description                 *string               `json:"description"`
	DrillDownURL                *string               `json:"drillDownUrl"`
	UseMetricBrowserAsDrillDown *bool                 `json:"useMetricBrowserAsDrillDown"`
	DrillDownActionType         *string               `json:"drillDownActionType"`
	BackgroundColor             *int                  `json:"backgroundColor"`
	BackgroundColors            *string               `json:"backgroundColors"`
	BackgroundColorsStr         *string               `json:"backgroundColorsStr"`
	Color                       *int                  `json:"color"`
	FontSize                    *int                  `json:"fontSize"`
	UseAutomaticFontSize        *bool                 `json:"useAutomaticFontSize"`
	BorderEnabled               *bool                 `json:"borderEnabled"`
	BorderThickness             *int                  `json:"borderThickness"`
	BorderColor                 *int                  `json:"borderColor"`
	BackgroundAlpha             *float64              `json:"backgroundAlpha"`
	ShowValues                  *bool                 `json:"showValues"`
	FormatNumber                *string               `json:"formatNumber"`
	NumDecimals                 *int                  `json:"numDecimals"`
	RemoveZeros                 *string               `json:"removeZeros"`
	CompactMode                 *bool                 `json:"compactMode"`
	ShowTimeRange               *bool                 `json:"showTimeRange"`
	RenderIn3D                  *bool                 `json:"renderIn3D"`
	ShowLegend                  *bool                 `json:"showLegend"`
	LegendPosition              *string               `json:"legendPosition"`
	LegendColumnCount           *int                  `json:"legendColumnCount"`
	StartTime                   *string               `json:"startTime"`
	EndTime                     *string               `json:"endTime"`
	MinutesBeforeAnchorTime     *int                  `json:"minutesBeforeAnchorTime"`
	IsGlobal                    *bool                 `json:"isGlobal"`
	PropertiesMap               interface{}           `json:"propertiesMap"`
	DataSeriesTemplates         []*DataSeriesTemplate `json:"dataSeriesTemplates"`
	SourceURL                   *string               `json:"sourceURL"`
	Sandbox                     *bool                 `json:"sandbox"`
	VerticalAxisLabel           *string               `json:"verticalAxisLabel"`
	HideHorizontalAxis          *string               `json:"hideHorizontalAxis"`
	HorizontalAxisLabel         *string               `json:"horizontalAxisLabel"`
	AxisType                    *string               `json:"axisType"`
	StackMode                   *bool                 `json:"stackMode"`
	MultipleYAxis               *bool                 `json:"multipleYAxis"`
	CustomVerticalAxisMin       *int                  `json:"customVerticalAxisMin"`
	CustomVerticalAxisMax       *int                  `json:"customVerticalAxisMax"`
	ShowEvents                  *bool                 `json:"showEvents"`
	InterpolateDataGaps         *bool                 `json:"interpolateDataGaps"`
	ShowAllTooltips             *bool                 `json:"showAllTooltips"`
	StaticThresholdList         interface{}           `json:"staticThresholdList"`
	EventFilterTemplate         *string               `json:"eventFilterTemplate"`
	Text                        *string               `json:"text"`
	TextAlign                   *string               `json:"textAlign"`
	Margin                      *int                  `json:"margin"`
	ImageURL                    *string               `json:"imageURL"`
}

WidgetExported - single widget as in dashboard export Added 2023 Cisco Systems, Inc.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL