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 }