github.com/vmware/go-vmware-nsxt@v0.0.0-20230223012718-d31b8a1ca05e/associations_api.go (about)

     1  /* Copyright © 2017 VMware, Inc. All Rights Reserved.
     2     SPDX-License-Identifier: BSD-2-Clause
     3  
     4     Generated by: https://github.com/swagger-api/swagger-codegen.git */
     5  
     6  package nsxt
     7  
     8  import (
     9  	"context"
    10  	"encoding/json"
    11  	"github.com/vmware/go-vmware-nsxt/association"
    12  	"net/http"
    13  	"net/url"
    14  	"strings"
    15  )
    16  
    17  // Linger please
    18  var (
    19  	_ context.Context
    20  )
    21  
    22  type AssociationsApiService service
    23  
    24  /* AssociationsApiService Get ResourceReference objects to which the given resource belongs to
    25  Returns information about resources that are associated with the given resource. Id and type of the resource for which associated resources are to be fetched are to be specified as query parameter in the URI. Resource type of the associated resources must be specified as query parameter.
    26  * @param ctx context.Context Authentication Context
    27  @param associatedResourceType Resource type valid for use as target in association API
    28  @param resourceId The resource for which associated resources are to be fetched
    29  @param resourceType Resource type valid for use as source in association API
    30  @param optional (nil or map[string]interface{}) with one or more of:
    31      @param "cursor" (string) Opaque cursor to be used for getting next page of records (supplied by current result page)
    32      @param "fetchAncestors" (bool) Fetch complete list of associated resources considering containment and nesting
    33      @param "includedFields" (string) Comma separated list of fields that should be included to result of query
    34      @param "pageSize" (int64) Maximum number of results to return in this page (server may return fewer)
    35      @param "sortAscending" (bool)
    36      @param "sortBy" (string) Field by which records are sorted
    37  @return association.AssociationListResult*/
    38  func (a *AssociationsApiService) GetAssociations(ctx context.Context, associatedResourceType string, resourceId string, resourceType string, localVarOptionals map[string]interface{}) (association.AssociationListResult, *http.Response, error) {
    39  	var (
    40  		localVarHttpMethod = strings.ToUpper("Get")
    41  		localVarPostBody   interface{}
    42  		localVarFileName   string
    43  		localVarFileBytes  []byte
    44  		successPayload     association.AssociationListResult
    45  	)
    46  
    47  	// create path and map variables
    48  	localVarPath := a.client.cfg.BasePath + "/associations"
    49  
    50  	localVarHeaderParams := make(map[string]string)
    51  	localVarQueryParams := url.Values{}
    52  	localVarFormParams := url.Values{}
    53  
    54  	if err := typeCheckParameter(localVarOptionals["cursor"], "string", "cursor"); err != nil {
    55  		return successPayload, nil, err
    56  	}
    57  	if err := typeCheckParameter(localVarOptionals["fetchAncestors"], "bool", "fetchAncestors"); err != nil {
    58  		return successPayload, nil, err
    59  	}
    60  	if err := typeCheckParameter(localVarOptionals["includedFields"], "string", "includedFields"); err != nil {
    61  		return successPayload, nil, err
    62  	}
    63  	if err := typeCheckParameter(localVarOptionals["pageSize"], "int64", "pageSize"); err != nil {
    64  		return successPayload, nil, err
    65  	}
    66  	if err := typeCheckParameter(localVarOptionals["sortAscending"], "bool", "sortAscending"); err != nil {
    67  		return successPayload, nil, err
    68  	}
    69  	if err := typeCheckParameter(localVarOptionals["sortBy"], "string", "sortBy"); err != nil {
    70  		return successPayload, nil, err
    71  	}
    72  
    73  	localVarQueryParams.Add("associated_resource_type", parameterToString(associatedResourceType, ""))
    74  	if localVarTempParam, localVarOk := localVarOptionals["cursor"].(string); localVarOk {
    75  		localVarQueryParams.Add("cursor", parameterToString(localVarTempParam, ""))
    76  	}
    77  	if localVarTempParam, localVarOk := localVarOptionals["fetchAncestors"].(bool); localVarOk {
    78  		localVarQueryParams.Add("fetch_ancestors", parameterToString(localVarTempParam, ""))
    79  	}
    80  	if localVarTempParam, localVarOk := localVarOptionals["includedFields"].(string); localVarOk {
    81  		localVarQueryParams.Add("included_fields", parameterToString(localVarTempParam, ""))
    82  	}
    83  	if localVarTempParam, localVarOk := localVarOptionals["pageSize"].(int64); localVarOk {
    84  		localVarQueryParams.Add("page_size", parameterToString(localVarTempParam, ""))
    85  	}
    86  	localVarQueryParams.Add("resource_id", parameterToString(resourceId, ""))
    87  	localVarQueryParams.Add("resource_type", parameterToString(resourceType, ""))
    88  	if localVarTempParam, localVarOk := localVarOptionals["sortAscending"].(bool); localVarOk {
    89  		localVarQueryParams.Add("sort_ascending", parameterToString(localVarTempParam, ""))
    90  	}
    91  	if localVarTempParam, localVarOk := localVarOptionals["sortBy"].(string); localVarOk {
    92  		localVarQueryParams.Add("sort_by", parameterToString(localVarTempParam, ""))
    93  	}
    94  	// to determine the Content-Type header
    95  	localVarHttpContentTypes := []string{"application/json"}
    96  
    97  	// set Content-Type header
    98  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    99  	if localVarHttpContentType != "" {
   100  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   101  	}
   102  
   103  	// to determine the Accept header
   104  	localVarHttpHeaderAccepts := []string{
   105  		"application/json",
   106  	}
   107  
   108  	// set Accept header
   109  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   110  	if localVarHttpHeaderAccept != "" {
   111  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   112  	}
   113  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   114  	if err != nil {
   115  		return successPayload, nil, err
   116  	}
   117  
   118  	localVarHttpResponse, err := a.client.callAPI(r)
   119  	if err != nil || localVarHttpResponse == nil {
   120  		return successPayload, localVarHttpResponse, err
   121  	}
   122  	defer localVarHttpResponse.Body.Close()
   123  	if localVarHttpResponse.StatusCode >= 300 {
   124  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   125  	}
   126  
   127  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   128  		return successPayload, localVarHttpResponse, err
   129  	}
   130  
   131  	return successPayload, localVarHttpResponse, err
   132  }