github.com/free5gc/openapi@v1.0.8/Nnssf_NSSelection/api_network_slice_information_document.go (about)

     1  /*
     2   * NSSF NS Selection
     3   *
     4   * NSSF Network Slice Selection Service
     5   *
     6   * API version: 1.0.0
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package Nnssf_NSSelection
    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 NetworkSliceInformationDocumentApiService service
    31  
    32  /*
    33  NetworkSliceInformationDocumentApiService Retrieve the Network Slice Selection Information
    34   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    35   * @param nfType NF type of the NF service consumer
    36   * @param nfId NF Instance ID of the NF service consumer
    37   * @param optional nil or *NSSelectionGetParamOpts - Optional Parameters:
    38   * @param "SliceInfoRequestForRegistration" (optional.Interface of SliceInfoForRegistration) -  Requested network slice information during Registration procedure
    39   * @param "SliceInfoRequestForPduSession" (optional.Interface of SliceInfoForPduSession) -  Requested network slice information during PDU session establishment procedure
    40   * @param "HomePlmnId" (optional.Interface of PlmnId) -  PLMN ID of the HPLMN
    41   * @param "Tai" (optional.Interface of Tai) -  TAI of the UE
    42   * @param "SupportedFeatures" (optional.String) -  Features required to be supported by the NFs in the target slice instance
    43  @return AuthorizedNetworkSliceInfo
    44  */
    45  
    46  type NSSelectionGetParamOpts struct {
    47  	SliceInfoRequestForRegistration optional.Interface
    48  	SliceInfoRequestForPduSession   optional.Interface
    49  	HomePlmnId                      optional.Interface
    50  	Tai                             optional.Interface
    51  	SupportedFeatures               optional.String
    52  }
    53  
    54  func (a *NetworkSliceInformationDocumentApiService) NSSelectionGet(ctx context.Context, nfType NfType, nfId string, localVarOptionals *NSSelectionGetParamOpts) (AuthorizedNetworkSliceInfo, *http.Response, error) {
    55  	var (
    56  		localVarHTTPMethod   = strings.ToUpper("Get")
    57  		localVarPostBody     interface{}
    58  		localVarFormFileName string
    59  		localVarFileName     string
    60  		localVarFileBytes    []byte
    61  		localVarReturnValue  AuthorizedNetworkSliceInfo
    62  	)
    63  
    64  	// create path and map variables
    65  	localVarPath := a.client.cfg.BasePath() + "/network-slice-information"
    66  
    67  	localVarHeaderParams := make(map[string]string)
    68  	localVarQueryParams := url.Values{}
    69  	localVarFormParams := url.Values{}
    70  
    71  	localVarQueryParams.Add("nf-type", openapi.ParameterToString(nfType, ""))
    72  	localVarQueryParams.Add("nf-id", openapi.ParameterToString(nfId, ""))
    73  	if localVarOptionals != nil && localVarOptionals.SliceInfoRequestForRegistration.IsSet() {
    74  		localVarQueryParams.Add("slice-info-request-for-registration", openapi.ParameterToString(localVarOptionals.SliceInfoRequestForRegistration.Value(), ""))
    75  	}
    76  	if localVarOptionals != nil && localVarOptionals.SliceInfoRequestForPduSession.IsSet() {
    77  		localVarQueryParams.Add("slice-info-request-for-pdu-session", openapi.ParameterToString(localVarOptionals.SliceInfoRequestForPduSession.Value(), ""))
    78  	}
    79  	if localVarOptionals != nil && localVarOptionals.HomePlmnId.IsSet() {
    80  		localVarQueryParams.Add("home-plmn-id", openapi.ParameterToString(localVarOptionals.HomePlmnId.Value(), ""))
    81  	}
    82  	if localVarOptionals != nil && localVarOptionals.Tai.IsSet() {
    83  		localVarQueryParams.Add("tai", openapi.ParameterToString(localVarOptionals.Tai.Value(), ""))
    84  	}
    85  	if localVarOptionals != nil && localVarOptionals.SupportedFeatures.IsSet() && localVarOptionals.SupportedFeatures.Value() != "" {
    86  		localVarQueryParams.Add("supported-features", openapi.ParameterToString(localVarOptionals.SupportedFeatures.Value(), ""))
    87  	}
    88  
    89  	localVarHTTPContentTypes := []string{"application/json"}
    90  
    91  	localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes'
    92  
    93  	// to determine the Accept header
    94  	localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"}
    95  
    96  	// set Accept header
    97  	localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts)
    98  	if localVarHTTPHeaderAccept != "" {
    99  		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
   100  	}
   101  
   102  	r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   103  	if err != nil {
   104  		return localVarReturnValue, nil, err
   105  	}
   106  
   107  	localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r)
   108  	if err != nil || localVarHTTPResponse == nil {
   109  		return localVarReturnValue, localVarHTTPResponse, err
   110  	}
   111  
   112  	localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
   113  	localVarHTTPResponse.Body.Close()
   114  	if err != nil {
   115  		return localVarReturnValue, localVarHTTPResponse, err
   116  	}
   117  
   118  	apiError := openapi.GenericOpenAPIError{
   119  		RawBody:     localVarBody,
   120  		ErrorStatus: localVarHTTPResponse.Status,
   121  	}
   122  
   123  	switch localVarHTTPResponse.StatusCode {
   124  	case 200:
   125  		err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   126  		if err != nil {
   127  			apiError.ErrorStatus = err.Error()
   128  		}
   129  		return localVarReturnValue, localVarHTTPResponse, nil
   130  	case 400:
   131  		var v ProblemDetails
   132  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   133  		if err != nil {
   134  			apiError.ErrorStatus = err.Error()
   135  			return localVarReturnValue, localVarHTTPResponse, apiError
   136  		}
   137  		apiError.ErrorModel = v
   138  		return localVarReturnValue, localVarHTTPResponse, apiError
   139  	case 401:
   140  		var v ProblemDetails
   141  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   142  		if err != nil {
   143  			apiError.ErrorStatus = err.Error()
   144  			return localVarReturnValue, localVarHTTPResponse, apiError
   145  		}
   146  		apiError.ErrorModel = v
   147  		return localVarReturnValue, localVarHTTPResponse, apiError
   148  	case 403:
   149  		var v ProblemDetails
   150  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   151  		if err != nil {
   152  			apiError.ErrorStatus = err.Error()
   153  			return localVarReturnValue, localVarHTTPResponse, apiError
   154  		}
   155  		apiError.ErrorModel = v
   156  		return localVarReturnValue, localVarHTTPResponse, apiError
   157  	case 404:
   158  		var v ProblemDetails
   159  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   160  		if err != nil {
   161  			apiError.ErrorStatus = err.Error()
   162  			return localVarReturnValue, localVarHTTPResponse, apiError
   163  		}
   164  		apiError.ErrorModel = v
   165  		return localVarReturnValue, localVarHTTPResponse, apiError
   166  	case 406:
   167  		return localVarReturnValue, localVarHTTPResponse, nil
   168  	case 414:
   169  		var v ProblemDetails
   170  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   171  		if err != nil {
   172  			apiError.ErrorStatus = err.Error()
   173  			return localVarReturnValue, localVarHTTPResponse, apiError
   174  		}
   175  		apiError.ErrorModel = v
   176  		return localVarReturnValue, localVarHTTPResponse, apiError
   177  	case 429:
   178  		var v ProblemDetails
   179  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   180  		if err != nil {
   181  			apiError.ErrorStatus = err.Error()
   182  			return localVarReturnValue, localVarHTTPResponse, apiError
   183  		}
   184  		apiError.ErrorModel = v
   185  		return localVarReturnValue, localVarHTTPResponse, apiError
   186  	case 500:
   187  		var v ProblemDetails
   188  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   189  		if err != nil {
   190  			apiError.ErrorStatus = err.Error()
   191  			return localVarReturnValue, localVarHTTPResponse, apiError
   192  		}
   193  		apiError.ErrorModel = v
   194  		return localVarReturnValue, localVarHTTPResponse, apiError
   195  	case 503:
   196  		var v ProblemDetails
   197  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   198  		if err != nil {
   199  			apiError.ErrorStatus = err.Error()
   200  			return localVarReturnValue, localVarHTTPResponse, apiError
   201  		}
   202  		apiError.ErrorModel = v
   203  		return localVarReturnValue, localVarHTTPResponse, apiError
   204  	default:
   205  		return localVarReturnValue, localVarHTTPResponse, nil
   206  	}
   207  }