github.com/openshift-online/ocm-sdk-go@v0.1.473/servicelogs/v1/clusters_cluster_logs_client.go (about)

     1  /*
     2  Copyright (c) 2020 Red Hat, Inc.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8    http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  // IMPORTANT: This file has been generated automatically, refrain from modifying it manually as all
    18  // your changes will be lost when the file is generated again.
    19  
    20  package v1 // github.com/openshift-online/ocm-sdk-go/servicelogs/v1
    21  
    22  import (
    23  	"bufio"
    24  	"context"
    25  	"io"
    26  	"net/http"
    27  	"net/url"
    28  
    29  	"github.com/openshift-online/ocm-sdk-go/errors"
    30  	"github.com/openshift-online/ocm-sdk-go/helpers"
    31  )
    32  
    33  // ClustersClusterLogsClient is the client of the 'clusters_cluster_logs' resource.
    34  //
    35  // Manages the collection of Clusters cluster logs.
    36  type ClustersClusterLogsClient struct {
    37  	transport http.RoundTripper
    38  	path      string
    39  }
    40  
    41  // NewClustersClusterLogsClient creates a new client for the 'clusters_cluster_logs'
    42  // resource using the given transport to send the requests and receive the
    43  // responses.
    44  func NewClustersClusterLogsClient(transport http.RoundTripper, path string) *ClustersClusterLogsClient {
    45  	return &ClustersClusterLogsClient{
    46  		transport: transport,
    47  		path:      path,
    48  	}
    49  }
    50  
    51  // List creates a request for the 'list' method.
    52  //
    53  // Retrieves the list of cluster logs by the cluster_id and/or cluster_uuid parameters.
    54  // Use this endpoint to list service logs for a specific cluster (excluding private logs).
    55  // Any authenticated user is able to use this endpoint without any special permissions.
    56  func (c *ClustersClusterLogsClient) List() *ClustersClusterLogsListRequest {
    57  	return &ClustersClusterLogsListRequest{
    58  		transport: c.transport,
    59  		path:      c.path,
    60  	}
    61  }
    62  
    63  // ClustersClusterLogsListRequest is the request for the 'list' method.
    64  type ClustersClusterLogsListRequest struct {
    65  	transport   http.RoundTripper
    66  	path        string
    67  	query       url.Values
    68  	header      http.Header
    69  	clusterID   *string
    70  	clusterUUID *string
    71  	order       *string
    72  	page        *int
    73  	search      *string
    74  	size        *int
    75  }
    76  
    77  // Parameter adds a query parameter.
    78  func (r *ClustersClusterLogsListRequest) Parameter(name string, value interface{}) *ClustersClusterLogsListRequest {
    79  	helpers.AddValue(&r.query, name, value)
    80  	return r
    81  }
    82  
    83  // Header adds a request header.
    84  func (r *ClustersClusterLogsListRequest) Header(name string, value interface{}) *ClustersClusterLogsListRequest {
    85  	helpers.AddHeader(&r.header, name, value)
    86  	return r
    87  }
    88  
    89  // Impersonate wraps requests on behalf of another user.
    90  // Note: Services that do not support this feature may silently ignore this call.
    91  func (r *ClustersClusterLogsListRequest) Impersonate(user string) *ClustersClusterLogsListRequest {
    92  	helpers.AddImpersonationHeader(&r.header, user)
    93  	return r
    94  }
    95  
    96  // ClusterID sets the value of the 'cluster_ID' parameter.
    97  //
    98  // cluster_id parameter.
    99  func (r *ClustersClusterLogsListRequest) ClusterID(value string) *ClustersClusterLogsListRequest {
   100  	r.clusterID = &value
   101  	return r
   102  }
   103  
   104  // ClusterUUID sets the value of the 'cluster_UUID' parameter.
   105  //
   106  // cluster_uuid parameter.
   107  func (r *ClustersClusterLogsListRequest) ClusterUUID(value string) *ClustersClusterLogsListRequest {
   108  	r.clusterUUID = &value
   109  	return r
   110  }
   111  
   112  // Order sets the value of the 'order' parameter.
   113  //
   114  // Order criteria.
   115  //
   116  // The syntax of this parameter is similar to the syntax of the _order by_ clause of
   117  // a SQL statement. For example, in order to sort the
   118  // cluster logs descending by name identifier the value should be:
   119  //
   120  // ```sql
   121  // name desc
   122  // ```
   123  //
   124  // If the parameter isn't provided, or if the value is empty, then the order of the
   125  // results is undefined.
   126  func (r *ClustersClusterLogsListRequest) Order(value string) *ClustersClusterLogsListRequest {
   127  	r.order = &value
   128  	return r
   129  }
   130  
   131  // Page sets the value of the 'page' parameter.
   132  //
   133  // Index of the requested page, where one corresponds to the first page.
   134  func (r *ClustersClusterLogsListRequest) Page(value int) *ClustersClusterLogsListRequest {
   135  	r.page = &value
   136  	return r
   137  }
   138  
   139  // Search sets the value of the 'search' parameter.
   140  //
   141  // Search criteria.
   142  //
   143  // The syntax of this parameter is similar to the syntax of the _where_ clause
   144  // of an SQL statement, but using the names of the attributes of the cluster logs
   145  // instead of the names of the columns of a table. For example, in order to
   146  // retrieve cluster logs with service_name starting with my:
   147  //
   148  // ```sql
   149  // service_name like 'my%'
   150  // ```
   151  //
   152  // If the parameter isn't provided, or if the value is empty, then all the
   153  // items that the user has permission to see will be returned.
   154  func (r *ClustersClusterLogsListRequest) Search(value string) *ClustersClusterLogsListRequest {
   155  	r.search = &value
   156  	return r
   157  }
   158  
   159  // Size sets the value of the 'size' parameter.
   160  //
   161  // Maximum number of items that will be contained in the returned page.
   162  func (r *ClustersClusterLogsListRequest) Size(value int) *ClustersClusterLogsListRequest {
   163  	r.size = &value
   164  	return r
   165  }
   166  
   167  // Send sends this request, waits for the response, and returns it.
   168  //
   169  // This is a potentially lengthy operation, as it requires network communication.
   170  // Consider using a context and the SendContext method.
   171  func (r *ClustersClusterLogsListRequest) Send() (result *ClustersClusterLogsListResponse, err error) {
   172  	return r.SendContext(context.Background())
   173  }
   174  
   175  // SendContext sends this request, waits for the response, and returns it.
   176  func (r *ClustersClusterLogsListRequest) SendContext(ctx context.Context) (result *ClustersClusterLogsListResponse, err error) {
   177  	query := helpers.CopyQuery(r.query)
   178  	if r.clusterID != nil {
   179  		helpers.AddValue(&query, "cluster_id", *r.clusterID)
   180  	}
   181  	if r.clusterUUID != nil {
   182  		helpers.AddValue(&query, "cluster_uuid", *r.clusterUUID)
   183  	}
   184  	if r.order != nil {
   185  		helpers.AddValue(&query, "order", *r.order)
   186  	}
   187  	if r.page != nil {
   188  		helpers.AddValue(&query, "page", *r.page)
   189  	}
   190  	if r.search != nil {
   191  		helpers.AddValue(&query, "search", *r.search)
   192  	}
   193  	if r.size != nil {
   194  		helpers.AddValue(&query, "size", *r.size)
   195  	}
   196  	header := helpers.CopyHeader(r.header)
   197  	uri := &url.URL{
   198  		Path:     r.path,
   199  		RawQuery: query.Encode(),
   200  	}
   201  	request := &http.Request{
   202  		Method: "GET",
   203  		URL:    uri,
   204  		Header: header,
   205  	}
   206  	if ctx != nil {
   207  		request = request.WithContext(ctx)
   208  	}
   209  	response, err := r.transport.RoundTrip(request)
   210  	if err != nil {
   211  		return
   212  	}
   213  	defer response.Body.Close()
   214  	result = &ClustersClusterLogsListResponse{}
   215  	result.status = response.StatusCode
   216  	result.header = response.Header
   217  	reader := bufio.NewReader(response.Body)
   218  	_, err = reader.Peek(1)
   219  	if err == io.EOF {
   220  		err = nil
   221  		return
   222  	}
   223  	if result.status >= 400 {
   224  		result.err, err = errors.UnmarshalErrorStatus(reader, result.status)
   225  		if err != nil {
   226  			return
   227  		}
   228  		err = result.err
   229  		return
   230  	}
   231  	err = readClustersClusterLogsListResponse(result, reader)
   232  	if err != nil {
   233  		return
   234  	}
   235  	return
   236  }
   237  
   238  // ClustersClusterLogsListResponse is the response for the 'list' method.
   239  type ClustersClusterLogsListResponse struct {
   240  	status int
   241  	header http.Header
   242  	err    *errors.Error
   243  	items  *LogEntryList
   244  	page   *int
   245  	size   *int
   246  	total  *int
   247  }
   248  
   249  // Status returns the response status code.
   250  func (r *ClustersClusterLogsListResponse) Status() int {
   251  	if r == nil {
   252  		return 0
   253  	}
   254  	return r.status
   255  }
   256  
   257  // Header returns header of the response.
   258  func (r *ClustersClusterLogsListResponse) Header() http.Header {
   259  	if r == nil {
   260  		return nil
   261  	}
   262  	return r.header
   263  }
   264  
   265  // Error returns the response error.
   266  func (r *ClustersClusterLogsListResponse) Error() *errors.Error {
   267  	if r == nil {
   268  		return nil
   269  	}
   270  	return r.err
   271  }
   272  
   273  // Items returns the value of the 'items' parameter.
   274  //
   275  // Retrieved list of Cluster logs.
   276  func (r *ClustersClusterLogsListResponse) Items() *LogEntryList {
   277  	if r == nil {
   278  		return nil
   279  	}
   280  	return r.items
   281  }
   282  
   283  // GetItems returns the value of the 'items' parameter and
   284  // a flag indicating if the parameter has a value.
   285  //
   286  // Retrieved list of Cluster logs.
   287  func (r *ClustersClusterLogsListResponse) GetItems() (value *LogEntryList, ok bool) {
   288  	ok = r != nil && r.items != nil
   289  	if ok {
   290  		value = r.items
   291  	}
   292  	return
   293  }
   294  
   295  // Page returns the value of the 'page' parameter.
   296  //
   297  // Index of the requested page, where one corresponds to the first page.
   298  func (r *ClustersClusterLogsListResponse) Page() int {
   299  	if r != nil && r.page != nil {
   300  		return *r.page
   301  	}
   302  	return 0
   303  }
   304  
   305  // GetPage returns the value of the 'page' parameter and
   306  // a flag indicating if the parameter has a value.
   307  //
   308  // Index of the requested page, where one corresponds to the first page.
   309  func (r *ClustersClusterLogsListResponse) GetPage() (value int, ok bool) {
   310  	ok = r != nil && r.page != nil
   311  	if ok {
   312  		value = *r.page
   313  	}
   314  	return
   315  }
   316  
   317  // Size returns the value of the 'size' parameter.
   318  //
   319  // Maximum number of items that will be contained in the returned page.
   320  func (r *ClustersClusterLogsListResponse) Size() int {
   321  	if r != nil && r.size != nil {
   322  		return *r.size
   323  	}
   324  	return 0
   325  }
   326  
   327  // GetSize returns the value of the 'size' parameter and
   328  // a flag indicating if the parameter has a value.
   329  //
   330  // Maximum number of items that will be contained in the returned page.
   331  func (r *ClustersClusterLogsListResponse) GetSize() (value int, ok bool) {
   332  	ok = r != nil && r.size != nil
   333  	if ok {
   334  		value = *r.size
   335  	}
   336  	return
   337  }
   338  
   339  // Total returns the value of the 'total' parameter.
   340  //
   341  // Total number of items of the collection that match the search criteria,
   342  // regardless of the size of the page.
   343  func (r *ClustersClusterLogsListResponse) Total() int {
   344  	if r != nil && r.total != nil {
   345  		return *r.total
   346  	}
   347  	return 0
   348  }
   349  
   350  // GetTotal returns the value of the 'total' parameter and
   351  // a flag indicating if the parameter has a value.
   352  //
   353  // Total number of items of the collection that match the search criteria,
   354  // regardless of the size of the page.
   355  func (r *ClustersClusterLogsListResponse) GetTotal() (value int, ok bool) {
   356  	ok = r != nil && r.total != nil
   357  	if ok {
   358  		value = *r.total
   359  	}
   360  	return
   361  }