diff --git a/services/edge/api_default.go b/services/edge/api_default.go index 8b1511e70..5fa9394c5 100644 --- a/services/edge/api_default.go +++ b/services/edge/api_default.go @@ -237,6 +237,24 @@ type DefaultApi interface { // Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead */ GetTokenByInstanceNameExecute(ctx context.Context, projectId string, regionId string, displayName string) (*Token, error) + /* + ListCompatibleKubernetesReleases Method for ListCompatibleKubernetesReleases + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiListCompatibleKubernetesReleasesRequest + + // Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead + */ + ListCompatibleKubernetesReleases(ctx context.Context) ApiListCompatibleKubernetesReleasesRequest + /* + ListCompatibleKubernetesReleasesExecute executes the request + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return KubernetesReleaseList + + // Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead + */ + ListCompatibleKubernetesReleasesExecute(ctx context.Context) (*KubernetesReleaseList, error) /* ListInstances Method for ListInstances Returns a list of all instances within the project. @@ -389,6 +407,15 @@ type ApiGetTokenByInstanceNameRequest interface { Execute() (*Token, error) } +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +type ApiListCompatibleKubernetesReleasesRequest interface { + // The name of the Talos release. + // Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead + TalosVersion(talosVersion string) ApiListCompatibleKubernetesReleasesRequest + // Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead + Execute() (*KubernetesReleaseList, error) +} + // Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead type ApiListInstancesRequest interface { // Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead @@ -1867,6 +1894,147 @@ func (a *APIClient) GetTokenByInstanceNameExecute(ctx context.Context, projectId return r.Execute() } +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +type ListCompatibleKubernetesReleasesRequest struct { + ctx context.Context + apiService *DefaultApiService + talosVersion *string +} + +// The name of the Talos release. +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (r ListCompatibleKubernetesReleasesRequest) TalosVersion(talosVersion string) ApiListCompatibleKubernetesReleasesRequest { + r.talosVersion = &talosVersion + return r +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (r ListCompatibleKubernetesReleasesRequest) Execute() (*KubernetesReleaseList, error) { + var ( + localVarHTTPMethod = http.MethodGet + localVarPostBody interface{} + formFiles []formFile + localVarReturnValue *KubernetesReleaseList + ) + a := r.apiService + client, ok := a.client.(*APIClient) + if !ok { + return localVarReturnValue, fmt.Errorf("could not parse client to type APIClient") + } + localBasePath, err := client.cfg.ServerURLWithContext(r.ctx, "DefaultApiService.ListCompatibleKubernetesReleases") + if err != nil { + return localVarReturnValue, &oapierror.GenericOpenAPIError{ErrorMessage: err.Error()} + } + + localVarPath := localBasePath + "/v1beta1/listcompatiblekubernetesreleases" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + if r.talosVersion == nil { + return localVarReturnValue, fmt.Errorf("talosVersion is required and must be specified") + } + + parameterAddToHeaderOrQuery(localVarQueryParams, "talosVersion", r.talosVersion, "") + // 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"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + req, err := client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) + if err != nil { + return localVarReturnValue, err + } + + contextHTTPRequest, ok := r.ctx.Value(config.ContextHTTPRequest).(**http.Request) + if ok { + *contextHTTPRequest = req + } + + localVarHTTPResponse, err := client.callAPI(req) + contextHTTPResponse, ok := r.ctx.Value(config.ContextHTTPResponse).(**http.Response) + if ok { + *contextHTTPResponse = localVarHTTPResponse + } + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &oapierror.GenericOpenAPIError{ + StatusCode: localVarHTTPResponse.StatusCode, + Body: localVarBody, + ErrorMessage: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v BadRequest + err = client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.ErrorMessage = err.Error() + return localVarReturnValue, newErr + } + newErr.ErrorMessage = oapierror.FormatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.Model = v + return localVarReturnValue, newErr + } + return localVarReturnValue, newErr + } + + err = client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &oapierror.GenericOpenAPIError{ + StatusCode: localVarHTTPResponse.StatusCode, + Body: localVarBody, + ErrorMessage: err.Error(), + } + return localVarReturnValue, newErr + } + + return localVarReturnValue, nil +} + +/* +ListCompatibleKubernetesReleases: Method for ListCompatibleKubernetesReleases +Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiListCompatibleKubernetesReleasesRequest +*/ +func (a *APIClient) ListCompatibleKubernetesReleases(ctx context.Context) ApiListCompatibleKubernetesReleasesRequest { + return ListCompatibleKubernetesReleasesRequest{ + apiService: a.defaultApi, + ctx: ctx, + } +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (a *APIClient) ListCompatibleKubernetesReleasesExecute(ctx context.Context) (*KubernetesReleaseList, error) { + r := ListCompatibleKubernetesReleasesRequest{ + apiService: a.defaultApi, + ctx: ctx, + } + return r.Execute() +} + // Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead type ListInstancesRequest struct { ctx context.Context diff --git a/services/edge/model_kubernetes_release_list.go b/services/edge/model_kubernetes_release_list.go new file mode 100644 index 000000000..115469d89 --- /dev/null +++ b/services/edge/model_kubernetes_release_list.go @@ -0,0 +1,150 @@ +/* +STACKIT Edge Cloud API + +This API provides endpoints for managing STACKIT Edge Cloud instances. + +API version: 1beta1 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +package edge + +import ( + "encoding/json" +) + +// checks if the KubernetesReleaseList type satisfies the MappedNullable interface at compile time +var _ MappedNullable = &KubernetesReleaseList{} + +/* + types and functions for k8s_releases +*/ + +// isArray +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +type KubernetesReleaseListGetK8sReleasesAttributeType = *[]string + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +type KubernetesReleaseListGetK8sReleasesArgType = []string + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +type KubernetesReleaseListGetK8sReleasesRetType = []string + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func getKubernetesReleaseListGetK8sReleasesAttributeTypeOk(arg KubernetesReleaseListGetK8sReleasesAttributeType) (ret KubernetesReleaseListGetK8sReleasesRetType, ok bool) { + if arg == nil { + return ret, false + } + return *arg, true +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func setKubernetesReleaseListGetK8sReleasesAttributeType(arg *KubernetesReleaseListGetK8sReleasesAttributeType, val KubernetesReleaseListGetK8sReleasesRetType) { + *arg = &val +} + +// KubernetesReleaseList A list of compatible Kubernetes releases. +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +type KubernetesReleaseList struct { + // Array of Kubernetes version strings. + // REQUIRED + K8sReleases KubernetesReleaseListGetK8sReleasesAttributeType `json:"k8s_releases" required:"true"` +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +type _KubernetesReleaseList KubernetesReleaseList + +// NewKubernetesReleaseList instantiates a new KubernetesReleaseList object +// This constructor will assign default values to properties that have it defined, +// and makes sure properties required by API are set, but the set of arguments +// will change when the set of required properties is changed +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func NewKubernetesReleaseList(k8sReleases KubernetesReleaseListGetK8sReleasesArgType) *KubernetesReleaseList { + this := KubernetesReleaseList{} + setKubernetesReleaseListGetK8sReleasesAttributeType(&this.K8sReleases, k8sReleases) + return &this +} + +// NewKubernetesReleaseListWithDefaults instantiates a new KubernetesReleaseList object +// This constructor will only assign default values to properties that have it defined, +// but it doesn't guarantee that properties required by API are set +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func NewKubernetesReleaseListWithDefaults() *KubernetesReleaseList { + this := KubernetesReleaseList{} + return &this +} + +// GetK8sReleases returns the K8sReleases field value +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (o *KubernetesReleaseList) GetK8sReleases() (ret KubernetesReleaseListGetK8sReleasesRetType) { + ret, _ = o.GetK8sReleasesOk() + return ret +} + +// GetK8sReleasesOk returns a tuple with the K8sReleases field value +// and a boolean to check if the value has been set. +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (o *KubernetesReleaseList) GetK8sReleasesOk() (ret KubernetesReleaseListGetK8sReleasesRetType, ok bool) { + return getKubernetesReleaseListGetK8sReleasesAttributeTypeOk(o.K8sReleases) +} + +// SetK8sReleases sets field value +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (o *KubernetesReleaseList) SetK8sReleases(v KubernetesReleaseListGetK8sReleasesRetType) { + setKubernetesReleaseListGetK8sReleasesAttributeType(&o.K8sReleases, v) +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (o KubernetesReleaseList) ToMap() (map[string]interface{}, error) { + toSerialize := map[string]interface{}{} + if val, ok := getKubernetesReleaseListGetK8sReleasesAttributeTypeOk(o.K8sReleases); ok { + toSerialize["K8sReleases"] = val + } + return toSerialize, nil +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +type NullableKubernetesReleaseList struct { + value *KubernetesReleaseList + isSet bool +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (v NullableKubernetesReleaseList) Get() *KubernetesReleaseList { + return v.value +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (v *NullableKubernetesReleaseList) Set(val *KubernetesReleaseList) { + v.value = val + v.isSet = true +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (v NullableKubernetesReleaseList) IsSet() bool { + return v.isSet +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (v *NullableKubernetesReleaseList) Unset() { + v.value = nil + v.isSet = false +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func NewNullableKubernetesReleaseList(val *KubernetesReleaseList) *NullableKubernetesReleaseList { + return &NullableKubernetesReleaseList{value: val, isSet: true} +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (v NullableKubernetesReleaseList) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +// Deprecated: Will be removed after 2026-09-30. Move to the packages generated for each available API version instead +func (v *NullableKubernetesReleaseList) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/services/edge/model_kubernetes_release_list_test.go b/services/edge/model_kubernetes_release_list_test.go new file mode 100644 index 000000000..43efce354 --- /dev/null +++ b/services/edge/model_kubernetes_release_list_test.go @@ -0,0 +1,11 @@ +/* +STACKIT Edge Cloud API + +This API provides endpoints for managing STACKIT Edge Cloud instances. + +API version: 1beta1 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package edge diff --git a/services/edge/oas_commit b/services/edge/oas_commit index 6ffe07488..6fdb25c73 100644 --- a/services/edge/oas_commit +++ b/services/edge/oas_commit @@ -1 +1 @@ -f133408fd6686f12ba34f400ba631124b063f5cc +c8e6adbf2c24050dca06a64b301b3a43ba28be6e diff --git a/services/edge/v1beta1api/api_default.go b/services/edge/v1beta1api/api_default.go index d714cfb27..c9710f02b 100644 --- a/services/edge/v1beta1api/api_default.go +++ b/services/edge/v1beta1api/api_default.go @@ -173,6 +173,18 @@ type DefaultAPI interface { // @return Token GetTokenByInstanceNameExecute(r ApiGetTokenByInstanceNameRequest) (*Token, error) + /* + ListCompatibleKubernetesReleases Method for ListCompatibleKubernetesReleases + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiListCompatibleKubernetesReleasesRequest + */ + ListCompatibleKubernetesReleases(ctx context.Context) ApiListCompatibleKubernetesReleasesRequest + + // ListCompatibleKubernetesReleasesExecute executes the request + // @return KubernetesReleaseList + ListCompatibleKubernetesReleasesExecute(r ApiListCompatibleKubernetesReleasesRequest) (*KubernetesReleaseList, error) + /* ListInstances Method for ListInstances @@ -1612,6 +1624,138 @@ func (a *DefaultAPIService) GetTokenByInstanceNameExecute(r ApiGetTokenByInstanc return localVarReturnValue, nil } +type ApiListCompatibleKubernetesReleasesRequest struct { + ctx context.Context + ApiService DefaultAPI + talosVersion *string +} + +// The name of the Talos release. +func (r ApiListCompatibleKubernetesReleasesRequest) TalosVersion(talosVersion string) ApiListCompatibleKubernetesReleasesRequest { + r.talosVersion = &talosVersion + return r +} + +func (r ApiListCompatibleKubernetesReleasesRequest) Execute() (*KubernetesReleaseList, error) { + return r.ApiService.ListCompatibleKubernetesReleasesExecute(r) +} + +/* +ListCompatibleKubernetesReleases Method for ListCompatibleKubernetesReleases + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @return ApiListCompatibleKubernetesReleasesRequest +*/ +func (a *DefaultAPIService) ListCompatibleKubernetesReleases(ctx context.Context) ApiListCompatibleKubernetesReleasesRequest { + return ApiListCompatibleKubernetesReleasesRequest{ + ApiService: a, + ctx: ctx, + } +} + +// Execute executes the request +// +// @return KubernetesReleaseList +func (a *DefaultAPIService) ListCompatibleKubernetesReleasesExecute(r ApiListCompatibleKubernetesReleasesRequest) (*KubernetesReleaseList, error) { + var ( + localVarHTTPMethod = http.MethodGet + localVarPostBody interface{} + formFiles []formFile + localVarReturnValue *KubernetesReleaseList + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.ListCompatibleKubernetesReleases") + if err != nil { + return localVarReturnValue, &oapierror.GenericOpenAPIError{ErrorMessage: err.Error()} + } + + localVarPath := localBasePath + "/v1beta1/listcompatiblekubernetesreleases" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + if r.talosVersion == nil { + return localVarReturnValue, reportError("talosVersion is required and must be specified") + } + + parameterAddToHeaderOrQuery(localVarQueryParams, "talosVersion", r.talosVersion, "form", "") + // 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"} + + // 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, err + } + + contextHTTPRequest, ok := r.ctx.Value(config.ContextHTTPRequest).(**http.Request) + if ok { + *contextHTTPRequest = req + } + + localVarHTTPResponse, err := a.client.callAPI(req) + contextHTTPResponse, ok := r.ctx.Value(config.ContextHTTPResponse).(**http.Response) + if ok { + *contextHTTPResponse = localVarHTTPResponse + } + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, err + } + + localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &oapierror.GenericOpenAPIError{ + Body: localVarBody, + ErrorMessage: localVarHTTPResponse.Status, + StatusCode: localVarHTTPResponse.StatusCode, + } + if localVarHTTPResponse.StatusCode == 400 { + var v BadRequest + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.ErrorMessage = err.Error() + return localVarReturnValue, newErr + } + newErr.ErrorMessage = oapierror.FormatErrorMessage(localVarHTTPResponse.Status, &v) + newErr.Model = v + return localVarReturnValue, newErr + return localVarReturnValue, newErr + } + return localVarReturnValue, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &oapierror.GenericOpenAPIError{ + StatusCode: localVarHTTPResponse.StatusCode, + Body: localVarBody, + ErrorMessage: err.Error(), + } + return localVarReturnValue, newErr + } + + return localVarReturnValue, nil +} + type ApiListInstancesRequest struct { ctx context.Context ApiService DefaultAPI diff --git a/services/edge/v1beta1api/api_default_mock.go b/services/edge/v1beta1api/api_default_mock.go index 2a0022cc6..f5e252b6f 100644 --- a/services/edge/v1beta1api/api_default_mock.go +++ b/services/edge/v1beta1api/api_default_mock.go @@ -38,6 +38,8 @@ type DefaultAPIServiceMock struct { GetTokenByInstanceIdExecuteMock *func(r ApiGetTokenByInstanceIdRequest) (*Token, error) // GetTokenByInstanceNameExecuteMock can be populated to implement the behavior of the GetTokenByInstanceNameExecute function of this mock GetTokenByInstanceNameExecuteMock *func(r ApiGetTokenByInstanceNameRequest) (*Token, error) + // ListCompatibleKubernetesReleasesExecuteMock can be populated to implement the behavior of the ListCompatibleKubernetesReleasesExecute function of this mock + ListCompatibleKubernetesReleasesExecuteMock *func(r ApiListCompatibleKubernetesReleasesRequest) (*KubernetesReleaseList, error) // ListInstancesExecuteMock can be populated to implement the behavior of the ListInstancesExecute function of this mock ListInstancesExecuteMock *func(r ApiListInstancesRequest) (*InstanceList, error) // ListPlansProjectExecuteMock can be populated to implement the behavior of the ListPlansProjectExecute function of this mock @@ -225,6 +227,23 @@ func (a DefaultAPIServiceMock) GetTokenByInstanceNameExecute(r ApiGetTokenByInst return (*a.GetTokenByInstanceNameExecuteMock)(r) } +func (a DefaultAPIServiceMock) ListCompatibleKubernetesReleases(ctx context.Context) ApiListCompatibleKubernetesReleasesRequest { + return ApiListCompatibleKubernetesReleasesRequest{ + ApiService: a, + ctx: ctx, + } +} + +// ListCompatibleKubernetesReleasesExecute is a no-op by default and will return only return nil values. Behavior can be controlled by populating the ListCompatibleKubernetesReleasesExecuteMock field in the DefaultAPIServiceMock struct. +func (a DefaultAPIServiceMock) ListCompatibleKubernetesReleasesExecute(r ApiListCompatibleKubernetesReleasesRequest) (*KubernetesReleaseList, error) { + if a.ListCompatibleKubernetesReleasesExecuteMock == nil { + var localVarReturnValue *KubernetesReleaseList + return localVarReturnValue, nil + } + + return (*a.ListCompatibleKubernetesReleasesExecuteMock)(r) +} + func (a DefaultAPIServiceMock) ListInstances(ctx context.Context, projectId string, regionId string) ApiListInstancesRequest { return ApiListInstancesRequest{ ApiService: a, diff --git a/services/edge/v1beta1api/model_kubernetes_release_list.go b/services/edge/v1beta1api/model_kubernetes_release_list.go new file mode 100644 index 000000000..3883f3278 --- /dev/null +++ b/services/edge/v1beta1api/model_kubernetes_release_list.go @@ -0,0 +1,167 @@ +/* +STACKIT Edge Cloud API + +This API provides endpoints for managing STACKIT Edge Cloud instances. + +API version: 1beta1 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package v1beta1api + +import ( + "encoding/json" + "fmt" +) + +// checks if the KubernetesReleaseList type satisfies the MappedNullable interface at compile time +var _ MappedNullable = &KubernetesReleaseList{} + +// KubernetesReleaseList A list of compatible Kubernetes releases. +type KubernetesReleaseList struct { + // Array of Kubernetes version strings. + K8sReleases []string `json:"k8s_releases"` + AdditionalProperties map[string]interface{} +} + +type _KubernetesReleaseList KubernetesReleaseList + +// NewKubernetesReleaseList instantiates a new KubernetesReleaseList object +// This constructor will assign default values to properties that have it defined, +// and makes sure properties required by API are set, but the set of arguments +// will change when the set of required properties is changed +func NewKubernetesReleaseList(k8sReleases []string) *KubernetesReleaseList { + this := KubernetesReleaseList{} + this.K8sReleases = k8sReleases + return &this +} + +// NewKubernetesReleaseListWithDefaults instantiates a new KubernetesReleaseList object +// This constructor will only assign default values to properties that have it defined, +// but it doesn't guarantee that properties required by API are set +func NewKubernetesReleaseListWithDefaults() *KubernetesReleaseList { + this := KubernetesReleaseList{} + return &this +} + +// GetK8sReleases returns the K8sReleases field value +func (o *KubernetesReleaseList) GetK8sReleases() []string { + if o == nil { + var ret []string + return ret + } + + return o.K8sReleases +} + +// GetK8sReleasesOk returns a tuple with the K8sReleases field value +// and a boolean to check if the value has been set. +func (o *KubernetesReleaseList) GetK8sReleasesOk() ([]string, bool) { + if o == nil { + return nil, false + } + return o.K8sReleases, true +} + +// SetK8sReleases sets field value +func (o *KubernetesReleaseList) SetK8sReleases(v []string) { + o.K8sReleases = v +} + +func (o KubernetesReleaseList) MarshalJSON() ([]byte, error) { + toSerialize, err := o.ToMap() + if err != nil { + return []byte{}, err + } + return json.Marshal(toSerialize) +} + +func (o KubernetesReleaseList) ToMap() (map[string]interface{}, error) { + toSerialize := map[string]interface{}{} + toSerialize["k8s_releases"] = o.K8sReleases + + for key, value := range o.AdditionalProperties { + toSerialize[key] = value + } + + return toSerialize, nil +} + +func (o *KubernetesReleaseList) UnmarshalJSON(data []byte) (err error) { + // This validates that all required properties are included in the JSON object + // by unmarshalling the object into a generic map with string keys and checking + // that every required field exists as a key in the generic map. + requiredProperties := []string{ + "k8s_releases", + } + + allProperties := make(map[string]interface{}) + + err = json.Unmarshal(data, &allProperties) + + if err != nil { + return err + } + + for _, requiredProperty := range requiredProperties { + if _, exists := allProperties[requiredProperty]; !exists { + return fmt.Errorf("no value given for required property %v", requiredProperty) + } + } + + varKubernetesReleaseList := _KubernetesReleaseList{} + + err = json.Unmarshal(data, &varKubernetesReleaseList) + + if err != nil { + return err + } + + *o = KubernetesReleaseList(varKubernetesReleaseList) + + additionalProperties := make(map[string]interface{}) + + if err = json.Unmarshal(data, &additionalProperties); err == nil { + delete(additionalProperties, "k8s_releases") + o.AdditionalProperties = additionalProperties + } + + return err +} + +type NullableKubernetesReleaseList struct { + value *KubernetesReleaseList + isSet bool +} + +func (v NullableKubernetesReleaseList) Get() *KubernetesReleaseList { + return v.value +} + +func (v *NullableKubernetesReleaseList) Set(val *KubernetesReleaseList) { + v.value = val + v.isSet = true +} + +func (v NullableKubernetesReleaseList) IsSet() bool { + return v.isSet +} + +func (v *NullableKubernetesReleaseList) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableKubernetesReleaseList(val *KubernetesReleaseList) *NullableKubernetesReleaseList { + return &NullableKubernetesReleaseList{value: val, isSet: true} +} + +func (v NullableKubernetesReleaseList) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableKubernetesReleaseList) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +}