github.com/free5gc/openapi@v1.0.8/Nsmf_PDUSession/api_individual_pdu_session_hsmf.go (about)

     1  /*
     2   * Nsmf_PDUSession
     3   *
     4   * SMF PDU Session Service
     5   *
     6   * API version: 1.0.0
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package Nsmf_PDUSession
    11  
    12  import (
    13  	"context"
    14  	"fmt"
    15  	"io/ioutil"
    16  	"net/http"
    17  	"net/url"
    18  	"strings"
    19  
    20  	"github.com/antihax/optional"
    21  
    22  	"github.com/free5gc/openapi"
    23  	"github.com/free5gc/openapi/models"
    24  )
    25  
    26  // Linger please
    27  var (
    28  	_ context.Context
    29  )
    30  
    31  type IndividualPDUSessionHSMFApiService service
    32  
    33  /*
    34  IndividualPDUSessionHSMFApiService Release
    35   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    36   * @param pduSessionRef PDU session reference
    37   * @param optional nil or *ReleasePduSessionParamOpts - Optional Parameters:
    38   * @param "ReleaseData" (optional.Interface of ReleaseData) -  representation of the data to be sent to H-SMF when releasing the PDU session
    39  */
    40  
    41  type ReleasePduSessionParamOpts struct {
    42  	ReleaseData optional.Interface
    43  }
    44  
    45  func (a *IndividualPDUSessionHSMFApiService) ReleasePduSession(ctx context.Context, pduSessionRef string, localVarOptionals *ReleasePduSessionParamOpts) (*http.Response, error) {
    46  	var (
    47  		localVarHttpMethod   = strings.ToUpper("Post")
    48  		localVarPostBody     interface{}
    49  		localVarFormFileName string
    50  		localVarFileName     string
    51  		localVarFileBytes    []byte
    52  	)
    53  
    54  	// create path and map variables
    55  	localVarPath := a.client.cfg.BasePath() + "/pdu-sessions/{pduSessionRef}/release"
    56  	localVarPath = strings.Replace(localVarPath, "{"+"pduSessionRef"+"}", fmt.Sprintf("%v", pduSessionRef), -1)
    57  
    58  	localVarHeaderParams := make(map[string]string)
    59  	localVarQueryParams := url.Values{}
    60  	localVarFormParams := url.Values{}
    61  
    62  	localVarHttpContentTypes := []string{"application/json"}
    63  
    64  	localVarHeaderParams["Content-Type"] = localVarHttpContentTypes[0] // use the first content type specified in 'consumes'
    65  
    66  	// to determine the Accept header
    67  	localVarHttpHeaderAccepts := []string{"application/problem+json"}
    68  
    69  	// set Accept header
    70  	localVarHttpHeaderAccept := openapi.SelectHeaderAccept(localVarHttpHeaderAccepts)
    71  	if localVarHttpHeaderAccept != "" {
    72  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    73  	}
    74  
    75  	// body params
    76  	if localVarOptionals != nil && localVarOptionals.ReleaseData.IsSet() {
    77  		localVarOptionalReleaseData, localVarOptionalReleaseDataok := localVarOptionals.ReleaseData.Value().(models.ReleaseData)
    78  		if !localVarOptionalReleaseDataok {
    79  			return nil, openapi.ReportError("releaseData should be ReleaseData")
    80  		}
    81  		localVarPostBody = &localVarOptionalReleaseData
    82  	}
    83  
    84  	r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    85  	if err != nil {
    86  		return nil, err
    87  	}
    88  
    89  	localVarHttpResponse, err := openapi.CallAPI(a.client.cfg, r)
    90  	if err != nil || localVarHttpResponse == nil {
    91  		return localVarHttpResponse, err
    92  	}
    93  
    94  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    95  	localVarHttpResponse.Body.Close()
    96  	if err != nil {
    97  		return localVarHttpResponse, err
    98  	}
    99  
   100  	apiError := openapi.GenericOpenAPIError{
   101  		RawBody:     localVarBody,
   102  		ErrorStatus: localVarHttpResponse.Status,
   103  	}
   104  	switch localVarHttpResponse.StatusCode {
   105  	case 204:
   106  		return localVarHttpResponse, nil
   107  	case 400:
   108  		var v models.ProblemDetails
   109  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   110  		if err != nil {
   111  			apiError.ErrorStatus = err.Error()
   112  			return localVarHttpResponse, apiError
   113  		}
   114  		apiError.ErrorModel = v
   115  		return localVarHttpResponse, apiError
   116  	case 403:
   117  		var v models.ProblemDetails
   118  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   119  		if err != nil {
   120  			apiError.ErrorStatus = err.Error()
   121  			return localVarHttpResponse, apiError
   122  		}
   123  		apiError.ErrorModel = v
   124  		return localVarHttpResponse, apiError
   125  	case 404:
   126  		var v models.ProblemDetails
   127  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   128  		if err != nil {
   129  			apiError.ErrorStatus = err.Error()
   130  			return localVarHttpResponse, apiError
   131  		}
   132  		apiError.ErrorModel = v
   133  		return localVarHttpResponse, apiError
   134  	case 411:
   135  		var v models.ProblemDetails
   136  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   137  		if err != nil {
   138  			apiError.ErrorStatus = err.Error()
   139  			return localVarHttpResponse, apiError
   140  		}
   141  		apiError.ErrorModel = v
   142  		return localVarHttpResponse, apiError
   143  	case 413:
   144  		var v models.ProblemDetails
   145  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   146  		if err != nil {
   147  			apiError.ErrorStatus = err.Error()
   148  			return localVarHttpResponse, apiError
   149  		}
   150  		apiError.ErrorModel = v
   151  		return localVarHttpResponse, apiError
   152  	case 415:
   153  		var v models.ProblemDetails
   154  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   155  		if err != nil {
   156  			apiError.ErrorStatus = err.Error()
   157  			return localVarHttpResponse, apiError
   158  		}
   159  		apiError.ErrorModel = v
   160  		return localVarHttpResponse, apiError
   161  	case 429:
   162  		var v models.ProblemDetails
   163  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   164  		if err != nil {
   165  			apiError.ErrorStatus = err.Error()
   166  			return localVarHttpResponse, apiError
   167  		}
   168  		apiError.ErrorModel = v
   169  		return localVarHttpResponse, apiError
   170  	case 500:
   171  		var v models.ProblemDetails
   172  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   173  		if err != nil {
   174  			apiError.ErrorStatus = err.Error()
   175  			return localVarHttpResponse, apiError
   176  		}
   177  		apiError.ErrorModel = v
   178  		return localVarHttpResponse, apiError
   179  	case 503:
   180  		var v models.ProblemDetails
   181  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   182  		if err != nil {
   183  			apiError.ErrorStatus = err.Error()
   184  			return localVarHttpResponse, apiError
   185  		}
   186  		apiError.ErrorModel = v
   187  		return localVarHttpResponse, apiError
   188  	default:
   189  		return localVarHttpResponse, openapi.ReportError("%d is not a valid status code in ReleasePduSession", localVarHttpResponse.StatusCode)
   190  	}
   191  }
   192  
   193  /*
   194  IndividualPDUSessionHSMFApiService Update (initiated by V-SMF)
   195   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   196   * @param pduSessionRef PDU session reference
   197   * @param hsmfUpdateData representation of the updates to apply to the PDU session
   198  @return HsmfUpdatedData
   199  */
   200  
   201  func (a *IndividualPDUSessionHSMFApiService) UpdatePduSession(ctx context.Context, pduSessionRef string, updatePduSessionRequest models.UpdatePduSessionRequest) (models.UpdatePduSessionResponse, *http.Response, error) {
   202  	var (
   203  		localVarHttpMethod   = strings.ToUpper("Post")
   204  		localVarPostBody     interface{}
   205  		localVarFormFileName string
   206  		localVarFileName     string
   207  		localVarFileBytes    []byte
   208  		localVarReturnValue  models.UpdatePduSessionResponse
   209  	)
   210  
   211  	// create path and map variables
   212  	localVarPath := a.client.cfg.BasePath() + "/pdu-sessions/{pduSessionRef}/modify"
   213  	localVarPath = strings.Replace(localVarPath, "{"+"pduSessionRef"+"}", fmt.Sprintf("%v", pduSessionRef), -1)
   214  
   215  	localVarHeaderParams := make(map[string]string)
   216  	localVarQueryParams := url.Values{}
   217  	localVarFormParams := url.Values{}
   218  
   219  	// to determine the request Content-Type header
   220  	if updatePduSessionRequest.BinaryDataN1SmInfoFromUe != nil || updatePduSessionRequest.BinaryDataUnknownN1SmInfo != nil {
   221  		localVarHeaderParams["Content-Type"] = "multipart/related"
   222  		localVarPostBody = &updatePduSessionRequest
   223  	} else {
   224  		localVarHeaderParams["Content-Type"] = "application/json"
   225  		localVarPostBody = updatePduSessionRequest.JsonData
   226  	}
   227  
   228  	// to determine the Accept header
   229  	localVarHttpHeaderAccepts := []string{"application/json", "multipart/related", "application/problem+json"}
   230  
   231  	// set Accept header
   232  	localVarHttpHeaderAccept := openapi.SelectHeaderAccept(localVarHttpHeaderAccepts)
   233  	if localVarHttpHeaderAccept != "" {
   234  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   235  	}
   236  
   237  	r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   238  	if err != nil {
   239  		return localVarReturnValue, nil, err
   240  	}
   241  
   242  	localVarHttpResponse, err := openapi.CallAPI(a.client.cfg, r)
   243  	if err != nil || localVarHttpResponse == nil {
   244  		return localVarReturnValue, localVarHttpResponse, err
   245  	}
   246  
   247  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   248  	localVarHttpResponse.Body.Close()
   249  	if err != nil {
   250  		return localVarReturnValue, localVarHttpResponse, err
   251  	}
   252  
   253  	apiError := openapi.GenericOpenAPIError{
   254  		RawBody:     localVarBody,
   255  		ErrorStatus: localVarHttpResponse.Status,
   256  	}
   257  	switch localVarHttpResponse.StatusCode {
   258  	case 200:
   259  		err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   260  		if err != nil {
   261  			apiError.ErrorStatus = err.Error()
   262  		}
   263  		return localVarReturnValue, localVarHttpResponse, nil
   264  	case 400:
   265  		var v models.UpdatePduSessionErrorResponse
   266  		err = openapi.Deserialize(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   267  		if err != nil {
   268  			apiError.ErrorStatus = err.Error()
   269  			return localVarReturnValue, localVarHttpResponse, apiError
   270  		}
   271  		apiError.ErrorModel = v
   272  		return localVarReturnValue, localVarHttpResponse, apiError
   273  	case 403:
   274  		var v models.UpdatePduSessionErrorResponse
   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 404:
   283  		var v models.UpdatePduSessionErrorResponse
   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 411:
   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 413:
   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 415:
   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 429:
   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.UpdatePduSessionErrorResponse
   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 503:
   337  		var v models.UpdatePduSessionErrorResponse
   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  	default:
   346  		return localVarReturnValue, localVarHttpResponse, openapi.ReportError("%d is not a valid status code in UpdatePduSession", localVarHttpResponse.StatusCode)
   347  	}
   348  }