diff --git a/Nnef_5glanPpSubs/api_class5_glan_parameters_provision_subscriptions.go b/Nnef_5glanPpSubs/api_class5_glan_parameters_provision_subscriptions.go new file mode 100644 index 00000000..02034b70 --- /dev/null +++ b/Nnef_5glanPpSubs/api_class5_glan_parameters_provision_subscriptions.go @@ -0,0 +1,437 @@ +/* +3gpp-5glan-pp + +API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + +API version: 1.1.1 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package Nnef_5glanPpSubs + +import ( + "bytes" + "context" + "io" + "net/http" + "net/url" + "strings" + "bitbucket.org/free5gc-team/openapi/models" +) + + +// Class5GLANParametersProvisionSubscriptionsAPIService Class5GLANParametersProvisionSubscriptionsAPI service +type Class5GLANParametersProvisionSubscriptionsAPIService service + +type ApiCreateAnSubscriptionRequest struct { + ctx context.Context + ApiService *Class5GLANParametersProvisionSubscriptionsAPIService + afId string + model5GLanParametersProvision *models.Model5GLanParametersProvision +} + +// new subscription creation +func (r ApiCreateAnSubscriptionRequest) Model5GLanParametersProvision(model5GLanParametersProvision models.Model5GLanParametersProvision) ApiCreateAnSubscriptionRequest { + r.model5GLanParametersProvision = &model5GLanParametersProvision + return r +} + +func (r ApiCreateAnSubscriptionRequest) Execute() (*models.Model5GLanParametersProvision, *http.Response, error) { + return r.ApiService.CreateAnSubscriptionExecute(r) +} + +/* +CreateAnSubscription Creates a new subscription resource + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param afId Identifier of the AF + @return ApiCreateAnSubscriptionRequest +*/ +func (a *Class5GLANParametersProvisionSubscriptionsAPIService) CreateAnSubscription(ctx context.Context, afId string) ApiCreateAnSubscriptionRequest { + return ApiCreateAnSubscriptionRequest{ + ApiService: a, + ctx: ctx, + afId: afId, + } +} + +// Execute executes the request +// @return Model5GLanParametersProvision +func (a *Class5GLANParametersProvisionSubscriptionsAPIService) CreateAnSubscriptionExecute(r ApiCreateAnSubscriptionRequest) (*models.Model5GLanParametersProvision, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodPost + localVarPostBody interface{} + formFiles []formFile + localVarReturnValue *models.Model5GLanParametersProvision + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "Class5GLANParametersProvisionSubscriptionsAPIService.CreateAnSubscription") + if err != nil { + return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/{afId}/subscriptions" + localVarPath = strings.Replace(localVarPath, "{"+"afId"+"}", url.PathEscape(parameterValueToString(r.afId, "afId")), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + if r.model5GLanParametersProvision == nil { + return localVarReturnValue, nil, reportError("model5GLanParametersProvision is required and must be specified") + } + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = r.model5GLanParametersProvision + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 411 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 413 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 415 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 429 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 503 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + return localVarReturnValue, localVarHTTPResponse, nil +} + +type ApiRealAllSubscriptionsRequest struct { + ctx context.Context + ApiService *Class5GLANParametersProvisionSubscriptionsAPIService + afId string +} + +func (r ApiRealAllSubscriptionsRequest) Execute() ([]models.Model5GLanParametersProvision, *http.Response, error) { + return r.ApiService.RealAllSubscriptionsExecute(r) +} + +/* +RealAllSubscriptions read all of the active subscriptions for the AF + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param afId Identifier of the AF + @return ApiRealAllSubscriptionsRequest +*/ +func (a *Class5GLANParametersProvisionSubscriptionsAPIService) RealAllSubscriptions(ctx context.Context, afId string) ApiRealAllSubscriptionsRequest { + return ApiRealAllSubscriptionsRequest{ + ApiService: a, + ctx: ctx, + afId: afId, + } +} + +// Execute executes the request +// @return []Model5GLanParametersProvision +func (a *Class5GLANParametersProvisionSubscriptionsAPIService) RealAllSubscriptionsExecute(r ApiRealAllSubscriptionsRequest) ([]models.Model5GLanParametersProvision, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodGet + localVarPostBody interface{} + formFiles []formFile + localVarReturnValue []models.Model5GLanParametersProvision + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "Class5GLANParametersProvisionSubscriptionsAPIService.RealAllSubscriptions") + if err != nil { + return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/{afId}/subscriptions" + localVarPath = strings.Replace(localVarPath, "{"+"afId"+"}", url.PathEscape(parameterValueToString(r.afId, "afId")), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 406 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 429 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 503 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + return localVarReturnValue, localVarHTTPResponse, nil +} diff --git a/Nnef_5glanPpSubs/api_individual5_glan_parameters_provision_subscription.go b/Nnef_5glanPpSubs/api_individual5_glan_parameters_provision_subscription.go new file mode 100644 index 00000000..0da1a6f4 --- /dev/null +++ b/Nnef_5glanPpSubs/api_individual5_glan_parameters_provision_subscription.go @@ -0,0 +1,842 @@ +/* +3gpp-5glan-pp + +API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + +API version: 1.1.1 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package Nnef_5glanPpSubs + +import ( + "bytes" + "context" + "io" + "net/http" + "net/url" + "strings" + "bitbucket.org/free5gc-team/openapi/models" +) + + +// Individual5GLANParametersProvisionSubscriptionAPIService Individual5GLANParametersProvisionSubscriptionAPI service +type Individual5GLANParametersProvisionSubscriptionAPIService service + +type ApiDeleteAnSubscriptionRequest struct { + ctx context.Context + ApiService *Individual5GLANParametersProvisionSubscriptionAPIService + afId string + subscriptionId string +} + +func (r ApiDeleteAnSubscriptionRequest) Execute() (*http.Response, error) { + return r.ApiService.DeleteAnSubscriptionExecute(r) +} + +/* +DeleteAnSubscription Deletes an already existing subscription + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param afId Identifier of the AF + @param subscriptionId Identifier of the subscription resource + @return ApiDeleteAnSubscriptionRequest +*/ +func (a *Individual5GLANParametersProvisionSubscriptionAPIService) DeleteAnSubscription(ctx context.Context, afId string, subscriptionId string) ApiDeleteAnSubscriptionRequest { + return ApiDeleteAnSubscriptionRequest{ + ApiService: a, + ctx: ctx, + afId: afId, + subscriptionId: subscriptionId, + } +} + +// Execute executes the request +func (a *Individual5GLANParametersProvisionSubscriptionAPIService) DeleteAnSubscriptionExecute(r ApiDeleteAnSubscriptionRequest) (*http.Response, error) { + var ( + localVarHTTPMethod = http.MethodDelete + localVarPostBody interface{} + formFiles []formFile + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "Individual5GLANParametersProvisionSubscriptionAPIService.DeleteAnSubscription") + if err != nil { + return nil, &GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/{afId}/subscriptions/{subscriptionId}" + localVarPath = strings.Replace(localVarPath, "{"+"afId"+"}", url.PathEscape(parameterValueToString(r.afId, "afId")), -1) + localVarPath = strings.Replace(localVarPath, "{"+"subscriptionId"+"}", url.PathEscape(parameterValueToString(r.subscriptionId, "subscriptionId")), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) + if err != nil { + return nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 429 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 503 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarHTTPResponse, newErr + } + return localVarHTTPResponse, newErr + } + + return localVarHTTPResponse, nil +} + +type ApiFullyUpdateAnSubscriptionRequest struct { + ctx context.Context + ApiService *Individual5GLANParametersProvisionSubscriptionAPIService + afId string + subscriptionId string + model5GLanParametersProvision *models.Model5GLanParametersProvision +} + +// Parameters to update/replace the existing subscription +func (r ApiFullyUpdateAnSubscriptionRequest) Model5GLanParametersProvision(model5GLanParametersProvision models.Model5GLanParametersProvision) ApiFullyUpdateAnSubscriptionRequest { + r.model5GLanParametersProvision = &model5GLanParametersProvision + return r +} + +func (r ApiFullyUpdateAnSubscriptionRequest) Execute() (*models.Model5GLanParametersProvision, *http.Response, error) { + return r.ApiService.FullyUpdateAnSubscriptionExecute(r) +} + +/* +FullyUpdateAnSubscription Fully updates/replaces an existing subscription resource + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param afId Identifier of the AF + @param subscriptionId Identifier of the subscription resource + @return ApiFullyUpdateAnSubscriptionRequest +*/ +func (a *Individual5GLANParametersProvisionSubscriptionAPIService) FullyUpdateAnSubscription(ctx context.Context, afId string, subscriptionId string) ApiFullyUpdateAnSubscriptionRequest { + return ApiFullyUpdateAnSubscriptionRequest{ + ApiService: a, + ctx: ctx, + afId: afId, + subscriptionId: subscriptionId, + } +} + +// Execute executes the request +// @return Model5GLanParametersProvision +func (a *Individual5GLANParametersProvisionSubscriptionAPIService) FullyUpdateAnSubscriptionExecute(r ApiFullyUpdateAnSubscriptionRequest) (*models.Model5GLanParametersProvision, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodPut + localVarPostBody interface{} + formFiles []formFile + localVarReturnValue *models.Model5GLanParametersProvision + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "Individual5GLANParametersProvisionSubscriptionAPIService.FullyUpdateAnSubscription") + if err != nil { + return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/{afId}/subscriptions/{subscriptionId}" + localVarPath = strings.Replace(localVarPath, "{"+"afId"+"}", url.PathEscape(parameterValueToString(r.afId, "afId")), -1) + localVarPath = strings.Replace(localVarPath, "{"+"subscriptionId"+"}", url.PathEscape(parameterValueToString(r.subscriptionId, "subscriptionId")), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + if r.model5GLanParametersProvision == nil { + return localVarReturnValue, nil, reportError("model5GLanParametersProvision is required and must be specified") + } + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = r.model5GLanParametersProvision + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 411 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 413 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 415 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 429 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 503 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + return localVarReturnValue, localVarHTTPResponse, nil +} + +type ApiPartialUpdateAnSubscriptionRequest struct { + ctx context.Context + ApiService *Individual5GLANParametersProvisionSubscriptionAPIService + afId string + subscriptionId string + model5GLanParametersProvisionPatch *models.Model5GLanParametersProvisionPatch +} + +func (r ApiPartialUpdateAnSubscriptionRequest) Model5GLanParametersProvisionPatch(model5GLanParametersProvisionPatch models.Model5GLanParametersProvisionPatch) ApiPartialUpdateAnSubscriptionRequest { + r.model5GLanParametersProvisionPatch = &model5GLanParametersProvisionPatch + return r +} + +func (r ApiPartialUpdateAnSubscriptionRequest) Execute() (*models.Model5GLanParametersProvision, *http.Response, error) { + return r.ApiService.PartialUpdateAnSubscriptionExecute(r) +} + +/* +PartialUpdateAnSubscription Partial updates an existing subscription resource + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param afId Identifier of the AF + @param subscriptionId Identifier of the subscription resource + @return ApiPartialUpdateAnSubscriptionRequest +*/ +func (a *Individual5GLANParametersProvisionSubscriptionAPIService) PartialUpdateAnSubscription(ctx context.Context, afId string, subscriptionId string) ApiPartialUpdateAnSubscriptionRequest { + return ApiPartialUpdateAnSubscriptionRequest{ + ApiService: a, + ctx: ctx, + afId: afId, + subscriptionId: subscriptionId, + } +} + +// Execute executes the request +// @return Model5GLanParametersProvision +func (a *Individual5GLANParametersProvisionSubscriptionAPIService) PartialUpdateAnSubscriptionExecute(r ApiPartialUpdateAnSubscriptionRequest) (*models.Model5GLanParametersProvision, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodPatch + localVarPostBody interface{} + formFiles []formFile + localVarReturnValue *models.Model5GLanParametersProvision + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "Individual5GLANParametersProvisionSubscriptionAPIService.PartialUpdateAnSubscription") + if err != nil { + return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/{afId}/subscriptions/{subscriptionId}" + localVarPath = strings.Replace(localVarPath, "{"+"afId"+"}", url.PathEscape(parameterValueToString(r.afId, "afId")), -1) + localVarPath = strings.Replace(localVarPath, "{"+"subscriptionId"+"}", url.PathEscape(parameterValueToString(r.subscriptionId, "subscriptionId")), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + if r.model5GLanParametersProvisionPatch == nil { + return localVarReturnValue, nil, reportError("model5GLanParametersProvisionPatch is required and must be specified") + } + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{"application/merge-patch+json"} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = r.model5GLanParametersProvisionPatch + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 411 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 413 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 415 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 429 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 503 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + return localVarReturnValue, localVarHTTPResponse, nil +} + +type ApiReadAnSubscriptionRequest struct { + ctx context.Context + ApiService *Individual5GLANParametersProvisionSubscriptionAPIService + afId string + subscriptionId string +} + +func (r ApiReadAnSubscriptionRequest) Execute() (*models.Model5GLanParametersProvision, *http.Response, error) { + return r.ApiService.ReadAnSubscriptionExecute(r) +} + +/* +ReadAnSubscription read an active subscription for the AF and the subscription Id + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param afId Identifier of the AF + @param subscriptionId Identifier of the subscription resource + @return ApiReadAnSubscriptionRequest +*/ +func (a *Individual5GLANParametersProvisionSubscriptionAPIService) ReadAnSubscription(ctx context.Context, afId string, subscriptionId string) ApiReadAnSubscriptionRequest { + return ApiReadAnSubscriptionRequest{ + ApiService: a, + ctx: ctx, + afId: afId, + subscriptionId: subscriptionId, + } +} + +// Execute executes the request +// @return Model5GLanParametersProvision +func (a *Individual5GLANParametersProvisionSubscriptionAPIService) ReadAnSubscriptionExecute(r ApiReadAnSubscriptionRequest) (*models.Model5GLanParametersProvision, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodGet + localVarPostBody interface{} + formFiles []formFile + localVarReturnValue *models.Model5GLanParametersProvision + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "Individual5GLANParametersProvisionSubscriptionAPIService.ReadAnSubscription") + if err != nil { + return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/{afId}/subscriptions/{subscriptionId}" + localVarPath = strings.Replace(localVarPath, "{"+"afId"+"}", url.PathEscape(parameterValueToString(r.afId, "afId")), -1) + localVarPath = strings.Replace(localVarPath, "{"+"subscriptionId"+"}", url.PathEscape(parameterValueToString(r.subscriptionId, "subscriptionId")), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 401 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 403 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 404 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 406 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 429 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 500 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + if localVarHTTPResponse.StatusCode == 503 { + var v models.ProblemDetails + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + return localVarReturnValue, localVarHTTPResponse, nil +} diff --git a/Nnef_5glanPpSubs/client.go b/Nnef_5glanPpSubs/client.go new file mode 100644 index 00000000..e2e428a8 --- /dev/null +++ b/Nnef_5glanPpSubs/client.go @@ -0,0 +1,663 @@ +/* +3gpp-5glan-pp + +API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + +API version: 1.1.1 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package Nnef_5glanPpSubs + +import ( + "bytes" + "context" + "encoding/json" + "encoding/xml" + "errors" + "fmt" + "io" + "log" + "mime/multipart" + "net/http" + "net/http/httputil" + "net/url" + "os" + "path/filepath" + "reflect" + "regexp" + "strconv" + "strings" + "time" + "unicode/utf8" + + "golang.org/x/oauth2" +) + +var ( + JsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:[^;]+\+)?json)`) + XmlCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:[^;]+\+)?xml)`) + queryParamSplit = regexp.MustCompile(`(^|&)([^&]+)`) + queryDescape = strings.NewReplacer( "%5B", "[", "%5D", "]" ) +) + +// APIClient manages communication with the 3gpp-5glan-pp API v1.1.1 +// In most cases there should be only one, shared, APIClient. +type APIClient struct { + cfg *Configuration + common service // Reuse a single struct instead of allocating one for each service on the heap. + + // API Services + + Class5GLANParametersProvisionSubscriptionsAPI *Class5GLANParametersProvisionSubscriptionsAPIService + + Individual5GLANParametersProvisionSubscriptionAPI *Individual5GLANParametersProvisionSubscriptionAPIService +} + +type service struct { + client *APIClient +} + +// NewAPIClient creates a new API client. Requires a userAgent string describing your application. +// optionally a custom http.Client to allow for advanced features such as caching. +func NewAPIClient(cfg *Configuration) *APIClient { + if cfg.HTTPClient == nil { + cfg.HTTPClient = http.DefaultClient + } + + c := &APIClient{} + c.cfg = cfg + c.common.client = c + + // API Services + c.Class5GLANParametersProvisionSubscriptionsAPI = (*Class5GLANParametersProvisionSubscriptionsAPIService)(&c.common) + c.Individual5GLANParametersProvisionSubscriptionAPI = (*Individual5GLANParametersProvisionSubscriptionAPIService)(&c.common) + + return c +} + +func atoi(in string) (int, error) { + return strconv.Atoi(in) +} + +// selectHeaderContentType select a content type from the available list. +func selectHeaderContentType(contentTypes []string) string { + if len(contentTypes) == 0 { + return "" + } + if contains(contentTypes, "application/json") { + return "application/json" + } + return contentTypes[0] // use the first content type specified in 'consumes' +} + +// selectHeaderAccept join all accept types and return +func selectHeaderAccept(accepts []string) string { + if len(accepts) == 0 { + return "" + } + + if contains(accepts, "application/json") { + return "application/json" + } + + return strings.Join(accepts, ",") +} + +// contains is a case insensitive match, finding needle in a haystack +func contains(haystack []string, needle string) bool { + for _, a := range haystack { + if strings.EqualFold(a, needle) { + return true + } + } + return false +} + +// Verify optional parameters are of the correct type. +func typeCheckParameter(obj interface{}, expected string, name string) error { + // Make sure there is an object. + if obj == nil { + return nil + } + + // Check the type is as expected. + if reflect.TypeOf(obj).String() != expected { + return fmt.Errorf("expected %s to be of type %s but received %s", name, expected, reflect.TypeOf(obj).String()) + } + return nil +} + +func parameterValueToString( obj interface{}, key string ) string { + if reflect.TypeOf(obj).Kind() != reflect.Ptr { + return fmt.Sprintf("%v", obj) + } + var param,ok = obj.(MappedNullable) + if !ok { + return "" + } + dataMap,err := param.ToMap() + if err != nil { + return "" + } + return fmt.Sprintf("%v", dataMap[key]) +} + +// parameterAddToHeaderOrQuery adds the provided object to the request header or url query +// supporting deep object syntax +func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) { + var v = reflect.ValueOf(obj) + var value = "" + if v == reflect.ValueOf(nil) { + value = "null" + } else { + switch v.Kind() { + case reflect.Invalid: + value = "invalid" + + case reflect.Struct: + if t,ok := obj.(MappedNullable); ok { + dataMap,err := t.ToMap() + if err != nil { + return + } + parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType) + return + } + if t, ok := obj.(time.Time); ok { + parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType) + return + } + value = v.Type().String() + " value" + case reflect.Slice: + var indValue = reflect.ValueOf(obj) + if indValue == reflect.ValueOf(nil) { + return + } + var lenIndValue = indValue.Len() + for i:=0;i 0 || (len(formFiles) > 0) { + if body != nil { + return nil, errors.New("Cannot specify postBody and multipart form at the same time.") + } + body = &bytes.Buffer{} + w := multipart.NewWriter(body) + + for k, v := range formParams { + for _, iv := range v { + if strings.HasPrefix(k, "@") { // file + err = addFile(w, k[1:], iv) + if err != nil { + return nil, err + } + } else { // form value + w.WriteField(k, iv) + } + } + } + for _, formFile := range formFiles { + if len(formFile.fileBytes) > 0 && formFile.fileName != "" { + w.Boundary() + part, err := w.CreateFormFile(formFile.formFileName, filepath.Base(formFile.fileName)) + if err != nil { + return nil, err + } + _, err = part.Write(formFile.fileBytes) + if err != nil { + return nil, err + } + } + } + + // Set the Boundary in the Content-Type + headerParams["Content-Type"] = w.FormDataContentType() + + // Set Content-Length + headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len()) + w.Close() + } + + if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 { + if body != nil { + return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.") + } + body = &bytes.Buffer{} + body.WriteString(formParams.Encode()) + // Set Content-Length + headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len()) + } + + // Setup path and query parameters + url, err := url.Parse(path) + if err != nil { + return nil, err + } + + // Override request host, if applicable + if c.cfg.Host != "" { + url.Host = c.cfg.Host + } + + // Override request scheme, if applicable + if c.cfg.Scheme != "" { + url.Scheme = c.cfg.Scheme + } + + // Adding Query Param + query := url.Query() + for k, v := range queryParams { + for _, iv := range v { + query.Add(k, iv) + } + } + + // Encode the parameters. + url.RawQuery = queryParamSplit.ReplaceAllStringFunc(query.Encode(), func(s string) string { + pieces := strings.Split(s, "=") + pieces[0] = queryDescape.Replace(pieces[0]) + return strings.Join(pieces, "=") + }) + + // Generate a new request + if body != nil { + localVarRequest, err = http.NewRequest(method, url.String(), body) + } else { + localVarRequest, err = http.NewRequest(method, url.String(), nil) + } + if err != nil { + return nil, err + } + + // add header parameters, if any + if len(headerParams) > 0 { + headers := http.Header{} + for h, v := range headerParams { + headers[h] = []string{v} + } + localVarRequest.Header = headers + } + + // Add the user agent to the request. + localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent) + + if ctx != nil { + // add context to the request + localVarRequest = localVarRequest.WithContext(ctx) + + // Walk through any authentication. + + // OAuth2 authentication + if tok, ok := ctx.Value(ContextOAuth2).(oauth2.TokenSource); ok { + // We were able to grab an oauth2 token from the context + var latestToken *oauth2.Token + if latestToken, err = tok.Token(); err != nil { + return nil, err + } + + latestToken.SetAuthHeader(localVarRequest) + } + + } + + for header, value := range c.cfg.DefaultHeader { + localVarRequest.Header.Add(header, value) + } + return localVarRequest, nil +} + +func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) { + if len(b) == 0 { + return nil + } + if s, ok := v.(*string); ok { + *s = string(b) + return nil + } + if f, ok := v.(*os.File); ok { + f, err = os.CreateTemp("", "HttpClientFile") + if err != nil { + return + } + _, err = f.Write(b) + if err != nil { + return + } + _, err = f.Seek(0, io.SeekStart) + return + } + if f, ok := v.(**os.File); ok { + *f, err = os.CreateTemp("", "HttpClientFile") + if err != nil { + return + } + _, err = (*f).Write(b) + if err != nil { + return + } + _, err = (*f).Seek(0, io.SeekStart) + return + } + if XmlCheck.MatchString(contentType) { + if err = xml.Unmarshal(b, v); err != nil { + return err + } + return nil + } + if JsonCheck.MatchString(contentType) { + if actualObj, ok := v.(interface{ GetActualInstance() interface{} }); ok { // oneOf, anyOf schemas + if unmarshalObj, ok := actualObj.(interface{ UnmarshalJSON([]byte) error }); ok { // make sure it has UnmarshalJSON defined + if err = unmarshalObj.UnmarshalJSON(b); err != nil { + return err + } + } else { + return errors.New("Unknown type with GetActualInstance but no unmarshalObj.UnmarshalJSON defined") + } + } else if err = json.Unmarshal(b, v); err != nil { // simple model + return err + } + return nil + } + return errors.New("undefined response type") +} + +// Add a file to the multipart request +func addFile(w *multipart.Writer, fieldName, path string) error { + file, err := os.Open(filepath.Clean(path)) + if err != nil { + return err + } + err = file.Close() + if err != nil { + return err + } + + part, err := w.CreateFormFile(fieldName, filepath.Base(path)) + if err != nil { + return err + } + _, err = io.Copy(part, file) + + return err +} + +// Set request body from an interface{} +func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) { + if bodyBuf == nil { + bodyBuf = &bytes.Buffer{} + } + + if reader, ok := body.(io.Reader); ok { + _, err = bodyBuf.ReadFrom(reader) + } else if fp, ok := body.(*os.File); ok { + _, err = bodyBuf.ReadFrom(fp) + } else if b, ok := body.([]byte); ok { + _, err = bodyBuf.Write(b) + } else if s, ok := body.(string); ok { + _, err = bodyBuf.WriteString(s) + } else if s, ok := body.(*string); ok { + _, err = bodyBuf.WriteString(*s) + } else if JsonCheck.MatchString(contentType) { + err = json.NewEncoder(bodyBuf).Encode(body) + } else if XmlCheck.MatchString(contentType) { + var bs []byte + bs, err = xml.Marshal(body) + if err == nil { + bodyBuf.Write(bs) + } + } + + if err != nil { + return nil, err + } + + if bodyBuf.Len() == 0 { + err = fmt.Errorf("invalid body type %s\n", contentType) + return nil, err + } + return bodyBuf, nil +} + +// detectContentType method is used to figure out `Request.Body` content type for request header +func detectContentType(body interface{}) string { + contentType := "text/plain; charset=utf-8" + kind := reflect.TypeOf(body).Kind() + + switch kind { + case reflect.Struct, reflect.Map, reflect.Ptr: + contentType = "application/json; charset=utf-8" + case reflect.String: + contentType = "text/plain; charset=utf-8" + default: + if b, ok := body.([]byte); ok { + contentType = http.DetectContentType(b) + } else if kind == reflect.Slice { + contentType = "application/json; charset=utf-8" + } + } + + return contentType +} + +// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go +type cacheControl map[string]string + +func parseCacheControl(headers http.Header) cacheControl { + cc := cacheControl{} + ccHeader := headers.Get("Cache-Control") + for _, part := range strings.Split(ccHeader, ",") { + part = strings.Trim(part, " ") + if part == "" { + continue + } + if strings.ContainsRune(part, '=') { + keyval := strings.Split(part, "=") + cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",") + } else { + cc[part] = "" + } + } + return cc +} + +// CacheExpires helper function to determine remaining time before repeating a request. +func CacheExpires(r *http.Response) time.Time { + // Figure out when the cache expires. + var expires time.Time + now, err := time.Parse(time.RFC1123, r.Header.Get("date")) + if err != nil { + return time.Now() + } + respCacheControl := parseCacheControl(r.Header) + + if maxAge, ok := respCacheControl["max-age"]; ok { + lifetime, err := time.ParseDuration(maxAge + "s") + if err != nil { + expires = now + } else { + expires = now.Add(lifetime) + } + } else { + expiresHeader := r.Header.Get("Expires") + if expiresHeader != "" { + expires, err = time.Parse(time.RFC1123, expiresHeader) + if err != nil { + expires = now + } + } + } + return expires +} + +func strlen(s string) int { + return utf8.RuneCountInString(s) +} + +// GenericOpenAPIError Provides access to the body, error and model on returned errors. +type GenericOpenAPIError struct { + body []byte + error string + model interface{} +} + +// Error returns non-empty string if there was an error. +func (e GenericOpenAPIError) Error() string { + return e.error +} + +// Body returns the raw bytes of the response +func (e GenericOpenAPIError) Body() []byte { + return e.body +} + +// Model returns the unpacked model of the error +func (e GenericOpenAPIError) Model() interface{} { + return e.model +} + +// format error message using title and detail when model implements rfc7807 +func formatErrorMessage(status string, v interface{}) string { + str := "" + metaValue := reflect.ValueOf(v).Elem() + + if metaValue.Kind() == reflect.Struct { + field := metaValue.FieldByName("Title") + if field != (reflect.Value{}) { + str = fmt.Sprintf("%s", field.Interface()) + } + + field = metaValue.FieldByName("Detail") + if field != (reflect.Value{}) { + str = fmt.Sprintf("%s (%s)", str, field.Interface()) + } + } + + return strings.TrimSpace(fmt.Sprintf("%s %s", status, str)) +} diff --git a/Nnef_5glanPpSubs/configuration.go b/Nnef_5glanPpSubs/configuration.go new file mode 100644 index 00000000..1f4aa02d --- /dev/null +++ b/Nnef_5glanPpSubs/configuration.go @@ -0,0 +1,224 @@ +/* +3gpp-5glan-pp + +API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + +API version: 1.1.1 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package Nnef_5glanPpSubs + +import ( + "context" + "fmt" + "net/http" + "strings" +) + +// contextKeys are used to identify the type of value in the context. +// Since these are string, it is possible to get a short description of the +// context key for logging and debugging using key.String(). + +type contextKey string + +func (c contextKey) String() string { + return "auth " + string(c) +} + +var ( + // ContextOAuth2 takes an oauth2.TokenSource as authentication for the request. + ContextOAuth2 = contextKey("token") + + // ContextServerIndex uses a server configuration from the index. + ContextServerIndex = contextKey("serverIndex") + + // ContextOperationServerIndices uses a server configuration from the index mapping. + ContextOperationServerIndices = contextKey("serverOperationIndices") + + // ContextServerVariables overrides a server configuration variables. + ContextServerVariables = contextKey("serverVariables") + + // ContextOperationServerVariables overrides a server configuration variables using operation specific values. + ContextOperationServerVariables = contextKey("serverOperationVariables") +) + +// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth +type BasicAuth struct { + UserName string `json:"userName,omitempty"` + Password string `json:"password,omitempty"` +} + +// APIKey provides API key based authentication to a request passed via context using ContextAPIKey +type APIKey struct { + Key string + Prefix string +} + +// ServerVariable stores the information about a server variable +type ServerVariable struct { + Description string + DefaultValue string + EnumValues []string +} + +// ServerConfiguration stores the information about a server +type ServerConfiguration struct { + URL string + Description string + Variables map[string]ServerVariable +} + +// ServerConfigurations stores multiple ServerConfiguration items +type ServerConfigurations []ServerConfiguration + +// Configuration stores the configuration of the API client +type Configuration struct { + Host string `json:"host,omitempty"` + Scheme string `json:"scheme,omitempty"` + DefaultHeader map[string]string `json:"defaultHeader,omitempty"` + UserAgent string `json:"userAgent,omitempty"` + Debug bool `json:"debug,omitempty"` + Servers ServerConfigurations + OperationServers map[string]ServerConfigurations + HTTPClient *http.Client +} + +// NewConfiguration returns a new Configuration object +func NewConfiguration() *Configuration { + cfg := &Configuration{ + DefaultHeader: make(map[string]string), + UserAgent: "OpenAPI-Generator/1.0.0/go", + Debug: false, + Servers: ServerConfigurations{ + { + URL: "{apiRoot}/3gpp-5glan-pp/v1", + Description: "No description provided", + Variables: map[string]ServerVariable{ + "apiRoot": ServerVariable{ + Description: "apiRoot as defined in clause 5.2.4 of 3GPP TS 29.122.", + DefaultValue: "https://example.com", + }, + }, + }, + }, + OperationServers: map[string]ServerConfigurations{ + }, + } + return cfg +} + +// AddDefaultHeader adds a new HTTP header to the default header in the request +func (c *Configuration) AddDefaultHeader(key string, value string) { + c.DefaultHeader[key] = value +} + +// URL formats template on a index using given variables +func (sc ServerConfigurations) URL(index int, variables map[string]string) (string, error) { + if index < 0 || len(sc) <= index { + return "", fmt.Errorf("index %v out of range %v", index, len(sc)-1) + } + server := sc[index] + url := server.URL + + // go through variables and replace placeholders + for name, variable := range server.Variables { + if value, ok := variables[name]; ok { + found := bool(len(variable.EnumValues) == 0) + for _, enumValue := range variable.EnumValues { + if value == enumValue { + found = true + } + } + if !found { + return "", fmt.Errorf("the variable %s in the server URL has invalid value %v. Must be %v", name, value, variable.EnumValues) + } + url = strings.Replace(url, "{"+name+"}", value, -1) + } else { + url = strings.Replace(url, "{"+name+"}", variable.DefaultValue, -1) + } + } + return url, nil +} + +// ServerURL returns URL based on server settings +func (c *Configuration) ServerURL(index int, variables map[string]string) (string, error) { + return c.Servers.URL(index, variables) +} + +func getServerIndex(ctx context.Context) (int, error) { + si := ctx.Value(ContextServerIndex) + if si != nil { + if index, ok := si.(int); ok { + return index, nil + } + return 0, reportError("Invalid type %T should be int", si) + } + return 0, nil +} + +func getServerOperationIndex(ctx context.Context, endpoint string) (int, error) { + osi := ctx.Value(ContextOperationServerIndices) + if osi != nil { + if operationIndices, ok := osi.(map[string]int); !ok { + return 0, reportError("Invalid type %T should be map[string]int", osi) + } else { + index, ok := operationIndices[endpoint] + if ok { + return index, nil + } + } + } + return getServerIndex(ctx) +} + +func getServerVariables(ctx context.Context) (map[string]string, error) { + sv := ctx.Value(ContextServerVariables) + if sv != nil { + if variables, ok := sv.(map[string]string); ok { + return variables, nil + } + return nil, reportError("ctx value of ContextServerVariables has invalid type %T should be map[string]string", sv) + } + return nil, nil +} + +func getServerOperationVariables(ctx context.Context, endpoint string) (map[string]string, error) { + osv := ctx.Value(ContextOperationServerVariables) + if osv != nil { + if operationVariables, ok := osv.(map[string]map[string]string); !ok { + return nil, reportError("ctx value of ContextOperationServerVariables has invalid type %T should be map[string]map[string]string", osv) + } else { + variables, ok := operationVariables[endpoint] + if ok { + return variables, nil + } + } + } + return getServerVariables(ctx) +} + +// ServerURLWithContext returns a new server URL given an endpoint +func (c *Configuration) ServerURLWithContext(ctx context.Context, endpoint string) (string, error) { + sc, ok := c.OperationServers[endpoint] + if !ok { + sc = c.Servers + } + + if ctx == nil { + return sc.URL(0, nil) + } + + index, err := getServerOperationIndex(ctx, endpoint) + if err != nil { + return "", err + } + + variables, err := getServerOperationVariables(ctx, endpoint) + if err != nil { + return "", err + } + + return sc.URL(index, variables) +} diff --git a/Nnef_5glanPpSubs/utils.go b/Nnef_5glanPpSubs/utils.go new file mode 100644 index 00000000..ff96f9fa --- /dev/null +++ b/Nnef_5glanPpSubs/utils.go @@ -0,0 +1,361 @@ +/* +3gpp-5glan-pp + +API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + +API version: 1.1.1 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package Nnef_5glanPpSubs + +import ( + "bytes" + "encoding/json" + "fmt" + "reflect" + "time" +) + +// PtrBool is a helper routine that returns a pointer to given boolean value. +func PtrBool(v bool) *bool { return &v } + +// PtrInt is a helper routine that returns a pointer to given integer value. +func PtrInt(v int) *int { return &v } + +// PtrInt32 is a helper routine that returns a pointer to given integer value. +func PtrInt32(v int32) *int32 { return &v } + +// PtrInt64 is a helper routine that returns a pointer to given integer value. +func PtrInt64(v int64) *int64 { return &v } + +// PtrFloat32 is a helper routine that returns a pointer to given float value. +func PtrFloat32(v float32) *float32 { return &v } + +// PtrFloat64 is a helper routine that returns a pointer to given float value. +func PtrFloat64(v float64) *float64 { return &v } + +// PtrString is a helper routine that returns a pointer to given string value. +func PtrString(v string) *string { return &v } + +// PtrTime is helper routine that returns a pointer to given Time value. +func PtrTime(v time.Time) *time.Time { return &v } + +type NullableBool struct { + value *bool + isSet bool +} + +func (v NullableBool) Get() *bool { + return v.value +} + +func (v *NullableBool) Set(val *bool) { + v.value = val + v.isSet = true +} + +func (v NullableBool) IsSet() bool { + return v.isSet +} + +func (v *NullableBool) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableBool(val *bool) *NullableBool { + return &NullableBool{value: val, isSet: true} +} + +func (v NullableBool) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableBool) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} + +type NullableInt struct { + value *int + isSet bool +} + +func (v NullableInt) Get() *int { + return v.value +} + +func (v *NullableInt) Set(val *int) { + v.value = val + v.isSet = true +} + +func (v NullableInt) IsSet() bool { + return v.isSet +} + +func (v *NullableInt) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableInt(val *int) *NullableInt { + return &NullableInt{value: val, isSet: true} +} + +func (v NullableInt) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableInt) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} + +type NullableInt32 struct { + value *int32 + isSet bool +} + +func (v NullableInt32) Get() *int32 { + return v.value +} + +func (v *NullableInt32) Set(val *int32) { + v.value = val + v.isSet = true +} + +func (v NullableInt32) IsSet() bool { + return v.isSet +} + +func (v *NullableInt32) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableInt32(val *int32) *NullableInt32 { + return &NullableInt32{value: val, isSet: true} +} + +func (v NullableInt32) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableInt32) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} + +type NullableInt64 struct { + value *int64 + isSet bool +} + +func (v NullableInt64) Get() *int64 { + return v.value +} + +func (v *NullableInt64) Set(val *int64) { + v.value = val + v.isSet = true +} + +func (v NullableInt64) IsSet() bool { + return v.isSet +} + +func (v *NullableInt64) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableInt64(val *int64) *NullableInt64 { + return &NullableInt64{value: val, isSet: true} +} + +func (v NullableInt64) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableInt64) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} + +type NullableFloat32 struct { + value *float32 + isSet bool +} + +func (v NullableFloat32) Get() *float32 { + return v.value +} + +func (v *NullableFloat32) Set(val *float32) { + v.value = val + v.isSet = true +} + +func (v NullableFloat32) IsSet() bool { + return v.isSet +} + +func (v *NullableFloat32) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableFloat32(val *float32) *NullableFloat32 { + return &NullableFloat32{value: val, isSet: true} +} + +func (v NullableFloat32) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableFloat32) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} + +type NullableFloat64 struct { + value *float64 + isSet bool +} + +func (v NullableFloat64) Get() *float64 { + return v.value +} + +func (v *NullableFloat64) Set(val *float64) { + v.value = val + v.isSet = true +} + +func (v NullableFloat64) IsSet() bool { + return v.isSet +} + +func (v *NullableFloat64) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableFloat64(val *float64) *NullableFloat64 { + return &NullableFloat64{value: val, isSet: true} +} + +func (v NullableFloat64) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableFloat64) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} + +type NullableString struct { + value *string + isSet bool +} + +func (v NullableString) Get() *string { + return v.value +} + +func (v *NullableString) Set(val *string) { + v.value = val + v.isSet = true +} + +func (v NullableString) IsSet() bool { + return v.isSet +} + +func (v *NullableString) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableString(val *string) *NullableString { + return &NullableString{value: val, isSet: true} +} + +func (v NullableString) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableString) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} + +type NullableTime struct { + value *time.Time + isSet bool +} + +func (v NullableTime) Get() *time.Time { + return v.value +} + +func (v *NullableTime) Set(val *time.Time) { + v.value = val + v.isSet = true +} + +func (v NullableTime) IsSet() bool { + return v.isSet +} + +func (v *NullableTime) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableTime(val *time.Time) *NullableTime { + return &NullableTime{value: val, isSet: true} +} + +func (v NullableTime) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableTime) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} + +// IsNil checks if an input is nil +func IsNil(i interface{}) bool { + if i == nil { + return true + } + switch reflect.TypeOf(i).Kind() { + case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.UnsafePointer, reflect.Interface, reflect.Slice: + return reflect.ValueOf(i).IsNil() + case reflect.Array: + return reflect.ValueOf(i).IsZero() + } + return false +} + +type MappedNullable interface { + ToMap() (map[string]interface{}, error) +} + +// A wrapper for strict JSON decoding +func newStrictDecoder(data []byte) *json.Decoder { + dec := json.NewDecoder(bytes.NewBuffer(data)) + dec.DisallowUnknownFields() + return dec +} + +// Prevent trying to import "fmt" +func reportError(format string, a ...interface{}) error { + return fmt.Errorf(format, a...) +} \ No newline at end of file diff --git a/Npcf_UEPolicy/api_default.go b/Npcf_UEPolicy/api_default.go index 9c77054f..aee37c0d 100644 --- a/Npcf_UEPolicy/api_default.go +++ b/Npcf_UEPolicy/api_default.go @@ -17,6 +17,7 @@ import ( "net/url" "strings" + "github.com/free5gc/openapi" "github.com/free5gc/openapi/models" ) @@ -29,8 +30,8 @@ type DefaultApiService service /* DefaultApiService - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param polAssoId Identifier of a policy association + - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + - @param polAssoId Identifier of a policy association */ func (a *DefaultApiService) PoliciesPolAssoIdDelete(ctx context.Context, polAssoId string) (*http.Response, error) { var ( @@ -165,8 +166,9 @@ func (a *DefaultApiService) PoliciesPolAssoIdDelete(ctx context.Context, polAsso /* DefaultApiService - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param polAssoId Identifier of a policy association + - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + - @param polAssoId Identifier of a policy association + @return PolicyAssociation */ func (a *DefaultApiService) PoliciesPolAssoIdGet(ctx context.Context, polAssoId string) (models.PolicyAssociation, *http.Response, error) { @@ -322,9 +324,10 @@ func (a *DefaultApiService) PoliciesPolAssoIdGet(ctx context.Context, polAssoId /* DefaultApiService - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param polAssoId Identifier of a policy association - * @param policyAssociationUpdateRequest + - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + - @param polAssoId Identifier of a policy association + - @param policyAssociationUpdateRequest + @return PolicyUpdate */ func (a *DefaultApiService) PoliciesPolAssoIdUpdatePost(ctx context.Context, polAssoId string, policyAssociationUpdateRequest models.PolicyAssociationUpdateRequest) (models.PolicyUpdate, *http.Response, error) { @@ -512,8 +515,9 @@ func (a *DefaultApiService) PoliciesPolAssoIdUpdatePost(ctx context.Context, pol /* DefaultApiService - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param policyAssociationRequest + - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + - @param policyAssociationRequest + @return PolicyAssociation */ func (a *DefaultApiService) PoliciesPost(ctx context.Context, policyAssociationRequest models.PolicyAssociationRequest) (models.PolicyAssociation, *http.Response, error) { @@ -552,12 +556,12 @@ func (a *DefaultApiService) PoliciesPost(ctx context.Context, policyAssociationR } // body params localVarPostBody = &policyAssociationRequest - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } - localVarHttpResponse, err := a.client.callAPI(r) + localVarHttpResponse, err := openapi.CallAPI(a.client.cfg, r) if err != nil || localVarHttpResponse == nil { return localVarReturnValue, localVarHttpResponse, err } diff --git a/Npcf_UEPolicy/configuration.go b/Npcf_UEPolicy/configuration.go index 8bb41837..11fd57f4 100644 --- a/Npcf_UEPolicy/configuration.go +++ b/Npcf_UEPolicy/configuration.go @@ -62,8 +62,8 @@ type Configuration struct { func NewConfiguration() *Configuration { cfg := &Configuration{ - basePath: "https://example.com/", - url: "{apiRoot}", + basePath: "https://example.com/npcf-ue-policy-control/v1", + url: "{apiRoot}/npcf-ue-policy-control/v1", defaultHeader: make(map[string]string), userAgent: "OpenAPI-Generator/1.0.0/go", } diff --git a/Nudm_ParameterProvision/ParameterProvisioningDataEntry.go b/Nudm_ParameterProvision/ParameterProvisioningDataEntry.go new file mode 100644 index 00000000..665fecdf --- /dev/null +++ b/Nudm_ParameterProvision/ParameterProvisioningDataEntry.go @@ -0,0 +1,105 @@ +package Nudm_ParameterProvision + +import ( + "context" + "fmt" + "io/ioutil" + "net/http" + "net/url" + "strings" + + "github.com/free5gc/openapi" + "github.com/free5gc/openapi/models" +) + +type ParameterProvisioningDataEntryApiService service + +func (a *ParameterProvisioningDataEntryApiService) GetppDataEntry(ctx context.Context, ueId, afInsId string) (models.PpDataEntry, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.PpDataEntry + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/{ueId}/pp-data-store/{afInstanceId}" + localVarPath = strings.Replace(localVarPath, "{"+"ueId"+"}", fmt.Sprintf("%v", ueId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"afInstanceId"+"}", fmt.Sprintf("%v", afInsId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 403: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + case 404: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} diff --git a/Nudm_ParameterProvision/api_5G_VN_Group_Collection.go b/Nudm_ParameterProvision/api_5G_VN_Group_Collection.go new file mode 100644 index 00000000..65687bdc --- /dev/null +++ b/Nudm_ParameterProvision/api_5G_VN_Group_Collection.go @@ -0,0 +1,379 @@ +package Nudm_ParameterProvision + +import ( + "context" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "strings" + + "github.com/free5gc/openapi" + "github.com/free5gc/openapi/models" +) + +var ( + _ context.Context +) + +// Linger please +var ( + _ context.Context +) + +// for NF call UDM API to Get/Modify/Post/Delete 5G VN Group Data +// ref TS29.503 v17.9.0, section 5.6 Nudm_ParameterProvision Service +type VN5GgroupDataCollectionApiService service + +func (a *VN5GgroupDataCollectionApiService) VN5GgroupDataGet(ctx context.Context, externalGroupId string) (models.Model5GvnGroupConfiguration, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.Model5GvnGroupConfiguration + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/5g-vn-groups/{extGroupId}" + localVarPath = strings.Replace(localVarPath, "{"+"extGroupId"+"}", fmt.Sprintf("%v", externalGroupId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 404: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + //TODO: If the original AF is not allowed to get this information, HTTP status code "403 Forbidden" shall be returned + // case 403: + // var v models.ProblemDetails + // err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + // if err != nil { + // apiError.ErrorStatus = err.Error() + // return localVarReturnValue, localVarHTTPResponse, apiError + // } + // apiError.ErrorModel = v + // return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} + +func (a *VN5GgroupDataCollectionApiService) Vn5GgroupDataPut(ctx context.Context, vn5gGpCfg models.Model5GvnGroupConfiguration, externalGroupId string) (*http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Put") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/5g-vn-groups/{extGroupId}" + localVarPath = strings.Replace(localVarPath, "{"+"extGroupId"+"}", fmt.Sprintf("%v", externalGroupId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + // body params + localVarPostBody = &vn5gGpCfg + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 201: + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarHTTPResponse, nil + case 403: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarHTTPResponse, apiError + } +} + +func (a *VN5GgroupDataCollectionApiService) VN5GgroupDataPatch(ctx context.Context, vn5gGpCfg models.Model5GvnGroupConfiguration, externalGroupId string) (models.PatchResult, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Patch") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.PatchResult + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/5g-vn-groups/{extGroupId}" + localVarPath = strings.Replace(localVarPath, "{"+"extGroupId"+"}", fmt.Sprintf("%v", externalGroupId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + // body params + localVarPostBody = &vn5gGpCfg + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 204: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 403: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} + +func (a *VN5GgroupDataCollectionApiService) Vn5GgroupDataDelete(ctx context.Context, mtcPvdInfo, afId *string, externalGroupId string) (*http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Delete") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/5g-vn-groups/{extGroupId}" + localVarPath = strings.Replace(localVarPath, "{"+"extGroupId"+"}", fmt.Sprintf("%v", externalGroupId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + if mtcPvdInfo != nil { + localVarQueryParams["mtc-provider-info"] = []string{*mtcPvdInfo} + } + if afId != nil { + localVarQueryParams["af-id"] = []string{*afId} + } + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 204: + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarHTTPResponse, nil + case 403: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarHTTPResponse, apiError + case 404: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarHTTPResponse, apiError + } +} diff --git a/Nudm_ParameterProvision/client.go b/Nudm_ParameterProvision/client.go index 77384cc7..e5c0c180 100644 --- a/Nudm_ParameterProvision/client.go +++ b/Nudm_ParameterProvision/client.go @@ -16,7 +16,9 @@ type APIClient struct { common service // Reuse a single struct instead of allocating one for each service on the heap. // API Services - SubscriptionDataUpdateApi *SubscriptionDataUpdateApiService + SubscriptionDataUpdateApi *SubscriptionDataUpdateApiService + VN5GgroupDataCollectionApi *VN5GgroupDataCollectionApiService + ParameterProvisioningDataEntryApi *ParameterProvisioningDataEntryApiService } type service struct { @@ -32,6 +34,8 @@ func NewAPIClient(cfg *Configuration) *APIClient { // API Services c.SubscriptionDataUpdateApi = (*SubscriptionDataUpdateApiService)(&c.common) + c.VN5GgroupDataCollectionApi = (*VN5GgroupDataCollectionApiService)(&c.common) + c.ParameterProvisioningDataEntryApi = (*ParameterProvisioningDataEntryApiService)(&c.common) return c } diff --git a/Nudr_DataRepository/api_5GvnGroups_list_store.go b/Nudr_DataRepository/api_5GvnGroups_list_store.go new file mode 100644 index 00000000..c71f4dd5 --- /dev/null +++ b/Nudr_DataRepository/api_5GvnGroups_list_store.go @@ -0,0 +1,93 @@ +package Nudr_DataRepository + +import ( + "context" + "io" + "net/http" + "net/url" + "strings" + + "github.com/free5gc/openapi" + "github.com/free5gc/openapi/models" +) + +type Retrive5GvnGroupListApiService service + +func (a *Retrive5GvnGroupListApiService) Get5GvnGroupList(ctx context.Context, ueIds []string) (map[string]models.Model5GvnGroupConfiguration, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue map[string]models.Model5GvnGroupConfiguration + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/group-data/5g-vn-groups" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{"gpsis": ueIds} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 500: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} diff --git a/Nudr_DataRepository/api_Individual_5GvnGroup_5GLAN_document.go b/Nudr_DataRepository/api_Individual_5GvnGroup_5GLAN_document.go new file mode 100644 index 00000000..33c7a0e4 --- /dev/null +++ b/Nudr_DataRepository/api_Individual_5GvnGroup_5GLAN_document.go @@ -0,0 +1,365 @@ +package Nudr_DataRepository + +import ( + "context" + "fmt" + "io" + "net/http" + "net/url" + "strings" + + "github.com/free5gc/openapi" + "github.com/free5gc/openapi/models" +) + +// Linger please +var ( + _ context.Context +) + +type Individual5GvnGroup5GLanDocumentApiService service + +func (a *Individual5GvnGroup5GLanDocumentApiService) Put5GLANGroupData(ctx context.Context, extGroupId string, Group5GLANConfig models.Model5GvnGroupConfiguration) (models.Model5GvnGroupConfiguration, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Put") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.Model5GvnGroupConfiguration + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/group-data/5g-vn-groups/{externalGroupId}" + localVarPath = strings.Replace(localVarPath, "{"+"externalGroupId"+"}", fmt.Sprintf("%v", extGroupId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + // body params + localVarPostBody = &Group5GLANConfig + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 201: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 403: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} + +func (a *Individual5GvnGroup5GLanDocumentApiService) Patch5GLANGroupData(ctx context.Context, extGroupId string, patchItems []models.PatchItem, suppFeat string) (models.PatchResult, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Patch") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.PatchResult + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/group-data/5g-vn-groups/{externalGroupId}" + localVarPath = strings.Replace(localVarPath, "{"+"externalGroupId"+"}", fmt.Sprintf("%v", extGroupId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{"supported-features": []string{suppFeat}} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + // body params + localVarPostBody = &patchItems + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 204: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 404: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + case 500: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} + +func (a *Individual5GvnGroup5GLanDocumentApiService) Delete5GLANGroupData(ctx context.Context, externalGroupId string) (*http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Delete") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/group-data/5g-vn-groups/{externalGroupId}" + localVarPath = strings.Replace(localVarPath, "{"+"externalGroupId"+"}", fmt.Sprintf("%v", externalGroupId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 204: + return localVarHTTPResponse, nil + case 404: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarHTTPResponse, apiError + case 500: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarHTTPResponse, apiError + } +} + +func (a *Individual5GvnGroup5GLanDocumentApiService) Get5GLANGroupData(ctx context.Context, externalGroupId string) (models.Model5GvnGroupConfiguration, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.Model5GvnGroupConfiguration + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/group-data/5g-vn-groups/{externalGroupId}" + localVarPath = strings.Replace(localVarPath, "{"+"externalGroupId"+"}", fmt.Sprintf("%v", externalGroupId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 404: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} diff --git a/Nudr_DataRepository/api_VN5GLAN_group_data_internal_retrive_document.go b/Nudr_DataRepository/api_VN5GLAN_group_data_internal_retrive_document.go new file mode 100644 index 00000000..8ee4e544 --- /dev/null +++ b/Nudr_DataRepository/api_VN5GLAN_group_data_internal_retrive_document.go @@ -0,0 +1,92 @@ +package Nudr_DataRepository + +import ( + "context" + "io" + "net/http" + "net/url" + "strings" + + "github.com/free5gc/openapi" + "github.com/free5gc/openapi/models" +) + +// Linger please +var ( + _ context.Context +) + +type Vn5gGroupsInternalDocumentApiService service + +func (a *Vn5gGroupsInternalDocumentApiService) VN5GLANgroupDataOnInternalGroupIdsGet(ctx context.Context, interGroupIdSet models.InternalGroupIdList) (map[string]models.Model5GvnGroupConfiguration, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue map[string]models.Model5GvnGroupConfiguration + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/group-data/5g-vn-groups/internal" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + // body params + localVarPostBody = &interGroupIdSet + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} diff --git a/Nudr_DataRepository/api_group_Identifiers_document.go b/Nudr_DataRepository/api_group_Identifiers_document.go new file mode 100644 index 00000000..dc3218fe --- /dev/null +++ b/Nudr_DataRepository/api_group_Identifiers_document.go @@ -0,0 +1,111 @@ +package Nudr_DataRepository + +import ( + "context" + "io" + "net/http" + "net/url" + "strings" + + "github.com/free5gc/openapi" + "github.com/free5gc/openapi/models" +) + +type GroupIdentifiersDocumentApiService service + +func (a *GroupIdentifiersDocumentApiService) GetGroupIdsAndUeIds(ctx context.Context, extGpId, intGpId string, rspUeIds bool) (models.GroupIdentifiers, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.GroupIdentifiers + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/group-data/group-identifiers" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + if extGpId != "" { + localVarQueryParams["ext-group-id"] = []string{extGpId} + } + if intGpId != "" { + localVarQueryParams["int-group-id"] = []string{intGpId} + } + if rspUeIds { + localVarQueryParams["ue-id-ind"] = []string{"true"} + } + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 404: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + case 500: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} diff --git a/Nudr_DataRepository/api_parameter_provision_5g_VnGroup_profile_data.go b/Nudr_DataRepository/api_parameter_provision_5g_VnGroup_profile_data.go new file mode 100644 index 00000000..5cb56dc7 --- /dev/null +++ b/Nudr_DataRepository/api_parameter_provision_5g_VnGroup_profile_data.go @@ -0,0 +1,94 @@ +package Nudr_DataRepository + +import ( + "context" + "io" + "net/http" + "net/url" + "strings" + + "github.com/free5gc/openapi" + "github.com/free5gc/openapi/models" +) + +type Pp5gVnGroupProfileDataDocumentApiService service + +func (a *Pp5gVnGroupProfileDataDocumentApiService) GetPp5gVnGroupProfileData(ctx context.Context, extGpIds []string, suppFeat string) (models.Pp5gVnGroupProfileData, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.Pp5gVnGroupProfileData + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/group-data/5g-vn-groups/pp-profile-data" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{"ext-group-ids": extGpIds} + localVarQueryParams["supported-features"] = []string{suppFeat} + localVarFormParams := url.Values{} + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 500: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} diff --git a/Nudr_DataRepository/api_parameter_provisioning_data_entry_document.go b/Nudr_DataRepository/api_parameter_provisioning_data_entry_document.go new file mode 100644 index 00000000..829208cb --- /dev/null +++ b/Nudr_DataRepository/api_parameter_provisioning_data_entry_document.go @@ -0,0 +1,116 @@ +package Nudr_DataRepository + +import ( + "context" + "fmt" + "io/ioutil" + "net/http" + "net/url" + "strings" + + "github.com/free5gc/openapi" + "github.com/free5gc/openapi/models" +) + +type ParameterProvisionEntryDocumentApiService service + +func (a *ParameterProvisionEntryDocumentApiService) GetppDataEntry(ctx context.Context, ueId, afInsId string, localVarOptionals *GetppDataParamOpts) (models.PpDataEntry, *http.Response, error) { + var ( + localVarHTTPMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue models.PpDataEntry + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath() + "/subscription-data/{ueId}/pp-data-store/{afInstanceId}" + localVarPath = strings.Replace(localVarPath, "{"+"ueId"+"}", fmt.Sprintf("%v", ueId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"afInstanceId"+"}", fmt.Sprintf("%v", afInsId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.SupportedFeatures.IsSet() && localVarOptionals.SupportedFeatures.Value() != "" { + localVarQueryParams.Add("supported-features", openapi.ParameterToString(localVarOptionals.SupportedFeatures.Value(), "")) + } + + localVarHTTPContentTypes := []string{"application/json"} + + localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes' + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json", "application/problem+json"} + + // set Accept header + localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + + if localVarOptionals != nil && localVarOptionals.IfNoneMatch.IsSet() && localVarOptionals.IfNoneMatch.Value() != "" { + localVarHeaderParams["If-None-Match"] = openapi.ParameterToString(localVarOptionals.IfNoneMatch.Value(), "") + } + if localVarOptionals != nil && localVarOptionals.IfModifiedSince.IsSet() && localVarOptionals.IfModifiedSince.Value() != "" { + localVarHeaderParams["If-Modified-Since"] = openapi.ParameterToString(localVarOptionals.IfModifiedSince.Value(), "") + } + + r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + apiError := openapi.GenericOpenAPIError{ + RawBody: localVarBody, + ErrorStatus: localVarHTTPResponse.Status, + } + + switch localVarHTTPResponse.StatusCode { + case 200: + err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + } + return localVarReturnValue, localVarHTTPResponse, nil + case 403: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + case 404: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + default: + var v models.ProblemDetails + err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + apiError.ErrorStatus = err.Error() + return localVarReturnValue, localVarHTTPResponse, apiError + } + apiError.ErrorModel = v + return localVarReturnValue, localVarHTTPResponse, apiError + } +} diff --git a/Nudr_DataRepository/client.go b/Nudr_DataRepository/client.go index 55e28f82..5898f5d2 100644 --- a/Nudr_DataRepository/client.go +++ b/Nudr_DataRepository/client.go @@ -40,6 +40,7 @@ type APIClient struct { PduSessionManagementDataApi *PduSessionManagementDataApiService ProvisionedDataDocumentApi *ProvisionedDataDocumentApiService ProvisionedParameterDataDocumentApi *ProvisionedParameterDataDocumentApiService + ParameterProvisionEntryDocumentApi *ParameterProvisionEntryDocumentApiService QueryAMFSubscriptionInfoDocumentApi *QueryAMFSubscriptionInfoDocumentApiService QueryIdentityDataBySUPIOrGPSIDocumentApi *QueryIdentityDataBySUPIOrGPSIDocumentApiService QueryODBDataBySUPIOrGPSIDocumentApi *QueryODBDataBySUPIOrGPSIDocumentApiService @@ -64,6 +65,11 @@ type APIClient struct { IndividualInfluenceDataDocumentApi *IndividualInfluenceDataDocumentApiService InfluenceDataSubscriptionsCollectionApi *InfluenceDataSubscriptionsCollectionApiService IndividualInfluenceDataSubscriptionDocumentApi *IndividualInfluenceDataSubscriptionDocumentApiService + GroupIdentifiersDocumentApi *GroupIdentifiersDocumentApiService + Retrive5GvnGroupListApi *Retrive5GvnGroupListApiService + Individual5GvnGroup5GLanDocumentApi *Individual5GvnGroup5GLanDocumentApiService + Vn5gGroupsInternalDocumentApi *Vn5gGroupsInternalDocumentApiService + Pp5gVnGroupProfileDataDocumentApi *Pp5gVnGroupProfileDataDocumentApiService } type service struct { @@ -123,5 +129,11 @@ func NewAPIClient(cfg *Configuration) *APIClient { c.IndividualInfluenceDataDocumentApi = (*IndividualInfluenceDataDocumentApiService)(&c.common) c.InfluenceDataSubscriptionsCollectionApi = (*InfluenceDataSubscriptionsCollectionApiService)(&c.common) c.IndividualInfluenceDataSubscriptionDocumentApi = (*IndividualInfluenceDataSubscriptionDocumentApiService)(&c.common) + c.Individual5GvnGroup5GLanDocumentApi = (*Individual5GvnGroup5GLanDocumentApiService)(&c.common) + c.Vn5gGroupsInternalDocumentApi = (*Vn5gGroupsInternalDocumentApiService)(&c.common) + c.GroupIdentifiersDocumentApi = (*GroupIdentifiersDocumentApiService)(&c.common) + c.Retrive5GvnGroupListApi = (*Retrive5GvnGroupListApiService)(&c.common) + c.Pp5gVnGroupProfileDataDocumentApi = (*Pp5gVnGroupProfileDataDocumentApiService)(&c.common) + c.ParameterProvisionEntryDocumentApi = (*ParameterProvisionEntryDocumentApiService)(&c.common) return c } diff --git a/models/model_5_g_lan_parameters.go b/models/model_5_g_lan_parameters.go new file mode 100644 index 00000000..130126de --- /dev/null +++ b/models/model_5_g_lan_parameters.go @@ -0,0 +1,43 @@ +/* + * 3gpp-5glan-pp + * + * API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.1.1 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// Model5GLanParameters - Represents 5G LAN service related parameters that need to be provisioned. +type Model5GLanParameters struct { + + // string containing a local identifier followed by \"@\" and a domain identifier. Both the local identifier and the domain identifier shall be encoded as strings that do not contain any \"@\" characters. See Clauses 4.6.2 and 4.6.3 of 3GPP TS 23.682 for more information. + ExterGroupId string `json:"exterGroupId"` + + // Contains the list of 5G VN Group members, each member is identified by GPSI. Any string value can be used as a key of the map. + Gpsis map[string]string `json:"gpsis"` + + // String representing a Data Network as defined in clause 9A of 3GPP TS 23.003; it shall contain either a DNN Network Identifier, or a full DNN with both the Network Identifier and Operator Identifier, as specified in 3GPP TS 23.003 clause 9.1.1 and 9.1.2. It shall be coded as string in which the labels are separated by dots (e.g. \"Label1.Label2.Label3\"). + Dnn string `json:"dnn"` + + // String identifying a IPv4 address formatted in the 'dotted decimal' notation as defined in RFC 1166. + AaaIpv4Addr string `json:"aaaIpv4Addr,omitempty"` + + AaaIpv6Addr Ipv6Addr `json:"aaaIpv6Addr,omitempty"` + + AaaUsgs []AaaUsage `json:"aaaUsgs,omitempty"` + + // String uniquely identifying MTC provider information. + MtcProviderId string `json:"mtcProviderId,omitempty"` + + Snssai Snssai `json:"snssai"` + + SessionType PduSessionType `json:"sessionType"` + + // Further allowed PDU Session types. + SessionTypes []PduSessionType `json:"sessionTypes,omitempty"` + + // Describes the operation systems and the corresponding applications for each operation systems. The key of map is osId. + AppDesps map[string]AppDescriptor `json:"appDesps"` +} diff --git a/models/model_5_g_lan_parameters_patch.go b/models/model_5_g_lan_parameters_patch.go new file mode 100644 index 00000000..ec4f5552 --- /dev/null +++ b/models/model_5_g_lan_parameters_patch.go @@ -0,0 +1,20 @@ +/* + * 3gpp-5glan-pp + * + * API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.1.1 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// Model5GLanParametersPatch - Represents 5G LAN service related parameters that need to be modified. +type Model5GLanParametersPatch struct { + + // Contains the list of 5G VN Group members, each member is identified by GPSI. Any string value can be used as a key of the map. + Gpsis map[string]string `json:"gpsis,omitempty"` + + // Describes the operation systems and the corresponding applications for each operation systems. The key of map is osId. + AppDesps map[string]AppDescriptorRm `json:"appDesps,omitempty"` +} diff --git a/models/model_5_g_lan_parameters_provision.go b/models/model_5_g_lan_parameters_provision.go new file mode 100644 index 00000000..f36be00e --- /dev/null +++ b/models/model_5_g_lan_parameters_provision.go @@ -0,0 +1,22 @@ +/* + * 3gpp-5glan-pp + * + * API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.1.1 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// Model5GLanParametersProvision - Represents an individual 5G LAN parameters provision subscription resource. +type Model5GLanParametersProvision struct { + + // string formatted according to IETF RFC 3986 identifying a referenced resource. + Self string `json:"self,omitempty"` + + Var5gLanParams Model5GLanParameters `json:"5gLanParams"` + + // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\", \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported. + SuppFeat string `json:"suppFeat"` +} diff --git a/models/model_5_g_lan_parameters_provision_patch.go b/models/model_5_g_lan_parameters_provision_patch.go new file mode 100644 index 00000000..23a32b76 --- /dev/null +++ b/models/model_5_g_lan_parameters_provision_patch.go @@ -0,0 +1,15 @@ +/* + * 3gpp-5glan-pp + * + * API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.1.1 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// Model5GLanParametersProvisionPatch - Represents the 5G LAN parameters to request the modification of a subscription to provision parameters. +type Model5GLanParametersProvisionPatch struct { + Var5gLanParamsPatch Model5GLanParametersPatch `json:"5gLanParamsPatch,omitempty"` +} diff --git a/models/model_5_gvn_group_configuration.go b/models/model_5_gvn_group_configuration.go new file mode 100644 index 00000000..6b9d970b --- /dev/null +++ b/models/model_5_gvn_group_configuration.go @@ -0,0 +1,29 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type Model5GvnGroupConfiguration struct { + Var5gVnGroupData Model5GvnGroupData `json:"5gVnGroupData,omitempty"` + + Members []string `json:"members,omitempty"` + + ReferenceId int32 `json:"referenceId,omitempty"` + + AfInstanceId string `json:"afInstanceId,omitempty"` + + // String identifying a group of devices network internal globally unique ID which identifies a set of IMSIs, as specified in clause 19.9 of 3GPP TS 23.003. + InternalGroupIdentifier string `json:"internalGroupIdentifier,omitempty"` + + // String uniquely identifying MTC provider information. + MtcProviderInformation string `json:"mtcProviderInformation,omitempty"` + + //Self-Define ,means logically all group members will assigned in a subset + SubnetIP IpAddress `json:"subnetIP,omitempty"` +} diff --git a/models/model_5_gvn_group_data.go b/models/model_5_gvn_group_data.go new file mode 100644 index 00000000..076f3967 --- /dev/null +++ b/models/model_5_gvn_group_data.go @@ -0,0 +1,33 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type Model5GvnGroupData struct { + + // String representing a Data Network as defined in clause 9A of 3GPP TS 23.003; it shall contain either a DNN Network Identifier, or a full DNN with both the Network Identifier and Operator Identifier, as specified in 3GPP TS 23.003 clause 9.1.1 and 9.1.2. It shall be coded as string in which the labels are separated by dots (e.g. \"Label1.Label2.Label3\"). + Dnn string `json:"dnn"` + + SNssai Snssai `json:"sNssai"` + + PduSessionTypes []PduSessionType `json:"pduSessionTypes,omitempty"` + + AppDescriptors []AppDescriptor `json:"appDescriptors,omitempty"` + + SecondaryAuth bool `json:"secondaryAuth,omitempty"` + + DnAaaIpAddressAllocation bool `json:"dnAaaIpAddressAllocation,omitempty"` + + DnAaaAddress IpAddress `json:"dnAaaAddress,omitempty"` + + AdditionalDnAaaAddresses []IpAddress `json:"additionalDnAaaAddresses,omitempty"` + + // Fully Qualified Domain Name + DnAaaFqdn string `json:"dnAaaFqdn,omitempty"` +} diff --git a/models/model_5_gvn_group_internal_id_list.go b/models/model_5_gvn_group_internal_id_list.go new file mode 100644 index 00000000..1c1686f0 --- /dev/null +++ b/models/model_5_gvn_group_internal_id_list.go @@ -0,0 +1,5 @@ +package models + +type InternalGroupIdList struct { + Internalgroupids []string `json:"internalgroupids" bson:"internalgroupids"` +} diff --git a/models/model_AllowedMtcProviderInfo.go b/models/model_AllowedMtcProviderInfo.go new file mode 100644 index 00000000..276d5363 --- /dev/null +++ b/models/model_AllowedMtcProviderInfo.go @@ -0,0 +1,6 @@ +package models + +type AllowedMtcProviderInfo struct { + MtcProviderInformation MtcProviderInformation `json:"mtcProviderInformation,omitempty"` + AfId string `json:"afId,omitempty"` +} diff --git a/models/model_MtcProviderInformation.go b/models/model_MtcProviderInformation.go new file mode 100644 index 00000000..c714abe9 --- /dev/null +++ b/models/model_MtcProviderInformation.go @@ -0,0 +1,8 @@ +package models + +type MtcProviderInformation string + +// refer to 3GPP TS 29.571 V17.8.0 +// MtcProviderInformation: +// type: string +// description: String uniquely identifying MTC provider information. diff --git a/models/model_Pp_5gVnGroup_ProfileData.go b/models/model_Pp_5gVnGroup_ProfileData.go new file mode 100644 index 00000000..18993756 --- /dev/null +++ b/models/model_Pp_5gVnGroup_ProfileData.go @@ -0,0 +1,13 @@ +package models + +// A map (list of key-value pairs where ExtGroupId (see 3GPP TS 29.503 [6]) serves as key of a list of +// AllowedMtcProviderInfos which include MTC provider informations or AF IDs that are allowed to +// create, update and delete a 5G VN Group for the user using UDM ParameterProvision service. + +// In addition to defined external group identifier, the key value "ALL" may be used to identify a map entry +// which contains a list of AllowedMtcProviderInfos that are allowed operating all the external group identifiers. + +type Pp5gVnGroupProfileData struct { + AllowedMtcProviders map[string][]AllowedMtcProviderInfo `json:"allowedMtcProviders,omitempty"` + SupportedFeatures string `json:"supportedFeatures,omitempty"` +} diff --git a/models/model_aaa_usage.go b/models/model_aaa_usage.go new file mode 100644 index 00000000..edeea499 --- /dev/null +++ b/models/model_aaa_usage.go @@ -0,0 +1,14 @@ +/* + * 3gpp-5glan-pp + * + * API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.1.1 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// AaaUsage - Possible values are: - AUTH: secondary authentication/authorization needed from DN-AAA server - IP_ALLOC: UE IP address allocation needed from DN-AAA server +type AaaUsage struct { +} diff --git a/models/model_app_descriptor.go b/models/model_app_descriptor.go new file mode 100644 index 00000000..46874e3b --- /dev/null +++ b/models/model_app_descriptor.go @@ -0,0 +1,19 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type AppDescriptor struct { + + // Represents the Operating System of the served UE. + OsId string `json:"osId,omitempty"` + + // Identifies applications that is running on the UE's operating system. Any string value can be used as a key of the map. + AppIds map[string]string `json:"appIds,omitempty"` +} diff --git a/models/model_app_descriptor_rm.go b/models/model_app_descriptor_rm.go new file mode 100644 index 00000000..6eaac85d --- /dev/null +++ b/models/model_app_descriptor_rm.go @@ -0,0 +1,17 @@ +/* + * 3gpp-5glan-pp + * + * API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.1.1 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// AppDescriptorRm - Represents the same as the AppDescriptor data type but with the nullable:true property. +type AppDescriptorRm struct { + + // Identifies applications that are running on the UE's operating system. Any string value can be used as a key of the map. + AppIds map[string]string `json:"appIds,omitempty"` +} diff --git a/models/model_communication_characteristics_af.go b/models/model_communication_characteristics_af.go new file mode 100644 index 00000000..97f8ef6c --- /dev/null +++ b/models/model_communication_characteristics_af.go @@ -0,0 +1,20 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.2 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type CommunicationCharacteristicsAf struct { + PpDlPacketCount *int32 `json:"ppDlPacketCount,omitempty"` + + // indicating a time in seconds. + MaximumResponseTime int32 `json:"maximumResponseTime,omitempty"` + + // indicating a time in seconds. + MaximumLatency int32 `json:"maximumLatency,omitempty"` +} diff --git a/models/model_context_info.go b/models/model_context_info.go new file mode 100644 index 00000000..69e8b366 --- /dev/null +++ b/models/model_context_info.go @@ -0,0 +1,16 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type ContextInfo struct { + OrigHeaders []string `json:"origHeaders,omitempty"` + + RequestHeaders []string `json:"requestHeaders,omitempty"` +} diff --git a/models/model_data_change_notify.go b/models/model_data_change_notify.go index 817e6b03..56fe1908 100644 --- a/models/model_data_change_notify.go +++ b/models/model_data_change_notify.go @@ -1,16 +1,26 @@ /* * Nudr_DataRepository API OpenAPI file * - * Unified Data Repository Service + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. * - * API version: 1.0.0 + * API version: 2.2.0 * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ package models +// DataChangeNotify - Container for data which have changed and notification was requested when changed. type DataChangeNotify struct { - OriginalCallbackReference []string `json:"originalCallbackReference,omitempty" bson:"originalCallbackReference"` - UeId string `json:"ueId,omitempty" bson:"ueId"` - NotifyItems []NotifyItem `json:"notifyItems,omitempty" bson:"notifyItems"` + OriginalCallbackReference []string `json:"originalCallbackReference,omitempty"` + + // String represents the SUPI or GPSI + UeId string `json:"ueId,omitempty"` + + NotifyItems []NotifyItem `json:"notifyItems,omitempty"` + + SdmSubscription SdmSubscription1 `json:"sdmSubscription,omitempty"` + + AdditionalSdmSubscriptions []SdmSubscription1 `json:"additionalSdmSubscriptions,omitempty"` + + SubscriptionDataSubscriptions []SubscriptionDataSubscriptions `json:"subscriptionDataSubscriptions,omitempty"` } diff --git a/models/model_dnn_route_selection_descriptor.go b/models/model_dnn_route_selection_descriptor.go new file mode 100644 index 00000000..4a609ee5 --- /dev/null +++ b/models/model_dnn_route_selection_descriptor.go @@ -0,0 +1,24 @@ +/* + * Unified Data Repository Service API file for policy data + * + * The API version is defined in 3GPP TS 29.504 © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: - + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// DnnRouteSelectionDescriptor - Contains the route selector parameters (PDU session types, SSC modes and ATSSS information) per DNN +type DnnRouteSelectionDescriptor struct { + + // String representing a Data Network as defined in clause 9A of 3GPP TS 23.003; it shall contain either a DNN Network Identifier, or a full DNN with both the Network Identifier and Operator Identifier, as specified in 3GPP TS 23.003 clause 9.1.1 and 9.1.2. It shall be coded as string in which the labels are separated by dots (e.g. \"Label1.Label2.Label3\"). + Dnn string `json:"dnn"` + + SscModes []SscMode `json:"sscModes,omitempty"` + + PduSessTypes []PduSessionType `json:"pduSessTypes,omitempty"` + + // Indicates whether MA PDU session establishment is allowed for this DNN. When set to value true MA PDU session establishment is allowed for this DNN. + AtsssInfo bool `json:"atsssInfo,omitempty"` +} diff --git a/models/model_ec_restriction.go b/models/model_ec_restriction.go new file mode 100644 index 00000000..795bcdb4 --- /dev/null +++ b/models/model_ec_restriction.go @@ -0,0 +1,21 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.2 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type EcRestriction struct { + AfInstanceId string `json:"afInstanceId"` + + ReferenceId int32 `json:"referenceId"` + + PlmnEcInfos []PlmnEcInfo `json:"plmnEcInfos,omitempty"` + + // String uniquely identifying MTC provider information. + MtcProviderInformation string `json:"mtcProviderInformation,omitempty"` +} diff --git a/models/model_ec_restriction_data_wb.go b/models/model_ec_restriction_data_wb.go new file mode 100644 index 00000000..3aa4776f --- /dev/null +++ b/models/model_ec_restriction_data_wb.go @@ -0,0 +1,16 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.2 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type EcRestrictionDataWb struct { + EcModeARestricted bool `json:"ecModeARestricted,omitempty"` + + EcModeBRestricted bool `json:"ecModeBRestricted,omitempty"` +} diff --git a/models/model_ecs_addr_config_info.go b/models/model_ecs_addr_config_info.go new file mode 100644 index 00000000..08d99435 --- /dev/null +++ b/models/model_ecs_addr_config_info.go @@ -0,0 +1,16 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.2 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type EcsAddrConfigInfo struct { + EcsServerAddr EcsServerAddr `json:"ecsServerAddr,omitempty"` + + SpatialValidityCond SpatialValidityCond `json:"spatialValidityCond,omitempty"` +} diff --git a/models/model_ecs_server_addr.go b/models/model_ecs_server_addr.go new file mode 100644 index 00000000..eb3c1e89 --- /dev/null +++ b/models/model_ecs_server_addr.go @@ -0,0 +1,21 @@ +/* + * Common Data Types + * + * Common Data Types for Service Based Interfaces.   © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).   All rights reserved. + * + * API version: 1.4.3 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// EcsServerAddr - Contains the Edge Configuration Server Address Configuration Information as defined in clause 5.2.3.6.1 of 3GPP TS 23.502. +type EcsServerAddr struct { + EcsFqdnList []string `json:"ecsFqdnList,omitempty"` + + EcsIpAddressList []IpAddress `json:"ecsIpAddressList,omitempty"` + + EcsUriList []string `json:"ecsUriList,omitempty"` + + EcsProviderId string `json:"ecsProviderId,omitempty"` +} diff --git a/models/model_eps_interworking_info.go b/models/model_eps_interworking_info.go new file mode 100644 index 00000000..e85738d9 --- /dev/null +++ b/models/model_eps_interworking_info.go @@ -0,0 +1,16 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type EpsInterworkingInfo struct { + + // A map (list of key-value pairs where Dnn serves as key) of EpsIwkPgws + EpsIwkPgws map[string]EpsIwkPgw `json:"epsIwkPgws,omitempty"` +} diff --git a/models/model_geo_service_area.go b/models/model_geo_service_area.go new file mode 100644 index 00000000..b677099f --- /dev/null +++ b/models/model_geo_service_area.go @@ -0,0 +1,17 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.2 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// GeoServiceArea - List of geographic area or list of civic address info +type GeoServiceArea struct { + GeographicAreaList []GeographicArea `json:"geographicAreaList,omitempty"` + + CivicAddressList []CivicAddress `json:"civicAddressList,omitempty"` +} diff --git a/models/model_group_Identifiers.go b/models/model_group_Identifiers.go new file mode 100644 index 00000000..df2c3521 --- /dev/null +++ b/models/model_group_Identifiers.go @@ -0,0 +1,11 @@ +package models + +// refer to TS29505 v17.9.0, section 5.4.2.35 Type: GroupIdentifiers +type GroupIdentifiers struct { + ExtGroupId string `json:"extGroupId,omitempty"` + IntGroupId string `json:"intGroupId,omitempty"` + UeIdList []string `json:"ueIdList,omitempty"` + //AllowedAfIds: A list of Application Function Identifiers authorized to retrieve this Identities lists. + // The absence of this IE indicates that any AF is allowed to retrieve them. + AllowedAfIds []string `json:"allowedAfIds,omitempty"` +} diff --git a/models/model_immediate_report.go b/models/model_immediate_report.go new file mode 100644 index 00000000..db94c307 --- /dev/null +++ b/models/model_immediate_report.go @@ -0,0 +1,46 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type ImmediateReport struct { + AmData AccessAndMobilitySubscriptionData `json:"amData,omitempty"` + + SmfSelData SmfSelectionSubscriptionData `json:"smfSelData,omitempty"` + + UecAmfData UeContextInAmfData `json:"uecAmfData,omitempty"` + + UecSmfData UeContextInSmfData `json:"uecSmfData,omitempty"` + + UecSmsfData UeContextInSmsfData `json:"uecSmsfData,omitempty"` + + SmsSubsData SmsSubscriptionData `json:"smsSubsData,omitempty"` + + SmData SmSubsData `json:"smData,omitempty"` + + //TODO: add this data type + // TraceData *TraceData1 `json:"traceData,omitempty"` + + SmsMngData SmsManagementSubscriptionData `json:"smsMngData,omitempty"` + + LcsPrivacyData LcsPrivacyData `json:"lcsPrivacyData,omitempty"` + + //TODO: add all data type below + // LcsMoData LcsMoData `json:"lcsMoData,omitempty"` + + // V2xData V2xSubscriptionData `json:"v2xData,omitempty"` + + // LcsBroadcastAssistanceTypesData LcsBroadcastAssistanceTypesData `json:"lcsBroadcastAssistanceTypesData,omitempty"` + + // ProseData ProseSubscriptionData `json:"proseData,omitempty"` + + // MbsData MbsSubscriptionData `json:"mbsData,omitempty"` + + // UcData UcSubscriptionData `json:"ucData,omitempty"` +} diff --git a/models/model_ipv6_addr.go b/models/model_ipv6_addr.go new file mode 100644 index 00000000..2bc6bc28 --- /dev/null +++ b/models/model_ipv6_addr.go @@ -0,0 +1,14 @@ +/* + * 3gpp-5glan-pp + * + * API for 5G LAN Parameter Provision. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.1.1 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// Ipv6Addr - String identifying an IPv6 address formatted according to clause 4 of RFC5952. The mixed IPv4 IPv6 notation according to clause 5 of RFC5952 shall not be used. +type Ipv6Addr struct { +} diff --git a/models/model_lcs_client_class.go b/models/model_lcs_client_class.go new file mode 100644 index 00000000..307260e5 --- /dev/null +++ b/models/model_lcs_client_class.go @@ -0,0 +1,13 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type LcsClientClass struct { +} diff --git a/models/model_lcs_privacy_data.go b/models/model_lcs_privacy_data.go new file mode 100644 index 00000000..3978a529 --- /dev/null +++ b/models/model_lcs_privacy_data.go @@ -0,0 +1,19 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type LcsPrivacyData struct { + Lpi Lpi `json:"lpi,omitempty"` + + //TODO: add this data type + // UnrelatedClass UnrelatedClass `json:"unrelatedClass,omitempty"` + + PlmnOperatorClasses []PlmnOperatorClass `json:"plmnOperatorClasses,omitempty"` +} diff --git a/models/model_location_privacy_ind.go b/models/model_location_privacy_ind.go new file mode 100644 index 00000000..0bda3301 --- /dev/null +++ b/models/model_location_privacy_ind.go @@ -0,0 +1,13 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type LocationPrivacyInd struct { +} diff --git a/models/model_lpi.go b/models/model_lpi.go new file mode 100644 index 00000000..2dace0f8 --- /dev/null +++ b/models/model_lpi.go @@ -0,0 +1,16 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type Lpi struct { + LocationPrivacyInd LocationPrivacyInd `json:"locationPrivacyInd"` + + ValidTimePeriod ValidTimePeriod `json:"validTimePeriod,omitempty"` +} diff --git a/models/model_patch_result.go b/models/model_patch_result.go new file mode 100644 index 00000000..bc946eb7 --- /dev/null +++ b/models/model_patch_result.go @@ -0,0 +1,17 @@ +/* + * Common Data Types + * + * Common Data Types for Service Based Interfaces.   © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).   All rights reserved. + * + * API version: 1.4.3 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// PatchResult - The execution report result on failed modification. +type PatchResult struct { + + // The execution report contains an array of report items. Each report item indicates one failed modification. + Report []ReportItem `json:"report"` +} diff --git a/models/model_plmn_ec_info.go b/models/model_plmn_ec_info.go new file mode 100644 index 00000000..0976e18e --- /dev/null +++ b/models/model_plmn_ec_info.go @@ -0,0 +1,18 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.2 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type PlmnEcInfo struct { + PlmnId PlmnId `json:"plmnId"` + + EcRestrictionDataWb *EcRestrictionDataWb `json:"ecRestrictionDataWb,omitempty"` + + EcRestrictionDataNb bool `json:"ecRestrictionDataNb,omitempty"` +} diff --git a/models/model_plmn_id_1.go b/models/model_plmn_id_1.go new file mode 100644 index 00000000..dd6633e3 --- /dev/null +++ b/models/model_plmn_id_1.go @@ -0,0 +1,20 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// PlmnId1 - When PlmnId needs to be converted to string (e.g. when used in maps as key), the string shall be composed of three digits \"mcc\" followed by \"-\" and two or three digits \"mnc\". +type PlmnId1 struct { + + // Mobile Country Code part of the PLMN, comprising 3 digits, as defined in clause 9.3.3.5 of 3GPP TS 38.413. + Mcc string `json:"mcc"` + + // Mobile Network Code part of the PLMN, comprising 2 or 3 digits, as defined in clause 9.3.3.5 of 3GPP TS 38.413. + Mnc string `json:"mnc"` +} diff --git a/models/model_plmn_operator_class.go b/models/model_plmn_operator_class.go new file mode 100644 index 00000000..4d2e6721 --- /dev/null +++ b/models/model_plmn_operator_class.go @@ -0,0 +1,16 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type PlmnOperatorClass struct { + LcsClientClass LcsClientClass `json:"lcsClientClass"` + + LcsClientIds []string `json:"lcsClientIds"` +} diff --git a/models/model_plmn_route_selection_descriptor.go b/models/model_plmn_route_selection_descriptor.go new file mode 100644 index 00000000..44418538 --- /dev/null +++ b/models/model_plmn_route_selection_descriptor.go @@ -0,0 +1,17 @@ +/* + * Unified Data Repository Service API file for policy data + * + * The API version is defined in 3GPP TS 29.504 © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: - + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// PlmnRouteSelectionDescriptor - Contains the route selection descriptors (combinations of SNSSAI, DNNs, PDU session types, SSC modes and ATSSS information) allowed by subscription to the UE for a serving PLMN +type PlmnRouteSelectionDescriptor struct { + ServingPlmn PlmnId `json:"servingPlmn"` + + SnssaiRouteSelDescs []SnssaiRouteSelectionDescriptor `json:"snssaiRouteSelDescs,omitempty"` +} diff --git a/models/model_policy_association.go b/models/model_policy_association.go index 93985358..d798eaff 100644 --- a/models/model_policy_association.go +++ b/models/model_policy_association.go @@ -17,4 +17,6 @@ type PolicyAssociation struct { Rfsp int32 `json:"rfsp,omitempty" yaml:"rfsp" bson:"rfsp" mapstructure:"Rfsp"` Pras map[string]PresenceInfo `json:"pras,omitempty" yaml:"pras" bson:"pras" mapstructure:"Pras"` SuppFeat string `json:"suppFeat" yaml:"suppFeat" bson:"suppFeat" mapstructure:"SuppFeat"` + //a kind of Ue Policy, User Route Select Protocal + UePolicyURSP UePolicyURSP `json:"uePolicyURSP,omitempty" yaml:"uePolicyURSP,omitempty" bson:"uePolicyURSP,omitempty"` } diff --git a/models/model_pp_data_entry.go b/models/model_pp_data_entry.go new file mode 100644 index 00000000..69f3c68a --- /dev/null +++ b/models/model_pp_data_entry.go @@ -0,0 +1,38 @@ +/* + * Nudm_PP + * + * Nudm Parameter Provision Service. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 1.2.2 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +import ( + "time" +) + +type PpDataEntry struct { + // this IE is self-defined to support 5GLAN service + Vn5gGroupCoinfigList map[string]Model5GvnGroupConfiguration `json:"vn5gGroupCoinfigList,omitempty"` + + CommunicationCharacteristics *CommunicationCharacteristicsAf `json:"communicationCharacteristics,omitempty"` + + ReferenceId int32 `json:"referenceId,omitempty"` + + // string with format 'date-time' as defined in OpenAPI. + ValidityTime time.Time `json:"validityTime,omitempty"` + + // String uniquely identifying MTC provider information. + MtcProviderInformation string `json:"mtcProviderInformation,omitempty"` + + // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\", \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported. + SupportedFeatures string `json:"supportedFeatures,omitempty"` + + EcsAddrConfigInfo *EcsAddrConfigInfo `json:"ecsAddrConfigInfo,omitempty"` + + AdditionalEcsAddrConfigInfos []EcsAddrConfigInfo `json:"additionalEcsAddrConfigInfos,omitempty"` + + EcRestriction *EcRestriction `json:"ecRestriction,omitempty"` +} diff --git a/models/model_report_item.go b/models/model_report_item.go new file mode 100644 index 00000000..7ba363b7 --- /dev/null +++ b/models/model_report_item.go @@ -0,0 +1,20 @@ +/* + * Common Data Types + * + * Common Data Types for Service Based Interfaces.   © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).   All rights reserved. + * + * API version: 1.4.3 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// ReportItem - indicates performed modivications. +type ReportItem struct { + + // Contains a JSON pointer value (as defined in IETF RFC 6901) that references a location of a resource to which the modification is subject. + Path string `json:"path"` + + // A human-readable reason providing details on the reported modification failure. The reason string should identify the operation that failed using the operation's array index to assist in correlation of the invalid parameter with the failed operation, e.g. \"Replacement value invalid for attribute (failed operation index= 4)\". + Reason string `json:"reason,omitempty"` +} diff --git a/models/model_sdm_subscription_1.go b/models/model_sdm_subscription_1.go new file mode 100644 index 00000000..c3287350 --- /dev/null +++ b/models/model_sdm_subscription_1.go @@ -0,0 +1,58 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +import ( + "time" +) + +type SdmSubscription1 struct { + + // String uniquely identifying a NF instance. The format of the NF Instance ID shall be a Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122. + NfInstanceId string `json:"nfInstanceId"` + + ImplicitUnsubscribe bool `json:"implicitUnsubscribe,omitempty"` + + // string with format 'date-time' as defined in OpenAPI. + Expires time.Time `json:"expires,omitempty"` + + // String providing an URI formatted according to RFC 3986. + CallbackReference string `json:"callbackReference"` + + AmfServiceName ServiceName `json:"amfServiceName,omitempty"` + + MonitoredResourceUris []string `json:"monitoredResourceUris"` + + SingleNssai Snssai `json:"singleNssai,omitempty"` + + // String representing a Data Network as defined in clause 9A of 3GPP TS 23.003; it shall contain either a DNN Network Identifier, or a full DNN with both the Network Identifier and Operator Identifier, as specified in 3GPP TS 23.003 clause 9.1.1 and 9.1.2. It shall be coded as string in which the labels are separated by dots (e.g. \"Label1.Label2.Label3\"). + Dnn string `json:"dnn,omitempty"` + + SubscriptionId string `json:"subscriptionId,omitempty"` + + PlmnId PlmnId1 `json:"plmnId,omitempty"` + + ImmediateReport bool `json:"immediateReport,omitempty"` + + Report ImmediateReport `json:"report,omitempty"` + + // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\", \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported. + SupportedFeatures string `json:"supportedFeatures,omitempty"` + + ContextInfo ContextInfo `json:"contextInfo,omitempty"` + + NfChangeFilter bool `json:"nfChangeFilter,omitempty"` + + UniqueSubscription bool `json:"uniqueSubscription,omitempty"` + + ResetIds []string `json:"resetIds,omitempty"` + + UeConSmfDataSubFilter UeContextInSmfDataSubFilter1 `json:"ueConSmfDataSubFilter,omitempty"` +} diff --git a/models/model_sm_subs_data.go b/models/model_sm_subs_data.go new file mode 100644 index 00000000..62318d42 --- /dev/null +++ b/models/model_sm_subs_data.go @@ -0,0 +1,16 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type SmSubsData struct { + SharedSmSubsDataIds []string `json:"sharedSmSubsDataIds"` + + IndividualSmSubsData []SessionManagementSubscriptionData `json:"individualSmSubsData,omitempty"` +} diff --git a/models/model_snssai_route_selection_descriptor.go b/models/model_snssai_route_selection_descriptor.go new file mode 100644 index 00000000..62d91748 --- /dev/null +++ b/models/model_snssai_route_selection_descriptor.go @@ -0,0 +1,17 @@ +/* + * Unified Data Repository Service API file for policy data + * + * The API version is defined in 3GPP TS 29.504 © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: - + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// SnssaiRouteSelectionDescriptor - Contains the route selector parameters (DNNs, PDU session types, SSC modes and ATSSS information) per SNSSAI +type SnssaiRouteSelectionDescriptor struct { + Snssai Snssai `json:"snssai"` + + DnnRouteSelDescs []DnnRouteSelectionDescriptor `json:"dnnRouteSelDescs,omitempty"` +} diff --git a/models/model_spatial_validity_cond.go b/models/model_spatial_validity_cond.go new file mode 100644 index 00000000..14efbf57 --- /dev/null +++ b/models/model_spatial_validity_cond.go @@ -0,0 +1,19 @@ +/* + * Common Data Types + * + * Common Data Types for Service Based Interfaces.   © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).   All rights reserved. + * + * API version: 1.4.3 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// SpatialValidityCond - Contains the Spatial Validity Condition. +type SpatialValidityCond struct { + TrackingAreaList []Tai `json:"trackingAreaList,omitempty"` + + Countries []string `json:"countries,omitempty"` + + GeographicalServiceArea GeoServiceArea `json:"geographicalServiceArea,omitempty"` +} diff --git a/models/model_subscription_data_subscriptions.go b/models/model_subscription_data_subscriptions.go index 9b812ada..cc44b171 100644 --- a/models/model_subscription_data_subscriptions.go +++ b/models/model_subscription_data_subscriptions.go @@ -1,9 +1,9 @@ /* * Nudr_DataRepository API OpenAPI file * - * Unified Data Repository Service + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. * - * API version: 1.0.0 + * API version: 2.2.0 * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ @@ -13,13 +13,29 @@ import ( "time" ) +// SubscriptionDataSubscriptions - A subscription to notifications. type SubscriptionDataSubscriptions struct { - UeId string `json:"ueId" bson:"ueId"` - // string providing an URI formatted according to IETF RFC 3986. - CallbackReference string `json:"callbackReference" bson:"callbackReference"` - // string providing an URI formatted according to IETF RFC 3986. - OriginalCallbackReference string `json:"originalCallbackReference" bson:"originalCallbackReference"` - MonitoredResourceUri []string `json:"monitoredResourceUri,omitempty" bson:"monitoredResourceUri"` - Expiry *time.Time `json:"expiry,omitempty" bson:"expiry"` - SupportedFeatures string `json:"supported-features" bson:"supported-features"` + + // String represents the SUPI or GPSI + UeId string `json:"ueId,omitempty"` + + // String providing an URI formatted according to RFC 3986. + CallbackReference string `json:"callbackReference"` + + // String providing an URI formatted according to RFC 3986. + OriginalCallbackReference string `json:"originalCallbackReference,omitempty"` + + MonitoredResourceUris []string `json:"monitoredResourceUris"` + + // string with format 'date-time' as defined in OpenAPI. + Expiry time.Time `json:"expiry,omitempty"` + + SdmSubscription SdmSubscription1 `json:"sdmSubscription,omitempty"` + + SubscriptionId string `json:"subscriptionId,omitempty"` + + UniqueSubscription bool `json:"uniqueSubscription,omitempty"` + + // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\", \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported. + SupportedFeatures string `json:"supportedFeatures,omitempty"` } diff --git a/models/model_ue_context_in_amf_data.go b/models/model_ue_context_in_amf_data.go new file mode 100644 index 00000000..353c28f5 --- /dev/null +++ b/models/model_ue_context_in_amf_data.go @@ -0,0 +1,17 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +type UeContextInAmfData struct { + EpsInterworkingInfo EpsInterworkingInfo `json:"epsInterworkingInfo,omitempty"` + + // AMF information + AmfInfo []AmfInfo `json:"amfInfo,omitempty"` +} diff --git a/models/model_ue_context_in_smf_data_sub_filter_1.go b/models/model_ue_context_in_smf_data_sub_filter_1.go new file mode 100644 index 00000000..287e05e8 --- /dev/null +++ b/models/model_ue_context_in_smf_data_sub_filter_1.go @@ -0,0 +1,19 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +// UeContextInSmfDataSubFilter1 - UE Context In Smf Data Subscription Filter. +type UeContextInSmfDataSubFilter1 struct { + DnnList []string `json:"dnnList,omitempty"` + + SnssaiList []Snssai `json:"snssaiList,omitempty"` + + EmergencyInd bool `json:"emergencyInd,omitempty"` +} diff --git a/models/model_ue_policy_URSP.go b/models/model_ue_policy_URSP.go new file mode 100644 index 00000000..5620aa38 --- /dev/null +++ b/models/model_ue_policy_URSP.go @@ -0,0 +1,140 @@ +package models + +import ( + "bytes" + "encoding/binary" + "fmt" + "io" +) + +//ref 3GPP TS 24.526 V17.8.0 (2022-12)--section 5.2 Encoding of UE policy part type URSP +//it's a encoding strcut for URSP to transmit to UE + +type URSPrule struct { + Length uint8 `json:"length" bson:"length"` + PrecedenceValue uint8 `json:"precedenceValue" bson:"precedenceValue"` + LengthTrafficDescriptor uint8 `json:"lengthTrafficDescriptor" bson:"lengthTrafficDescriptor"` + TrafficDescriptor []TrafficDescriptorComponent `json:"trafficDescriptor" bson:"trafficDescriptor"` + LengthRouteSelectionDescriptorList uint8 `json:"lengthRouteSelectionDescriptorList" bson:"lengthRouteSelectionDescriptorList"` + RouteSelectionDescriptorList []RouteSelectionDescriptor `json:"routeSelectionDescriptorList" bson:"routeSelectionDescriptorList"` +} + +func (u *URSPrule) CntURSPlen() error { + u.LengthTrafficDescriptor = 0 + for _, trafDesCom := range u.TrafficDescriptor { + len, err := trafDesCom.GetByteLen() + if err != nil { + return err + } + u.LengthTrafficDescriptor += len + } + u.LengthRouteSelectionDescriptorList = 0 + for _, routeSelDesList := range u.RouteSelectionDescriptorList { + len, err := routeSelDesList.GetByteLen() + if err != nil { + return err + } + u.LengthRouteSelectionDescriptorList += len + } + + u.Length = 3 + u.LengthTrafficDescriptor + u.LengthRouteSelectionDescriptorList + return nil +} + +func (u *URSPrule) EncodeURSPrule(buf *bytes.Buffer) error { + // count total byte length of this URSP rule first then encoding in next step + if err := u.CntURSPlen(); err != nil { + return err + } + + if err := binary.Write(buf, binary.BigEndian, u.Length); err != nil { + return err + } + if err := binary.Write(buf, binary.BigEndian, u.PrecedenceValue); err != nil { + return err + } + if err := binary.Write(buf, binary.BigEndian, u.LengthTrafficDescriptor); err != nil { + return err + } + for _, trafDesCom := range u.TrafficDescriptor { + err := trafDesCom.EncodeTrafficDescriptorComponent(buf) + if err != nil { + return err + } + } + if err := binary.Write(buf, binary.BigEndian, u.LengthRouteSelectionDescriptorList); err != nil { + return err + } + for i, routeSelDesList := range u.RouteSelectionDescriptorList { + err := routeSelDesList.EncodeRouteSelectionDescriptor(buf) + if err != nil { + return err + } + u.RouteSelectionDescriptorList[i] = routeSelDesList + } + + return nil +} + +func (u *URSPrule) DecodeURSPrule(b []byte, ruleLen uint8) error { + buf := bytes.NewBuffer(b) + // this IE have been deocde in prevoius caller func + u.Length = ruleLen + + if err := binary.Read(buf, binary.BigEndian, &u.PrecedenceValue); err != nil { + return err + } + if err := binary.Read(buf, binary.BigEndian, &u.LengthTrafficDescriptor); err != nil { + return err + } + // decode Traffic Desc to multi component + if err := u.decodeTrafDesc(buf); err != nil { + return err + } + if err := binary.Read(buf, binary.BigEndian, &u.LengthRouteSelectionDescriptorList); err != nil { + return err + } + // decode Route Desc to multi component + if err := u.decodeRouteSelDescLs(buf); err != nil { + return err + } + return nil +} + +func (u *URSPrule) decodeTrafDesc(buf *bytes.Buffer) error { + byTrafDesc := buf.Next(int(u.LengthTrafficDescriptor)) + if len(byTrafDesc) != int(u.LengthTrafficDescriptor) { + return fmt.Errorf("the buffer len is less than LengthTrafficDescriptor") + } + + newbuf := bytes.NewBuffer(byTrafDesc) + for { + var trafDescComp TrafficDescriptorComponent + if err := trafDescComp.DecodeTrafDescComp(newbuf); err != nil { + if err == io.EOF { + return nil + } + return err + } + u.TrafficDescriptor = append(u.TrafficDescriptor, trafDescComp) + } +} + +func (u *URSPrule) decodeRouteSelDescLs(buf *bytes.Buffer) error { + byRouteSelDescLs := buf.Next(int(u.LengthRouteSelectionDescriptorList)) + if len(byRouteSelDescLs) != int(u.LengthRouteSelectionDescriptorList) { + return fmt.Errorf("the buffer len is less than LengthRouteSelectionDescriptorList") + } + + newbuf := bytes.NewBuffer(byRouteSelDescLs) + for { + var routeSelDesc RouteSelectionDescriptor + if err := routeSelDesc.DecodeRouteSelDesc(newbuf); err != nil { + if err == io.EOF { + return nil + } + return err + } + u.RouteSelectionDescriptorList = append(u.RouteSelectionDescriptorList, routeSelDesc) + } +} diff --git a/models/model_ue_policy_URSP_RouteSelectionDescriptor.go b/models/model_ue_policy_URSP_RouteSelectionDescriptor.go new file mode 100644 index 00000000..2d3f2565 --- /dev/null +++ b/models/model_ue_policy_URSP_RouteSelectionDescriptor.go @@ -0,0 +1,89 @@ +package models + +import ( + "bytes" + "encoding/binary" + "fmt" + "io" +) + +type RouteSelectionDescriptor struct { + Length uint8 `json:"length" bson:"length"` + PrecedenceValue uint8 `json:"precedenceValue" bson:"precedenceValue"` + LengthContent uint8 `json:"LengthContent" bson:"LengthContent"` + RouteSelectionContent []RouteSelectionComponent `json:"routeSelectionContent" bson:"routeSelectionContent"` +} + +func (r *RouteSelectionDescriptor) GetByteLen() (uint8, error) { + r.LengthContent = 0 + for _, routeSelCom := range r.RouteSelectionContent { + len, err := routeSelCom.GetByteLen() + if err != nil { + return 0, err + } + r.LengthContent += len + } + // byte length of content and precedence and lengthcontent + r.Length = 2 + r.LengthContent + + // because this func would be used to count total byte length, plus 1 means IE:"Length" + return r.Length + 1, nil +} + +func (r *RouteSelectionDescriptor) EncodeRouteSelectionDescriptor(buf *bytes.Buffer) error { + // get the total byte length of this RouteSelect Descriptor first + if _, err := r.GetByteLen(); err != nil { + return err + } + + if err := binary.Write(buf, binary.BigEndian, r.Length); err != nil { + return err + } + if err := binary.Write(buf, binary.BigEndian, r.PrecedenceValue); err != nil { + return err + } + if err := binary.Write(buf, binary.BigEndian, r.LengthContent); err != nil { + return err + } + + for _, rouSelDescCom := range r.RouteSelectionContent { + if err := rouSelDescCom.EncodeRouteSelDescComopent(buf); err != nil { + return err + } + } + + return nil +} + +func (r *RouteSelectionDescriptor) DecodeRouteSelDesc(buf *bytes.Buffer) error { + // read length of this route select Descriptor + if err := binary.Read(buf, binary.BigEndian, &r.Length); err != nil { + return err + } + // create a new buffer to decode advacing IE + byRouSelDesc := buf.Next(int(r.Length)) + if len(byRouSelDesc) != int(r.Length) { + return fmt.Errorf("length of buffer is less than length of RouteSelectionDescriptor") + } + newbuf := bytes.NewBuffer(byRouSelDesc) + + // read precedence + if err := binary.Read(newbuf, binary.BigEndian, &r.PrecedenceValue); err != nil { + return err + } + // read Length of route select descriptor Content + if err := binary.Read(newbuf, binary.BigEndian, &r.LengthContent); err != nil { + return err + } + // read route select descriptor Content + for { + var rouSelDescCom RouteSelectionComponent + if err := rouSelDescCom.DecodeRouSelDescComp(newbuf); err != nil { + if err == io.EOF { + return nil + } + return err + } + r.RouteSelectionContent = append(r.RouteSelectionContent, rouSelDescCom) + } +} diff --git a/models/model_ue_policy_URSP_RouteSelectionDescriptorCom.go b/models/model_ue_policy_URSP_RouteSelectionDescriptorCom.go new file mode 100644 index 00000000..808dbfc8 --- /dev/null +++ b/models/model_ue_policy_URSP_RouteSelectionDescriptorCom.go @@ -0,0 +1,162 @@ +package models + +import ( + "bytes" + "encoding/binary" + "fmt" + "strings" +) + +type RouteSelectionComponent struct { + Identifier RouteSelComTypeId + Value []uint8 +} + +func (r *RouteSelectionComponent) GetByteLen() (uint8, error) { + if r.Identifier == 0x00 || len(r.Value) == 0 { + return 0, fmt.Errorf(" RouteSelectionComponent is nil, type is %v", r.Identifier) + } + return uint8(1 + len(r.Value)), nil +} + +func (r *RouteSelectionComponent) EncodeRouteSelDescComopent(buf *bytes.Buffer) error { + err := binary.Write(buf, binary.BigEndian, r.Identifier) + if err != nil { + return err + } + err = binary.Write(buf, binary.BigEndian, r.Value) + if err != nil { + return err + } + return nil +} + +func (r *RouteSelectionComponent) SetValue(value []byte) error { + newValue := []byte{} + if r.Identifier == 0x00 { + return fmt.Errorf(" Please set the Identifier first!! ") + } + + if r.Identifier == Route_S_NSSAI_type { + if len(value) != 6 && len(value) != 3 { + // ref to TS24.501 v17, 9.11.2.8 S-NSSAI + // only support SST and (SST and SD) type here + return fmt.Errorf(" Route_S_NSSAI_type should have SST, or with SD!! ") + } + newValue = append(newValue, byte(len(value))) + } else if r.Identifier == Route_DNN_type { + // The DNN value contains an APN as defined in 3GPP TS 23.003 [4], APN(4G)=DNN(5G) + // The DNN is compose of "APN Network Id(Mand)" and "APN Operator Identifier(Opt)" + if len(value) == 0 { + return fmt.Errorf(" Route_DNN_type should not be empty!! ") + } + newValue = append(newValue, byte(len(value))) + } else if r.Identifier == Route_PDU_session_type_type { + // be encoded as a one octet PDU session type field. The bits 8 through 4 of the octet + // shall be spare, and the bits 3 through 1 shall be encoded as the value part of the PDU + // session type information element defined in clause 9.11.4.11 of 3GPP TS 24.501 [11]. + if len(value) != 1 { + return fmt.Errorf(" Route_PDU_session_type_type should contain only 1 byte") + } + } else { + return fmt.Errorf("[RouteSelectionComponent]-The %v type is not yet supported!! ", r.Identifier) + } + newValue = append(newValue, value...) + r.Value = newValue + return nil +} + +func (r *RouteSelectionComponent) MakeByte_SNSSAI(sst uint8, sd []uint8) []byte { + // ref to: TS24.501 v17, 9.11.2.8 S-NSSAI + ret := []byte{} + + // "S-NSSAI IEI", 1 Octet, + // TODO: I dont know how to assign this value + ret = append(ret, 0x00) + + // "Length of S-NSSAI contents", 1 Octet + if sd == nil { + ret = append(ret, 0x01) + } else { + ret = append(ret, 0x04) + } + + // "SST", 1 Octet + ret = append(ret, sst) + + // "SD", 3 Octet + if sd != nil { + ret = append(ret, sd...) + } + return ret +} + +func (r *RouteSelectionComponent) MakeByte_DNN(dnn string) []byte { + // ref to: TS 23003 R17, 9A Definition of Data Network Name + // TODO: Let the format of DNN be the same as in the spec + return []byte(dnn) +} + +func (r *RouteSelectionComponent) MakeByte_PDUsessType(pDUtpye string) ([]byte, error) { + lowType := strings.ToLower(pDUtpye) + + if lowType == "ipv4" { + return []byte{0x01}, nil + } else if lowType == "ipv6" { + return []byte{0x02}, nil + } else if lowType == "ipv4v6" { + return []byte{0x03}, nil + } else if lowType == "unstructured" { + return []byte{0x04}, nil + } else if lowType == "ethernet" { + return []byte{0x05}, nil + } else if lowType == "reserved" { + return []byte{0x07}, nil + } + // All other values are unused and shall be interpreted as "IPv4v6", if received by the UE or the network. + return []byte{0x03}, nil + + // return nil, fmt.Errorf("pdu session type doesn't follow the format!! ") +} + +func (r *RouteSelectionComponent) DecodeRouSelDescComp(buf *bytes.Buffer) error { + // read component Identifier + if err := binary.Read(buf, binary.BigEndian, &r.Identifier); err != nil { + return err + } + // read component value, case by case + switch r.Identifier { + case Route_S_NSSAI_type: + // read the SNSSAI length first + var snssaiLen uint8 + if err := binary.Read(buf, binary.BigEndian, &snssaiLen); err != nil { + return err + } + r.Value = make([]byte, snssaiLen+1) + r.Value[0] = snssaiLen + // read the SNSSAI value + if err := binary.Read(buf, binary.BigEndian, r.Value[1:snssaiLen+1]); err != nil { + return err + } + case Route_DNN_type: + var dnnLen uint8 + if err := binary.Read(buf, binary.BigEndian, &dnnLen); err != nil { + return err + } + r.Value = make([]byte, dnnLen+1) + r.Value[0] = dnnLen + // read the dnn value + if err := binary.Read(buf, binary.BigEndian, r.Value[1:dnnLen+1]); err != nil { + return err + } + case Route_PDU_session_type_type: + r.Value = make([]byte, 1) + if err := binary.Read(buf, binary.BigEndian, r.Value[:1]); err != nil { + return err + } + default: + return fmt.Errorf("[DecodeRouSelDescComp] The %v type is not yet supported!! ", r.Identifier) + } + // fmt.Printf("[DecodeRouSelDescComp] decode success:%+v\n", *r) + return nil +} diff --git a/models/model_ue_policy_URSP_RouteSelectionDescriptorComTypeId.go b/models/model_ue_policy_URSP_RouteSelectionDescriptorComTypeId.go new file mode 100644 index 00000000..7ea86e77 --- /dev/null +++ b/models/model_ue_policy_URSP_RouteSelectionDescriptorComTypeId.go @@ -0,0 +1,22 @@ +package models + +type RouteSelComTypeId uint8 + +const ( + Route_SSC_mode_type RouteSelComTypeId = 0x01 + Route_S_NSSAI_type RouteSelComTypeId = 0x02 + Route_DNN_type RouteSelComTypeId = 0x04 + Route_PDU_session_type_type RouteSelComTypeId = 0x08 + Route_Preferred_access_type_type RouteSelComTypeId = 0x10 + Route_Multi_access_preference_type RouteSelComTypeId = 0x11 + Route_Nonseamless_Non3GPP_off_indi_type RouteSelComTypeId = 0x20 + Route_Location_criteria_type RouteSelComTypeId = 0x40 + Route_Time_window_type RouteSelComTypeId = 0x80 + Route_NR5G_ProSe_lay3_UE2network_relay_off_indi_type RouteSelComTypeId = 0x81 + Route_PDU_session_pair_ID_type RouteSelComTypeId = 0x82 + Route_RSN_type RouteSelComTypeId = 0x83 +) + +func (r *RouteSelComTypeId) SetTypeId(typeId RouteSelComTypeId) { + *r = typeId +} diff --git a/models/model_ue_policy_URSP_TrafficDescriptorCom.go b/models/model_ue_policy_URSP_TrafficDescriptorCom.go new file mode 100644 index 00000000..84f34f89 --- /dev/null +++ b/models/model_ue_policy_URSP_TrafficDescriptorCom.go @@ -0,0 +1,118 @@ +package models + +import ( + "bytes" + "encoding/binary" + "fmt" + "strconv" + "strings" +) + +type TrafficDescriptorComponent struct { + Identifier TrafDesComTypeId `json:"identifier" bson:"identifier"` + Value []uint8 `json:"value" bson:"value"` +} + +func (t *TrafficDescriptorComponent) GetByteLen() (uint8, error) { + if t.Identifier == 0x00 || (len(t.Value) == 0 && t.Identifier != Traf_Match_all_type) { + return 0, fmt.Errorf(" TrafficDescriptorComponent is nil!! ") + } + return 1 + uint8(len(t.Value)), nil +} + +func (t *TrafficDescriptorComponent) EncodeTrafficDescriptorComponent(buf *bytes.Buffer) error { + err := binary.Write(buf, binary.BigEndian, t.Identifier) + if err != nil { + return err + } + err = binary.Write(buf, binary.BigEndian, t.Value) + if err != nil { + return err + } + + return nil +} + +func (t *TrafficDescriptorComponent) SetValue(value []byte) error { + if t.Identifier == 0x00 { + return fmt.Errorf("please set the Identifier first") + } + + if t.Identifier == Traf_Match_all_type { + if value != nil { + return fmt.Errorf(" Match_all_type should not include any value field!! ") + } + return nil + } else if t.Identifier == Traf_IPv4_remote_addr_type { + if len(value) != 8 { + return fmt.Errorf(" IP value should contain 4 Octet IP and 4 Octet mask!! ") + } + t.Value = value + return nil + } else if t.Identifier == Traf_Dst_MAC_addr_type { + if len(value) != 6 { + return fmt.Errorf(" Dst MAC value should contain 6 Octets!! ") + } + t.Value = value + } else { + // TODO: add other format error checking + return fmt.Errorf("[TrafficDescriptorComponent]- The %v type is not yet supported!! ", t.Identifier) + } + return nil +} + +func (t *TrafficDescriptorComponent) IPv4remote_MakeByte(ip, mask string) ([]byte, error) { + ret := []byte{} + + // IP field + ipArr := strings.Split(ip, ".") + if len(ipArr) != 4 { + return nil, fmt.Errorf("the IP address should contain 4 sections") + } + for _, ipSec := range ipArr { + ipSecInt, err := strconv.Atoi(ipSec) + if err != nil { + return nil, fmt.Errorf("the Transfer of IP from string to int occurs error") + } + ret = append(ret, byte(ipSecInt)) + } + + // Mask field + maskArr := strings.Split(mask, ".") + if len(maskArr) != 4 { + return nil, fmt.Errorf("the IP mask address should contain 4 sections") + } + for _, maskSec := range maskArr { + maskSecInt, err := strconv.Atoi(maskSec) + if err != nil { + return nil, fmt.Errorf("the Transfer of IP mask from string to int occurs error") + } + ret = append(ret, byte(maskSecInt)) + } + return ret, nil +} + +func (t *TrafficDescriptorComponent) DecodeTrafDescComp(buf *bytes.Buffer) error { + if err := binary.Read(buf, binary.BigEndian, &t.Identifier); err != nil { + return err + } + + switch t.Identifier { + case Traf_Match_all_type: + t.Value = make([]byte, 0) + case Traf_IPv4_remote_addr_type: + t.Value = make([]byte, 8) + if err := binary.Read(buf, binary.BigEndian, t.Value[:len(t.Value)]); err != nil { + return err + } + case Traf_Dst_MAC_addr_type: + t.Value = make([]byte, 6) + if err := binary.Read(buf, binary.BigEndian, t.Value[:len(t.Value)]); err != nil { + return err + } + default: + // TODO: add other foramt byte slice read + return fmt.Errorf("[TrafficDescriptorComponent] the format of Traffic descriptor is not supported yet: %b", t.Identifier) + } + return nil +} diff --git a/models/model_ue_policy_URSP_TrafficDescriptorComTypeId.go b/models/model_ue_policy_URSP_TrafficDescriptorComTypeId.go new file mode 100644 index 00000000..612517f3 --- /dev/null +++ b/models/model_ue_policy_URSP_TrafficDescriptorComTypeId.go @@ -0,0 +1,39 @@ +package models + +// 3GPP TS 24.526 V17.8.0, Table 5.2.1: UE policy part contents including a URSP rule +type TrafDesComTypeId uint8 + +// All other values are spare. If received they shall be interpreted as unknown. +const ( + Traf_Match_all_type TrafDesComTypeId = 0x01 + Traf_OSId_plus_OSAppId_type TrafDesComTypeId = 0x08 + Traf_IPv4_remote_addr_type TrafDesComTypeId = 0x10 + Traf_IPv6_remote_addr_Prefix_len_type TrafDesComTypeId = 0x21 + Traf_ProtocolId_Next_header_type TrafDesComTypeId = 0x30 + Traf_Single_remote_port_type0 TrafDesComTypeId = 0x50 + Traf_Remote_port_range_type TrafDesComTypeId = 0x51 + Traf_IP_3_tuple_type TrafDesComTypeId = 0x52 + Traf_Secur_para_idx_type TrafDesComTypeId = 0x60 + Traf_TypeOf_service_Traf_class_type TrafDesComTypeId = 0x70 + Traf_Flow_label_type TrafDesComTypeId = 0x80 + Traf_Dst_MAC_addr_type TrafDesComTypeId = 0x81 + Traf_802_1Q_C_TAG_VID_type TrafDesComTypeId = 0x83 + Traf_802_1Q_S_TAG_VID_type TrafDesComTypeId = 0x84 + Traf__802_1Q_C_TAG_PCP_DEI_type TrafDesComTypeId = 0x85 + Traf_802_1Q_S_TAG_PCP_DEI_type TrafDesComTypeId = 0x86 + Traf_Ethertype_type TrafDesComTypeId = 0x87 + Traf_DNN_type TrafDesComTypeId = 0x88 + Traf_Conn_capabilities_type TrafDesComTypeId = 0x90 + Traf_Dst_FQDN TrafDesComTypeId = 0x91 + Traf_Regular_expression TrafDesComTypeId = 0x92 + Traf_OS_App_Id_type TrafDesComTypeId = 0xA0 + Traf_Dst_MAC_addr_range_type TrafDesComTypeId = 0xA1 +) + +// func (t *TrafDesComTypeId) SetType(typeId uint8) { +// t = typeId +// } + +// func (t *TrafDesComTypeId) GetType() TrafDesComTypeId { +// return t +// } diff --git a/models/model_ue_policy_URSP_set.go b/models/model_ue_policy_URSP_set.go new file mode 100644 index 00000000..61685fb2 --- /dev/null +++ b/models/model_ue_policy_URSP_set.go @@ -0,0 +1,62 @@ +package models + +import ( + "bytes" + "encoding/binary" + "fmt" + "io" +) + +//ref 3GPP TS 24.526 V17.8.0 (2022-12)--section 5.2 Encoding of UE policy part type URSP +//it's a encoding strcut for URSP to transmit to UE + +type UePolicyURSP struct { + URSPruleSet []URSPrule `json:"uRSPruleSet" bson:"uRSPruleSet"` +} + +func (u *UePolicyURSP) EncodeURSP() ([]byte, error) { + buffer := bytes.NewBuffer(nil) + for i, URSPrule := range u.URSPruleSet { + err := URSPrule.EncodeURSPrule(buffer) + if err != nil { + return nil, err + } + u.URSPruleSet[i] = URSPrule + } + return buffer.Bytes(), nil +} + +func (u *UePolicyURSP) DecodeURSP(b []byte) error { + buf := bytes.NewBuffer(b) + + for { + byUrspRule, ruleLen, err := parseURSPrule(buf) + if err == io.EOF { + return nil + } else if err != nil { + return err + } + var urspRule URSPrule + err = urspRule.DecodeURSPrule(byUrspRule, ruleLen) + if err != nil { + return err + } + u.URSPruleSet = append(u.URSPruleSet, urspRule) + } +} + +func parseURSPrule(buf *bytes.Buffer) ([]byte, uint8, error) { + var urspLen uint8 + + if err := binary.Read(buf, binary.BigEndian, &urspLen); err != nil { + return nil, 0, err + } + + // return byteslice of a single URSP rule + readByte := buf.Next(int(urspLen)) + // if buffer length is less than URSP rule length + if len(readByte) != int(urspLen) { + return nil, 0, fmt.Errorf("parsing a single URSPrule error, buffer length is less than URSP rule length") + } + return readByte, urspLen, nil +} diff --git a/models/model_ue_policy_set.go b/models/model_ue_policy_set.go index 3990d8d4..d91388f7 100644 --- a/models/model_ue_policy_set.go +++ b/models/model_ue_policy_set.go @@ -1,17 +1,39 @@ /* - * Nudr_DataRepository API OpenAPI file + * Unified Data Repository Service API file for policy data * - * Unified Data Repository Service + * The API version is defined in 3GPP TS 29.504 © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. * - * API version: 1.0.0 + * API version: - Rel-17 * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ package models -// Contains the UE policy data for a given subscriber. +// UePolicySet - Contains the UE policy data for a given subscriber. type UePolicySet struct { - SubscCats []string `json:"subscCats,omitempty" bson:"subscCats"` - UePolicySections map[string]UePolicySection `json:"uePolicySections,omitempty" bson:"uePolicySections"` - Upsis []string `json:"upsis,omitempty" bson:"upsis"` + + // Contains Presence reporting area information. The praId attribute within the PresenceInfo data type is the key of the map. + PraInfos map[string]PresenceInfo `json:"praInfos,omitempty"` + + SubscCats []string `json:"subscCats,omitempty"` + + // Contains the UE Policy Sections. The UE Policy Section Identifier is used as the key of the map. + UePolicySections map[string]UePolicySection `json:"uePolicySections,omitempty"` + + Upsis []string `json:"upsis,omitempty"` + + // Contains allowed route selection descriptors per serving PLMN for a UE. The serving PLMN identifier is the key of the map. + AllowedRouteSelDescs map[string]PlmnRouteSelectionDescriptor `json:"allowedRouteSelDescs,omitempty"` + + AndspInd bool `json:"andspInd,omitempty"` + + // String representing a Permanent Equipment Identifier that may contain - an IMEI or IMEISV, as specified in clause 6.2 of 3GPP TS 23.003; a MAC address for a 5G-RG or FN-RG via wireline access, with an indication that this address cannot be trusted for regulatory purpose if this address cannot be used as an Equipment Identifier of the FN-RG, as specified in clause 4.7.7 of 3GPP TS23.316. Examples are imei-012345678901234 or imeisv-0123456789012345. + Pei string `json:"pei,omitempty"` + + OsIds []string `json:"osIds,omitempty"` + + // A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\", \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported. + SuppFeat string `json:"suppFeat,omitempty"` + + ResetIds []string `json:"resetIds,omitempty"` } diff --git a/models/model_valid_time_period.go b/models/model_valid_time_period.go new file mode 100644 index 00000000..2e4c4a59 --- /dev/null +++ b/models/model_valid_time_period.go @@ -0,0 +1,23 @@ +/* + * Nudr_DataRepository API OpenAPI file + * + * Unified Data Repository Service. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + * + * API version: 2.2.0 + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package models + +import ( + "time" +) + +type ValidTimePeriod struct { + + // string with format 'date-time' as defined in OpenAPI. + StartTime time.Time `json:"startTime,omitempty"` + + // string with format 'date-time' as defined in OpenAPI. + EndTime time.Time `json:"endTime,omitempty"` +}