github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/api/container/containerv2/ob_logging.go (about)

     1  package containerv2
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/IBM-Cloud/bluemix-go/client"
     7  )
     8  
     9  const (
    10  	authResourceAccount = "X-Auth-Resource-Account"
    11  )
    12  
    13  //LoggingTargetHeader ...
    14  type LoggingTargetHeader struct {
    15  	AccountID string
    16  }
    17  
    18  //ToMap ...
    19  func (c LoggingTargetHeader) ToMap() map[string]string {
    20  	m := make(map[string]string, 2)
    21  	m[authResourceAccount] = c.AccountID
    22  	return m
    23  }
    24  
    25  //LoggingCreateRequest ...
    26  type LoggingCreateRequest struct {
    27  	Cluster         string `json:"cluster"`
    28  	IngestionKey    string `json:"ingestionKey,omitempty"`
    29  	LoggingInstance string `json:"instance"`
    30  	PrivateEndpoint bool   `json:"privateEndpoint,omitempty"`
    31  }
    32  
    33  //LoggingCreateResponse ...
    34  type LoggingCreateResponse struct {
    35  	DaemonsetName   string `json:"daemonsetName"`
    36  	IngestionKey    string `json:"ingestionKey"`
    37  	InstanceID      string `json:"instanceId"`
    38  	InstanceName    string `json:"instanceName"`
    39  	PrivateEndpoint bool   `json:"privateEndpoint"`
    40  }
    41  
    42  //LoggingUpdateRequest ...
    43  type LoggingUpdateRequest struct {
    44  	Cluster         string `json:"cluster"`
    45  	IngestionKey    string `json:"ingestionKey"`
    46  	Instance        string `json:"instance"`
    47  	NewInstance     string `json:"newInstance"`
    48  	PrivateEndpoint bool   `json:"privateEndpoint"`
    49  }
    50  
    51  //LoggingUpdateResponse ...
    52  type LoggingUpdateResponse struct {
    53  	AgentKey        string `json:"agentKey"`
    54  	AgentNamespace  string `json:"agentNamespace"`
    55  	CRN             string `json:"crn"`
    56  	DaemonsetName   string `json:"daemonsetName"`
    57  	DiscoveredAgent bool   `json:"discoveredAgent"`
    58  	InstanceID      string `json:"instanceId"`
    59  	InstanceName    string `json:"instanceName"`
    60  	Namespace       string `json:"namespace"`
    61  	PrivateEndpoint bool   `json:"privateEndpoint"`
    62  }
    63  
    64  //LoggingInfo ...
    65  type LoggingInfo struct {
    66  	AgentKey        string `json:"agentKey"`
    67  	AgentNamespace  string `json:"agentNamespace"`
    68  	CRN             string `json:"crn"`
    69  	DaemonsetName   string `json:"daemonsetName"`
    70  	DiscoveredAgent bool   `json:"discoveredAgent"`
    71  	InstanceID      string `json:"instanceId"`
    72  	InstanceName    string `json:"instanceName"`
    73  	Namespace       string `json:"namespace"`
    74  	PrivateEndpoint bool   `json:"privateEndpoint"`
    75  }
    76  
    77  //LoggingDeleteRequest ...
    78  type LoggingDeleteRequest struct {
    79  	Cluster  string `json:"cluster"`
    80  	Instance string `json:"instance"`
    81  }
    82  
    83  //Logging interface
    84  type Logging interface {
    85  	CreateLoggingConfig(params LoggingCreateRequest, target LoggingTargetHeader) (LoggingCreateResponse, error)
    86  	GetLoggingConfig(clusterName string, LoggingInstance string, target LoggingTargetHeader) (*LoggingInfo, error)
    87  	ListLoggingInstances(clusterName string, target LoggingTargetHeader) ([]LoggingInfo, error)
    88  	UpdateLoggingConfig(params LoggingUpdateRequest, target LoggingTargetHeader) (LoggingUpdateResponse, error)
    89  	DeleteLoggingConfig(params LoggingDeleteRequest, target LoggingTargetHeader) (interface{}, error)
    90  }
    91  type logging struct {
    92  	client *client.Client
    93  }
    94  
    95  func newLoggingAPI(c *client.Client) Logging {
    96  	return &logging{
    97  		client: c,
    98  	}
    99  }
   100  
   101  //CreateLoggingConfig ...
   102  //Create a Logging configuration for a cluster.
   103  func (r *logging) CreateLoggingConfig(params LoggingCreateRequest, target LoggingTargetHeader) (LoggingCreateResponse, error) {
   104  	var resp LoggingCreateResponse
   105  	_, err := r.client.Post("/v2/observe/logging/createConfig", params, &resp, target.ToMap())
   106  	return resp, err
   107  }
   108  
   109  //GetLoggingConfig ...
   110  //Show the details of an existing Logging configuration.
   111  func (r *logging) GetLoggingConfig(clusterName, loggingInstance string, target LoggingTargetHeader) (*LoggingInfo, error) {
   112  	loggingInfo := &LoggingInfo{}
   113  	rawURL := fmt.Sprintf("/v2/observe/logging/getConfig?cluster=%s&instance=%s", clusterName, loggingInstance)
   114  	_, err := r.client.Get(rawURL, &loggingInfo, target.ToMap())
   115  	if err != nil {
   116  		return nil, err
   117  	}
   118  	return loggingInfo, err
   119  }
   120  
   121  //ListLoggingInstances...
   122  //List all logging configurations for a cluster.
   123  func (r *logging) ListLoggingInstances(clusterName string, target LoggingTargetHeader) ([]LoggingInfo, error) {
   124  	logging := []LoggingInfo{}
   125  	rawURL := fmt.Sprintf("/v2/observe/logging/getConfigs?cluster=%s", clusterName)
   126  	_, err := r.client.Get(rawURL, &logging, target.ToMap())
   127  	if err != nil {
   128  		return nil, err
   129  	}
   130  	return logging, nil
   131  }
   132  
   133  //UpdateLoggingConfig ...
   134  //Update a Logging configuration in the cluster.
   135  func (r *logging) UpdateLoggingConfig(params LoggingUpdateRequest, target LoggingTargetHeader) (LoggingUpdateResponse, error) {
   136  	var logging LoggingUpdateResponse
   137  	_, err := r.client.Post("/v2/observe/logging/modifyConfig", params, &logging, target.ToMap())
   138  	return logging, err
   139  }
   140  
   141  //DeleteLoggingConfig ...
   142  //Remove a Logging configuration from a cluster.
   143  func (r *logging) DeleteLoggingConfig(params LoggingDeleteRequest, target LoggingTargetHeader) (interface{}, error) {
   144  	var response interface{}
   145  	_, err := r.client.Post("/v2/observe/logging/removeConfig", params, &response, target.ToMap())
   146  	if err != nil {
   147  		return response, err
   148  	}
   149  	return response, err
   150  }