github.com/free5gc/openapi@v1.0.8/Nnrf_NFDiscovery/api_nf_instances_store.go (about)

     1  /*
     2   * NRF NFDiscovery Service
     3   *
     4   * NRF NFDiscovery  Service
     5   *
     6   * API version: 1.0.0
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package Nnrf_NFDiscovery
    11  
    12  import (
    13  	"context"
    14  	"io/ioutil"
    15  	"net/http"
    16  	"net/url"
    17  	"strings"
    18  
    19  	"github.com/antihax/optional"
    20  
    21  	"github.com/free5gc/openapi"
    22  	"github.com/free5gc/openapi/models"
    23  )
    24  
    25  // Linger please
    26  var (
    27  	_ context.Context
    28  )
    29  
    30  type NFInstancesStoreApiService service
    31  
    32  /*
    33  NFInstancesStoreApiService Search a collection of NF Instances
    34   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    35   * @param targetNfType Type of the target NF
    36   * @param requesterNfType Type of the requester NF
    37   * @param optional nil or *SearchNFInstancesParamOpts - Optional Parameters:
    38   * @param "ServiceNames" (optional.Interface of []string) -  Name of the service offered by the NF
    39   * @param "RequesterNfInstanceFqdn" (optional.String) -  FQDN of the requester NF
    40   * @param "TargetPlmnList" (optional.Interface of []models.PlmnId) -  Id of the PLMN where the target NF is located
    41   * @param "RequesterPlmnList" (optional.Interface of []models.PlmnId) -  Id of the PLMN where the NF issuing the Discovery request is located
    42   * @param "TargetNfInstanceId" (optional.Interface of string) -  Identity of the NF instance being discovered
    43   * @param "TargetNfFqdn" (optional.String) -  FQDN of the NF instance being discovered
    44   * @param "HnrfUri" (optional.String) -  Uri of the home NRF
    45   * @param "Snssais" (optional.Interface of []models.Snssai) -  Slice info of the target NF
    46   * @param "Dnn" (optional.String) -  Dnn supported by the BSF, SMF or UPF
    47   * @param "NsiList" (optional.Interface of []string) -  NSI IDs that are served by the services being discovered
    48   * @param "SmfServingArea" (optional.String) -
    49   * @param "Tai" (optional.Interface of models.Tai) -  Tracking Area Identity
    50   * @param "AmfRegionId" (optional.String) -  AMF Region Identity
    51   * @param "AmfSetId" (optional.String) -  AMF Set Identity
    52   * @param "Guami" (optional.Interface of models.Guami) -  Guami used to search for an appropriate AMF
    53   * @param "Supi" (optional.String) -  SUPI of the user
    54   * @param "UeIpv4Address" (optional.String) -  IPv4 address of the UE
    55   * @param "IpDomain" (optional.String) -  IP domain of the UE, which supported by BSF
    56   * @param "UeIpv6Prefix" (optional.Interface of string) -  IPv6 prefix of the UE
    57   * @param "PgwInd" (optional.Bool) -  Combined PGW-C and SMF or a standalone SMF
    58   * @param "Pgw" (optional.String) -  PGW FQDN of a combined PGW-C and SMF
    59   * @param "Gpsi" (optional.String) -  GPSI of the user
    60   * @param "ExternalGroupIdentity" (optional.String) -  external group identifier of the user
    61   * @param "DataSet" (optional.Interface of models.DataSetId) -  data set supported by the NF
    62   * @param "RoutingIndicator" (optional.String) -  routing indicator in SUCI
    63   * @param "GroupIdList" (optional.Interface of []string) -  Group IDs of the NFs being discovered
    64   * @param "DnaiList" (optional.Interface of []string) -  Data network access identifiers of the NFs being discovered
    65   * @param "SupportedFeatures" (optional.String) -  Features required to be supported by the target NF
    66   * @param "UpfIwkEpsInd" (optional.Bool) -  UPF supporting interworking with EPS or not
    67   * @param "ChfSupportedPlmn" (optional.Interface of models.PlmnId) -  PLMN ID supported by a CHF
    68   * @param "PreferredLocality" (optional.String) -  preferred target NF location
    69   * @param "AccessType" (optional.Interface of models.AccessType) -  AccessType supported by the target NF
    70   * @param "IfNoneMatch" (optional.String) -  Validator for conditional requests, as described in IETF RFC 7232, 3.2
    71  @return models.SearchResult
    72  */
    73  
    74  type SearchNFInstancesParamOpts struct {
    75  	ServiceNames            optional.Interface
    76  	RequesterNfInstanceFqdn optional.String
    77  	TargetPlmnList          optional.Interface
    78  	RequesterPlmnList       optional.Interface
    79  	TargetNfInstanceId      optional.Interface
    80  	TargetNfFqdn            optional.String
    81  	HnrfUri                 optional.String
    82  	Snssais                 optional.Interface
    83  	Dnn                     optional.String
    84  	NsiList                 optional.Interface
    85  	SmfServingArea          optional.String
    86  	Tai                     optional.Interface
    87  	AmfRegionId             optional.String
    88  	AmfSetId                optional.String
    89  	Guami                   optional.Interface
    90  	Supi                    optional.String
    91  	UeIpv4Address           optional.String
    92  	IpDomain                optional.String
    93  	UeIpv6Prefix            optional.Interface
    94  	PgwInd                  optional.Bool
    95  	Pgw                     optional.String
    96  	Gpsi                    optional.String
    97  	ExternalGroupIdentity   optional.String
    98  	DataSet                 optional.Interface
    99  	RoutingIndicator        optional.String
   100  	GroupIdList             optional.Interface
   101  	DnaiList                optional.Interface
   102  	SupportedFeatures       optional.String
   103  	UpfIwkEpsInd            optional.Bool
   104  	ChfSupportedPlmn        optional.Interface
   105  	PreferredLocality       optional.String
   106  	AccessType              optional.Interface
   107  	IfNoneMatch             optional.String
   108  }
   109  
   110  func (a *NFInstancesStoreApiService) SearchNFInstances(ctx context.Context, targetNfType models.NfType, requesterNfType models.NfType, localVarOptionals *SearchNFInstancesParamOpts) (models.SearchResult, *http.Response, error) {
   111  	var (
   112  		localVarHTTPMethod   = strings.ToUpper("Get")
   113  		localVarPostBody     interface{}
   114  		localVarFormFileName string
   115  		localVarFileName     string
   116  		localVarFileBytes    []byte
   117  		localVarReturnValue  models.SearchResult
   118  	)
   119  
   120  	// create path and map variables
   121  	localVarPath := a.client.cfg.BasePath() + "/nf-instances"
   122  
   123  	localVarHeaderParams := make(map[string]string)
   124  	localVarQueryParams := url.Values{}
   125  	localVarFormParams := url.Values{}
   126  
   127  	localVarQueryParams.Add("target-nf-type", openapi.ParameterToString(targetNfType, ""))
   128  	localVarQueryParams.Add("requester-nf-type", openapi.ParameterToString(requesterNfType, ""))
   129  	if localVarOptionals != nil && localVarOptionals.ServiceNames.IsSet() {
   130  		localVarQueryParams.Add("service-names", openapi.ParameterToString(localVarOptionals.ServiceNames.Value(), "csv"))
   131  	}
   132  	if localVarOptionals != nil && localVarOptionals.RequesterNfInstanceFqdn.IsSet() && localVarOptionals.RequesterNfInstanceFqdn.Value() != "" {
   133  		localVarQueryParams.Add("requester-nf-instance-fqdn", openapi.ParameterToString(localVarOptionals.RequesterNfInstanceFqdn.Value(), ""))
   134  	}
   135  	if localVarOptionals != nil && localVarOptionals.TargetPlmnList.IsSet() {
   136  		localVarQueryParams.Add("target-plmn-list", openapi.ParameterToString(localVarOptionals.TargetPlmnList.Value(), "multi"))
   137  	}
   138  	if localVarOptionals != nil && localVarOptionals.RequesterPlmnList.IsSet() {
   139  		localVarQueryParams.Add("requester-plmn-list", openapi.ParameterToString(localVarOptionals.RequesterPlmnList.Value(), "multi"))
   140  	}
   141  	if localVarOptionals != nil && localVarOptionals.TargetNfInstanceId.IsSet() {
   142  		localVarQueryParams.Add("target-nf-instance-id", openapi.ParameterToString(localVarOptionals.TargetNfInstanceId.Value(), ""))
   143  	}
   144  	if localVarOptionals != nil && localVarOptionals.TargetNfFqdn.IsSet() && localVarOptionals.TargetNfFqdn.Value() != "" {
   145  		localVarQueryParams.Add("target-nf-fqdn", openapi.ParameterToString(localVarOptionals.TargetNfFqdn.Value(), ""))
   146  	}
   147  	if localVarOptionals != nil && localVarOptionals.HnrfUri.IsSet() && localVarOptionals.HnrfUri.Value() != "" {
   148  		localVarQueryParams.Add("hnrf-uri", openapi.ParameterToString(localVarOptionals.HnrfUri.Value(), ""))
   149  	}
   150  	if localVarOptionals != nil && localVarOptionals.Snssais.IsSet() {
   151  		localVarQueryParams.Add("snssais", openapi.ParameterToString(localVarOptionals.Snssais.Value(), "multi"))
   152  	}
   153  	if localVarOptionals != nil && localVarOptionals.Dnn.IsSet() && localVarOptionals.Dnn.Value() != "" {
   154  		localVarQueryParams.Add("dnn", openapi.ParameterToString(localVarOptionals.Dnn.Value(), ""))
   155  	}
   156  	if localVarOptionals != nil && localVarOptionals.NsiList.IsSet() {
   157  		localVarQueryParams.Add("nsi-list", openapi.ParameterToString(localVarOptionals.NsiList.Value(), "csv"))
   158  	}
   159  	if localVarOptionals != nil && localVarOptionals.SmfServingArea.IsSet() && localVarOptionals.SmfServingArea.Value() != "" {
   160  		localVarQueryParams.Add("smf-serving-area", openapi.ParameterToString(localVarOptionals.SmfServingArea.Value(), ""))
   161  	}
   162  	if localVarOptionals != nil && localVarOptionals.Tai.IsSet() {
   163  		localVarQueryParams.Add("tai", openapi.ParameterToString(localVarOptionals.Tai.Value(), ""))
   164  	}
   165  	if localVarOptionals != nil && localVarOptionals.AmfRegionId.IsSet() && localVarOptionals.AmfRegionId.Value() != "" {
   166  		localVarQueryParams.Add("amf-region-id", openapi.ParameterToString(localVarOptionals.AmfRegionId.Value(), ""))
   167  	}
   168  	if localVarOptionals != nil && localVarOptionals.AmfSetId.IsSet() && localVarOptionals.AmfSetId.Value() != "" {
   169  		localVarQueryParams.Add("amf-set-id", openapi.ParameterToString(localVarOptionals.AmfSetId.Value(), ""))
   170  	}
   171  	if localVarOptionals != nil && localVarOptionals.Guami.IsSet() {
   172  		localVarQueryParams.Add("guami", openapi.ParameterToString(localVarOptionals.Guami.Value(), ""))
   173  	}
   174  	if localVarOptionals != nil && localVarOptionals.Supi.IsSet() && localVarOptionals.Supi.Value() != "" {
   175  		localVarQueryParams.Add("supi", openapi.ParameterToString(localVarOptionals.Supi.Value(), ""))
   176  	}
   177  	if localVarOptionals != nil && localVarOptionals.UeIpv4Address.IsSet() && localVarOptionals.UeIpv4Address.Value() != "" {
   178  		localVarQueryParams.Add("ue-ipv4-address", openapi.ParameterToString(localVarOptionals.UeIpv4Address.Value(), ""))
   179  	}
   180  	if localVarOptionals != nil && localVarOptionals.IpDomain.IsSet() && localVarOptionals.IpDomain.Value() != "" {
   181  		localVarQueryParams.Add("ip-domain", openapi.ParameterToString(localVarOptionals.IpDomain.Value(), ""))
   182  	}
   183  	if localVarOptionals != nil && localVarOptionals.UeIpv6Prefix.IsSet() {
   184  		localVarQueryParams.Add("ue-ipv6-prefix", openapi.ParameterToString(localVarOptionals.UeIpv6Prefix.Value(), ""))
   185  	}
   186  	if localVarOptionals != nil && localVarOptionals.PgwInd.IsSet() {
   187  		localVarQueryParams.Add("pgw-ind", openapi.ParameterToString(localVarOptionals.PgwInd.Value(), ""))
   188  	}
   189  	if localVarOptionals != nil && localVarOptionals.Pgw.IsSet() && localVarOptionals.Pgw.Value() != "" {
   190  		localVarQueryParams.Add("pgw", openapi.ParameterToString(localVarOptionals.Pgw.Value(), ""))
   191  	}
   192  	if localVarOptionals != nil && localVarOptionals.Gpsi.IsSet() && localVarOptionals.Gpsi.Value() != "" {
   193  		localVarQueryParams.Add("gpsi", openapi.ParameterToString(localVarOptionals.Gpsi.Value(), ""))
   194  	}
   195  	if localVarOptionals != nil && localVarOptionals.ExternalGroupIdentity.IsSet() && localVarOptionals.ExternalGroupIdentity.Value() != "" {
   196  		localVarQueryParams.Add("external-group-identity", openapi.ParameterToString(localVarOptionals.ExternalGroupIdentity.Value(), ""))
   197  	}
   198  	if localVarOptionals != nil && localVarOptionals.DataSet.IsSet() {
   199  		localVarQueryParams.Add("data-set", openapi.ParameterToString(localVarOptionals.DataSet.Value(), ""))
   200  	}
   201  	if localVarOptionals != nil && localVarOptionals.RoutingIndicator.IsSet() && localVarOptionals.RoutingIndicator.Value() != "" {
   202  		localVarQueryParams.Add("routing-indicator", openapi.ParameterToString(localVarOptionals.RoutingIndicator.Value(), ""))
   203  	}
   204  	if localVarOptionals != nil && localVarOptionals.GroupIdList.IsSet() {
   205  		localVarQueryParams.Add("group-id-list", openapi.ParameterToString(localVarOptionals.GroupIdList.Value(), "csv"))
   206  	}
   207  	if localVarOptionals != nil && localVarOptionals.DnaiList.IsSet() {
   208  		localVarQueryParams.Add("dnai-list", openapi.ParameterToString(localVarOptionals.DnaiList.Value(), "csv"))
   209  	}
   210  	if localVarOptionals != nil && localVarOptionals.SupportedFeatures.IsSet() && localVarOptionals.SupportedFeatures.Value() != "" {
   211  		localVarQueryParams.Add("supported-features", openapi.ParameterToString(localVarOptionals.SupportedFeatures.Value(), ""))
   212  	}
   213  	if localVarOptionals != nil && localVarOptionals.UpfIwkEpsInd.IsSet() {
   214  		localVarQueryParams.Add("upf-iwk-eps-ind", openapi.ParameterToString(localVarOptionals.UpfIwkEpsInd.Value(), ""))
   215  	}
   216  	if localVarOptionals != nil && localVarOptionals.ChfSupportedPlmn.IsSet() {
   217  		localVarQueryParams.Add("chf-supported-plmn", openapi.ParameterToString(localVarOptionals.ChfSupportedPlmn.Value(), ""))
   218  	}
   219  	if localVarOptionals != nil && localVarOptionals.PreferredLocality.IsSet() && localVarOptionals.PreferredLocality.Value() != "" {
   220  		localVarQueryParams.Add("preferred-locality", openapi.ParameterToString(localVarOptionals.PreferredLocality.Value(), ""))
   221  	}
   222  	if localVarOptionals != nil && localVarOptionals.AccessType.IsSet() {
   223  		localVarQueryParams.Add("access-type", openapi.ParameterToString(localVarOptionals.AccessType.Value(), ""))
   224  	}
   225  
   226  	localVarHTTPContentTypes := []string{"application/json"}
   227  
   228  	localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes'
   229  
   230  	// to determine the Accept header
   231  	localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"}
   232  
   233  	// set Accept header
   234  	localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts)
   235  	if localVarHTTPHeaderAccept != "" {
   236  		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
   237  	}
   238  
   239  	if localVarOptionals != nil && localVarOptionals.IfNoneMatch.IsSet() {
   240  		localVarHeaderParams["If-None-Match"] = openapi.ParameterToString(localVarOptionals.IfNoneMatch.Value(), "")
   241  	}
   242  
   243  	r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   244  	if err != nil {
   245  		return localVarReturnValue, nil, err
   246  	}
   247  
   248  	localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r)
   249  	if err != nil || localVarHTTPResponse == nil {
   250  		return localVarReturnValue, localVarHTTPResponse, err
   251  	}
   252  
   253  	localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
   254  	localVarHTTPResponse.Body.Close()
   255  	if err != nil {
   256  		return localVarReturnValue, localVarHTTPResponse, err
   257  	}
   258  
   259  	apiError := openapi.GenericOpenAPIError{
   260  		RawBody:     localVarBody,
   261  		ErrorStatus: localVarHTTPResponse.Status,
   262  	}
   263  
   264  	switch localVarHTTPResponse.StatusCode {
   265  	case 200:
   266  		err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   267  		if err != nil {
   268  			apiError.ErrorStatus = err.Error()
   269  		}
   270  		return localVarReturnValue, localVarHTTPResponse, nil
   271  	case 307:
   272  		return localVarReturnValue, localVarHTTPResponse, nil
   273  	case 400:
   274  		var v models.ProblemDetails
   275  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   276  		if err != nil {
   277  			apiError.ErrorStatus = err.Error()
   278  			return localVarReturnValue, localVarHTTPResponse, apiError
   279  		}
   280  		apiError.ErrorModel = v
   281  		return localVarReturnValue, localVarHTTPResponse, apiError
   282  	case 403:
   283  		var v models.ProblemDetails
   284  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   285  		if err != nil {
   286  			apiError.ErrorStatus = err.Error()
   287  			return localVarReturnValue, localVarHTTPResponse, apiError
   288  		}
   289  		apiError.ErrorModel = v
   290  		return localVarReturnValue, localVarHTTPResponse, apiError
   291  	case 404:
   292  		var v models.ProblemDetails
   293  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   294  		if err != nil {
   295  			apiError.ErrorStatus = err.Error()
   296  			return localVarReturnValue, localVarHTTPResponse, apiError
   297  		}
   298  		apiError.ErrorModel = v
   299  		return localVarReturnValue, localVarHTTPResponse, apiError
   300  	case 411:
   301  		var v models.ProblemDetails
   302  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   303  		if err != nil {
   304  			apiError.ErrorStatus = err.Error()
   305  			return localVarReturnValue, localVarHTTPResponse, apiError
   306  		}
   307  		apiError.ErrorModel = v
   308  		return localVarReturnValue, localVarHTTPResponse, apiError
   309  	case 413:
   310  		var v models.ProblemDetails
   311  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   312  		if err != nil {
   313  			apiError.ErrorStatus = err.Error()
   314  			return localVarReturnValue, localVarHTTPResponse, apiError
   315  		}
   316  		apiError.ErrorModel = v
   317  		return localVarReturnValue, localVarHTTPResponse, apiError
   318  	case 415:
   319  		var v models.ProblemDetails
   320  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   321  		if err != nil {
   322  			apiError.ErrorStatus = err.Error()
   323  			return localVarReturnValue, localVarHTTPResponse, apiError
   324  		}
   325  		apiError.ErrorModel = v
   326  		return localVarReturnValue, localVarHTTPResponse, apiError
   327  	case 500:
   328  		var v models.ProblemDetails
   329  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   330  		if err != nil {
   331  			apiError.ErrorStatus = err.Error()
   332  			return localVarReturnValue, localVarHTTPResponse, apiError
   333  		}
   334  		apiError.ErrorModel = v
   335  		return localVarReturnValue, localVarHTTPResponse, apiError
   336  	case 501:
   337  		var v models.ProblemDetails
   338  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   339  		if err != nil {
   340  			apiError.ErrorStatus = err.Error()
   341  			return localVarReturnValue, localVarHTTPResponse, apiError
   342  		}
   343  		apiError.ErrorModel = v
   344  		return localVarReturnValue, localVarHTTPResponse, apiError
   345  	case 503:
   346  		var v models.ProblemDetails
   347  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   348  		if err != nil {
   349  			apiError.ErrorStatus = err.Error()
   350  			return localVarReturnValue, localVarHTTPResponse, apiError
   351  		}
   352  		apiError.ErrorModel = v
   353  		return localVarReturnValue, localVarHTTPResponse, apiError
   354  	default:
   355  		return localVarReturnValue, localVarHTTPResponse, nil
   356  	}
   357  }