 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- func Validate(projectID, instanceName, planID string) error
- func ValidateInstanceName(instanceName string) error
- func ValidatePlanID(planID string) error
- type CreateOrUpdateRequest
- type CreateOrUpdateResponse
- type Instance
- type InstanceItem
- type InstanceList
- type InstanceSensitiveFields
- type InstancesService
- func (svc *InstancesService) Create(ctx context.Context, projectID, instanceName, planID string, ...) (res CreateOrUpdateResponse, w *wait.Handler, err error)
- func (svc *InstancesService) Delete(ctx context.Context, projectID, instanceID string) (res Instance, w *wait.Handler, err error)
- func (svc *InstancesService) Get(ctx context.Context, projectID, instanceID string) (res Instance, err error)
- func (svc *InstancesService) List(ctx context.Context, projectID string) (res InstanceList, err error)
- func (svc *InstancesService) Update(ctx context.Context, projectID, instanceID, instanceName, planID string, ...) (res CreateOrUpdateResponse, w *wait.Handler, err error)
 
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ValidateInstanceName ¶
ValidateInstanceName validates argus instance name
func ValidatePlanID ¶
ValidatePlanID validates argus instance plan ID
Types ¶
type CreateOrUpdateRequest ¶
type CreateOrUpdateRequest struct {
	Name       string            `json:"name"`
	PlanID     string            `json:"planId"`
	Parameters map[string]string `json:"parameter"`
}
    CreateOrUpdateRequest is the structure needed for creating or updating an instance
type CreateOrUpdateResponse ¶
type CreateOrUpdateResponse struct {
	Message      string `json:"message,omitempty"`
	InstanceID   string `json:"instanceId,omitempty"`
	DashboardURL string `json:"dashboardUrl,omitempty"`
}
    CreateOrUpdateResponse is the api response structure for instance creation/update
type Instance ¶
type Instance struct {
	Message      string                  `json:"message,omitempty"`
	Error        string                  `json:"error,omitempty"`
	DashboardURL string                  `json:"dashboardUrl,omitempty"`
	IsUpdatable  bool                    `json:"isUpdatable,omitempty"`
	Name         string                  `json:"name,omitempty"`
	Parameters   map[string]string       `json:"parameters,omitempty"`
	ID           string                  `json:"id,omitempty"`
	ServiceName  string                  `json:"serviceName,omitempty"`
	PlanID       string                  `json:"planId,omitempty"`
	PlanName     string                  `json:"planName,omitempty"`
	PlanSchema   string                  `json:"planSchema,omitempty"`
	Status       string                  `json:"status,omitempty"`
	Instance     InstanceSensitiveFields `json:"instance,omitempty"`
}
    Instance is the structure returned when reading a single instance
type InstanceItem ¶
type InstanceItem struct {
	ID          string `json:"id,omitempty"`
	PlanName    string `json:"planName,omitempty"`
	Instance    string `json:"instance,omitempty"`
	Name        string `json:"name,omitempty"`
	Status      string `json:"status,omitempty"`
	ServiceName string `json:"serviceName,omitempty"`
}
    InstanceItem is an item in the list of instances from the list api endpoint
type InstanceList ¶
type InstanceList struct {
	Message   string         `json:"message,omitempty"`
	Instances []InstanceItem `json:"instances"`
}
    InstanceList is the structure returned from the list api endpoint
type InstanceSensitiveFields ¶
type InstanceSensitiveFields struct {
	Instance                string        `json:"instance,omitempty"`
	Cluster                 string        `json:"cluster,omitempty"`
	GrafanaURL              string        `json:"grafanaUrl,omitempty"`
	DashboardURL            string        `json:"dashboardUrl,omitempty"`
	GrafanaPlugins          []interface{} `json:"grafanaPlugins,omitempty"`
	Name                    string        `json:"name,omitempty"`
	GrafanaAdminPassword    string        `json:"grafanaAdminPassword,omitempty"`
	GrafanaAdminUser        string        `json:"grafanaAdminUser,omitempty"`
	MetricsRetentionTimeRaw int           `json:"metricsRetentionTimeRaw,omitempty"`
	MetricsRetentionTime5m  int           `json:"MetricsRetentionTime5m,omitempty"`
	MetricsRetentionTime1h  int           `json:"MetricsRetentionTime1h,omitempty"`
	MetricsURL              string        `json:"metricsUrl,omitempty"`
	PushMetricsURL          string        `json:"pushMetricsUrl,omitempty"`
	GrafanaPublicReadAccess bool          `json:"grafanaPublicReadAccess,omitempty"`
	TargetsURL              string        `json:"targetsUrl,omitempty"`
	AlertingURL             string        `json:"alertingUrl,omitempty"`
	Plan                    plans.Plan    `json:"plan,omitempty"`
	LogsURL                 string        `json:"logsUrl,omitempty"`
	LogsPushURL             string        `json:"logsPushUrl,omitempty"`
	JaegerTracesURL         string        `json:"jaegerTracesUrl,omitempty"`
	OtlpTracesURL           string        `json:"otlpTracesUrl,omitempty"`
	ZipkinSpansURL          string        `json:"zipkinSpansUrl,omitempty"`
	JaegerUIURL             string        `json:"jaegerUiUrl,omitempty"`
}
    InstanceSensitiveFields provides more elaborated information of the instance, including sensitive data
type InstancesService ¶
InstancesService is the service that handles CRUD functionality for Argus instances and also wraps instance credentials service
func (*InstancesService) Create ¶
func (svc *InstancesService) Create(ctx context.Context, projectID, instanceName, planID string, params map[string]string) (res CreateOrUpdateResponse, w *wait.Handler, err error)
Create creates a new Argus instance and returns the server response (CreateOrUpdateResponse) and a wait handler which upon call to `Wait()` will wait until the instance is successfully created Wait() returns the full instance details (Instance) and error if it occurred See also https://api.stackit.schwarz/argus-monitoring-service/openapi.v1.html#operation/v1_projects_instances_create
func (*InstancesService) Delete ¶
func (svc *InstancesService) Delete(ctx context.Context, projectID, instanceID string) (res Instance, w *wait.Handler, err error)
Delete deleted an instance by project and instance IDs Delete returns the instance information (Instance), wait handler to wait for the full deletion, and an error See also https://api.stackit.schwarz/argus-monitoring-service/openapi.v1.html#operation/v1_projects_instances_delete
func (*InstancesService) Get ¶
func (svc *InstancesService) Get(ctx context.Context, projectID, instanceID string) (res Instance, err error)
Get returns the instance information by project and instance IDs See also https://api.stackit.schwarz/argus-monitoring-service/openapi.v1.html#operation/v1_projects_instances_read
func (*InstancesService) List ¶
func (svc *InstancesService) List(ctx context.Context, projectID string) (res InstanceList, err error)
List returns a list of argus instances in project See also https://api.stackit.schwarz/argus-monitoring-service/openapi.v1.html#operation/v1_projects_instances_list
func (*InstancesService) Update ¶
func (svc *InstancesService) Update(ctx context.Context, projectID, instanceID, instanceName, planID string, params map[string]string) (res CreateOrUpdateResponse, w *wait.Handler, err error)
Update updates a new Argus instance returns API response CreateOrUpdateResponse, wait handler and error The wait handler will wait for the instance status to be set to "UPDATE_SUCCEEDED" or "CREATE_SUCCEEDED" Wait() returns the instance (Instance struct) and error if failed See also https://api.stackit.schwarz/argus-monitoring-service/openapi.v1.html#operation/v1_projects_instances_update