From 797c942803a65ba28165a8cdd4585ac8b8ae5142 Mon Sep 17 00:00:00 2001 From: SDK Generator Bot Date: Fri, 26 Sep 2025 08:29:28 +0000 Subject: [PATCH 1/2] Generate authorization --- services/authorization/api_default.go | 192 ++++++++++++++++ services/authorization/api_default_test.go | 55 +++++ .../authorization/model_assignable_subject.go | 174 ++++++++++++++ .../model_assignable_subject_test.go | 11 + ...model_list_assignable_subjects_response.go | 213 ++++++++++++++++++ ..._list_assignable_subjects_response_test.go | 11 + 6 files changed, 656 insertions(+) create mode 100644 services/authorization/model_assignable_subject.go create mode 100644 services/authorization/model_assignable_subject_test.go create mode 100644 services/authorization/model_list_assignable_subjects_response.go create mode 100644 services/authorization/model_list_assignable_subjects_response_test.go diff --git a/services/authorization/api_default.go b/services/authorization/api_default.go index ae7482043..5826ac05f 100644 --- a/services/authorization/api_default.go +++ b/services/authorization/api_default.go @@ -43,6 +43,26 @@ type DefaultApi interface { */ AddMembersExecute(ctx context.Context, resourceId string) (*MembersResponse, error) + /* + GetAssignableSubjects Get subjects assignable to a resource + BFF endpoint for portal. List subjects assignable to a given resource. + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param resourceType + @param resourceId + @return ApiGetAssignableSubjectsRequest + */ + GetAssignableSubjects(ctx context.Context, resourceType string, resourceId string) ApiGetAssignableSubjectsRequest + /* + GetAssignableSubjectsExecute executes the request + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param resourceType + @param resourceId + @return ListAssignableSubjectsResponse + + */ + GetAssignableSubjectsExecute(ctx context.Context, resourceType string, resourceId string) (*ListAssignableSubjectsResponse, error) /* ListMembers Get members to a resource List members of the given resource. @@ -160,6 +180,11 @@ type ApiAddMembersRequest interface { Execute() (*MembersResponse, error) } +type ApiGetAssignableSubjectsRequest interface { + Subject(subject string) ApiGetAssignableSubjectsRequest + Execute() (*ListAssignableSubjectsResponse, error) +} + type ApiListMembersRequest interface { Subject(subject string) ApiListMembersRequest Execute() (*ListMembersResponse, error) @@ -360,6 +385,173 @@ func (a *APIClient) AddMembersExecute(ctx context.Context, resourceId string) (* return r.Execute() } +type GetAssignableSubjectsRequest struct { + ctx context.Context + apiService *DefaultApiService + resourceType string + resourceId string + subject *string +} + +func (r GetAssignableSubjectsRequest) Subject(subject string) ApiGetAssignableSubjectsRequest { + r.subject = &subject + return r +} + +func (r GetAssignableSubjectsRequest) Execute() (*ListAssignableSubjectsResponse, error) { + var ( + localVarHTTPMethod = http.MethodGet + localVarPostBody interface{} + formFiles []formFile + localVarReturnValue *ListAssignableSubjectsResponse + ) + 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.GetAssignableSubjects") + if err != nil { + return localVarReturnValue, &oapierror.GenericOpenAPIError{ErrorMessage: err.Error()} + } + + localVarPath := localBasePath + "/v2/bff/{resourceType}/{resourceId}/assignableSubjects" + localVarPath = strings.Replace(localVarPath, "{"+"resourceType"+"}", url.PathEscape(ParameterValueToString(r.resourceType, "resourceType")), -1) + localVarPath = strings.Replace(localVarPath, "{"+"resourceId"+"}", url.PathEscape(ParameterValueToString(r.resourceId, "resourceId")), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if r.subject != nil { + parameterAddToHeaderOrQuery(localVarQueryParams, "subject", r.subject, "") + } + // 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 ErrorResponse + 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 + } + if localVarHTTPResponse.StatusCode == 401 { + var v ErrorResponse + 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 + } + if localVarHTTPResponse.StatusCode == 403 { + var v ErrorResponse + 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 + } + + 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 +} + +/* +GetAssignableSubjects: Get subjects assignable to a resource + +BFF endpoint for portal. List subjects assignable to a given resource. + + @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + @param resourceType + @param resourceId + @return ApiGetAssignableSubjectsRequest +*/ +func (a *APIClient) GetAssignableSubjects(ctx context.Context, resourceType string, resourceId string) ApiGetAssignableSubjectsRequest { + return GetAssignableSubjectsRequest{ + apiService: a.defaultApi, + ctx: ctx, + resourceType: resourceType, + resourceId: resourceId, + } +} + +func (a *APIClient) GetAssignableSubjectsExecute(ctx context.Context, resourceType string, resourceId string) (*ListAssignableSubjectsResponse, error) { + r := GetAssignableSubjectsRequest{ + apiService: a.defaultApi, + ctx: ctx, + resourceType: resourceType, + resourceId: resourceId, + } + return r.Execute() +} + type ListMembersRequest struct { ctx context.Context apiService *DefaultApiService diff --git a/services/authorization/api_default_test.go b/services/authorization/api_default_test.go index edfdeaa4f..c45f69591 100644 --- a/services/authorization/api_default_test.go +++ b/services/authorization/api_default_test.go @@ -76,6 +76,61 @@ func Test_authorization_DefaultApiService(t *testing.T) { } }) + t.Run("Test DefaultApiService GetAssignableSubjects", func(t *testing.T) { + _apiUrlPath := "/v2/bff/{resourceType}/{resourceId}/assignableSubjects" + resourceTypeValue := "resourceType-value" + _apiUrlPath = strings.Replace(_apiUrlPath, "{"+"resourceType"+"}", url.PathEscape(ParameterValueToString(resourceTypeValue, "resourceType")), -1) + resourceIdValue := "resourceId-value" + _apiUrlPath = strings.Replace(_apiUrlPath, "{"+"resourceId"+"}", url.PathEscape(ParameterValueToString(resourceIdValue, "resourceId")), -1) + + testDefaultApiServeMux := http.NewServeMux() + testDefaultApiServeMux.HandleFunc(_apiUrlPath, func(w http.ResponseWriter, req *http.Request) { + data := ListAssignableSubjectsResponse{} + w.Header().Add("Content-Type", "application/json") + json.NewEncoder(w).Encode(data) + }) + testServer := httptest.NewServer(testDefaultApiServeMux) + defer testServer.Close() + + configuration := &config.Configuration{ + DefaultHeader: make(map[string]string), + UserAgent: "OpenAPI-Generator/1.0.0/go", + Debug: false, + Region: "test_region", + Servers: config.ServerConfigurations{ + { + URL: testServer.URL, + Description: "Localhost for authorization_DefaultApi", + Variables: map[string]config.ServerVariable{ + "region": { + DefaultValue: "test_region.", + EnumValues: []string{ + "test_region.", + }, + }, + }, + }, + }, + OperationServers: map[string]config.ServerConfigurations{}, + } + apiClient, err := NewAPIClient(config.WithCustomConfiguration(configuration), config.WithoutAuthentication()) + if err != nil { + t.Fatalf("creating API client: %v", err) + } + + resourceType := resourceTypeValue + resourceId := resourceIdValue + + resp, reqErr := apiClient.GetAssignableSubjects(context.Background(), resourceType, resourceId).Execute() + + if reqErr != nil { + t.Fatalf("error in call: %v", reqErr) + } + if IsNil(resp) { + t.Fatalf("response not present") + } + }) + t.Run("Test DefaultApiService ListMembers", func(t *testing.T) { _apiUrlPath := "/v2/{resourceType}/{resourceId}/members" resourceTypeValue := "resourceType-value" diff --git a/services/authorization/model_assignable_subject.go b/services/authorization/model_assignable_subject.go new file mode 100644 index 000000000..e1df37275 --- /dev/null +++ b/services/authorization/model_assignable_subject.go @@ -0,0 +1,174 @@ +/* +STACKIT Membership API + +The Membership API is used to manage memberships, roles and permissions of STACKIT resources, like projects, folders, organizations and other resources. + +API version: 2.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package authorization + +import ( + "encoding/json" +) + +// checks if the AssignableSubject type satisfies the MappedNullable interface at compile time +var _ MappedNullable = &AssignableSubject{} + +/* + types and functions for displayName +*/ + +// isNotNullableString +type AssignableSubjectGetDisplayNameAttributeType = *string + +func getAssignableSubjectGetDisplayNameAttributeTypeOk(arg AssignableSubjectGetDisplayNameAttributeType) (ret AssignableSubjectGetDisplayNameRetType, ok bool) { + if arg == nil { + return ret, false + } + return *arg, true +} + +func setAssignableSubjectGetDisplayNameAttributeType(arg *AssignableSubjectGetDisplayNameAttributeType, val AssignableSubjectGetDisplayNameRetType) { + *arg = &val +} + +type AssignableSubjectGetDisplayNameArgType = string +type AssignableSubjectGetDisplayNameRetType = string + +/* + types and functions for subject +*/ + +// isNotNullableString +type AssignableSubjectGetSubjectAttributeType = *string + +func getAssignableSubjectGetSubjectAttributeTypeOk(arg AssignableSubjectGetSubjectAttributeType) (ret AssignableSubjectGetSubjectRetType, ok bool) { + if arg == nil { + return ret, false + } + return *arg, true +} + +func setAssignableSubjectGetSubjectAttributeType(arg *AssignableSubjectGetSubjectAttributeType, val AssignableSubjectGetSubjectRetType) { + *arg = &val +} + +type AssignableSubjectGetSubjectArgType = string +type AssignableSubjectGetSubjectRetType = string + +// AssignableSubject struct for AssignableSubject +type AssignableSubject struct { + DisplayName AssignableSubjectGetDisplayNameAttributeType `json:"displayName,omitempty"` + // REQUIRED + Subject AssignableSubjectGetSubjectAttributeType `json:"subject" required:"true"` +} + +type _AssignableSubject AssignableSubject + +// NewAssignableSubject instantiates a new AssignableSubject 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 NewAssignableSubject(subject AssignableSubjectGetSubjectArgType) *AssignableSubject { + this := AssignableSubject{} + setAssignableSubjectGetSubjectAttributeType(&this.Subject, subject) + return &this +} + +// NewAssignableSubjectWithDefaults instantiates a new AssignableSubject 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 NewAssignableSubjectWithDefaults() *AssignableSubject { + this := AssignableSubject{} + return &this +} + +// GetDisplayName returns the DisplayName field value if set, zero value otherwise. +func (o *AssignableSubject) GetDisplayName() (res AssignableSubjectGetDisplayNameRetType) { + res, _ = o.GetDisplayNameOk() + return +} + +// GetDisplayNameOk returns a tuple with the DisplayName field value if set, nil otherwise +// and a boolean to check if the value has been set. +func (o *AssignableSubject) GetDisplayNameOk() (ret AssignableSubjectGetDisplayNameRetType, ok bool) { + return getAssignableSubjectGetDisplayNameAttributeTypeOk(o.DisplayName) +} + +// HasDisplayName returns a boolean if a field has been set. +func (o *AssignableSubject) HasDisplayName() bool { + _, ok := o.GetDisplayNameOk() + return ok +} + +// SetDisplayName gets a reference to the given string and assigns it to the DisplayName field. +func (o *AssignableSubject) SetDisplayName(v AssignableSubjectGetDisplayNameRetType) { + setAssignableSubjectGetDisplayNameAttributeType(&o.DisplayName, v) +} + +// GetSubject returns the Subject field value +func (o *AssignableSubject) GetSubject() (ret AssignableSubjectGetSubjectRetType) { + ret, _ = o.GetSubjectOk() + return ret +} + +// GetSubjectOk returns a tuple with the Subject field value +// and a boolean to check if the value has been set. +func (o *AssignableSubject) GetSubjectOk() (ret AssignableSubjectGetSubjectRetType, ok bool) { + return getAssignableSubjectGetSubjectAttributeTypeOk(o.Subject) +} + +// SetSubject sets field value +func (o *AssignableSubject) SetSubject(v AssignableSubjectGetSubjectRetType) { + setAssignableSubjectGetSubjectAttributeType(&o.Subject, v) +} + +func (o AssignableSubject) ToMap() (map[string]interface{}, error) { + toSerialize := map[string]interface{}{} + if val, ok := getAssignableSubjectGetDisplayNameAttributeTypeOk(o.DisplayName); ok { + toSerialize["DisplayName"] = val + } + if val, ok := getAssignableSubjectGetSubjectAttributeTypeOk(o.Subject); ok { + toSerialize["Subject"] = val + } + return toSerialize, nil +} + +type NullableAssignableSubject struct { + value *AssignableSubject + isSet bool +} + +func (v NullableAssignableSubject) Get() *AssignableSubject { + return v.value +} + +func (v *NullableAssignableSubject) Set(val *AssignableSubject) { + v.value = val + v.isSet = true +} + +func (v NullableAssignableSubject) IsSet() bool { + return v.isSet +} + +func (v *NullableAssignableSubject) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableAssignableSubject(val *AssignableSubject) *NullableAssignableSubject { + return &NullableAssignableSubject{value: val, isSet: true} +} + +func (v NullableAssignableSubject) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableAssignableSubject) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/services/authorization/model_assignable_subject_test.go b/services/authorization/model_assignable_subject_test.go new file mode 100644 index 000000000..cb7435c20 --- /dev/null +++ b/services/authorization/model_assignable_subject_test.go @@ -0,0 +1,11 @@ +/* +STACKIT Membership API + +The Membership API is used to manage memberships, roles and permissions of STACKIT resources, like projects, folders, organizations and other resources. + +API version: 2.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package authorization diff --git a/services/authorization/model_list_assignable_subjects_response.go b/services/authorization/model_list_assignable_subjects_response.go new file mode 100644 index 000000000..1d0d4c332 --- /dev/null +++ b/services/authorization/model_list_assignable_subjects_response.go @@ -0,0 +1,213 @@ +/* +STACKIT Membership API + +The Membership API is used to manage memberships, roles and permissions of STACKIT resources, like projects, folders, organizations and other resources. + +API version: 2.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package authorization + +import ( + "encoding/json" +) + +// checks if the ListAssignableSubjectsResponse type satisfies the MappedNullable interface at compile time +var _ MappedNullable = &ListAssignableSubjectsResponse{} + +/* + types and functions for resourceId +*/ + +// isNotNullableString +type ListAssignableSubjectsResponseGetResourceIdAttributeType = *string + +func getListAssignableSubjectsResponseGetResourceIdAttributeTypeOk(arg ListAssignableSubjectsResponseGetResourceIdAttributeType) (ret ListAssignableSubjectsResponseGetResourceIdRetType, ok bool) { + if arg == nil { + return ret, false + } + return *arg, true +} + +func setListAssignableSubjectsResponseGetResourceIdAttributeType(arg *ListAssignableSubjectsResponseGetResourceIdAttributeType, val ListAssignableSubjectsResponseGetResourceIdRetType) { + *arg = &val +} + +type ListAssignableSubjectsResponseGetResourceIdArgType = string +type ListAssignableSubjectsResponseGetResourceIdRetType = string + +/* + types and functions for resourceType +*/ + +// isNotNullableString +type ListAssignableSubjectsResponseGetResourceTypeAttributeType = *string + +func getListAssignableSubjectsResponseGetResourceTypeAttributeTypeOk(arg ListAssignableSubjectsResponseGetResourceTypeAttributeType) (ret ListAssignableSubjectsResponseGetResourceTypeRetType, ok bool) { + if arg == nil { + return ret, false + } + return *arg, true +} + +func setListAssignableSubjectsResponseGetResourceTypeAttributeType(arg *ListAssignableSubjectsResponseGetResourceTypeAttributeType, val ListAssignableSubjectsResponseGetResourceTypeRetType) { + *arg = &val +} + +type ListAssignableSubjectsResponseGetResourceTypeArgType = string +type ListAssignableSubjectsResponseGetResourceTypeRetType = string + +/* + types and functions for subjects +*/ + +// isArray +type ListAssignableSubjectsResponseGetSubjectsAttributeType = *[]AssignableSubject +type ListAssignableSubjectsResponseGetSubjectsArgType = []AssignableSubject +type ListAssignableSubjectsResponseGetSubjectsRetType = []AssignableSubject + +func getListAssignableSubjectsResponseGetSubjectsAttributeTypeOk(arg ListAssignableSubjectsResponseGetSubjectsAttributeType) (ret ListAssignableSubjectsResponseGetSubjectsRetType, ok bool) { + if arg == nil { + return ret, false + } + return *arg, true +} + +func setListAssignableSubjectsResponseGetSubjectsAttributeType(arg *ListAssignableSubjectsResponseGetSubjectsAttributeType, val ListAssignableSubjectsResponseGetSubjectsRetType) { + *arg = &val +} + +// ListAssignableSubjectsResponse struct for ListAssignableSubjectsResponse +type ListAssignableSubjectsResponse struct { + // REQUIRED + ResourceId ListAssignableSubjectsResponseGetResourceIdAttributeType `json:"resourceId" required:"true"` + // REQUIRED + ResourceType ListAssignableSubjectsResponseGetResourceTypeAttributeType `json:"resourceType" required:"true"` + // REQUIRED + Subjects ListAssignableSubjectsResponseGetSubjectsAttributeType `json:"subjects" required:"true"` +} + +type _ListAssignableSubjectsResponse ListAssignableSubjectsResponse + +// NewListAssignableSubjectsResponse instantiates a new ListAssignableSubjectsResponse 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 NewListAssignableSubjectsResponse(resourceId ListAssignableSubjectsResponseGetResourceIdArgType, resourceType ListAssignableSubjectsResponseGetResourceTypeArgType, subjects ListAssignableSubjectsResponseGetSubjectsArgType) *ListAssignableSubjectsResponse { + this := ListAssignableSubjectsResponse{} + setListAssignableSubjectsResponseGetResourceIdAttributeType(&this.ResourceId, resourceId) + setListAssignableSubjectsResponseGetResourceTypeAttributeType(&this.ResourceType, resourceType) + setListAssignableSubjectsResponseGetSubjectsAttributeType(&this.Subjects, subjects) + return &this +} + +// NewListAssignableSubjectsResponseWithDefaults instantiates a new ListAssignableSubjectsResponse 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 NewListAssignableSubjectsResponseWithDefaults() *ListAssignableSubjectsResponse { + this := ListAssignableSubjectsResponse{} + return &this +} + +// GetResourceId returns the ResourceId field value +func (o *ListAssignableSubjectsResponse) GetResourceId() (ret ListAssignableSubjectsResponseGetResourceIdRetType) { + ret, _ = o.GetResourceIdOk() + return ret +} + +// GetResourceIdOk returns a tuple with the ResourceId field value +// and a boolean to check if the value has been set. +func (o *ListAssignableSubjectsResponse) GetResourceIdOk() (ret ListAssignableSubjectsResponseGetResourceIdRetType, ok bool) { + return getListAssignableSubjectsResponseGetResourceIdAttributeTypeOk(o.ResourceId) +} + +// SetResourceId sets field value +func (o *ListAssignableSubjectsResponse) SetResourceId(v ListAssignableSubjectsResponseGetResourceIdRetType) { + setListAssignableSubjectsResponseGetResourceIdAttributeType(&o.ResourceId, v) +} + +// GetResourceType returns the ResourceType field value +func (o *ListAssignableSubjectsResponse) GetResourceType() (ret ListAssignableSubjectsResponseGetResourceTypeRetType) { + ret, _ = o.GetResourceTypeOk() + return ret +} + +// GetResourceTypeOk returns a tuple with the ResourceType field value +// and a boolean to check if the value has been set. +func (o *ListAssignableSubjectsResponse) GetResourceTypeOk() (ret ListAssignableSubjectsResponseGetResourceTypeRetType, ok bool) { + return getListAssignableSubjectsResponseGetResourceTypeAttributeTypeOk(o.ResourceType) +} + +// SetResourceType sets field value +func (o *ListAssignableSubjectsResponse) SetResourceType(v ListAssignableSubjectsResponseGetResourceTypeRetType) { + setListAssignableSubjectsResponseGetResourceTypeAttributeType(&o.ResourceType, v) +} + +// GetSubjects returns the Subjects field value +func (o *ListAssignableSubjectsResponse) GetSubjects() (ret ListAssignableSubjectsResponseGetSubjectsRetType) { + ret, _ = o.GetSubjectsOk() + return ret +} + +// GetSubjectsOk returns a tuple with the Subjects field value +// and a boolean to check if the value has been set. +func (o *ListAssignableSubjectsResponse) GetSubjectsOk() (ret ListAssignableSubjectsResponseGetSubjectsRetType, ok bool) { + return getListAssignableSubjectsResponseGetSubjectsAttributeTypeOk(o.Subjects) +} + +// SetSubjects sets field value +func (o *ListAssignableSubjectsResponse) SetSubjects(v ListAssignableSubjectsResponseGetSubjectsRetType) { + setListAssignableSubjectsResponseGetSubjectsAttributeType(&o.Subjects, v) +} + +func (o ListAssignableSubjectsResponse) ToMap() (map[string]interface{}, error) { + toSerialize := map[string]interface{}{} + if val, ok := getListAssignableSubjectsResponseGetResourceIdAttributeTypeOk(o.ResourceId); ok { + toSerialize["ResourceId"] = val + } + if val, ok := getListAssignableSubjectsResponseGetResourceTypeAttributeTypeOk(o.ResourceType); ok { + toSerialize["ResourceType"] = val + } + if val, ok := getListAssignableSubjectsResponseGetSubjectsAttributeTypeOk(o.Subjects); ok { + toSerialize["Subjects"] = val + } + return toSerialize, nil +} + +type NullableListAssignableSubjectsResponse struct { + value *ListAssignableSubjectsResponse + isSet bool +} + +func (v NullableListAssignableSubjectsResponse) Get() *ListAssignableSubjectsResponse { + return v.value +} + +func (v *NullableListAssignableSubjectsResponse) Set(val *ListAssignableSubjectsResponse) { + v.value = val + v.isSet = true +} + +func (v NullableListAssignableSubjectsResponse) IsSet() bool { + return v.isSet +} + +func (v *NullableListAssignableSubjectsResponse) Unset() { + v.value = nil + v.isSet = false +} + +func NewNullableListAssignableSubjectsResponse(val *ListAssignableSubjectsResponse) *NullableListAssignableSubjectsResponse { + return &NullableListAssignableSubjectsResponse{value: val, isSet: true} +} + +func (v NullableListAssignableSubjectsResponse) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +func (v *NullableListAssignableSubjectsResponse) UnmarshalJSON(src []byte) error { + v.isSet = true + return json.Unmarshal(src, &v.value) +} diff --git a/services/authorization/model_list_assignable_subjects_response_test.go b/services/authorization/model_list_assignable_subjects_response_test.go new file mode 100644 index 000000000..cb7435c20 --- /dev/null +++ b/services/authorization/model_list_assignable_subjects_response_test.go @@ -0,0 +1,11 @@ +/* +STACKIT Membership API + +The Membership API is used to manage memberships, roles and permissions of STACKIT resources, like projects, folders, organizations and other resources. + +API version: 2.0 +*/ + +// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. + +package authorization From ecc5e39b138ccc5d5d675eb703781507b4165b0f Mon Sep 17 00:00:00 2001 From: Ruben Hoenle Date: Fri, 26 Sep 2025 11:31:19 +0200 Subject: [PATCH 2/2] add changelog entries --- CHANGELOG.md | 2 ++ services/authorization/CHANGELOG.md | 5 ++++- services/authorization/VERSION | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b51f9e7e8..d54c74d22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ ## Release (2025-MM-DD) +- `authorization`: [v0.9.0](services/authorization/CHANGELOG.md#v090) + - **Feature:** Add support for assignable subjects - `iaas`: - [v0.31.0](services/iaas/CHANGELOG.md#v0310) - Add `CreatedAt` and `UpdatedAt` fields to `BaseSecurityGroupRule` struct diff --git a/services/authorization/CHANGELOG.md b/services/authorization/CHANGELOG.md index 16cb81cb7..56058bb90 100644 --- a/services/authorization/CHANGELOG.md +++ b/services/authorization/CHANGELOG.md @@ -1,5 +1,8 @@ +## v0.9.0 +- **Feature:** Add support for assignable subjects + ## v0.8.1 - - **Dependencies:** Bump `github.com/golang-jwt/jwt/v5` from `v5.2.2` to `v5.2.3` +- **Dependencies:** Bump `github.com/golang-jwt/jwt/v5` from `v5.2.2` to `v5.2.3` ## v0.8.0 - Add `required:"true"` tags to model structs diff --git a/services/authorization/VERSION b/services/authorization/VERSION index 349ca0e14..f979adec6 100644 --- a/services/authorization/VERSION +++ b/services/authorization/VERSION @@ -1 +1 @@ -v0.8.1 \ No newline at end of file +v0.9.0