github.com/openshift-online/ocm-sdk-go@v0.1.473/statusboard/v1/peer_dependencies_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/statusboard/v1
    21  
    22  import (
    23  	"bufio"
    24  	"bytes"
    25  	"context"
    26  	"io"
    27  	"net/http"
    28  	"net/url"
    29  	"path"
    30  
    31  	"github.com/openshift-online/ocm-sdk-go/errors"
    32  	"github.com/openshift-online/ocm-sdk-go/helpers"
    33  )
    34  
    35  // PeerDependenciesClient is the client of the 'peer_dependencies' resource.
    36  //
    37  // Manages the collection of peer dependencies.
    38  type PeerDependenciesClient struct {
    39  	transport http.RoundTripper
    40  	path      string
    41  }
    42  
    43  // NewPeerDependenciesClient creates a new client for the 'peer_dependencies'
    44  // resource using the given transport to send the requests and receive the
    45  // responses.
    46  func NewPeerDependenciesClient(transport http.RoundTripper, path string) *PeerDependenciesClient {
    47  	return &PeerDependenciesClient{
    48  		transport: transport,
    49  		path:      path,
    50  	}
    51  }
    52  
    53  // Add creates a request for the 'add' method.
    54  func (c *PeerDependenciesClient) Add() *PeerDependenciesAddRequest {
    55  	return &PeerDependenciesAddRequest{
    56  		transport: c.transport,
    57  		path:      c.path,
    58  	}
    59  }
    60  
    61  // List creates a request for the 'list' method.
    62  //
    63  // Retrieves the list of peer dependencies.
    64  func (c *PeerDependenciesClient) List() *PeerDependenciesListRequest {
    65  	return &PeerDependenciesListRequest{
    66  		transport: c.transport,
    67  		path:      c.path,
    68  	}
    69  }
    70  
    71  // PeerDependency returns the target 'peer_dependency' resource for the given identifier.
    72  func (c *PeerDependenciesClient) PeerDependency(id string) *PeerDependencyClient {
    73  	return NewPeerDependencyClient(
    74  		c.transport,
    75  		path.Join(c.path, id),
    76  	)
    77  }
    78  
    79  // PeerDependenciesAddRequest is the request for the 'add' method.
    80  type PeerDependenciesAddRequest struct {
    81  	transport http.RoundTripper
    82  	path      string
    83  	query     url.Values
    84  	header    http.Header
    85  	body      *PeerDependency
    86  }
    87  
    88  // Parameter adds a query parameter.
    89  func (r *PeerDependenciesAddRequest) Parameter(name string, value interface{}) *PeerDependenciesAddRequest {
    90  	helpers.AddValue(&r.query, name, value)
    91  	return r
    92  }
    93  
    94  // Header adds a request header.
    95  func (r *PeerDependenciesAddRequest) Header(name string, value interface{}) *PeerDependenciesAddRequest {
    96  	helpers.AddHeader(&r.header, name, value)
    97  	return r
    98  }
    99  
   100  // Impersonate wraps requests on behalf of another user.
   101  // Note: Services that do not support this feature may silently ignore this call.
   102  func (r *PeerDependenciesAddRequest) Impersonate(user string) *PeerDependenciesAddRequest {
   103  	helpers.AddImpersonationHeader(&r.header, user)
   104  	return r
   105  }
   106  
   107  // Body sets the value of the 'body' parameter.
   108  func (r *PeerDependenciesAddRequest) Body(value *PeerDependency) *PeerDependenciesAddRequest {
   109  	r.body = value
   110  	return r
   111  }
   112  
   113  // Send sends this request, waits for the response, and returns it.
   114  //
   115  // This is a potentially lengthy operation, as it requires network communication.
   116  // Consider using a context and the SendContext method.
   117  func (r *PeerDependenciesAddRequest) Send() (result *PeerDependenciesAddResponse, err error) {
   118  	return r.SendContext(context.Background())
   119  }
   120  
   121  // SendContext sends this request, waits for the response, and returns it.
   122  func (r *PeerDependenciesAddRequest) SendContext(ctx context.Context) (result *PeerDependenciesAddResponse, err error) {
   123  	query := helpers.CopyQuery(r.query)
   124  	header := helpers.CopyHeader(r.header)
   125  	buffer := &bytes.Buffer{}
   126  	err = writePeerDependenciesAddRequest(r, buffer)
   127  	if err != nil {
   128  		return
   129  	}
   130  	uri := &url.URL{
   131  		Path:     r.path,
   132  		RawQuery: query.Encode(),
   133  	}
   134  	request := &http.Request{
   135  		Method: "POST",
   136  		URL:    uri,
   137  		Header: header,
   138  		Body:   io.NopCloser(buffer),
   139  	}
   140  	if ctx != nil {
   141  		request = request.WithContext(ctx)
   142  	}
   143  	response, err := r.transport.RoundTrip(request)
   144  	if err != nil {
   145  		return
   146  	}
   147  	defer response.Body.Close()
   148  	result = &PeerDependenciesAddResponse{}
   149  	result.status = response.StatusCode
   150  	result.header = response.Header
   151  	reader := bufio.NewReader(response.Body)
   152  	_, err = reader.Peek(1)
   153  	if err == io.EOF {
   154  		err = nil
   155  		return
   156  	}
   157  	if result.status >= 400 {
   158  		result.err, err = errors.UnmarshalErrorStatus(reader, result.status)
   159  		if err != nil {
   160  			return
   161  		}
   162  		err = result.err
   163  		return
   164  	}
   165  	err = readPeerDependenciesAddResponse(result, reader)
   166  	if err != nil {
   167  		return
   168  	}
   169  	return
   170  }
   171  
   172  // PeerDependenciesAddResponse is the response for the 'add' method.
   173  type PeerDependenciesAddResponse struct {
   174  	status int
   175  	header http.Header
   176  	err    *errors.Error
   177  	body   *PeerDependency
   178  }
   179  
   180  // Status returns the response status code.
   181  func (r *PeerDependenciesAddResponse) Status() int {
   182  	if r == nil {
   183  		return 0
   184  	}
   185  	return r.status
   186  }
   187  
   188  // Header returns header of the response.
   189  func (r *PeerDependenciesAddResponse) Header() http.Header {
   190  	if r == nil {
   191  		return nil
   192  	}
   193  	return r.header
   194  }
   195  
   196  // Error returns the response error.
   197  func (r *PeerDependenciesAddResponse) Error() *errors.Error {
   198  	if r == nil {
   199  		return nil
   200  	}
   201  	return r.err
   202  }
   203  
   204  // Body returns the value of the 'body' parameter.
   205  func (r *PeerDependenciesAddResponse) Body() *PeerDependency {
   206  	if r == nil {
   207  		return nil
   208  	}
   209  	return r.body
   210  }
   211  
   212  // GetBody returns the value of the 'body' parameter and
   213  // a flag indicating if the parameter has a value.
   214  func (r *PeerDependenciesAddResponse) GetBody() (value *PeerDependency, ok bool) {
   215  	ok = r != nil && r.body != nil
   216  	if ok {
   217  		value = r.body
   218  	}
   219  	return
   220  }
   221  
   222  // PeerDependenciesListRequest is the request for the 'list' method.
   223  type PeerDependenciesListRequest struct {
   224  	transport http.RoundTripper
   225  	path      string
   226  	query     url.Values
   227  	header    http.Header
   228  	orderBy   *string
   229  	page      *int
   230  	size      *int
   231  }
   232  
   233  // Parameter adds a query parameter.
   234  func (r *PeerDependenciesListRequest) Parameter(name string, value interface{}) *PeerDependenciesListRequest {
   235  	helpers.AddValue(&r.query, name, value)
   236  	return r
   237  }
   238  
   239  // Header adds a request header.
   240  func (r *PeerDependenciesListRequest) Header(name string, value interface{}) *PeerDependenciesListRequest {
   241  	helpers.AddHeader(&r.header, name, value)
   242  	return r
   243  }
   244  
   245  // Impersonate wraps requests on behalf of another user.
   246  // Note: Services that do not support this feature may silently ignore this call.
   247  func (r *PeerDependenciesListRequest) Impersonate(user string) *PeerDependenciesListRequest {
   248  	helpers.AddImpersonationHeader(&r.header, user)
   249  	return r
   250  }
   251  
   252  // OrderBy sets the value of the 'order_by' parameter.
   253  func (r *PeerDependenciesListRequest) OrderBy(value string) *PeerDependenciesListRequest {
   254  	r.orderBy = &value
   255  	return r
   256  }
   257  
   258  // Page sets the value of the 'page' parameter.
   259  func (r *PeerDependenciesListRequest) Page(value int) *PeerDependenciesListRequest {
   260  	r.page = &value
   261  	return r
   262  }
   263  
   264  // Size sets the value of the 'size' parameter.
   265  func (r *PeerDependenciesListRequest) Size(value int) *PeerDependenciesListRequest {
   266  	r.size = &value
   267  	return r
   268  }
   269  
   270  // Send sends this request, waits for the response, and returns it.
   271  //
   272  // This is a potentially lengthy operation, as it requires network communication.
   273  // Consider using a context and the SendContext method.
   274  func (r *PeerDependenciesListRequest) Send() (result *PeerDependenciesListResponse, err error) {
   275  	return r.SendContext(context.Background())
   276  }
   277  
   278  // SendContext sends this request, waits for the response, and returns it.
   279  func (r *PeerDependenciesListRequest) SendContext(ctx context.Context) (result *PeerDependenciesListResponse, err error) {
   280  	query := helpers.CopyQuery(r.query)
   281  	if r.orderBy != nil {
   282  		helpers.AddValue(&query, "order_by", *r.orderBy)
   283  	}
   284  	if r.page != nil {
   285  		helpers.AddValue(&query, "page", *r.page)
   286  	}
   287  	if r.size != nil {
   288  		helpers.AddValue(&query, "size", *r.size)
   289  	}
   290  	header := helpers.CopyHeader(r.header)
   291  	uri := &url.URL{
   292  		Path:     r.path,
   293  		RawQuery: query.Encode(),
   294  	}
   295  	request := &http.Request{
   296  		Method: "GET",
   297  		URL:    uri,
   298  		Header: header,
   299  	}
   300  	if ctx != nil {
   301  		request = request.WithContext(ctx)
   302  	}
   303  	response, err := r.transport.RoundTrip(request)
   304  	if err != nil {
   305  		return
   306  	}
   307  	defer response.Body.Close()
   308  	result = &PeerDependenciesListResponse{}
   309  	result.status = response.StatusCode
   310  	result.header = response.Header
   311  	reader := bufio.NewReader(response.Body)
   312  	_, err = reader.Peek(1)
   313  	if err == io.EOF {
   314  		err = nil
   315  		return
   316  	}
   317  	if result.status >= 400 {
   318  		result.err, err = errors.UnmarshalErrorStatus(reader, result.status)
   319  		if err != nil {
   320  			return
   321  		}
   322  		err = result.err
   323  		return
   324  	}
   325  	err = readPeerDependenciesListResponse(result, reader)
   326  	if err != nil {
   327  		return
   328  	}
   329  	return
   330  }
   331  
   332  // PeerDependenciesListResponse is the response for the 'list' method.
   333  type PeerDependenciesListResponse struct {
   334  	status int
   335  	header http.Header
   336  	err    *errors.Error
   337  	items  *PeerDependencyList
   338  	page   *int
   339  	size   *int
   340  	total  *int
   341  }
   342  
   343  // Status returns the response status code.
   344  func (r *PeerDependenciesListResponse) Status() int {
   345  	if r == nil {
   346  		return 0
   347  	}
   348  	return r.status
   349  }
   350  
   351  // Header returns header of the response.
   352  func (r *PeerDependenciesListResponse) Header() http.Header {
   353  	if r == nil {
   354  		return nil
   355  	}
   356  	return r.header
   357  }
   358  
   359  // Error returns the response error.
   360  func (r *PeerDependenciesListResponse) Error() *errors.Error {
   361  	if r == nil {
   362  		return nil
   363  	}
   364  	return r.err
   365  }
   366  
   367  // Items returns the value of the 'items' parameter.
   368  func (r *PeerDependenciesListResponse) Items() *PeerDependencyList {
   369  	if r == nil {
   370  		return nil
   371  	}
   372  	return r.items
   373  }
   374  
   375  // GetItems returns the value of the 'items' parameter and
   376  // a flag indicating if the parameter has a value.
   377  func (r *PeerDependenciesListResponse) GetItems() (value *PeerDependencyList, ok bool) {
   378  	ok = r != nil && r.items != nil
   379  	if ok {
   380  		value = r.items
   381  	}
   382  	return
   383  }
   384  
   385  // Page returns the value of the 'page' parameter.
   386  func (r *PeerDependenciesListResponse) Page() int {
   387  	if r != nil && r.page != nil {
   388  		return *r.page
   389  	}
   390  	return 0
   391  }
   392  
   393  // GetPage returns the value of the 'page' parameter and
   394  // a flag indicating if the parameter has a value.
   395  func (r *PeerDependenciesListResponse) GetPage() (value int, ok bool) {
   396  	ok = r != nil && r.page != nil
   397  	if ok {
   398  		value = *r.page
   399  	}
   400  	return
   401  }
   402  
   403  // Size returns the value of the 'size' parameter.
   404  func (r *PeerDependenciesListResponse) Size() int {
   405  	if r != nil && r.size != nil {
   406  		return *r.size
   407  	}
   408  	return 0
   409  }
   410  
   411  // GetSize returns the value of the 'size' parameter and
   412  // a flag indicating if the parameter has a value.
   413  func (r *PeerDependenciesListResponse) GetSize() (value int, ok bool) {
   414  	ok = r != nil && r.size != nil
   415  	if ok {
   416  		value = *r.size
   417  	}
   418  	return
   419  }
   420  
   421  // Total returns the value of the 'total' parameter.
   422  func (r *PeerDependenciesListResponse) Total() int {
   423  	if r != nil && r.total != nil {
   424  		return *r.total
   425  	}
   426  	return 0
   427  }
   428  
   429  // GetTotal returns the value of the 'total' parameter and
   430  // a flag indicating if the parameter has a value.
   431  func (r *PeerDependenciesListResponse) GetTotal() (value int, ok bool) {
   432  	ok = r != nil && r.total != nil
   433  	if ok {
   434  		value = *r.total
   435  	}
   436  	return
   437  }